src/pyams_content/shared/zmi/sites.py
changeset 278 f78a3411bf62
parent 277 9649f8ce3b1c
equal deleted inserted replaced
277:9649f8ce3b1c 278:f78a3411bf62
    14 
    14 
    15 
    15 
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
       
    19 from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION
    19 from pyams_content.shared.common.interfaces import ISharedSite, IBaseSharedTool
    20 from pyams_content.shared.common.interfaces import ISharedSite, IBaseSharedTool
    20 from pyams_content.shared.common.interfaces.zmi import IDashboardTable
    21 from pyams_content.shared.common.interfaces.zmi import IDashboardTable
    21 from pyams_content.shared.zmi.interfaces import ISiteTreeMenu
    22 from pyams_content.shared.zmi.interfaces import ISiteTreeMenu
    22 from pyams_skin.interfaces import IInnerPage, IPageHeader
    23 from pyams_skin.interfaces import IInnerPage, IPageHeader
    23 from pyams_skin.interfaces.container import ITableWithActions
    24 from pyams_skin.interfaces.container import ITableWithActions
    24 from pyams_skin.layer import IPyAMSLayer
    25 from pyams_skin.layer import IPyAMSLayer
    25 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION, MANAGE_SYSTEM_PERMISSION
    26 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
    26 from pyams_zmi.interfaces.menu import ISiteManagementMenu
    27 from pyams_zmi.interfaces.menu import ISiteManagementMenu
    27 from pyams_zmi.layer import IAdminLayer
    28 from pyams_zmi.layer import IAdminLayer
    28 from z3c.table.interfaces import IColumn, IValues
    29 from z3c.table.interfaces import IColumn, IValues
    29 from zope.component.interfaces import ISite
    30 from zope.component.interfaces import ISite
    30 
    31 
    66     """Site tree table"""
    67     """Site tree table"""
    67 
    68 
    68     id = 'site_tree_table'
    69     id = 'site_tree_table'
    69     title = _("Blogs and shared sites")
    70     title = _("Blogs and shared sites")
    70 
    71 
       
    72     sortOn = None
       
    73 
    71     @property
    74     @property
    72     def data_attributes(self):
    75     def data_attributes(self):
    73         attributes = super(SiteTreeTable, self).data_attributes
    76         attributes = super(SiteTreeTable, self).data_attributes
    74         attributes['table'] = {'data-ams-location': absolute_url(self.context, self.request),
    77         attributes['table'] = {'data-ams-location': absolute_url(self.context, self.request),
    75                                'data-ams-delete-target': 'delete-shared-site.json'}
    78                                'data-ams-delete-target': 'delete-shared-site.json'}
    79 @adapter_config(name='trash', context=(Interface, IAdminLayer, SiteTreeTable), provides=IColumn)
    82 @adapter_config(name='trash', context=(Interface, IAdminLayer, SiteTreeTable), provides=IColumn)
    80 class SiteTreeTrashColumn(TrashColumn):
    83 class SiteTreeTrashColumn(TrashColumn):
    81     """Site tree trash column"""
    84     """Site tree trash column"""
    82 
    85 
    83     icon_hint = _("Delete shared site")
    86     icon_hint = _("Delete shared site")
    84     permission = MANAGE_SYSTEM_PERMISSION
    87     permission = MANAGE_SITE_ROOT_PERMISSION
    85 
    88 
    86 
    89 
    87 @adapter_config(context=(ISite, IAdminLayer, SiteTreeTable), provides=IValues)
    90 @adapter_config(context=(ISite, IAdminLayer, SiteTreeTable), provides=IValues)
    88 class SiteTreValuesAdapter(ContextRequestViewAdapter):
    91 class SiteTreValuesAdapter(ContextRequestViewAdapter):
    89     """Site tree values adapter"""
    92     """Site tree values adapter"""
   111 
   114 
   112     icon_class = 'fa fa-fw fa-sitemap'
   115     icon_class = 'fa fa-fw fa-sitemap'
   113 
   116 
   114 
   117 
   115 @view_config(name='delete-shared-site.json', context=ISite, request_type=IPyAMSLayer,
   118 @view_config(name='delete-shared-site.json', context=ISite, request_type=IPyAMSLayer,
   116              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
   119              permission=MANAGE_SITE_ROOT_PERMISSION, renderer='json', xhr=True)
   117 def delete_shared_site(request):
   120 def delete_shared_site(request):
   118     """Delete shared site from site manager"""
   121     """Delete shared site from site manager"""
   119     translate = request.localizer.translate
   122     translate = request.localizer.translate
   120     name = request.params.get('object_name')
   123     name = request.params.get('object_name')
   121     if not name:
   124     if not name: