# HG changeset patch # User Thierry Florac # Date 1605269628 -3600 # Node ID 9b93fdd5ba303de6787aef81d6298c414281bde8 # Parent 48c1ee485dc0a37d86caac5dd35426df9bc5825a Updated menus order diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/component/association/zmi/__init__.py --- a/src/pyams_content/component/association/zmi/__init__.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/component/association/zmi/__init__.py Fri Nov 13 13:13:48 2020 +0100 @@ -88,7 +88,7 @@ # @viewlet_config(name='associations.menu', context=IAssociationContainerTarget, layer=IPyAMSLayer, - manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=60) + manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=200) class AssociationsMenu(MenuItem): """Associations menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/component/extfile/zmi/manager.py --- a/src/pyams_content/component/extfile/zmi/manager.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/component/extfile/zmi/manager.py Fri Nov 13 13:13:48 2020 +0100 @@ -30,7 +30,7 @@ @viewlet_config(name='extfiles-manager.menu', context=ISiteRoot, layer=IAdminLayer, - manager=IPropertiesMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=80) + manager=IPropertiesMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=770) class ExtFileManagerMenu(MenuItem): """External files manager menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/component/paragraph/zmi/__init__.py --- a/src/pyams_content/component/paragraph/zmi/__init__.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/component/paragraph/zmi/__init__.py Fri Nov 13 13:13:48 2020 +0100 @@ -25,6 +25,7 @@ from pyams_content.features.renderer.zmi.widget import RendererFieldWidget from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION, MANAGE_TOOL_PERMISSION from pyams_content.shared.common.interfaces import IWfSharedContent +from pyams_content.shared.site.interfaces import ISiteManager from pyams_form.form import AJAXAddForm, AJAXEditForm, ajax_config from pyams_form.help import FormHelp from pyams_form.interfaces.form import IFormHelp, check_submit_button @@ -60,7 +61,7 @@ @viewlet_config(name='default-paragraphs.menu', context=IParagraphFactorySettings, layer=IAdminLayer, manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, - weight=10) + weight=610) class DefaultParagraphsSettingsMenu(MenuItem): """Default paragraphs settings menu""" @@ -230,7 +231,7 @@ """Base paragraph AJAX add form""" def get_ajax_output(self, changes): - if IWfSharedContent.providedBy(self.context): + if IWfSharedContent.providedBy(self.context) or ISiteManager.providedBy(self.context): table_factory = ParagraphContainerTable else: table_factory = ParagraphContainerBaseTable diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/component/paragraph/zmi/container.py --- a/src/pyams_content/component/paragraph/zmi/container.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/component/paragraph/zmi/container.py Fri Nov 13 13:13:48 2020 +0100 @@ -10,8 +10,6 @@ # FOR A PARTICULAR PURPOSE. # -__docformat__ = 'restructuredtext' - import json from pyramid.decorator import reify @@ -26,10 +24,10 @@ from pyams_content.component.association.interfaces import IAssociationContainer from pyams_content.component.association.zmi import AssociationsContainerView from pyams_content.component.paragraph import BaseParagraph, IParagraphTitle -from pyams_content.component.paragraph.interfaces import IBaseParagraph, IParagraphContainer, IParagraphContainerTarget, \ - IParagraphFactorySettings -from pyams_content.component.paragraph.zmi.interfaces import IParagraphContainerTable, IParagraphContainerView, \ - IParagraphInnerEditor, IParagraphTitleToolbar +from pyams_content.component.paragraph.interfaces import IBaseParagraph, IParagraphContainer, \ + IParagraphContainerTarget, IParagraphFactorySettings +from pyams_content.component.paragraph.zmi.interfaces import IParagraphContainerTable, \ + IParagraphContainerView, IParagraphInnerEditor, IParagraphTitleToolbar from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION from pyams_content.shared.common.zmi import WfModifiedContentColumnMixin from pyams_content.zmi import pyams_content @@ -42,8 +40,8 @@ from pyams_skin.interfaces.container import ITableElementEditor from pyams_skin.layer import IPyAMSLayer from pyams_skin.page import DefaultPageHeaderAdapter -from pyams_skin.table import AttributeSwitcherColumn, BaseTable, I18nColumn, ImageColumn, SorterColumn, TrashColumn, \ - VisibilitySwitcherColumn +from pyams_skin.table import AttributeSwitcherColumn, BaseTable, I18nColumn, ImageColumn, \ + SorterColumn, TrashColumn, VisibilitySwitcherColumn from pyams_skin.viewlet.menu import MenuItem from pyams_template.template import template_config from pyams_utils.adapter import ContextRequestViewAdapter, NullAdapter, adapter_config @@ -51,7 +49,8 @@ from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION from pyams_utils.traversing import get_parent from pyams_utils.url import absolute_url -from pyams_viewlet.manager import TemplateBasedViewletManager, WeightOrderedViewletManager, viewletmanager_config +from pyams_viewlet.manager import TemplateBasedViewletManager, WeightOrderedViewletManager, \ + viewletmanager_config from pyams_viewlet.viewlet import Viewlet, viewlet_config from pyams_zmi.form import AdminDialogDisplayForm from pyams_zmi.interfaces.menu import IPropertiesMenu @@ -59,11 +58,14 @@ from pyams_zmi.view import AdminView, ContainerAdminView from pyams_zmi.zmi.table import InnerTableView + +__docformat__ = 'restructuredtext' + from pyams_content import _ @viewlet_config(name='paragraphs.menu', context=IParagraphContainerTarget, layer=IAdminLayer, - manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=50) + manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=100) class ParagraphsContainerMenu(MenuItem): """Paragraphs container menu""" @@ -405,7 +407,7 @@ # @viewlet_config(name='paragraphs-associations.menu', context=IParagraphContainerTarget, layer=IAdminLayer, - manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=60) + manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=110) class ParagraphsAssociationsMenu(MenuItem): """Paragraphs associations container menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/features/search/zmi/__init__.py --- a/src/pyams_content/features/search/zmi/__init__.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/features/search/zmi/__init__.py Fri Nov 13 13:13:48 2020 +0100 @@ -10,20 +10,19 @@ # FOR A PARTICULAR PURPOSE. # -__docformat__ = 'restructuredtext' - from z3c.form import field from zope.interface import Interface from zope.intid import IIntIds from pyams_content.features.search import ISearchFolder, SearchFolder from pyams_content.interfaces import MANAGE_SITE_PERMISSION -from pyams_content.shared.common.zmi.summary import SharedContentDublinCoreSummary, SharedContentWorkflowHistorySummary, \ - SharedContentWorkflowPublicationState +from pyams_content.shared.common.zmi.summary import SharedContentDublinCoreSummary, \ + SharedContentWorkflowHistorySummary, SharedContentWorkflowPublicationState from pyams_content.shared.site.interfaces import ISiteContainer from pyams_content.shared.site.zmi import SiteManagerFoldersSelectorFieldWidget from pyams_content.shared.site.zmi.container import SiteContainerHeaderContentProvider from pyams_content.shared.site.zmi.folder import ISiteFolderAddFormFields +from pyams_content.zmi.interfaces import ISiteTreeTable from pyams_form.form import AJAXAddForm, ajax_config from pyams_form.interfaces.form import IInnerSubForm from pyams_i18n.interfaces import II18n, INegotiator @@ -34,7 +33,8 @@ from pyams_skin.layer import IPyAMSLayer from pyams_skin.viewlet.menu import MenuDivider from pyams_skin.viewlet.toolbar import ToolbarMenuItem -from pyams_utils.adapter import ContextRequestAdapter, ContextRequestViewAdapter, NullAdapter, adapter_config +from pyams_utils.adapter import ContextRequestAdapter, ContextRequestViewAdapter, NullAdapter, \ + adapter_config from pyams_utils.registry import get_utility from pyams_utils.unicode import translate_string from pyams_utils.url import absolute_url @@ -44,6 +44,9 @@ from pyams_zmi.interfaces.menu import IContentManagementMenu from pyams_zmi.layer import IAdminLayer + +__docformat__ = 'restructuredtext' + from pyams_content import _ @@ -70,14 +73,16 @@ title=II18n(self.context).query_attribute('title', request=self.request)) -@viewlet_config(name='add-search-folder.divider', context=ISiteContainer, layer=IAdminLayer, view=Interface, - manager=IToolbarAddingMenu, permission=MANAGE_SITE_PERMISSION, weight=89) +@viewlet_config(name='add-search-folder.divider', context=ISiteContainer, layer=IAdminLayer, + view=ISiteTreeTable, manager=IToolbarAddingMenu, + permission=MANAGE_SITE_PERMISSION, weight=89) class SearchFolderAddMenuDivider(MenuDivider): """Search folder add menu divider""" -@viewlet_config(name='add-search-folder.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface, - manager=IToolbarAddingMenu, permission=MANAGE_SITE_PERMISSION, weight=90) +@viewlet_config(name='add-search-folder.menu', context=ISiteContainer, layer=IAdminLayer, + view=ISiteTreeTable, manager=IToolbarAddingMenu, + permission=MANAGE_SITE_PERMISSION, weight=90) class SearchFolderAddMenu(ToolbarMenuItem): """Search folder add menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/features/search/zmi/manager.py --- a/src/pyams_content/features/search/zmi/manager.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/features/search/zmi/manager.py Fri Nov 13 13:13:48 2020 +0100 @@ -32,13 +32,13 @@ @viewlet_config(name='search.divider', context=ISiteRoot, layer=IAdminLayer, - manager=IPropertiesMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=34) + manager=IPropertiesMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=699) class SearchManagerMenuDivider(MenuDivider): """Search manager menu divider""" @viewlet_config(name='search-manager.menu', context=ISiteRoot, layer=IAdminLayer, - manager=IPropertiesMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=35) + manager=IPropertiesMenu, permission=MANAGE_SITE_ROOT_PERMISSION, weight=700) class SearchManagerMenu(MenuItem): """Search manager menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/features/search/zmi/reference.py --- a/src/pyams_content/features/search/zmi/reference.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/features/search/zmi/reference.py Fri Nov 13 13:13:48 2020 +0100 @@ -24,12 +24,14 @@ @viewlet_config(name='references.menu', context=ISearchFolder, layer=IAdminLayer, - manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=290) + manager=IPropertiesMenu) class SearchFolderReferencesMenu(NullAdapter): """Disabled search folder references menu""" -@pagelet_config(name='references.html', context=ISearchFolder, layer=IPyAMSLayer, permission=FORBIDDEN_PERMISSION) -@ajax_config(name='references.json', context=ISearchFolder, layer=IPyAMSLayer, permission=FORBIDDEN_PERMISSION) +@pagelet_config(name='references.html', context=ISearchFolder, layer=IPyAMSLayer, + permission=FORBIDDEN_PERMISSION) +@ajax_config(name='references.json', context=ISearchFolder, layer=IPyAMSLayer, + permission=FORBIDDEN_PERMISSION) class SearchFolderReferencesEditForm(NullAdapter): """Disabled search folder references settings edit form""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/reference/pictograms/zmi/manager.py --- a/src/pyams_content/reference/pictograms/zmi/manager.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/reference/pictograms/zmi/manager.py Fri Nov 13 13:13:48 2020 +0100 @@ -41,7 +41,7 @@ @viewlet_config(name='pictograms-selection.menu', context=IPictogramManagerTarget, layer=IAdminLayer, - manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=50) + manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=760) class PictogramManagerMenu(MenuItem): """Pictogram manager menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/reference/zmi/table.py --- a/src/pyams_content/reference/zmi/table.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/reference/zmi/table.py Fri Nov 13 13:13:48 2020 +0100 @@ -136,7 +136,7 @@ @viewlet_config(name='properties.menu', context=IReferenceTable, layer=IAdminLayer, - manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=20) + manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=10) class ReferenceTablePropertiesMenu(MenuItem): """Reference table properties menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/blog/zmi/manager.py --- a/src/pyams_content/shared/blog/zmi/manager.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/blog/zmi/manager.py Fri Nov 13 13:13:48 2020 +0100 @@ -174,9 +174,9 @@ # Blog manager publication views # -@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IPyAMSLayer, +@viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IAdminLayer, view=ISiteTreeTable, manager=ITableItemColumnActionsMenu, - permission=MANAGE_SITE_PERMISSION, weight=210) + permission=MANAGE_SITE_PERMISSION, weight=510) class BlogManagerTableItemWorkflowPublicationMenu(ToolbarMenuItem): """Blog manager tree item workflow publication menu""" @@ -188,7 +188,7 @@ @viewlet_config(name='workflow-publication.menu', context=IBlogManager, layer=IAdminLayer, - manager=IPropertiesMenu, permission=MANAGE_SITE_PERMISSION, weight=210) + manager=IPropertiesMenu, permission=MANAGE_SITE_PERMISSION, weight=510) class BlogManagerWorkflowPublicationMenu(MenuItem): """Blog manager workflow publication menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/common/zmi/reference.py --- a/src/pyams_content/shared/common/zmi/reference.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/common/zmi/reference.py Fri Nov 13 13:13:48 2020 +0100 @@ -35,7 +35,7 @@ @viewlet_config(name='references.menu', context=IInternalReferencesList, layer=IAdminLayer, - manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=80) + manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=300) class ReferencesMenu(MenuItem): """Internal references menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/common/zmi/types/manager.py --- a/src/pyams_content/shared/common/zmi/types/manager.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/common/zmi/types/manager.py Fri Nov 13 13:13:48 2020 +0100 @@ -26,7 +26,7 @@ from pyams_skin.container import delete_container_element from pyams_skin.layer import IPyAMSLayer from pyams_skin.table import ActionColumn, BaseTable, NameColumn, SorterColumn, TrashColumn -from pyams_skin.viewlet.menu import MenuItem +from pyams_skin.viewlet.menu import MenuDivider, MenuItem from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config from pyams_utils.fanstatic import get_resource_path from pyams_utils.url import absolute_url @@ -38,8 +38,14 @@ from pyams_content import _ +@viewlet_config(name='data-types.divider', context=ITypedSharedTool, layer=IAdminLayer, + manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=599) +class TypedSharedToolTyesMenuDivider(MenuDivider): + """Typed shared tool types menu divider""" + + @viewlet_config(name='data-types.menu', context=ITypedSharedTool, layer=IAdminLayer, - manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=5) + manager=IPropertiesMenu, permission=MANAGE_TOOL_PERMISSION, weight=600) class TypedSharedToolTypesMenu(MenuItem): """Typed shared tool types menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/form/zmi/field.py --- a/src/pyams_content/shared/form/zmi/field.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/form/zmi/field.py Fri Nov 13 13:13:48 2020 +0100 @@ -61,7 +61,7 @@ @viewlet_config(name='form-fields.menu', context=IFormFieldContainerTarget, layer=IAdminLayer, - manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=20) + manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=120) class FormFieldsMenu(MenuItem): """Form fields menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/imagemap/zmi/container.py --- a/src/pyams_content/shared/imagemap/zmi/container.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/imagemap/zmi/container.py Fri Nov 13 13:13:48 2020 +0100 @@ -47,7 +47,7 @@ @viewlet_config(name='areas.submenu', context=IWfImageMap, layer=IAdminLayer, - manager=IPropertiesMenu, permission=MANAGE_CONTENT_PERMISSION, weight=80) + manager=IPropertiesMenu, permission=MANAGE_CONTENT_PERMISSION, weight=210) class ImagemapAreasMenu(MenuItem): """Image map areas menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/resource/zmi/__init__.py --- a/src/pyams_content/shared/resource/zmi/__init__.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/resource/zmi/__init__.py Fri Nov 13 13:13:48 2020 +0100 @@ -79,7 +79,7 @@ # @viewlet_config(name='custom-properties.menu', context=IWfResource, layer=IPyAMSLayer, - manager=IPropertiesMenu, permission=MANAGE_CONTENT_PERMISSION, weight=15) + manager=IPropertiesMenu, permission=MANAGE_CONTENT_PERMISSION, weight=20) class ResourceTypePropertiesMenu(MenuItem): """Resource type properties menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/site/folder.py --- a/src/pyams_content/shared/site/folder.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/site/folder.py Fri Nov 13 13:13:48 2020 +0100 @@ -18,6 +18,7 @@ from zope.schema.fieldproperty import FieldProperty from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary +from pyams_content import _ from pyams_content.component.illustration import IIllustrationTarget, ILinkIllustrationTarget from pyams_content.component.links import InternalLink from pyams_content.features.menu import IDynamicMenu @@ -38,8 +39,6 @@ from pyams_utils.traversing import get_parent from pyams_utils.vocabulary import vocabulary_config -from pyams_content import _ - @implementer(IDefaultProtectionPolicy, ISiteFolder, ISiteFolderRoles, IIllustrationTarget, ILinkIllustrationTarget, IPortalContext, IPreviewTarget) @@ -98,5 +97,6 @@ intids = registry.getUtility(IIntIds) for folder in find_objects_providing(site, ISiteFolder): terms.append(SimpleTerm(value=intids.queryId(folder), - title=II18n(folder).query_attribute('title', request=request))) + title=II18n(folder).query_attribute('title', + request=request))) super(SiteManagerFoldersVocabulary, self).__init__(terms) diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/site/zmi/__init__.py --- a/src/pyams_content/shared/site/zmi/__init__.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/site/zmi/__init__.py Fri Nov 13 13:13:48 2020 +0100 @@ -15,7 +15,6 @@ from pyramid.decorator import reify from pyramid.path import DottedNameResolver from z3c.form import field -from zope.interface import Interface from zope.intid.interfaces import IIntIds from zope.lifecycleevent import ObjectCreatedEvent from zope.schema import Int @@ -26,6 +25,7 @@ from pyams_content.shared.site import IWfSiteTopic from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget +from pyams_content.zmi.interfaces import ISiteTreeTable from pyams_form.form import ajax_config from pyams_i18n.interfaces import II18nManager, INegotiator from pyams_pagelet.pagelet import pagelet_config @@ -45,8 +45,9 @@ from pyams_content import _ -@viewlet_config(name='add-topic.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface, - manager=IToolbarAddingMenu, permission=CREATE_CONTENT_PERMISSION, weight=20) +@viewlet_config(name='add-topic.menu', context=ISiteContainer, layer=IAdminLayer, + view=ISiteTreeTable, manager=IToolbarAddingMenu, + permission=CREATE_CONTENT_PERMISSION, weight=20) class TopicAddMenu(ToolbarMenuItem): """Topic add menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/site/zmi/container.py --- a/src/pyams_content/shared/site/zmi/container.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/site/zmi/container.py Fri Nov 13 13:13:48 2020 +0100 @@ -72,8 +72,10 @@ from pyams_content import _ -@contentprovider_config(name='content_header', context=ISharedSite, view=Interface, layer=IPyAMSLayer) -@contentprovider_config(name='content_header', context=ISiteContainer, view=Interface, layer=IPyAMSLayer) +@contentprovider_config(name='content_header', context=ISharedSite, + view=Interface, layer=IPyAMSLayer) +@contentprovider_config(name='content_header', context=ISiteContainer, + view=Interface, layer=IPyAMSLayer) @template_config(template='templates/container-header.pt', layer=IPyAMSLayer) class SiteContainerHeaderContentProvider(object): """Site container header content provider""" @@ -145,8 +147,9 @@ # Site container publication views # -@viewlet_config(name='workflow-publication.menu', context=IBaseSiteItem, layer=IPyAMSLayer, view=ISiteTreeTable, - manager=ITableItemColumnActionsMenu, permission=MANAGE_SITE_PERMISSION, weight=210) +@viewlet_config(name='workflow-publication.menu', context=IBaseSiteItem, layer=IPyAMSLayer, + view=ISiteTreeTable, manager=ITableItemColumnActionsMenu, + permission=MANAGE_SITE_PERMISSION, weight=810) class SiteContainerTableItemWorkflowPublicationMenu(ToolbarMenuItem): """Site container tree item workflow publication menu""" @@ -157,8 +160,8 @@ stop_propagation = True -@viewlet_config(name='workflow-publication.menu', context=IBaseSiteItem, layer=IAdminLayer, manager=IPropertiesMenu, - permission=MANAGE_SITE_PERMISSION, weight=210) +@viewlet_config(name='workflow-publication.menu', context=IBaseSiteItem, layer=IAdminLayer, + manager=IPropertiesMenu, permission=MANAGE_SITE_PERMISSION, weight=510) class SiteContainerWorkflowPublicationMenu(MenuItem): """Site container workflow publication menu""" @@ -178,7 +181,8 @@ legend = _("Update publication dates") - fields = field.Fields(IWorkflowPublicationInfo).select('publication_effective_date', 'publication_expiration_date') + fields = field.Fields(IWorkflowPublicationInfo).select('publication_effective_date', + 'publication_expiration_date') edit_permission = MANAGE_SITE_PERMISSION def updateWidgets(self, prefix=None): @@ -215,9 +219,10 @@ # Site container tree view # -@viewlet_config(name='site-tree.menu', layer=IAdminLayer, context=IBaseSiteItem, manager=ISiteManagementMenu, - permission=VIEW_SYSTEM_PERMISSION, weight=10) -@viewletmanager_config(name='site-tree.menu', layer=IAdminLayer, context=IBaseSiteItem, provides=ISiteTreeMenu) +@viewlet_config(name='site-tree.menu', layer=IAdminLayer, context=IBaseSiteItem, + manager=ISiteManagementMenu, permission=VIEW_SYSTEM_PERMISSION, weight=10) +@viewletmanager_config(name='site-tree.menu', layer=IAdminLayer, context=IBaseSiteItem, + provides=ISiteTreeMenu) @implementer(ISiteTreeMenu) class SiteContainerTreeMenu(MenuItem): """Site container tree menu""" @@ -248,7 +253,8 @@ def cssClasses(self): classes = ['table', 'table-bordered', 'table-striped', 'table-hover', 'table-tight'] permission = self.permission - if self.can_sort and ((not permission) or self.request.has_permission(permission, self.context)): + if self.can_sort and ((not permission) or self.request.has_permission(permission, + self.context)): classes.append('table-dnd') return { 'table': ' '.join(classes), @@ -280,7 +286,9 @@ return attributes -@adapter_config(name='sorter', context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IColumn) +@adapter_config(name='sorter', + context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=IColumn) class SiteContainerTreeSorterColumn(SorterColumn): """Site container tree sorter column""" @@ -346,7 +354,9 @@ return result -@adapter_config(name='visible', context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IColumn) +@adapter_config(name='visible', + context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=IColumn) class SiteContainerTreeVisibleColumn(JsActionColumn): """Site container tree visible column""" @@ -386,20 +396,23 @@ def get_icon_hint(self, item): translate = self.request.localizer.translate - if ISiteLink.providedBy(item) and self.request.has_permission(self.permission, context=item): + if ISiteLink.providedBy(item) and self.request.has_permission(self.permission, + context=item): return translate(self.active_icon_hint) else: return translate(self.inactive_icon_hint) def renderCell(self, item): - if ISiteLink.providedBy(item) and self.request.has_permission(self.permission, context=item): + if ISiteLink.providedBy(item) and self.request.has_permission(self.permission, + context=item): return super(SiteContainerTreeVisibleColumn, self).renderCell(item) else: return self.get_icon(item) -@view_config(name='switch-content-visibility.json', context=IBaseSiteItem, request_type=IPyAMSLayer, - permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True) +@view_config(name='switch-content-visibility.json', context=IBaseSiteItem, + request_type=IPyAMSLayer, permission=MANAGE_CONTENT_PERMISSION, + renderer='json', xhr=True) def switch_content_visibility(request): """Switch content link visibility""" container = ISiteContainer(request.context) @@ -413,12 +426,16 @@ } -@adapter_config(name='type', context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IColumn) +@adapter_config(name='type', + context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=IColumn) class SiteContainerTreeTypeColumn(NullAdapter): """Site container tree type column -- disabled in site tree view!""" -@adapter_config(name='name', context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IColumn) +@adapter_config(name='name', + context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=IColumn) class SiteContainerTreeNameColumn(NameColumn): """Site container tree name column""" @@ -454,7 +471,8 @@ title=name or super(SiteContainerTreeNameColumn, self).renderCell(item)) -@adapter_config(name='content-type', context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), +@adapter_config(name='content-type', + context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IColumn) class SiteContainerContentTypeColumn(I18nColumn, GetAttrColumn): """Site container content type column""" @@ -467,7 +485,8 @@ return self.request.localizer.translate(obj.content_name) -@adapter_config(name='sequence', context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), +@adapter_config(name='sequence', + context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IColumn) class SiteContainerTreeSequenceColumn(SharedToolDashboardSequenceColumn): """Site container tree OID column""" @@ -482,7 +501,9 @@ return result -@adapter_config(name='status', context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IColumn) +@adapter_config(name='status', + context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=IColumn) class SiteContainerTreeStatusColumn(SharedToolDashboardStatusColumn): """Site container tree status column""" @@ -496,7 +517,9 @@ return result -@adapter_config(name='status_date', context=(IBaseSiteItem, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='status_date', + context=(IBaseSiteItem, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SiteContainerTreeStatusDateColumn(SharedToolDashboardStatusDateColumn): """Site container tree status date column""" @@ -510,7 +533,9 @@ return result -@adapter_config(name='version', context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IColumn) +@adapter_config(name='version', + context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=IColumn) class SiteContainerTreeVersionColumn(SharedToolDashboardVersionColumn): """Site container tree version column""" @@ -524,7 +549,9 @@ return result -@adapter_config(name='status_principal', context=(IBaseSiteItem, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='status_principal', + context=(IBaseSiteItem, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SiteContainerTreeStatusPrincipalColumn(SharedToolDashboardStatusPrincipalColumn): """Site container tree status principal column""" @@ -538,7 +565,9 @@ return result -@adapter_config(name='owner', context=(IBaseSiteItem, IPyAMSLayer, IDashboardTable), provides=IColumn) +@adapter_config(name='owner', + context=(IBaseSiteItem, IPyAMSLayer, IDashboardTable), + provides=IColumn) class SiteContainerTreeOwnerColumn(SharedToolDashboardOwnerColumn): """Site container tree owner column""" @@ -552,7 +581,9 @@ return result -@adapter_config(name='trash', context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IColumn) +@adapter_config(name='trash', + context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=IColumn) class SiteContainerTreeTrashColumn(TrashColumn): """Site container tree trash column""" @@ -572,7 +603,8 @@ return delete_container_element(request, ignore_permission=True) -@adapter_config(context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=IValues) +@adapter_config(context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=IValues) class SiteContainerTreeValuesAdapter(ContextRequestViewAdapter): """Site container tree values adapter""" @@ -596,7 +628,8 @@ return values -@pagelet_config(name='site-tree.html', context=IBaseSiteItem, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) +@pagelet_config(name='site-tree.html', context=IBaseSiteItem, layer=IPyAMSLayer, + permission=VIEW_SYSTEM_PERMISSION) @implementer(IInnerPage) class SiteContainerTreeView(AdminView, ContainerView): """Site Container tree view""" @@ -605,10 +638,12 @@ def __init__(self, context, request): super(ContainerView, self).__init__(context, request) - self.table = SiteContainerTreeTable(context, request, can_sort=ISiteManager.providedBy(context)) + self.table = SiteContainerTreeTable(context, request, + can_sort=ISiteManager.providedBy(context)) -@adapter_config(context=(IBaseSiteItem, IAdminLayer, ISiteTreeTable), provides=IPageHeader) +@adapter_config(context=(IBaseSiteItem, IAdminLayer, ISiteTreeTable), + provides=IPageHeader) class SiteContainerViewHeaderAdapter(DefaultPageHeaderAdapter): """Site container tree view header adapter""" @@ -652,7 +687,8 @@ return result -@adapter_config(context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=ITableElementName) +@adapter_config(context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=ITableElementName) class SiteContainerTableElementName(ContextRequestViewAdapter): """Site container tree table element name""" @@ -661,7 +697,8 @@ return II18n(self.context).query_attribute('title', request=self.request) -@adapter_config(context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), provides=ITableElementEditor) +@adapter_config(context=(IBaseSiteItem, IPyAMSLayer, ISiteTreeTable), + provides=ITableElementEditor) class SiteContainerTableElementEditor(DefaultElementEditorAdapter): """Site container tree table element editor""" @@ -669,7 +706,8 @@ modal_target = False -@adapter_config(context=(ISharedContent, IPyAMSLayer, ISiteTreeTable), provides=ITableElementName) +@adapter_config(context=(ISharedContent, IPyAMSLayer, ISiteTreeTable), + provides=ITableElementName) class SharedContentTableElementName(ContextRequestViewAdapter): """Shared content tree table element name""" @@ -679,7 +717,8 @@ return II18n(version).query_attribute('title', request=self.request) -@adapter_config(context=(ISharedContent, IPyAMSLayer, ISiteTreeTable), provides=ITableElementEditor) +@adapter_config(context=(ISharedContent, IPyAMSLayer, ISiteTreeTable), + provides=ITableElementEditor) class SharedContentTableElementEditor(DefaultElementEditorAdapter): """Shared content tree table element editor""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/site/zmi/folder.py --- a/src/pyams_content/shared/site/zmi/folder.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/site/zmi/folder.py Fri Nov 13 13:13:48 2020 +0100 @@ -10,8 +10,6 @@ # FOR A PARTICULAR PURPOSE. # -__docformat__ = 'restructuredtext' - from pyramid.events import subscriber from pyramid.path import DottedNameResolver from z3c.form import field @@ -27,6 +25,7 @@ from pyams_content.shared.common.zmi.manager import SharedToolPropertiesEditForm from pyams_content.shared.site.interfaces import ISiteContainer, ISiteFolder, ISiteManager from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget +from pyams_content.zmi.interfaces import ISiteTreeTable from pyams_form.form import AJAXAddForm, ajax_config from pyams_form.group import NamedWidgetsGroup from pyams_form.interfaces.form import IInnerSubForm @@ -48,11 +47,15 @@ from pyams_zmi.interfaces.menu import ISiteManagementMenu from pyams_zmi.layer import IAdminLayer + +__docformat__ = 'restructuredtext' + from pyams_content import _ -@viewlet_config(name='add-site-folder.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface, - manager=IToolbarAddingMenu, permission=MANAGE_SITE_PERMISSION, weight=10) +@viewlet_config(name='add-site-folder.menu', context=ISiteContainer, layer=IAdminLayer, + view=ISiteTreeTable, manager=IToolbarAddingMenu, + permission=MANAGE_SITE_PERMISSION, weight=10) class SiteFolderAddMenu(ToolbarMenuItem): """Site folder add menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/site/zmi/link.py --- a/src/pyams_content/shared/site/zmi/link.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/site/zmi/link.py Fri Nov 13 13:13:48 2020 +0100 @@ -10,18 +10,21 @@ # FOR A PARTICULAR PURPOSE. # +from pyams_content import _ + __docformat__ = 'restructuredtext' from uuid import uuid4 from z3c.form import field from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget -from zope.interface import Interface, implementer +from zope.interface import implementer from zope.intid.interfaces import IIntIds from zope.schema import Int from pyams_content.interfaces import CREATE_CONTENT_PERMISSION, MANAGE_CONTENT_PERMISSION -from pyams_content.shared.site.interfaces import IContentLink, IExternalContentLink, ISiteContainer +from pyams_content.shared.site.interfaces import IContentLink, IExternalContentLink, \ + ISiteContainer from pyams_content.shared.site.link import ContentLink, ExternalContentLink from pyams_content.shared.site.zmi.container import SiteContainerTreeTable from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget @@ -45,11 +48,10 @@ from pyams_zmi.interfaces import IPropertiesEditForm from pyams_zmi.layer import IAdminLayer -from pyams_content import _ - -@viewlet_config(name='add-link.divider', context=ISiteContainer, layer=IAdminLayer, view=Interface, - manager=IToolbarAddingMenu, permission=CREATE_CONTENT_PERMISSION, weight=49) +@viewlet_config(name='add-link.divider', context=ISiteContainer, layer=IAdminLayer, + view=ISiteTreeTable, manager=IToolbarAddingMenu, + permission=CREATE_CONTENT_PERMISSION, weight=49) class AddLinkMenuDivider(MenuDivider): """Add links menu divider""" @@ -58,8 +60,9 @@ # Content link views # -@viewlet_config(name='add-content-link.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface, - manager=IToolbarAddingMenu, permission=CREATE_CONTENT_PERMISSION, weight=50) +@viewlet_config(name='add-content-link.menu', context=ISiteContainer, layer=IAdminLayer, + view=ISiteTreeTable, manager=IToolbarAddingMenu, + permission=CREATE_CONTENT_PERMISSION, weight=50) class ContentLinkAddMenu(ToolbarMenuItem): """Content link add menu""" @@ -79,14 +82,16 @@ @pagelet_config(name='add-content-link.html', context=ISiteContainer, layer=IPyAMSLayer, permission=CREATE_CONTENT_PERMISSION) -@ajax_config(name='add-content-link.json', context=ISiteContainer, layer=IPyAMSLayer, base=AJAXAddForm) +@ajax_config(name='add-content-link.json', context=ISiteContainer, layer=IPyAMSLayer, + base=AJAXAddForm) class ContentLinkAddForm(AdminDialogAddForm): """Content link add form""" legend = _("Rent existing content") - fields = field.Fields(IContentLinkAddFormFields).select('reference', 'navigation_title', 'show_header', - 'navigation_header', 'parent') + fields = field.Fields(IContentLinkAddFormFields).select('reference', 'navigation_title', + 'show_header', 'navigation_header', + 'parent') fields['show_header'].widgetFactory = SingleCheckBoxFieldWidget fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget @@ -166,7 +171,8 @@ legend = _("Edit content link properties") - fields = field.Fields(IContentLink).select('reference', 'navigation_title', 'show_header', 'navigation_header') + fields = field.Fields(IContentLink).select('reference', 'navigation_title', + 'show_header', 'navigation_header') fields['show_header'].widgetFactory = SingleCheckBoxFieldWidget edit_permission = MANAGE_CONTENT_PERMISSION @@ -199,7 +205,8 @@ 'event': 'myams.refresh', 'options': { 'handler': 'MyAMS.skin.refreshRow', - 'object_id': '{0}::{1}'.format(SiteContainerTreeTable.id, intids.queryId(self.context)), + 'object_id': '{0}::{1}'.format(SiteContainerTreeTable.id, + intids.queryId(self.context)), 'row': table.renderRow(row) } }) @@ -210,8 +217,9 @@ # External content link views # -@viewlet_config(name='add-external-link.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface, - manager=IToolbarAddingMenu, permission=CREATE_CONTENT_PERMISSION, weight=60) +@viewlet_config(name='add-external-link.menu', context=ISiteContainer, layer=IAdminLayer, + view=ISiteTreeTable, manager=IToolbarAddingMenu, + permission=CREATE_CONTENT_PERMISSION, weight=60) class ExternalContentLinkAddMenu(ToolbarMenuItem): """External content link add menu""" @@ -231,13 +239,15 @@ @pagelet_config(name='add-external-link.html', context=ISiteContainer, layer=IPyAMSLayer, permission=CREATE_CONTENT_PERMISSION) -@ajax_config(name='add-external-link.json', context=ISiteContainer, layer=IPyAMSLayer, base=AJAXAddForm) +@ajax_config(name='add-external-link.json', context=ISiteContainer, layer=IPyAMSLayer, + base=AJAXAddForm) class ExternalContentLinkAddForm(AdminDialogAddForm): """External content link add form""" legend = _("Link external content") - fields = field.Fields(IExternalContentLinkAddFormFields).select('url', 'navigation_title', 'show_header', + fields = field.Fields(IExternalContentLinkAddFormFields).select('url', 'navigation_title', + 'show_header', 'navigation_header', 'parent') fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget @@ -277,7 +287,8 @@ return {'status': 'reload'} -@adapter_config(context=(IExternalContentLink, IPyAMSLayer, ISiteTreeTable), provides=ITableElementName) +@adapter_config(context=(IExternalContentLink, IPyAMSLayer, ISiteTreeTable), + provides=ITableElementName) class ExternalContentLinkTableElementName(ContextRequestViewAdapter): """External content link table element name""" @@ -302,7 +313,8 @@ legend = _("Edit external content link properties") dialog_class = 'modal-large' - fields = field.Fields(IExternalContentLink).select('url', 'navigation_title', 'navigation_header') + fields = field.Fields(IExternalContentLink).select('url', 'navigation_title', + 'navigation_header') edit_permission = MANAGE_CONTENT_PERMISSION def updateWidgets(self, prefix=None): @@ -321,7 +333,8 @@ 'event': 'myams.refresh', 'options': { 'handler': 'MyAMS.skin.refreshRow', - 'object_id': '{0}::{1}'.format(SiteContainerTreeTable.id, intids.queryId(self.context)), + 'object_id': '{0}::{1}'.format(SiteContainerTreeTable.id, + intids.queryId(self.context)), 'row': table.renderRow(row) } }) diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/shared/view/zmi/reference.py --- a/src/pyams_content/shared/view/zmi/reference.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/shared/view/zmi/reference.py Fri Nov 13 13:13:48 2020 +0100 @@ -33,13 +33,13 @@ @viewlet_config(name='references.divider', context=IWfView, layer=IAdminLayer, - manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=289) + manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=299) class ViewReferencesMenuDivider(MenuDivider): """View references menu divider""" @viewlet_config(name='references.menu', context=IWfView, layer=IAdminLayer, - manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=290) + manager=IPropertiesMenu, permission=VIEW_SYSTEM_PERMISSION, weight=300) class ViewReferencesMenu(MenuItem): """View references menu""" diff -r 48c1ee485dc0 -r 9b93fdd5ba30 src/pyams_content/workflow/notify.py --- a/src/pyams_content/workflow/notify.py Fri Nov 13 13:11:29 2020 +0100 +++ b/src/pyams_content/workflow/notify.py Fri Nov 13 13:13:48 2020 +0100 @@ -74,9 +74,12 @@ else: restrictions = IManagerRestrictions(notification_source, None) if restrictions is not None: - principal_restrictions = restrictions.get_restrictions(principal) - if principal_restrictions.check_access(notification_source, - MANAGE_CONTENT_PERMISSION): + principal_restrictions = restrictions.get_restrictions( + principal) + if principal_restrictions and \ + principal_restrictions.check_access( + notification_source, + MANAGE_CONTENT_PERMISSION): principals.add(principal) else: principals.add(principal)