src/pyams_content/reference/pictograms/zmi/__init__.py
changeset 576 12171cf62cc4
parent 527 5dd1aa8bedd9
child 591 b694d5667d17
--- a/src/pyams_content/reference/pictograms/zmi/__init__.py	Mon Jun 04 15:00:16 2018 +0200
+++ b/src/pyams_content/reference/pictograms/zmi/__init__.py	Mon Jun 04 16:43:56 2018 +0200
@@ -9,6 +9,7 @@
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE.
 #
+from z3c.form.interfaces import NOVALUE, NO_VALUE
 
 __docformat__ = 'restructuredtext'
 
@@ -43,6 +44,8 @@
 from pyams_utils.url import absolute_url
 from pyams_viewlet.viewlet import viewlet_config
 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
+from pyramid.httpexceptions import HTTPNotFound, HTTPBadRequest
+from pyramid.response import Response
 from pyramid.view import view_config
 from z3c.form import field
 from z3c.table.column import GetAttrColumn
@@ -169,3 +172,20 @@
     """Pictograms table contents view"""
 
     table_class = PictogramTableContentsTable
+
+
+@view_config(name='get-pictogram-header.html', context=IPictogramTable, request_type=IPyAMSLayer,
+             permission=VIEW_SYSTEM_PERMISSION)
+def get_pictogram_label(request):
+    """Get alternate label associated with a given pictogram"""
+    name = request.params.get('value')
+    if not name:
+        raise HTTPBadRequest()
+    translate = request.localizer.translate
+    if name == '--NOVALUE--':
+        return Response(translate(_("Default header: --")))
+    pictogram = request.context.get(name)
+    if pictogram is None:
+        raise HTTPNotFound()
+    return Response(translate(_("Default header: {0}")).format(
+        II18n(pictogram).query_attribute('header', request=request) or '--'))