~dongpo-deng/sahana-eden/test

« back to all changes in this revision

Viewing changes to models/01_menu.py

  • Committer: Deng Dongpo
  • Date: 2010-08-01 09:29:44 UTC
  • Revision ID: dongpo@dhcp-21193.iis.sinica.edu.tw-20100801092944-8t9obt4xtl7otesb
initial

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: utf-8 -*-
 
2
 
 
3
"""
 
4
    Global menus
 
5
"""
 
6
 
 
7
# Language Menu (available in all screens)
 
8
s3.menu_lang = [ T("Language"), True, #,
 
9
        [
 
10
            [T("English"), False, URL(r=request, vars={"_language":"en"})],
 
11
            [T("Chinese"), False, URL(r=request, vars={"_language":"zh-tw"})],
 
12
        ]
 
13
    ]
 
14
 
 
15
# Help Menu (available in all screens)
 
16
s3.menu_help = [ T("Help"), True, "#",
 
17
        [
 
18
            [T("Contact us"), False, URL(request.application, "default", "contact")],
 
19
            [T("About"), False, URL(request.application, "default", "about")],
 
20
        ]
 
21
    ]
 
22
 
 
23
# Auth Menu (available in all screens)
 
24
if not auth.is_logged_in():
 
25
 
 
26
    self_registration = s3_settings.self_registration if s3_settings else True
 
27
 
 
28
    if self_registration:
 
29
        s3.menu_auth = [T("Login"), True, URL(request.application, "default", "user/login"),
 
30
                [
 
31
                    [T("Login"), False,
 
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")]
 
37
                ]
 
38
            ]
 
39
    else:
 
40
        s3.menu_auth = [T("Login"), True, URL(request.application, "default", "user/login"),
 
41
                [
 
42
                    [T("Lost Password"), False,
 
43
                     URL(request.application, "default", "user/retrieve_password")]
 
44
                ]
 
45
            ]
 
46
else:
 
47
    s3.menu_auth = [auth.user.email, True, None,
 
48
            [
 
49
                [T("Logout"), False,
 
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")]
 
61
            ]
 
62
        ]
 
63
 
 
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")]
 
69
    ]],
 
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")]
 
74
    ]],
 
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")]
 
80
    ]],
 
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"])]
 
85
    ]],
 
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"])]
 
91
    ]],
 
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")))]
 
95
]
 
96
 
 
97
# Modules Menu (available in all Controllers)
 
98
# NB This is just a default menu - most deployments will customise this
 
99
s3.menu_modules = []
 
100
# Home always 1st
 
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")])
 
109
        else:
 
110
            authorised = False
 
111
            groups = re.split("\|", _module.access)[1:-1]
 
112
            for group in groups:
 
113
                if shn_has_role(group):
 
114
                    authorised = True
 
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")])
 
122
        else:
 
123
            authorised = False
 
124
            groups = re.split("\|", _module.access)[1:-1]
 
125
            for group in groups:
 
126
                if shn_has_role(group):
 
127
                    authorised = True
 
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")])
 
135
        else:
 
136
            authorised = False
 
137
            groups = re.split("\|", _module.access)[1:-1]
 
138
            for group in groups:
 
139
                if shn_has_role(group):
 
140
                    authorised = True
 
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")])
 
148
        else:
 
149
            authorised = False
 
150
            groups = re.split("\|", _module.access)[1:-1]
 
151
            for group in groups:
 
152
                if shn_has_role(group):
 
153
                    authorised = True
 
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")])
 
161
        else:
 
162
            authorised = False
 
163
            groups = re.split("\|", _module.access)[1:-1]
 
164
            for group in groups:
 
165
                if shn_has_role(group):
 
166
                    authorised = True
 
167
            if authorised == True:
 
168
                s3.menu_modules.append([_module.name_nice, False, URL(r=request, c=module, f="index")])
 
169
 
 
170
# Modules to display off the 'more' menu
 
171
module_more_menu = ([T("more"), False, "#"])
 
172
modules_submenu = []
 
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")])
 
178
        else:
 
179
            authorised = False
 
180
            groups = re.split("\|", _module.access)[1:-1]
 
181
            for group in groups:
 
182
                if shn_has_role(group):
 
183
                    authorised = True
 
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)
 
188
 
 
189
# Admin always last
 
190
_module = deployment_settings.modules["admin"]
 
191
authorised = False
 
192
groups = re.split("\|", _module.access)[1:-1]
 
193
for group in groups:
 
194
    if int(group) in session.s3.roles:
 
195
        authorised = True
 
196
if authorised == True:
 
197
    s3.menu_admin = [_module.name_nice, True, URL(r=request, c="admin", f="index")]
 
198
else:
 
199
    s3.menu_admin = []
 
200
 
 
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)
 
207
if s3.menu_admin:
 
208
    response.menu.append(s3.menu_admin)