1
# -*- coding: utf-8 -*-
7
# Language Menu (available in all screens)
8
s3.menu_lang = [ T("Language"), True, #,
10
[T("English"), False, URL(r=request, vars={"_language":"en"})],
11
[T("Chinese"), False, URL(r=request, vars={"_language":"zh-tw"})],
15
# Help Menu (available in all screens)
16
s3.menu_help = [ T("Help"), True, "#",
18
[T("Contact us"), False, URL(request.application, "default", "contact")],
19
[T("About"), False, URL(request.application, "default", "about")],
23
# Auth Menu (available in all screens)
24
if not auth.is_logged_in():
26
self_registration = s3_settings.self_registration if s3_settings else True
29
s3.menu_auth = [T("Login"), True, URL(request.application, "default", "user/login"),
32
URL(request.application, "default", "user/login")],
33
[T("Register"), False,
34
URL(request.application, "default", "user/register")],
35
[T("Lost Password"), False,
36
URL(request.application, "default", "user/retrieve_password")]
40
s3.menu_auth = [T("Login"), True, URL(request.application, "default", "user/login"),
42
[T("Lost Password"), False,
43
URL(request.application, "default", "user/retrieve_password")]
47
s3.menu_auth = [auth.user.email, True, None,
50
URL(request.application, "default", "user/logout")],
51
[T("User Profile"), False,
52
URL(request.application, "default", "user/profile")],
53
[T("Personal Data"), False,
54
URL(request.application, c="pr", f="person", vars={"person.uid" : auth.user.person_uuid})],
55
[T("Contact details"), False,
56
URL(request.application, c="pr", f="person", args="pe_contact", vars={"person.uid" : auth.user.person_uuid})],
57
[T("Subscriptions"), False,
58
URL(request.application, c="pr", f="person", args="pe_subscription", vars={"person.uid" : auth.user.person_uuid})],
59
[T("Change Password"), False,
60
URL(request.application, "default", "user/change_password")]
64
# Menu for Admin module
65
# (defined here as used in several different Controller files)
66
admin_menu_options = [
67
[T("Settings"), False, URL(r=request, c="admin", f="setting", args=[1, "update"]), [
68
[T("Edit Themes"), False, URL(r=request, c="admin", f="theme")]
70
[T("User Management"), False, URL(r=request, c="admin", f="user"), [
71
[T("Users"), False, URL(r=request, c="admin", f="user")],
72
[T("Roles"), False, URL(r=request, c="admin", f="group")],
73
#[T("Membership"), False, URL(r=request, c="admin", f="membership")]
75
[T("Database"), False, "#", [
76
[T("Import"), False, URL(r=request, c="admin", f="import_data")],
77
[T("Export"), False, URL(r=request, c="admin", f="export_data")],
78
#[T("Import Jobs"), False, URL(r=request, c="admin", f="import_job")],
79
[T("Raw Database access"), False, URL(r=request, c="appadmin", f="index")]
81
[T("Synchronisation"), False, URL(r=request, c="sync", f="index"), [
82
[T("Sync History"), False, URL(r=request, c="sync", f="history")],
83
[T("Sync Partners"), False, URL(r=request, c="sync", f="partner")],
84
[T("Sync Settings"), False, URL(r=request, c="sync", f="setting", args=[1, "update"])]
86
[T("Messaging"), False, "#",[
87
[T("Global Messaging Settings"), False, URL(r=request, c="msg", f="setting", args=[1, "update"])],
88
[T("Email Settings"), False, URL(r=request, c="msg", f="email_settings", args=[1, "update"])],
89
[T("Modem Settings"), False, URL(r=request, c="msg", f="modem_settings", args=[1, "update"])],
90
[T("Gateway Settings"), False, URL(r=request, c="msg", f="gateway_settings", args=[1, "update"])]
92
[T("Edit Application"), False, URL(r=request, a="admin", c="default", f="design", args=[request.application])],
93
[T("Tickets"), False, URL(r=request, c="admin", f="errors")],
94
[T("Functional Tests"), False, URL(r=request, c="static", f="selenium", args=["core", "TestRunner.html"], vars=dict(test="../tests/TestSuite.html", auto="true", resultsUrl=URL(r=request, c="admin", f="handleResults")))]
97
# Modules Menu (available in all Controllers)
98
# NB This is just a default menu - most deployments will customise this
101
_module = deployment_settings.modules["default"]
102
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c="default", f="index")])
103
# The Modules to display at the top level
104
for module in deployment_settings.modules:
105
_module = deployment_settings.modules[module]
106
if (_module.module_type == 1):
107
if not _module.access:
108
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
111
groups = re.split("\|", _module.access)[1:-1]
113
if shn_has_role(group):
115
if authorised == True:
116
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
117
for module in deployment_settings.modules:
118
_module = deployment_settings.modules[module]
119
if (_module.module_type == 2):
120
if not _module.access:
121
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
124
groups = re.split("\|", _module.access)[1:-1]
126
if shn_has_role(group):
128
if authorised == True:
129
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
130
for module in deployment_settings.modules:
131
_module = deployment_settings.modules[module]
132
if (_module.module_type == 3):
133
if not _module.access:
134
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
137
groups = re.split("\|", _module.access)[1:-1]
139
if shn_has_role(group):
141
if authorised == True:
142
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
143
for module in deployment_settings.modules:
144
_module = deployment_settings.modules[module]
145
if (_module.module_type == 4):
146
if not _module.access:
147
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
150
groups = re.split("\|", _module.access)[1:-1]
152
if shn_has_role(group):
154
if authorised == True:
155
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
156
for module in deployment_settings.modules:
157
_module = deployment_settings.modules[module]
158
if (_module.module_type == 5):
159
if not _module.access:
160
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
163
groups = re.split("\|", _module.access)[1:-1]
165
if shn_has_role(group):
167
if authorised == True:
168
s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
170
# Modules to display off the 'more' menu
171
module_more_menu = ([T("more"), False, "#"])
173
for module in deployment_settings.modules:
174
_module = deployment_settings.modules[module]
175
if (_module.module_type == 10):
176
if not _module.access:
177
modules_submenu.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
180
groups = re.split("\|", _module.access)[1:-1]
182
if shn_has_role(group):
184
if authorised == True:
185
modules_submenu.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
186
module_more_menu.append(modules_submenu)
187
s3.menu_modules.append(module_more_menu)
190
_module = deployment_settings.modules["admin"]
192
groups = re.split("\|", _module.access)[1:-1]
194
if int(group) in session.s3.roles:
196
if authorised == True:
197
s3.menu_admin = [_module.name_nice, True, URL(r=request, c="admin", f="index")]
201
# Build overall menu out of components
202
response.menu = s3.menu_modules
203
response.menu.append(s3.menu_help)
204
response.menu.append(s3.menu_auth)
205
# Uncomment to enable Language tool on menu
206
#response.menu.append(s3.menu_lang)
208
response.menu.append(s3.menu_admin)