src/pyams_content/features/search/zmi/properties.py
changeset 1061 d1db251eeea3
child 1187 b55bdf60c6cd
equal deleted inserted replaced
1060:29b1aaf9e080 1061:d1db251eeea3
       
     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()