14 |
14 |
15 |
15 |
16 # import standard library |
16 # import standard library |
17 import json |
17 import json |
18 |
18 |
|
19 from pyramid.decorator import reify |
|
20 from pyramid.view import view_config |
|
21 from z3c.form import field, button |
|
22 from z3c.form.interfaces import INPUT_MODE |
|
23 from z3c.table.column import GetAttrColumn |
|
24 from z3c.table.interfaces import IValues, IColumn |
|
25 from zope.interface import implementer, Interface |
|
26 from zope.schema.vocabulary import getVocabularyRegistry |
|
27 |
|
28 from pyams_content import _ |
19 # import interfaces |
29 # import interfaces |
20 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphContainer, \ |
30 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphContainer, \ |
21 PARAGRAPH_HIDDEN_FIELDS |
31 PARAGRAPH_HIDDEN_FIELDS |
22 from pyams_content.component.paragraph.interfaces.milestone import MILESTONE_PARAGRAPH_TYPE, IMilestoneParagraph, \ |
32 from pyams_content.component.paragraph.interfaces.milestone import MILESTONE_PARAGRAPH_TYPE, IMilestoneParagraph, \ |
23 IMilestoneContainer, IMilestoneContainerTarget, IMilestone |
33 IMilestoneContainer, IMilestoneContainerTarget, IMilestone |
24 from pyams_content.component.paragraph.zmi import IParagraphContainerView, IParagraphEditFormButtons |
|
25 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor |
|
26 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
|
27 from pyams_content.shared.common import IWfSharedContent |
|
28 from pyams_form.interfaces.form import IInnerForm, IInnerSubForm |
|
29 from pyams_i18n.interfaces import II18n |
|
30 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IWidgetTitleViewletManager |
|
31 from pyams_skin.layer import IPyAMSLayer |
|
32 from z3c.form.interfaces import INPUT_MODE |
|
33 from z3c.table.interfaces import IValues, IColumn |
|
34 |
|
35 # import packages |
34 # import packages |
36 from pyams_content.component.paragraph.milestone import MilestoneParagraph, Milestone |
35 from pyams_content.component.paragraph.milestone import MilestoneParagraph, Milestone |
37 from pyams_content.component.paragraph.zmi import BaseParagraphAddMenu, BaseParagraphAJAXAddForm, \ |
36 from pyams_content.component.paragraph.zmi import BaseParagraphAddMenu, BaseParagraphAJAXAddForm, \ |
38 BaseParagraphPropertiesEditForm, BaseParagraphAJAXEditForm |
37 BaseParagraphPropertiesEditForm, BaseParagraphAJAXEditForm |
|
38 from pyams_content.component.paragraph.zmi import IParagraphContainerView, IParagraphEditFormButtons |
|
39 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor |
39 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
40 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
|
41 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
|
42 from pyams_content.shared.common import IWfSharedContent |
40 from pyams_form.form import AJAXAddForm, ajax_config |
43 from pyams_form.form import AJAXAddForm, ajax_config |
|
44 from pyams_form.interfaces.form import IInnerForm, IInnerSubForm |
41 from pyams_form.security import ProtectedFormObjectMixin |
45 from pyams_form.security import ProtectedFormObjectMixin |
42 from pyams_i18n.column import I18nAttrColumn |
46 from pyams_i18n.column import I18nAttrColumn |
|
47 from pyams_i18n.interfaces import II18n |
43 from pyams_pagelet.pagelet import pagelet_config |
48 from pyams_pagelet.pagelet import pagelet_config |
44 from pyams_skin.container import switch_element_visibility |
49 from pyams_skin.container import switch_element_visibility |
45 from pyams_skin.event import get_json_switched_table_refresh_event, get_json_table_row_refresh_event, \ |
50 from pyams_skin.event import get_json_switched_table_refresh_event, get_json_table_row_refresh_event, \ |
46 get_json_widget_refresh_event |
51 get_json_widget_refresh_event |
|
52 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu, IWidgetTitleViewletManager |
|
53 from pyams_skin.layer import IPyAMSLayer |
47 from pyams_skin.table import BaseTable, SorterColumn, I18nColumn, TrashColumn, VisibilitySwitcherColumn |
54 from pyams_skin.table import BaseTable, SorterColumn, I18nColumn, TrashColumn, VisibilitySwitcherColumn |
48 from pyams_skin.viewlet.toolbar import ToolbarAction |
55 from pyams_skin.viewlet.toolbar import ToolbarAction |
49 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
56 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
50 from pyams_utils.traversing import get_parent |
57 from pyams_utils.traversing import get_parent |
51 from pyams_utils.url import absolute_url |
58 from pyams_utils.url import absolute_url |
52 from pyams_viewlet.viewlet import viewlet_config |
59 from pyams_viewlet.viewlet import viewlet_config |
53 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm |
60 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm |
54 from pyams_zmi.zmi.table import InnerTableView |
61 from pyams_zmi.zmi.table import InnerTableView |
55 from pyramid.decorator import reify |
|
56 from pyramid.view import view_config |
|
57 from z3c.form import field, button |
|
58 from z3c.table.column import GetAttrColumn |
|
59 from zope.interface import implementer, Interface |
|
60 from zope.schema.vocabulary import getVocabularyRegistry |
|
61 |
|
62 from pyams_content import _ |
|
63 |
62 |
64 |
63 |
65 class IMilestonesView(Interface): |
64 class IMilestonesView(Interface): |
66 """Milestones view marker interface""" |
65 """Milestones view marker interface""" |
67 |
66 |
72 |
71 |
73 @viewlet_config(name='add-milestone-paragraph.menu', context=IParagraphContainerTarget, view=IParagraphContainerView, |
72 @viewlet_config(name='add-milestone-paragraph.menu', context=IParagraphContainerTarget, view=IParagraphContainerView, |
74 layer=IPyAMSLayer, manager=IToolbarAddingMenu, weight=600) |
73 layer=IPyAMSLayer, manager=IToolbarAddingMenu, weight=600) |
75 class MilestoneParagraphAddMenu(BaseParagraphAddMenu): |
74 class MilestoneParagraphAddMenu(BaseParagraphAddMenu): |
76 """Milestone paragraph add menu""" |
75 """Milestone paragraph add menu""" |
77 |
76 |
78 label = _("Milestones...") |
77 label = _("Milestones...") |
79 label_css_class = 'fa fa-fw fa-arrows-h' |
78 label_css_class = 'fa fa-fw fa-arrows-h' |
80 url = 'add-milestone-paragraph.html' |
79 url = 'add-milestone-paragraph.html' |
81 paragraph_type = MILESTONE_PARAGRAPH_TYPE |
80 paragraph_type = MILESTONE_PARAGRAPH_TYPE |
82 |
81 |
83 |
82 |
84 @pagelet_config(name='add-milestone-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer, |
83 @pagelet_config(name='add-milestone-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer, |
85 permission=MANAGE_CONTENT_PERMISSION) |
84 permission=MANAGE_CONTENT_PERMISSION) |
86 @ajax_config(name='add-milestone-paragraph.json', context=IParagraphContainerTarget, layer=IPyAMSLayer, |
85 @ajax_config(name='add-milestone-paragraph.json', context=IParagraphContainerTarget, layer=IPyAMSLayer, |
87 base=BaseParagraphAJAXAddForm) |
86 base=BaseParagraphAJAXAddForm) |
88 class MilestoneParagraphAddForm(AdminDialogAddForm): |
87 class MilestoneParagraphAddForm(AdminDialogAddForm): |
89 """Milestone paragraph add form""" |
88 """Milestone paragraph add form""" |
90 |
89 |
91 legend = _("Add new milestone paragraph") |
90 legend = _("Add new milestone paragraph") |
92 icon_css_class = 'fa fa-fw fa-arrows-h' |
91 icon_css_class = 'fa fa-fw fa-arrows-h' |
93 |
92 |
94 fields = field.Fields(IMilestoneParagraph).select('title', 'renderer') |
93 fields = field.Fields(IMilestoneParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS) |
95 edit_permission = MANAGE_CONTENT_PERMISSION |
94 edit_permission = MANAGE_CONTENT_PERMISSION |
96 |
95 |
97 def create(self, data): |
96 def create(self, data): |
98 return MilestoneParagraph() |
97 return MilestoneParagraph() |
99 |
98 |
100 def add(self, object): |
99 def add(self, object): |
101 IParagraphContainer(self.context).append(object) |
100 IParagraphContainer(self.context).append(object) |
102 |
101 |
103 |
102 |
104 @pagelet_config(name='properties.html', context=IMilestoneParagraph, layer=IPyAMSLayer, |
103 @pagelet_config(name='properties.html', context=IMilestoneParagraph, layer=IPyAMSLayer, |