source: products/Products.qPloneDropDownMenu/trunk/Products/qPloneDropDownMenu/browser/views.py

Last change on this file was 2584, checked in by fenix, 14 years ago

Rewrote menu configlet into zope3 view style.

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1from zope.component import getMultiAdapter
2from Products.CMFCore.utils import getToolByName
3from Products.Five.browser import BrowserView
4from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
5from Products.statusmessages.interfaces import IStatusMessage
6
7
8
9class PrefsDropDownView(BrowserView):
10    """DropDown configlet.
11   
12    """
13
14    template = ViewPageTemplateFile('templates/prefs_dropdownmenu_edit_form.pt')
15
16    def __init__(self, context, request):
17        super(PrefsDropDownView, self).__init__(context, request)
18        self.portal_state = getMultiAdapter((self.context, self.request),
19                                             name='plone_portal_state')
20        self.portal = self.portal_state.portal()
21        self.pp = getToolByName(self.portal, 'portal_properties')
22        self.dp = getattr(self.pp, 'dropdownmenu_properties', None)
23
24    def menu(self):
25        menu = ''
26        if self.dp is not None:
27             menu = self.dp.getProperty('menu', '')
28        return menu
29
30    def __call__(self):
31        save = self.request.get('save', None)
32        update = self.request.get('regenerate_menu', None)
33        status = IStatusMessage(self.request)
34
35        if save is not None:
36
37            if self.dp is None:
38                status.addStatusMessage(
39                """Dropdown menu property sheet does not exist.
40                Please, firstly regenerate menu before editing it.""")
41                return self.template()
42
43            menu = self.menu()
44            if not menu:
45                status.addStatusMessage(
46                """Menu field does not exist in dropdown menu property sheet.
47                Please, firstly regenerate menu before editing it.""")
48                return self.template()
49
50            self.dp.manage_changeProperties(menu=self.request.get('menu'))
51            status.addStatusMessage("DropDown Menu updated.")
52            return self.template()
53           
54        if update is not None:
55            getToolByName(self.portal, 'portal_dropdownmenu').regenerateMenu()
56            status.addStatusMessage("DropDown Menu regenerated.")
57
58        return self.template()
Note: See TracBrowser for help on using the repository browser.