source: products/quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/browser/controlpanel.py @ 3153

Last change on this file since 3153 was 3153, checked in by vmaksymiv, 13 years ago

pyflakes fixes

  • Property svn:eol-style set to native
File size: 2.8 KB
Line 
1# -*- coding: utf-8 -*-
2from zope.i18n import translate
3from zope.schema.interfaces import ITitledTokenizedTerm
4
5from Products.CMFCore.utils import getToolByName
6
7from plone.app.registry.browser import controlpanel
8
9from quintagroup.dropdownmenu.interfaces import IDropDownMenuSettings, _
10
11
12class DropDownMenuSettingsEditForm(controlpanel.RegistryEditForm):
13
14    schema = IDropDownMenuSettings
15    label = _(u"DropDown Menu settings")
16    description = _(u"Please enter the options specified")
17
18    def applyChanges(self, data):
19        """To save a few fields into portal_properties tool"""
20        result = super(DropDownMenuSettingsEditForm, self).applyChanges(data)
21        self._settings(data['show_content_tabs'],
22                       data['show_nonfolderish_tabs'])
23        return result
24
25    def update(self):
26        """Also get values for a few fields from portal_properties tool"""
27        super(DropDownMenuSettingsEditForm, self).update()
28        conf = self._settings()
29        self._overrideValue(self.widgets['show_content_tabs'], not conf[0])
30        self._overrideValue(self.widgets['show_nonfolderish_tabs'],
31                            not conf[1])
32
33    def _overrideValue(self, widget, value):
34        if value:
35            widget.value = ['selected']
36
37        widget.items = []
38        for count, term in enumerate(widget.terms):
39            checked = widget.isChecked(term)
40            id = '%s-%i' % (widget.id, count)
41            label = term.token
42            if ITitledTokenizedTerm.providedBy(term):
43                label = translate(term.title, context=widget.request,
44                                  default=term.title)
45            widget.items.append({'id': id, 'name': widget.name + ':list',
46                'value': term.token, 'label': label, 'checked': checked})
47
48    def _settings(self, folder=None, nonfolderish=None):
49        """Return portal_properties settings"""
50        props = [True, True]
51        prop_tool = getToolByName(self.context, 'portal_properties')
52        if 'site_properties' in prop_tool.objectIds():
53            sheet = prop_tool._getOb('site_properties')
54            if sheet.hasProperty('disable_folder_sections'):
55                if folder is not None:
56                    sheet.manage_changeProperties(
57                        disable_folder_sections=not folder)
58                props[0] = sheet.getProperty('disable_folder_sections')
59            if sheet.hasProperty('disable_nonfolderish_sections'):
60                if nonfolderish is not None:
61                    sheet.manage_changeProperties(
62                        disable_nonfolderish_sections=not nonfolderish)
63                props[1] = sheet.getProperty('disable_nonfolderish_sections')
64        return props
65
66
67class DropDownMenuSettingsControlPanel(controlpanel.ControlPanelFormWrapper):
68    form = DropDownMenuSettingsEditForm
Note: See TracBrowser for help on using the repository browser.