28 from z3c.table.interfaces import IValues, IColumn |
28 from z3c.table.interfaces import IValues, IColumn |
29 |
29 |
30 # import packages |
30 # import packages |
31 from pyams_form.form import AJAXEditForm |
31 from pyams_form.form import AJAXEditForm |
32 from pyams_pagelet.pagelet import pagelet_config |
32 from pyams_pagelet.pagelet import pagelet_config |
33 from pyams_skin.container import ContainerView |
33 from pyams_skin.container import ContainerView, delete_container_element |
34 from pyams_skin.page import DefaultPageHeaderAdapter |
34 from pyams_skin.page import DefaultPageHeaderAdapter |
35 from pyams_skin.table import BaseTable, TrashColumn |
35 from pyams_skin.table import BaseTable, TrashColumn |
36 from pyams_skin.viewlet.breadcrumb import BreadcrumbItem |
36 from pyams_skin.viewlet.breadcrumb import BreadcrumbItem |
37 from pyams_skin.viewlet.menu import MenuItem |
37 from pyams_skin.viewlet.menu import MenuItem |
38 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
38 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
76 |
76 |
77 |
77 |
78 class ReferenceTableContentsTable(BaseTable): |
78 class ReferenceTableContentsTable(BaseTable): |
79 """References table contents table""" |
79 """References table contents table""" |
80 |
80 |
|
81 prefix = 'references' |
|
82 |
81 title = _("Table contents") |
83 title = _("Table contents") |
82 |
84 |
83 @property |
85 @property |
84 def data_attributes(self): |
86 def data_attributes(self): |
85 attributes = super(ReferenceTableContentsTable, self).data_attributes |
87 attributes = super(ReferenceTableContentsTable, self).data_attributes |
86 table_attrs = {'data-ams-location': absolute_url(self.context, self.request)} |
88 attributes.setdefault('table', {}).update({ |
87 if 'table' in attributes: |
89 'data-ams-location': absolute_url(self.context, self.request) |
88 attributes['table'].update(table_attrs) |
90 }) |
89 else: |
|
90 attributes['table'] = table_attrs |
|
91 return attributes |
91 return attributes |
92 |
92 |
93 |
93 |
94 @adapter_config(context=(IReferenceTable, IPyAMSLayer, ReferenceTableContentsTable), provides=IValues) |
94 @adapter_config(context=(IReferenceTable, IPyAMSLayer, ReferenceTableContentsTable), provides=IValues) |
95 class ReferenceTableContentsValues(ContextRequestViewAdapter): |
95 class ReferenceTableContentsValues(ContextRequestViewAdapter): |
103 @adapter_config(name='trash', context=(IReferenceTable, IPyAMSLayer, ReferenceTableContentsTable), provides=IColumn) |
103 @adapter_config(name='trash', context=(IReferenceTable, IPyAMSLayer, ReferenceTableContentsTable), provides=IColumn) |
104 class ReferenceTableTrashColumn(TrashColumn): |
104 class ReferenceTableTrashColumn(TrashColumn): |
105 """Reference table trash column""" |
105 """Reference table trash column""" |
106 |
106 |
107 permission = MANAGE_SITE_ROOT_PERMISSION |
107 permission = MANAGE_SITE_ROOT_PERMISSION |
|
108 |
|
109 |
|
110 @view_config(name='delete-element.json', context=IReferenceTable, request_type=IPyAMSLayer, |
|
111 permission=MANAGE_SITE_ROOT_PERMISSION, renderer='json', xhr=True) |
|
112 def delete_reference(request): |
|
113 """Delete selected reference item""" |
|
114 return delete_container_element(request, ignore_permission=True) |
108 |
115 |
109 |
116 |
110 @pagelet_config(name='contents.html', context=IReferenceTable, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) |
117 @pagelet_config(name='contents.html', context=IReferenceTable, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) |
111 @implementer(IInnerPage) |
118 @implementer(IInnerPage) |
112 class ReferenceTableContentsView(AdminView, ContainerView): |
119 class ReferenceTableContentsView(AdminView, ContainerView): |
142 |
149 |
143 @pagelet_config(name='properties.html', context=IReferenceTable, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) |
150 @pagelet_config(name='properties.html', context=IReferenceTable, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) |
144 class ReferenceTablePropertiesEditForm(AdminDialogEditForm): |
151 class ReferenceTablePropertiesEditForm(AdminDialogEditForm): |
145 """Reference table properties edit form""" |
152 """Reference table properties edit form""" |
146 |
153 |
|
154 prefix = 'table_properties.' |
|
155 |
147 legend = _("Edit table properties") |
156 legend = _("Edit table properties") |
148 |
157 |
149 fields = field.Fields(IReferenceTable).omit('__parent__', '__name__') |
158 fields = field.Fields(IReferenceTable).omit('__parent__', '__name__') |
150 ajax_handler = 'properties.json' |
159 ajax_handler = 'properties.json' |
151 edit_permission = MANAGE_SITE_ROOT_PERMISSION |
160 edit_permission = MANAGE_SITE_ROOT_PERMISSION |