16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
19 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
20 from pyams_content.shared.common.interfaces import IWfSharedContent |
20 from pyams_content.shared.common.interfaces import IWfSharedContent |
21 from pyams_form.interfaces.form import IWidgetForm |
21 from pyams_form.interfaces.form import IWidgetForm, IInnerTabForm, IInnerSubForm |
22 from pyams_skin.interfaces import IInnerPage, IPageHeader |
22 from pyams_skin.interfaces import IInnerPage, IPageHeader |
23 from pyams_skin.layer import IPyAMSLayer |
23 from pyams_skin.layer import IPyAMSLayer |
24 from pyams_zmi.interfaces.menu import IContentManagementMenu, IPropertiesMenu |
24 from pyams_zmi.interfaces.menu import IContentManagementMenu, IPropertiesMenu |
25 from pyams_zmi.layer import IAdminLayer |
25 from pyams_zmi.layer import IAdminLayer |
26 |
26 |
27 # import packages |
27 # import packages |
28 from pyams_content.shared.common.zmi import WfSharedContentHeaderAdapter |
28 from pyams_content.shared.common.zmi import WfSharedContentHeaderAdapter |
|
29 from pyams_content.shared.common.zmi.summary import SharedContentSummaryForm |
29 from pyams_form.form import AJAXEditForm |
30 from pyams_form.form import AJAXEditForm |
30 from pyams_pagelet.pagelet import pagelet_config |
31 from pyams_pagelet.pagelet import pagelet_config |
31 from pyams_skin.viewlet.menu import MenuItem |
32 from pyams_skin.viewlet.menu import MenuItem |
32 from pyams_utils.adapter import adapter_config |
33 from pyams_utils.adapter import adapter_config |
33 from pyams_viewlet.manager import viewletmanager_config |
34 from pyams_viewlet.manager import viewletmanager_config |
34 from pyams_viewlet.viewlet import viewlet_config |
35 from pyams_viewlet.viewlet import viewlet_config |
35 from pyams_zmi.form import AdminEditForm |
36 from pyams_zmi.form import AdminEditForm, InnerAdminDisplayForm |
36 from pyramid.view import view_config |
37 from pyramid.view import view_config |
37 from z3c.form import field |
38 from z3c.form import field |
38 from zope.interface import implementer |
39 from zope.interface import implementer, Interface |
39 |
40 |
40 from pyams_content import _ |
41 from pyams_content import _ |
41 |
42 |
42 |
43 |
43 # |
44 # |
51 class SharedContentCompositionMenu(MenuItem): |
52 class SharedContentCompositionMenu(MenuItem): |
52 """Shared content properties menu""" |
53 """Shared content properties menu""" |
53 |
54 |
54 label = _("Composition") |
55 label = _("Composition") |
55 icon_class = 'fa-dropbox' |
56 icon_class = 'fa-dropbox' |
56 url = '#' |
57 url = '#summary.html' |
57 |
58 |
58 |
59 |
59 @viewlet_config(name='properties.submenu', context=IWfSharedContent, layer=IAdminLayer, |
60 @viewlet_config(name='properties.submenu', context=IWfSharedContent, layer=IAdminLayer, |
60 manager=IPropertiesMenu, permission=MANAGE_CONTENT_PERMISSION, weight=10) |
61 manager=IPropertiesMenu, permission=MANAGE_CONTENT_PERMISSION, weight=10) |
61 class SharedContentPropertiesMenu(MenuItem): |
62 class SharedContentPropertiesMenu(MenuItem): |
72 class SharedContentPropertiesEditForm(AdminEditForm): |
73 class SharedContentPropertiesEditForm(AdminEditForm): |
73 """Shared content properties edit form""" |
74 """Shared content properties edit form""" |
74 |
75 |
75 legend = _("Content properties") |
76 legend = _("Content properties") |
76 |
77 |
77 fields = field.Fields(IWfSharedContent).omit('__parent__', '__name__', 'creator', 'first_owner', 'modifiers') |
78 fields = field.Fields(IWfSharedContent).select('title', 'short_name', 'description', 'keywords', 'notepad') |
78 ajax_handler = 'properties.json' |
79 ajax_handler = 'properties.json' |
79 |
80 |
80 def updateWidgets(self, prefix=None): |
81 def updateWidgets(self, prefix=None): |
81 super(SharedContentPropertiesEditForm, self).updateWidgets(prefix) |
82 super(SharedContentPropertiesEditForm, self).updateWidgets(prefix) |
82 if 'description' in self.widgets: |
83 if 'description' in self.widgets: |
94 @adapter_config(context=(IWfSharedContent, IAdminLayer, SharedContentPropertiesEditForm), provides=IPageHeader) |
95 @adapter_config(context=(IWfSharedContent, IAdminLayer, SharedContentPropertiesEditForm), provides=IPageHeader) |
95 class SharedContentPropertiesHeaderAdapter(WfSharedContentHeaderAdapter): |
96 class SharedContentPropertiesHeaderAdapter(WfSharedContentHeaderAdapter): |
96 """Shared content properties header adapter""" |
97 """Shared content properties header adapter""" |
97 |
98 |
98 icon_class = 'fa fa-fw fa-edit' |
99 icon_class = 'fa fa-fw fa-edit' |
|
100 |
|
101 |
|
102 # |
|
103 # Properties summary |
|
104 # |
|
105 |
|
106 @adapter_config(name='properties-summary', |
|
107 context=(IWfSharedContent, IPyAMSLayer, SharedContentSummaryForm), |
|
108 provides=IInnerTabForm) |
|
109 class SharedContentPropertiesSummary(InnerAdminDisplayForm): |
|
110 """Shared content properties summary tab""" |
|
111 |
|
112 tab_label = _("Properties") |
|
113 tab_target = 'properties-summary.html' |
|
114 |
|
115 fields = field.Fields(Interface) |
|
116 |
|
117 weight = 10 |
|
118 |
|
119 |
|
120 @pagelet_config(name='properties-summary.html', context=IWfSharedContent, layer=IPyAMSLayer) |
|
121 @implementer(IInnerPage, IInnerTabForm) |
|
122 class SharedContentPropertiesSummaryDisplayForm(InnerAdminDisplayForm): |
|
123 """Shared content properties summary display form""" |
|
124 |
|
125 fields = field.Fields(Interface) |
|
126 |
|
127 |
|
128 @adapter_config(name='properties-main-summary.html', |
|
129 context=(IWfSharedContent, IPyAMSLayer, SharedContentPropertiesSummaryDisplayForm), |
|
130 provides=IInnerSubForm) |
|
131 class SharedContentMainPropertiesSummaryDisplayForm(InnerAdminDisplayForm): |
|
132 """Shared content main properties summary display form""" |
|
133 |
|
134 legend = _("Content properties") |
|
135 |
|
136 fields = field.Fields(IWfSharedContent).select('title', 'short_name', 'description', 'keywords', 'notepad') |
|
137 |
|
138 weight = 1 |