8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 |
12 |
13 __docformat__ = 'restructuredtext' |
|
14 |
|
15 |
|
16 from uuid import uuid4 |
13 from uuid import uuid4 |
17 |
14 |
18 from pyramid.decorator import reify |
15 from pyramid.decorator import reify |
19 from pyramid.path import DottedNameResolver |
16 from pyramid.path import DottedNameResolver |
20 from z3c.form import field |
17 from z3c.form import field |
21 from zope.interface import Interface |
18 from zope.interface import Interface |
22 from zope.intid.interfaces import IIntIds |
19 from zope.intid.interfaces import IIntIds |
23 from zope.lifecycleevent import ObjectCreatedEvent |
20 from zope.lifecycleevent import ObjectCreatedEvent |
24 from zope.schema import Int |
21 from zope.schema import Int |
25 |
22 |
26 from pyams_content import _ |
|
27 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION |
23 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION |
28 from pyams_content.shared.common.interfaces import IWfSharedContent |
24 from pyams_content.shared.common.zmi import SharedContentAJAXAddForm |
29 from pyams_content.shared.common.zmi import SharedContentAJAXAddForm, SharedContentAddForm |
25 from pyams_content.shared.common.zmi.types import TypedSharedContentAddForm |
|
26 from pyams_content.shared.site import IWfSiteTopic |
30 from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager |
27 from pyams_content.shared.site.interfaces import ISiteContainer, ISiteManager |
31 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget |
28 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget |
32 from pyams_form.form import ajax_config |
29 from pyams_form.form import ajax_config |
33 from pyams_i18n.interfaces import II18nManager, INegotiator |
30 from pyams_i18n.interfaces import II18nManager, INegotiator |
34 from pyams_pagelet.pagelet import pagelet_config |
31 from pyams_pagelet.pagelet import pagelet_config |
41 from pyams_viewlet.viewlet import viewlet_config |
38 from pyams_viewlet.viewlet import viewlet_config |
42 from pyams_workflow.interfaces import IWorkflowInfo, IWorkflowVersions |
39 from pyams_workflow.interfaces import IWorkflowInfo, IWorkflowVersions |
43 from pyams_zmi.layer import IAdminLayer |
40 from pyams_zmi.layer import IAdminLayer |
44 |
41 |
45 |
42 |
|
43 __docformat__ = 'restructuredtext' |
|
44 |
|
45 from pyams_content import _ |
|
46 |
|
47 |
46 @viewlet_config(name='add-topic.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface, |
48 @viewlet_config(name='add-topic.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface, |
47 manager=IToolbarAddingMenu, permission=CREATE_CONTENT_PERMISSION, weight=20) |
49 manager=IToolbarAddingMenu, permission=CREATE_CONTENT_PERMISSION, weight=20) |
48 class TopicAddMenu(ToolbarMenuItem): |
50 class TopicAddMenu(ToolbarMenuItem): |
49 """Topic add menu""" |
51 """Topic add menu""" |
50 |
52 |
52 label_css_class = 'fa fa-fw fa-file-o' |
54 label_css_class = 'fa fa-fw fa-file-o' |
53 url = 'add-topic.html' |
55 url = 'add-topic.html' |
54 modal_target = True |
56 modal_target = True |
55 |
57 |
56 |
58 |
57 class ITopicAddFormFields(IWfSharedContent): |
59 class ITopicAddFormFields(IWfSiteTopic): |
58 """Topic add form fields interface""" |
60 """Topic add form fields interface""" |
59 |
61 |
60 parent = Int(title=_("Parent"), |
62 parent = Int(title=_("Parent"), |
61 description=_("Topic's parent"), |
63 description=_("Topic's parent"), |
62 required=True) |
64 required=True) |
66 permission=CREATE_CONTENT_PERMISSION) |
68 permission=CREATE_CONTENT_PERMISSION) |
67 @pagelet_config(name='add-shared-content.html', context=ISiteContainer, layer=IPyAMSLayer, |
69 @pagelet_config(name='add-shared-content.html', context=ISiteContainer, layer=IPyAMSLayer, |
68 permission=CREATE_CONTENT_PERMISSION) |
70 permission=CREATE_CONTENT_PERMISSION) |
69 @ajax_config(name='add-topic.json', context=ISiteContainer, layer=IPyAMSLayer, |
71 @ajax_config(name='add-topic.json', context=ISiteContainer, layer=IPyAMSLayer, |
70 base=SharedContentAJAXAddForm) |
72 base=SharedContentAJAXAddForm) |
71 class TopicAddForm(SharedContentAddForm): |
73 class TopicAddForm(TypedSharedContentAddForm): |
72 """Topic add form""" |
74 """Topic add form""" |
73 |
75 |
74 legend = _("Add topic") |
76 legend = _("Add topic") |
75 |
77 |
76 fields = field.Fields(ITopicAddFormFields).select('title', 'parent', 'notepad') |
78 fields = field.Fields(ITopicAddFormFields).select('title', 'data_type', 'parent', 'notepad') |
77 fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget |
79 fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget |
78 |
80 |
79 edit_permission = CREATE_CONTENT_PERMISSION |
81 edit_permission = CREATE_CONTENT_PERMISSION |
80 |
82 |
81 __target = None |
83 __target = None |