~hsiung0911/sahana-eden/test

« back to all changes in this revision

Viewing changes to controllers/dvi.py

  • Committer: eliao
  • Date: 2010-08-01 09:56:45 UTC
  • Revision ID: eliao@ibm-l3bw307-20100801095645-gsq9wcmjan0o0tby
This is my change

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: utf-8 -*-
 
2
 
 
3
"""
 
4
    DVI Module - Controllers
 
5
"""
 
6
 
 
7
module = request.controller
 
8
 
 
9
if module not in deployment_settings.modules:
 
10
    session.error = T("Module disabled!")
 
11
    redirect(URL(r=request, c="default", f="index"))
 
12
 
 
13
# Only people with the DVI role should be able to access this module
 
14
#if shn_has_role("DVI"):
 
15
#    pass
 
16
#else:
 
17
#    session.error = T("Not Authorised!")
 
18
#    redirect(URL(r=request, c="default", f="user", args="login"))
 
19
 
 
20
# Options Menu (available in all Functions" Views)
 
21
def shn_menu():
 
22
    response.menu_options = [
 
23
        [T("Recovery Requests"), False, URL(r=request, f="recreq"),[
 
24
            [T("List Requests"), False, URL(r=request, f="recreq")],
 
25
            [T("New Request"), False, URL(r=request, f="recreq", args="create")],
 
26
        ]],
 
27
        [T("Recovery Reports"), False, URL(r=request, f="body"),[
 
28
            [T("List Reports"), False, URL(r=request, f="body")],
 
29
            [T("New Report"), False, URL(r=request, f="body", args="create")],
 
30
        ]],
 
31
        [T("Search by ID Tag"), False, URL(r=request, f="body", args="search_simple")]
 
32
    ]
 
33
    menu_selected = []
 
34
    if session.rcvars and "dvi_body" in session.rcvars:
 
35
        body = db.dvi_body
 
36
        query = (body.id == session.rcvars["dvi_body"])
 
37
        record = db(query).select(body.id, body.pr_pe_label, limitby=(0,1)).first()
 
38
        if record:
 
39
            label = record.pr_pe_label
 
40
            menu_selected.append(["%s: %s" % (T("Body"), label), False,
 
41
                                 URL(r=request, f="body", args=[record.id])])
 
42
    if menu_selected:
 
43
        menu_selected = [T("Open recent"), True, None, menu_selected]
 
44
        response.menu_options.append(menu_selected)
 
45
 
 
46
shn_menu()
 
47
 
 
48
# S3 framework functions
 
49
def index():
 
50
 
 
51
    """ Module's Home Page """
 
52
 
 
53
    try:
 
54
        module_name = deployment_settings.modules[module].name_nice
 
55
    except:
 
56
        module_name = T("Disaster Victim Identification")
 
57
 
 
58
    return dict(module_name=module_name)
 
59
 
 
60
def recreq():
 
61
 
 
62
    """ RESTful CRUD controller """
 
63
 
 
64
    resource = request.function
 
65
    
 
66
    response.s3.pagination = True
 
67
 
 
68
    def recreq_postp(jr, output):
 
69
        if jr.representation in ("html", "popup"):
 
70
            label = UPDATE
 
71
            linkto = shn_linkto(jr, sticky=True)("[id]")
 
72
            response.s3.actions = [
 
73
                dict(label=str(label), _class="action-btn", url=linkto)
 
74
            ]
 
75
        return output
 
76
    response.s3.postp = recreq_postp
 
77
 
 
78
    output = shn_rest_controller(module, resource, listadd=False)
 
79
 
 
80
    shn_menu()
 
81
    return output
 
82
 
 
83
def body():
 
84
 
 
85
    """ RESTful CRUD controller """
 
86
 
 
87
    resource = request.function
 
88
    
 
89
    response.s3.pagination = True
 
90
 
 
91
    def body_postp(jr, output):
 
92
        if jr.representation in ("html", "popup"):
 
93
            if not jr.component:
 
94
                label = READ
 
95
            else:
 
96
                label = UPDATE
 
97
            linkto = shn_linkto(jr, sticky=True)("[id]")
 
98
            response.s3.actions = [
 
99
                dict(label=str(label), _class="action-btn", url=linkto)
 
100
            ]
 
101
        return output
 
102
    response.s3.postp = body_postp
 
103
 
 
104
    output = shn_rest_controller(module, resource,
 
105
                                 main="pr_pe_label",
 
106
                                 extra="opt_pr_gender",
 
107
                                 rheader=lambda jr: \
 
108
                                         shn_dvi_rheader(jr, tabs=[
 
109
                                            (T("Recovery"), ""),
 
110
                                            (T("Checklist"), "checklist"),
 
111
                                            (T("Tracing"), "presence"),
 
112
                                            (T("Images"), "image"),
 
113
                                            (T("Identity"), "identification"),
 
114
                                            (T("Effects Inventory"), "effects"),
 
115
                                            (T("Description"), "pd_general"),
 
116
                                            (T("Head"), "pd_head"),
 
117
                                            (T("Face"), "pd_face"),
 
118
                                            (T("Teeth"), "pd_teeth"),
 
119
                                            (T("Body"), "pd_body")
 
120
                                         ]),
 
121
                                 sticky=True,
 
122
                                 listadd=False)
 
123
    shn_menu()
 
124
    return output
 
125
 
 
126
# -----------------------------------------------------------------------------
 
127
def download():
 
128
 
 
129
    """ Download a file. """
 
130
 
 
131
    return response.download(request, db)
 
132
 
 
133
# -----------------------------------------------------------------------------
 
134
def tooltip():
 
135
 
 
136
    """ Ajax tooltips """
 
137
 
 
138
    if "formfield" in request.vars:
 
139
        response.view = "pr/ajaxtips/%s.html" % request.vars.formfield
 
140
    return dict()
 
141
 
 
142
#
 
143
# -----------------------------------------------------------------------------