1
# -*- coding: utf-8 -*-
4
Incident Reporting System - Controllers
7
module = request.controller
9
if module not in deployment_settings.modules:
10
session.error = T("Module disabled!")
11
redirect(URL(r=request, c="default", f="index"))
13
# Options Menu (available in all Functions' Views)
14
response.menu_options = [
15
[T("Reports"), False, URL(r=request, f="ireport"),[
16
[T("List"), False, URL(r=request, f="ireport")],
17
[T("Add"), False, URL(r=request, f="ireport", args="create")],
18
#[T("Search"), False, URL(r=request, f="report", args="search")]
20
[T("Incidents"), False, URL(r=request, f="incident"),[
21
[T("List"), False, URL(r=request, f="incident")],
22
[T("Add"), False, URL(r=request, f="incident", args="create")],
23
#[T("Search"), False, URL(r=request, f="incident", args="search")]
25
[T("Assessments"), False, URL(r=request, f="iassessment"),[
26
[T("List"), False, URL(r=request, f="iassessment")],
27
[T("Add"), False, URL(r=request, f="iassessment", args="create")],
28
#[T("Search"), False, URL(r=request, f="assessment", args="search")]
30
[T("Map"), False, URL(r=request, f="maps")],
35
module_name = deployment_settings.modules[module].name_nice
36
return dict(module_name=module_name)
39
"Show a Map of all Reports"
41
feature_class_id = db(db.gis_feature_class.name == "Incident").select(db.gis_feature_class.id, limitby=(0, 1)).first().id
42
reports = db(db.gis_location.feature_class_id == feature_class_id).select()
43
popup_url = URL(r=request, f="report", args="read.popup?report.location_id=")
44
map = gis.show_map(feature_queries = [{"name":Tstr("Reports"), "query":reports, "active":True, "popup_url": popup_url}], window=True)
50
resource = request.function
52
response.s3.pagination = True
54
db.irs_iimage.assessment_id.readable = db.irs_iimage.assessment_id.writable = False
55
db.irs_iimage.incident_id.readable = db.irs_iimage.incident_id.writable = False
56
db.irs_iimage.report_id.readable = db.irs_iimage.report_id.writable = False
58
output = shn_rest_controller(module, resource,
59
rheader=lambda r: shn_irs_rheader(r,
60
tabs = [(T("Incident Details"), None),
61
(T("Reports"), "ireport"),
62
(T("Images"), "iimage"),
63
(T("Assessments"), "iassessment"),
64
(T("Response"), "iresponse")]),
70
resource = request.function
72
db.irs_iimage.assessment_id.readable = db.irs_iimage.assessment_id.writable = False
73
db.irs_iimage.report_id.readable = db.irs_iimage.report_id.writable = False
75
response.s3.pagination = True
77
output = shn_rest_controller(module, resource,
78
rheader=lambda r: shn_irs_rheader(r,
79
tabs = [(T("Report Details"), None),
80
(T("Images"), "iimage") ]),
86
resource = request.function
88
db.irs_iimage.assessment_id.readable = db.irs_iimage.assessment_id.writable = False
89
db.irs_iimage.report_id.readable = db.irs_iimage.report_id.writable = False
91
response.s3.pagination = True
93
output = shn_rest_controller(module, resource,
94
rheader=lambda r: shn_irs_rheader(r,
95
tabs = [(T("Assessment Details"), None),
96
(T("Images"), "iimage") ]),
100
def shn_irs_rheader(r, tabs=[]):
102
if r.representation == "html":
103
rheader_tabs = shn_rheader_tabs(r, tabs)
105
if r.name == "ireport":
107
reporter = report.person_id
109
reporter = shn_pr_person_represent(reporter)
110
location = report.location_id
112
location = shn_gis_location_represent(location)
115
TH(T("Short Description: ")), report.name,
116
TH(T("Reporter: ")), reporter),
118
TH(T("Contacts: ")), report.contact,
119
TH(T("Location: ")), location)
123
elif r.name == "incident":
125
location = incident.location_id
127
location = shn_gis_location_represent(location)
128
category = irs_incident_type_opts.get(incident.category, incident.category)
131
TH(T("Short Description: ")), incident.name,
132
TH(T("Category: ")), category),
134
TH(T("Contacts: ")), incident.contact,
135
TH(T("Location: ")), location)
139
elif r.name == "iassessment":
140
assessment = r.record
141
author = shn_pr_person_represent(assessment.created_by)
142
itype = irs_assessment_type_opts.get(assessment.itype, UNKNOWN_OPT)
143
etype = irs_event_type_opts.get(assessment.event_type, UNKNOWN_OPT)
146
TH(T("Assessment Type: ")), itype,
147
TH(T("Author: ")), author),
149
TH("Event type: "), etype,
150
TH(T("Date: ")), assessment.datetime)