10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 |
12 |
13 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
14 |
14 |
15 |
|
16 # import standard library |
|
17 from uuid import uuid4 |
15 from uuid import uuid4 |
18 |
16 |
19 # import interfaces |
17 from z3c.form import field |
|
18 from zope.interface import Interface |
|
19 from zope.intid.interfaces import IIntIds |
|
20 from zope.schema import Int |
|
21 |
20 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION, MANAGE_CONTENT_PERMISSION |
22 from pyams_content.interfaces import CREATE_CONTENT_PERMISSION, MANAGE_CONTENT_PERMISSION |
21 from pyams_content.shared.site.interfaces import ISiteContainer, IContentLink |
23 from pyams_content.shared.site.interfaces import IContentLink, ISiteContainer |
|
24 from pyams_content.shared.site.link import ContentLink |
|
25 from pyams_content.shared.site.zmi.container import SiteContainerTreeTable |
|
26 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget |
22 from pyams_content.zmi.interfaces import ISiteTreeTable |
27 from pyams_content.zmi.interfaces import ISiteTreeTable |
|
28 from pyams_form.form import AJAXAddForm, ajax_config |
23 from pyams_i18n.interfaces import II18n |
29 from pyams_i18n.interfaces import II18n |
|
30 from pyams_pagelet.pagelet import pagelet_config |
24 from pyams_skin.interfaces.container import ITableElementName |
31 from pyams_skin.interfaces.container import ITableElementName |
25 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu |
32 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu |
26 from pyams_skin.layer import IPyAMSLayer |
33 from pyams_skin.layer import IPyAMSLayer |
27 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
|
28 from pyams_zmi.layer import IAdminLayer |
|
29 from zope.intid.interfaces import IIntIds |
|
30 |
|
31 # import packages |
|
32 from pyams_content.shared.site.link import ContentLink |
|
33 from pyams_content.shared.site.zmi.container import SiteContainerTreeTable |
|
34 from pyams_content.shared.site.zmi.widget import SiteManagerFoldersSelectorFieldWidget |
|
35 from pyams_form.form import AJAXAddForm, ajax_config |
|
36 from pyams_pagelet.pagelet import pagelet_config |
|
37 from pyams_skin.table import get_object_name |
34 from pyams_skin.table import get_object_name |
38 from pyams_skin.viewlet.toolbar import ToolbarMenuItem |
35 from pyams_skin.viewlet.toolbar import ToolbarMenuItem |
39 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
36 from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config |
|
37 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
40 from pyams_utils.registry import get_utility |
38 from pyams_utils.registry import get_utility |
41 from pyams_utils.url import absolute_url |
39 from pyams_utils.url import absolute_url |
42 from pyams_viewlet.viewlet import viewlet_config |
40 from pyams_viewlet.viewlet import viewlet_config |
43 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm |
41 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm |
44 from z3c.form import field |
42 from pyams_zmi.layer import IAdminLayer |
45 from zope.interface import Interface |
|
46 from zope.schema import Int |
|
47 |
43 |
48 from pyams_content import _ |
44 from pyams_content import _ |
49 |
45 |
50 |
46 |
51 @viewlet_config(name='add-content-link.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface, |
47 @viewlet_config(name='add-content-link.menu', context=ISiteContainer, layer=IAdminLayer, view=Interface, |
73 class ContentLinkAddForm(AdminDialogAddForm): |
69 class ContentLinkAddForm(AdminDialogAddForm): |
74 """Content link add form""" |
70 """Content link add form""" |
75 |
71 |
76 legend = _("Rent existing content") |
72 legend = _("Rent existing content") |
77 |
73 |
78 fields = field.Fields(IContentLinkAddFormFields).select('reference', 'navigation_title', 'parent') |
74 fields = field.Fields(IContentLinkAddFormFields).select('reference', 'navigation_title', |
|
75 'navigation_header', 'parent') |
79 fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget |
76 fields['parent'].widgetFactory = SiteManagerFoldersSelectorFieldWidget |
80 |
77 |
81 edit_permission = CREATE_CONTENT_PERMISSION |
78 edit_permission = CREATE_CONTENT_PERMISSION |
82 |
79 |
83 __target = None |
80 __target = None |
92 |
89 |
93 def update_content(self, content, data): |
90 def update_content(self, content, data): |
94 data = data.get(self, data) |
91 data = data.get(self, data) |
95 content.reference = data.get('reference') |
92 content.reference = data.get('reference') |
96 content.navigation_title = data['navigation_title'] |
93 content.navigation_title = data['navigation_title'] |
|
94 content.navigation_header = data['navigation_header'] |
97 intids = get_utility(IIntIds) |
95 intids = get_utility(IIntIds) |
98 parent = intids.queryObject(data.get('parent')) |
96 parent = intids.queryObject(data.get('parent')) |
99 if parent is not None: |
97 if parent is not None: |
100 uuid = str(uuid4()) |
98 uuid = str(uuid4()) |
101 parent[uuid] = content |
99 parent[uuid] = content |