source: products/quintagroup.dropdownmenu/trunk/quintagroup/dropdownmenu/browser/menu.py @ 3151

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

pep8 fixes

  • Property svn:eol-style set to native
File size: 1.7 KB
Line 
1# -*- coding: utf-8 -*-
2from zope.interface import implements
3from zope.component import getUtility
4
5from Products.CMFPlone.browser.navtree import SitemapQueryBuilder
6from Products.CMFPlone.browser.navtree import DefaultNavtreeStrategy
7
8from plone.app.layout.navigation.interfaces import INavtreeStrategy
9from plone.app.layout.navigation.interfaces import INavigationQueryBuilder
10
11from quintagroup.dropdownmenu.interfaces import IDropDownMenuSettings
12from quintagroup.dropdownmenu.util import getDropDownMenuSettings
13
14
15class DropDownMenuQueryBuilder(SitemapQueryBuilder):
16
17    implements(INavigationQueryBuilder)
18
19    def __init__(self, context):
20        super(DropDownMenuQueryBuilder, self).__init__(context)
21        self.context = context
22
23        # customize depth according to dropdown menu settings
24        if self._settings.content_tabs_level > 0:
25            self.query['path']['depth'] = self._settings.content_tabs_level
26        elif 'depth' in self.query['path']:
27            del self.query['path']['depth']
28
29        # constrain non-folderish objects if required
30        if not self._settings.show_nonfolderish_tabs:
31            self.query['is_folderish'] = True
32
33    @property
34    def _settings(self):
35        """Fetch dropdown menu settings registry"""
36        return getDropDownMenuSettings(self.context)
37
38
39class DropDownMenuStrategy(DefaultNavtreeStrategy):
40
41    implements(INavtreeStrategy)
42
43    def __init__(self, context, view=None):
44        super(DropDownMenuStrategy, self).__init__(context, view)
45        self.bottomLevel = self._settings.content_tabs_level
46
47    @property
48    def _settings(self):
49        """Fetch dropdown menu settings registry"""
50        return getDropDownMenuSettings(self.context)
Note: See TracBrowser for help on using the repository browser.