Changeset 1205 in products


Ignore:
Timestamp:
Aug 4, 2009 2:31:30 PM (15 years ago)
Author:
piv
Message:

implement proxy between dropdownmenu settings and portal_properties folder sections properties

Location:
quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/TODO.txt

    r1200 r1205  
    11Todo List 
    22 
    3  [ ] global sections viewlet 
     3 [ ] current element for actions based tabs 
    44 [ ] IE<7 functionality 
    55 [ ] csshover configlet 
     6 [ ] clean uninstall procedure 
     7 [ ] migration from qPloneDropDownMenu 
    68 [ ] documentation 
    79 [ ] tests tests tests 
    8  [ ] migration from qPloneDropDownMenu 
    910 
    1011 
    1112Completed List 
    1213 
     14 [x] global sections viewlet 
     15 [x] proxy for show_content_tabs and show_nonfolderish_tabs settings 
    1316 [x] settings configlet 
  • quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/browser/controlpanel.py

    r1180 r1205  
     1# -*- coding: utf-8 -*- 
     2from zope.i18n import translate 
     3from zope.schema.interfaces import ITitledTokenizedTerm 
     4 
     5from Products.CMFCore.utils import getToolByName 
     6 
    17from plone.app.registry.browser import controlpanel 
    28 
     
    1016    description = _(u"Please enter the options specified") 
    1117 
     18    def applyChanges(self, data): 
     19        """To save a few fields into portal_properties tool""" 
     20        result = super(DropDownMenuSettingsEditForm, self).applyChanges(data) 
     21        dummy = 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'], not conf[1]) 
     31 
     32    def _overrideValue(self, widget, value): 
     33        if value: 
     34            widget.value = ['true'] 
     35        else: 
     36            widget.value = ['false'] 
     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 
    1266 
    1367class DropDownMenuSettingsControlPanel(controlpanel.ControlPanelFormWrapper): 
Note: See TracChangeset for help on using the changeset viewer.