src/pyams_portal/zmi/container.py
changeset 289 fca4100c1733
parent 180 b3a4f4e2c959
equal deleted inserted replaced
288:390514bce78a 289:fca4100c1733
    68     @property
    68     @property
    69     def url(self):
    69     def url(self):
    70         return absolute_url(self.request.root, self.request, 'admin#portal-templates.html')
    70         return absolute_url(self.request.root, self.request, 'admin#portal-templates.html')
    71 
    71 
    72 
    72 
    73 @adapter_config(context=(IPortalTemplateContainer, IAdminLayer, ITable), provides=ITableElementEditor)
    73 @adapter_config(context=(IPortalTemplateContainer, IAdminLayer, ITable),
       
    74                 provides=ITableElementEditor)
    74 class PortalTemplateContainerTableElementEditor(DefaultElementEditorAdapter):
    75 class PortalTemplateContainerTableElementEditor(DefaultElementEditorAdapter):
    75     """Portal template container table element editor"""
    76     """Portal template container table element editor"""
    76 
    77 
    77     view_name = 'portal-templates.html'
    78     view_name = 'portal-templates.html'
    78     modal_target = False
    79     modal_target = False
    81     def url(self):
    82     def url(self):
    82         site = get_parent(self.context, ISite)
    83         site = get_parent(self.context, ISite)
    83         return resource_url(site, self.request, 'admin#{0}'.format(self.view_name))
    84         return resource_url(site, self.request, 'admin#{0}'.format(self.view_name))
    84 
    85 
    85 
    86 
    86 @viewlet_config(name='portal-templates.menu', context=ISite, layer=IAdminLayer, manager=IControlPanelMenu,
    87 @viewlet_config(name='portal-templates.menu',
       
    88                 context=ISite, layer=IAdminLayer, manager=IControlPanelMenu,
    87                 permission=MANAGE_TEMPLATE_PERMISSION, weight=20)
    89                 permission=MANAGE_TEMPLATE_PERMISSION, weight=20)
    88 @viewletmanager_config(name='portal-templates.menu', context=ISite, layer=IAdminLayer)
    90 @viewletmanager_config(name='portal-templates.menu', context=ISite, layer=IAdminLayer)
    89 @implementer(IPortalTemplateContainerMenu)
    91 @implementer(IPortalTemplateContainerMenu)
    90 class PortalTemplateContainerMenuItem(MenuItem):
    92 class PortalTemplateContainerMenuItem(MenuItem):
    91     """Portal template container menu"""
    93     """Portal template container menu"""
   112             'data-ams-plugin-pyams_portal-css': get_resource_path(pyams_portal_css)
   114             'data-ams-plugin-pyams_portal-css': get_resource_path(pyams_portal_css)
   113         })
   115         })
   114         return attributes
   116         return attributes
   115 
   117 
   116 
   118 
   117 @adapter_config(context=(IPortalTemplate, IAdminLayer, PortalTemplateContainerTable), provides=ITableElementEditor)
   119 @adapter_config(context=(IPortalTemplate, IAdminLayer, PortalTemplateContainerTable),
       
   120                 provides=ITableElementEditor)
   118 class PortalTemplateTableElementEditor(DefaultElementEditorAdapter):
   121 class PortalTemplateTableElementEditor(DefaultElementEditorAdapter):
   119     """Portal template table element editor"""
   122     """Portal template table element editor"""
   120 
   123 
       
   124     view_name = 'layout.html'
   121     modal_target = False
   125     modal_target = False
   122 
   126 
   123     @property
   127     @property
   124     def url(self):
   128     def url(self):
   125         return resource_url(self.context, self.request, 'admin#{0}'.format(self.view_name))
   129         return resource_url(self.context, self.request, 'admin#{0}'.format(self.view_name))
   126 
   130 
   127 
   131 
   128 @adapter_config(name='name', context=(Interface, IAdminLayer, PortalTemplateContainerTable), provides=IColumn)
   132 @adapter_config(name='name', context=(Interface, IAdminLayer, PortalTemplateContainerTable),
       
   133                 provides=IColumn)
   129 class PortalTemplateContainerNameColumn(NameColumn):
   134 class PortalTemplateContainerNameColumn(NameColumn):
   130     """Portal template container name column"""
   135     """Portal template container name column"""
   131 
   136 
   132     attrName = 'name'
   137     attrName = 'name'
   133 
   138 
   134 
   139 
   135 @adapter_config(name='trash', context=(Interface, IAdminLayer, PortalTemplateContainerTable), provides=IColumn)
   140 @adapter_config(name='trash', context=(Interface, IAdminLayer, PortalTemplateContainerTable),
       
   141                 provides=IColumn)
   136 class PortalTemplateContainerTrashColumn(TrashColumn):
   142 class PortalTemplateContainerTrashColumn(TrashColumn):
   137     """Portal template container trash column"""
   143     """Portal template container trash column"""
   138 
   144 
   139     icon_hint = _("Delete template")
   145     icon_hint = _("Delete template")
   140     permission = MANAGE_TEMPLATE_PERMISSION
   146     permission = MANAGE_TEMPLATE_PERMISSION
   141 
   147 
   142 
   148 
   143 @view_config(name='delete-element.json', context=IPortalTemplateContainer, request_type=IPyAMSLayer,
   149 @view_config(name='delete-element.json',
       
   150              context=IPortalTemplateContainer, request_type=IPyAMSLayer,
   144              permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
   151              permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
   145 def delete_portal_template(request):
   152 def delete_portal_template(request):
   146     """Delete selected template"""
   153     """Delete selected template"""
   147     return delete_container_element(request, ignore_permission=True)
   154     return delete_container_element(request, ignore_permission=True)
   148 
   155 
   149 
   156 
   150 @adapter_config(context=(ISite, IAdminLayer, PortalTemplateContainerTable), provides=IValues)
   157 @adapter_config(context=(ISite, IAdminLayer, PortalTemplateContainerTable),
       
   158                 provides=IValues)
   151 class PortalTemplateContainerValuesAdapter(ContextRequestViewAdapter):
   159 class PortalTemplateContainerValuesAdapter(ContextRequestViewAdapter):
   152     """Portal template container values adapter"""
   160     """Portal template container values adapter"""
   153 
   161 
   154     @property
   162     @property
   155     def values(self):
   163     def values(self):
   157         if manager is not None:
   165         if manager is not None:
   158             return manager.values()
   166             return manager.values()
   159         return ()
   167         return ()
   160 
   168 
   161 
   169 
   162 @pagelet_config(name='portal-templates.html', context=ISite, layer=IPyAMSLayer, permission=MANAGE_TEMPLATE_PERMISSION)
   170 @pagelet_config(name='portal-templates.html',
       
   171                 context=ISite, layer=IPyAMSLayer, permission=MANAGE_TEMPLATE_PERMISSION)
   163 @implementer(IInnerPage)
   172 @implementer(IInnerPage)
   164 class PortalTemplateContainerView(AdminView, ContainerView):
   173 class PortalTemplateContainerView(AdminView, ContainerView):
   165     """Portal template container view"""
   174     """Portal template container view"""
   166 
   175 
   167     table_class = PortalTemplateContainerTable
   176     table_class = PortalTemplateContainerTable
   168 
   177 
   169     def __init__(self, context, request):
   178     def __init__(self, context, request):
   170         super(PortalTemplateContainerView, self).__init__(context, request)
   179         super(PortalTemplateContainerView, self).__init__(context, request)
   171 
   180 
   172 
   181 
   173 @adapter_config(context=(ISite, IAdminLayer, PortalTemplateContainerView), provides=IPageHeader)
   182 @adapter_config(context=(ISite, IAdminLayer, PortalTemplateContainerView),
       
   183                 provides=IPageHeader)
   174 class PortalTemplateContainerHeaderAdapter(DefaultPageHeaderAdapter):
   184 class PortalTemplateContainerHeaderAdapter(DefaultPageHeaderAdapter):
   175     """Portal template container header adapter"""
   185     """Portal template container header adapter"""
   176 
   186 
   177     icon_class = 'fa fa-fw fa-columns'
   187     icon_class = 'fa fa-fw fa-columns'
   178 
   188 
   179 
   189 
   180 #
   190 #
   181 # Templates container configuration views
   191 # Templates container configuration views
   182 #
   192 #
   183 
   193 
   184 @viewlet_config(name='templates-container-configuration.menu', context=ISite, layer=IAdminLayer,
   194 @viewlet_config(name='templates-container-configuration.menu',
   185                 manager=IPortalTemplateContainerMenu, permission=MANAGE_TEMPLATE_PERMISSION, weight=1)
   195                 context=ISite, layer=IAdminLayer,
       
   196                 manager=IPortalTemplateContainerMenu, weight=1,
       
   197                 permission=MANAGE_TEMPLATE_PERMISSION)
   186 class PortalTemplatesContainerPropertiesMenu(MenuItem):
   198 class PortalTemplatesContainerPropertiesMenu(MenuItem):
   187     """Portal template container configuration menu"""
   199     """Portal template container configuration menu"""
   188 
   200 
   189     label = _("Selected portlets...")
   201     label = _("Selected portlets...")
   190     icon_class = 'fa-thumb-tack'
   202     icon_class = 'fa-thumb-tack'