-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcontrolpanel.py
109 lines (94 loc) · 4.83 KB
/
controlpanel.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
"Import basic functions"
import base
import nestedlisturl as NestedListURL
from controldisplaymanager import ControlDisplayManager
from controlcatalogmanager import ControlCatalogManager
from controlprofilemanager import ControlProfileManager
from controlmodemanager import ControlModeManager
from controllicense import ControlLicense
from controlrequest import ControlRequest
from controleventmanager import ControlEventManager
from controltabmanager import ControlTabManager
from controladddel import ControlAddDel
from controlshared import ControlShared
from controlsecuritymanager import ControlSecurityManager
from controllinkmanager import ControlLinkManager
from controlcallablerender import ControlCallableRender
from controldefaultmanager import ControlDefaultManager
from controlconverter import ControlConverter
from controlcomhelp import ControlComHelp
#For Security control and init
from AccessControl import ClassSecurityInfo
import Globals
import os.path
import utility
class ControlPanel(base.Base):
"This is the control panel class"
meta_type = "ControlPanel"
security = ClassSecurityInfo()
controlNames = ('ControlDisplayManager', 'ControlCatalogManager', 'ControlProfileManager',
'ControlLicense', 'ControlRequest', 'ControlEventManager', 'ControlTabManager', 'ControlAddDel',
'ControlShared', "ControlSecurityManager", 'ControlLinkManager',
'ControlCallableRender', 'ControlDefaultManager', 'ControlModeManager', 'ControlConverter',
'ControlComHelp')
ControlDisplayManager = ControlDisplayManager('ControlDisplayManager')
ControlCatalogManager = ControlCatalogManager('ControlCatalogManager')
ControlProfileManager = ControlProfileManager('ControlProfileManager')
ControlLicense = ControlLicense('ControlLicense')
ControlRequest = ControlRequest('ControlRequest')
ControlEventManager = ControlEventManager('ControlEventManager')
ControlTabManager = ControlTabManager('ControlTabManager')
ControlAddDel = ControlAddDel('ControlAddDel')
ControlModeManager = ControlModeManager('ControlModeManager')
ControlShared = ControlShared('ControlShared')
ControlSecurityManager = ControlSecurityManager('ControlSecurityManager')
ControlLinkManager = ControlLinkManager('ControlLinkManager')
ControlCallableRender = ControlCallableRender('ControlCallableRender')
ControlDefaultManager = ControlDefaultManager('ControlDefaultManager')
ControlConverter = ControlConverter('ControlConverter')
ControlComHelp = ControlComHelp('ControlComHelp')
security.declareObjectProtected('Manage Control Panel Form')
security.declareProtected('Manage Control Panel Form', "index_html")
def index_html(self):
"Draw the ControlPanelForm"
return ''.join([self.getCompoundDoc().begin_manage(), self.edit(), self.manage_page_footer()])
security.declarePublic('__bobo_traverse__')
def __bobo_traverse__(self, REQUEST, name):
"bobo method"
if name:
if name in self.controlNames:
menuSelected = self.REQUEST.other.get('menuSelected', {})
menuSelected['ControlPanel'] = name
self.REQUEST.other['menuSelected'] = menuSelected
return getattr(self, name)
security.declareProtected('View', 'view')
def view(self):
"Inline draw view"
return ""
security.declareProtected('View management screens', 'edit')
def edit(self, *args, **kw):
"Inline edit view"
queryDict = utility.getQueryDict(self.REQUEST.environ.get('QUERY_STRING', ''))
format = '<table style="vertical-align:top;"><tr><td class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">%s</td><td style="vertical-align:top;">%s</td></tr></table>'
return format % (NestedListURL.drawNestedListThemeroller(self.traverseContainer(queryDict=queryDict)), self.drawMenuSelected())
security.declarePrivate('traverseContainer')
def traverseContainer(self, queryDict = None):
"return the items at this index recursively"
queryDict = queryDict or {}
temp = []
menu = self.getMenuSelected()
if menu:
title = getattr(self, menu).control_title
else:
title = None
containers = ((name, getattr(self, name)) for name in self.controlNames)
containers = sorted((object.control_title, object, name) for name, object in containers)
url = self.absolute_url_path()
for control_title, object, name in containers:
if control_title == title:
temp.append((os.path.join(url, name), control_title, 1, '', queryDict, ''))
temp.append(object.traverseContainer(queryDict=queryDict))
else:
temp.append((os.path.join(url, name), control_title, 0, '', queryDict, ''))
return temp
Globals.InitializeClass(ControlPanel)