17 from pyramid.decorator import reify |
17 from pyramid.decorator import reify |
18 from pyramid.exceptions import NotFound |
18 from pyramid.exceptions import NotFound |
19 from pyramid.renderers import render |
19 from pyramid.renderers import render |
20 from pyramid.view import view_config |
20 from pyramid.view import view_config |
21 from z3c.form import field |
21 from z3c.form import field |
|
22 from z3c.table.column import GetAttrColumn |
22 from z3c.table.interfaces import IColumn, IValues |
23 from z3c.table.interfaces import IColumn, IValues |
23 from zope.interface import Interface, alsoProvides, implementer |
24 from zope.interface import Interface, alsoProvides, implementer |
24 |
25 |
25 from pyams_content.component.association.zmi import AssociationsTable, AssociationsTablePublicNameColumn |
26 from pyams_content.component.association.zmi import AssociationsTable, AssociationsTablePublicNameColumn |
26 from pyams_content.component.links.zmi import ExternalLinkAddForm, ExternalLinkAddMenu, ExternalLinkPropertiesEditForm, \ |
27 from pyams_content.component.links.zmi import ExternalLinkAddForm, ExternalLinkAddMenu, ExternalLinkPropertiesEditForm, \ |
30 IMenuLinksContainerTarget, IMenusContainerTarget |
31 IMenuLinksContainerTarget, IMenusContainerTarget |
31 from pyams_content.reference.pictograms.zmi.widget import PictogramSelectFieldWidget |
32 from pyams_content.reference.pictograms.zmi.widget import PictogramSelectFieldWidget |
32 from pyams_form.form import AJAXAddForm, AJAXEditForm, ajax_config |
33 from pyams_form.form import AJAXAddForm, AJAXEditForm, ajax_config |
33 from pyams_form.interfaces.form import IFormContextPermissionChecker |
34 from pyams_form.interfaces.form import IFormContextPermissionChecker |
34 from pyams_i18n.column import I18nAttrColumn |
35 from pyams_i18n.column import I18nAttrColumn |
|
36 from pyams_i18n.interfaces import II18n |
35 from pyams_pagelet.pagelet import pagelet_config |
37 from pyams_pagelet.pagelet import pagelet_config |
36 from pyams_portal.interfaces import MANAGE_TEMPLATE_PERMISSION |
38 from pyams_portal.interfaces import MANAGE_TEMPLATE_PERMISSION |
|
39 from pyams_sequence.interfaces import ISequentialIdInfo |
37 from pyams_skin.container import delete_container_element, switch_element_visibility |
40 from pyams_skin.container import delete_container_element, switch_element_visibility |
38 from pyams_skin.event import get_json_switched_table_refresh_event, get_json_table_row_refresh_event |
41 from pyams_skin.event import get_json_switched_table_refresh_event, get_json_table_row_refresh_event |
39 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IWidgetTitleViewletManager |
42 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IWidgetTitleViewletManager |
40 from pyams_skin.layer import IPyAMSLayer |
43 from pyams_skin.layer import IPyAMSLayer |
41 from pyams_skin.table import BaseTable, I18nColumn, SorterColumn, TrashColumn, VisibilitySwitcherColumn, get_table_id |
44 from pyams_skin.table import BaseTable, I18nColumn, SorterColumn, TrashColumn, VisibilitySwitcherColumn, get_table_id |
218 |
221 |
219 def renderCell(self, item): |
222 def renderCell(self, item): |
220 return render('templates/menu-name-cell.pt', {'context': item}, request=self.request) |
223 return render('templates/menu-name-cell.pt', {'context': item}, request=self.request) |
221 |
224 |
222 |
225 |
|
226 @adapter_config(name='reference', context=(IMenusContainerTarget, IPyAMSLayer, MenusTable), provides=IColumn) |
|
227 class MenusTableReferenceColumn(I18nColumn, GetAttrColumn): |
|
228 """Menus table reference column""" |
|
229 |
|
230 _header = _("Inner content") |
|
231 weight = 15 |
|
232 |
|
233 def getValue(self, obj): |
|
234 target = obj.target |
|
235 if target is not None: |
|
236 sequence = ISequentialIdInfo(target) |
|
237 return '{0} ({1})'.format(II18n(target).query_attribute('title'), |
|
238 sequence.get_short_oid()) |
|
239 else: |
|
240 return '--' |
|
241 |
|
242 |
223 @adapter_config(name='trash', context=(IMenusContainerTarget, IPyAMSLayer, MenusTable), provides=IColumn) |
243 @adapter_config(name='trash', context=(IMenusContainerTarget, IPyAMSLayer, MenusTable), provides=IColumn) |
224 class MenusTableTrashColumn(TrashColumn): |
244 class MenusTableTrashColumn(TrashColumn): |
225 """Menus table trash column""" |
245 """Menus table trash column""" |
226 |
246 |
227 permission = MANAGE_TEMPLATE_PERMISSION |
247 permission = MANAGE_TEMPLATE_PERMISSION |