/
menus.py
117 lines (107 loc) · 5.11 KB
/
menus.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
110
111
112
113
114
115
116
# -*- coding: utf-8 -*-
from gluon import current
from s3 import *
from s3layouts import *
try:
from .layouts import *
except ImportError:
pass
import s3menus as default
# =============================================================================
class S3OptionsMenu(default.S3OptionsMenu):
""" Custom Controller Menus """
# -------------------------------------------------------------------------
def vol(self):
""" Volunteer Management """
s3 = current.session.s3
ADMIN = s3.system_roles.ADMIN
# Custom conditions for the check-hook, as lambdas in order
# to have them checked only immediately before rendering:
manager_mode = lambda i: s3.hrm.mode is None
personal_mode = lambda i: s3.hrm.mode is not None
is_org_admin = lambda i: s3.hrm.orgs and True or \
ADMIN in s3.roles
settings = current.deployment_settings
#show_programmes = lambda i: settings.get_hrm_vol_experience() == "programme"
#show_tasks = lambda i: settings.has_module("project") and \
# settings.get_project_mode_task()
teams = settings.get_hrm_teams()
use_teams = lambda i: teams
#check_org_dependent_field = lambda tablename, fieldname: \
# settings.set_org_dependent_field(tablename, fieldname,
# enable_field = False)
return M(c="vol")(
M("Volunteers", f="volunteer",
check=[manager_mode])(
M("New Volunteer", m="create"),
#M("List All"),
M("Import", f="person", m="import",
vars={"group":"volunteer"}, p="create"),
),
M(teams, f="group",
check=[manager_mode, use_teams])(
M("New Team", m="create"),
#M("List All"),
M("Search Members", f="group_membership"),
),
#M("Department Catalog", f="department",
# check=manager_mode)(
# M("New", m="create"),
# M("List All"),
#),
#M("Volunteer Role Catalog", f="job_title",
# check=manager_mode)(
# M("New", m="create"),
# M("List All"),
# M("Import", m="import", p="create", check=is_org_admin),
#),
#M("Skill Catalog", f="skill",
# check=manager_mode)(
# M("New", m="create"),
# M("List All"),
# #M("Skill Provisions", f="skill_provision"),
#),
M("Training Events", f="training_event",
check=manager_mode)(
M("New Event", m="create"),
#M("List All"),
M("Search Training Participants", f="training"),
M("Import Participant List", f="training", m="import"),
),
M("Training Course Catalog", f="course",
check=manager_mode)(
M("New Course", m="create"),
#M("List All"),
#M("Course Certificates", f="course_certificate"),
),
M("Certificate Catalog", f="certificate",
check=manager_mode)(
M("New Certificate", m="create"),
#M("List All"),
#M("Skill Equivalence", f="certificate_skill"),
),
#M("Programs", f="programme",
# check=[manager_mode, show_programmes])(
# M("New", m="create"),
# #M("List All"),
# M("Import Hours", f="programme_hours", m="import"),
#),
M("Reports", f="volunteer", m="report",
check=manager_mode)(
M("Volunteer Report", m="report"),
M("Training Report", f="training", m="report"),
),
#M("My Profile", f="person",
# check=personal_mode, vars=dict(mode="personal")),
#M("My Tasks", f="task",
# check=[personal_mode, show_tasks],
# vars=dict(mode="personal",
# mine=1)),
# This provides the link to switch to the manager mode:
M("Volunteer Management", f="index",
check=[personal_mode, is_org_admin]),
# This provides the link to switch to the personal mode:
#M("Personal Profile", f="person",
# check=manager_mode, vars=dict(mode="personal"))
)
# END =========================================================================