src/pyams_content/reference/zmi/table.py
changeset 527 5dd1aa8bedd9
parent 468 cb1fadda86ff
child 578 a607fdec4d63
equal deleted inserted replaced
526:b15153f45957 527:5dd1aa8bedd9
    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