|
1 # |
|
2 # Copyright (c) 2008-2018 Thierry Florac <tflorac AT ulthar.net> |
|
3 # All Rights Reserved. |
|
4 # |
|
5 # This software is subject to the provisions of the Zope Public License, |
|
6 # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. |
|
7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
|
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
|
10 # FOR A PARTICULAR PURPOSE. |
|
11 # |
|
12 |
|
13 __docformat__ = 'restructuredtext' |
|
14 |
|
15 from z3c.form import field |
|
16 |
|
17 from pyams_content.features.search import ISearchFolder |
|
18 from pyams_content.shared.common.zmi.properties import SharedContentPropertiesEditForm |
|
19 from pyams_content.shared.view.zmi.properties import ViewPropertiesEditForm |
|
20 from pyams_form.group import NamedWidgetsGroup |
|
21 from pyams_form.interfaces.form import IInnerSubForm |
|
22 from pyams_form.widget import HiddenSelect2FieldWidget |
|
23 from pyams_skin.layer import IPyAMSLayer |
|
24 from pyams_utils.adapter import adapter_config |
|
25 from pyams_zmi.form import InnerAdminEditForm |
|
26 |
|
27 from pyams_content import _ |
|
28 |
|
29 |
|
30 @adapter_config(name='view-settings', |
|
31 context=(ISearchFolder, IPyAMSLayer, SharedContentPropertiesEditForm), |
|
32 provides=IInnerSubForm) |
|
33 class SearchFolderPropertiesEditForm(ViewPropertiesEditForm): |
|
34 """Search folder properties edit form extension""" |
|
35 |
|
36 legend = _("Main search settings") |
|
37 |
|
38 fields = field.Fields(ISearchFolder).select('selected_content_types', 'selected_datatypes', |
|
39 'order_by', 'reversed_order', 'limit') |
|
40 fields['selected_datatypes'].widgetFactory = HiddenSelect2FieldWidget |
|
41 |
|
42 |
|
43 @adapter_config(name='navigation', |
|
44 context=(ISearchFolder, IPyAMSLayer, SharedContentPropertiesEditForm), |
|
45 provides=IInnerSubForm) |
|
46 class SearchFolderNavigationPropertiesEditForm(InnerAdminEditForm): |
|
47 """Search folder navigation properties edit form""" |
|
48 |
|
49 prefix = 'navigation_form.' |
|
50 |
|
51 css_class = 'form-group' |
|
52 padding_class = '' |
|
53 fieldset_class = 'bordered margin-top-10 padding-y-5' |
|
54 |
|
55 legend = None |
|
56 main_group_legend = _("Navigation properties") |
|
57 main_group_class = 'inner switcher no-y-padding' |
|
58 |
|
59 fields = field.Fields(ISearchFolder).select('visible_in_list', 'navigation_title') |
|
60 |
|
61 weight = 5 |
|
62 |
|
63 def check_mode(self): |
|
64 if self.parent_form is not None: |
|
65 self.mode = self.parent_form.mode |
|
66 |
|
67 def updateGroups(self): |
|
68 self.add_group(NamedWidgetsGroup(self, 'navigation', self.widgets, |
|
69 ('visible_in_list', 'navigation_title'), |
|
70 fieldset_class=self.fieldset_class, |
|
71 legend=self.main_group_legend, |
|
72 css_class=self.main_group_class, |
|
73 switch=True, |
|
74 display_mode='always')) |
|
75 super(SearchFolderNavigationPropertiesEditForm, self).updateGroups() |