forked from sahana/eden
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
NetHope Asset Tracking template: 1st cut
- Loading branch information
Showing
17 changed files
with
551 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
8dc439e (2014-12-21 09:53:30) | ||
d41542b (2014-12-21 13:25:56) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,275 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
try: | ||
# Python 2.7 | ||
from collections import OrderedDict | ||
except: | ||
# Python 2.6 | ||
from gluon.contrib.simplejson.ordered_dict import OrderedDict | ||
|
||
from gluon import current | ||
from gluon.storage import Storage | ||
|
||
T = current.T | ||
settings = current.deployment_settings | ||
|
||
""" | ||
Template settings | ||
All settings which are to configure a specific template are located here | ||
Deployers should ideally not need to edit any other files outside of their template folder | ||
""" | ||
|
||
#settings.base.system_name = T("Sahana Skeleton") | ||
#settings.base.system_name_short = T("Sahana") | ||
|
||
# PrePopulate data | ||
settings.base.prepopulate = ("NetHope", "default/users") | ||
|
||
# Theme (folder to use for views/layout.html) | ||
settings.base.theme = "NetHope" | ||
|
||
# Authentication settings | ||
# Should users be allowed to register themselves? | ||
#settings.security.self_registration = False | ||
# Do new users need to verify their email address? | ||
settings.auth.registration_requires_verification = True | ||
# Do new users need to be approved by an administrator prior to being able to login? | ||
settings.auth.registration_requires_approval = True | ||
#settings.auth.registration_requests_organisation = True | ||
|
||
# Approval emails get sent to all admins | ||
settings.mail.approver = "ADMIN" | ||
|
||
# Restrict the Location Selector to just certain countries | ||
# NB This can also be over-ridden for specific contexts later | ||
# e.g. Activities filtered to those of parent Project | ||
settings.gis.countries = ("GN", "LR", "ML", "SL") | ||
# Uncomment to display the Map Legend as a floating DIV | ||
settings.gis.legend = "float" | ||
|
||
# L10n settings | ||
# Languages used in the deployment (used for Language Toolbar & GIS Locations) | ||
# http://www.loc.gov/standards/iso639-2/php/code_list.php | ||
settings.L10n.languages = OrderedDict([ | ||
# ("ar", "العربية"), | ||
# ("bs", "Bosanski"), | ||
("en", "English"), | ||
# ("fr", "Français"), | ||
# ("de", "Deutsch"), | ||
# ("el", "ελληνικά"), | ||
# ("es", "Español"), | ||
# ("it", "Italiano"), | ||
# ("ja", "日本語"), | ||
# ("km", "ភាសាខ្មែរ"), | ||
# ("ko", "한국어"), | ||
# ("ne", "नेपाली"), # Nepali | ||
# ("prs", "دری"), # Dari | ||
# ("ps", "پښتو"), # Pashto | ||
# ("pt", "Português"), | ||
# ("pt-br", "Português (Brasil)"), | ||
# ("ru", "русский"), | ||
# ("tet", "Tetum"), | ||
# ("tl", "Tagalog"), | ||
# ("ur", "اردو"), | ||
# ("vi", "Tiếng Việt"), | ||
# ("zh-cn", "中文 (简体)"), | ||
# ("zh-tw", "中文 (繁體)"), | ||
]) | ||
# Default language for Language Toolbar (& GIS Locations in future) | ||
#settings.L10n.default_language = "en" | ||
# Uncomment to Hide the language toolbar | ||
settings.L10n.display_toolbar = False | ||
# Default timezone for users | ||
#settings.L10n.utc_offset = "UTC +0100" | ||
# Number formats (defaults to ISO 31-0) | ||
# Decimal separator for numbers (defaults to ,) | ||
settings.L10n.decimal_separator = "." | ||
# Thousands separator for numbers (defaults to space) | ||
settings.L10n.thousands_separator = "," | ||
|
||
# Security Policy | ||
# http://eden.sahanafoundation.org/wiki/S3AAA#System-widePolicy | ||
# 1: Simple (default): Global as Reader, Authenticated as Editor | ||
# 2: Editor role required for Update/Delete, unless record owned by session | ||
# 3: Apply Controller ACLs | ||
# 4: Apply both Controller & Function ACLs | ||
# 5: Apply Controller, Function & Table ACLs | ||
# 6: Apply Controller, Function, Table ACLs and Entity Realm | ||
# 7: Apply Controller, Function, Table ACLs and Entity Realm + Hierarchy | ||
# 8: Apply Controller, Function, Table ACLs, Entity Realm + Hierarchy and Delegations | ||
# | ||
#settings.security.policy = 7 # Organisation-ACLs | ||
|
||
settings.inv.direct_stock_edits = True | ||
|
||
# ----------------------------------------------------------------------------- | ||
# Comment/uncomment modules here to disable/enable them | ||
# Modules menu is defined in modules/eden/menu.py | ||
settings.modules = OrderedDict([ | ||
# Core modules which shouldn't be disabled | ||
("default", Storage( | ||
name_nice = T("Home"), | ||
restricted = False, # Use ACLs to control access to this module | ||
access = None, # All Users (inc Anonymous) can see this module in the default menu & access the controller | ||
module_type = None # This item is not shown in the menu | ||
)), | ||
("admin", Storage( | ||
name_nice = T("Administration"), | ||
#description = "Site Administration", | ||
restricted = True, | ||
access = "|1|", # Only Administrators can see this module in the default menu & access the controller | ||
module_type = None # This item is handled separately for the menu | ||
)), | ||
("appadmin", Storage( | ||
name_nice = T("Administration"), | ||
#description = "Site Administration", | ||
restricted = True, | ||
module_type = None # No Menu | ||
)), | ||
("errors", Storage( | ||
name_nice = T("Ticket Viewer"), | ||
#description = "Needed for Breadcrumbs", | ||
restricted = False, | ||
module_type = None # No Menu | ||
)), | ||
#("sync", Storage( | ||
# name_nice = T("Synchronization"), | ||
# #description = "Synchronization", | ||
# restricted = True, | ||
# access = "|1|", # Only Administrators can see this module in the default menu & access the controller | ||
# module_type = None # This item is handled separately for the menu | ||
#)), | ||
#("tour", Storage( | ||
# name_nice = T("Guided Tour Functionality"), | ||
# module_type = None, | ||
#)), | ||
#("translate", Storage( | ||
# name_nice = T("Translation Functionality"), | ||
# #description = "Selective translation of strings based on module.", | ||
# module_type = None, | ||
#)), | ||
("gis", Storage( | ||
name_nice = T("Map"), | ||
#description = "Situation Awareness & Geospatial Analysis", | ||
restricted = True, | ||
module_type = 1, # 1st item in the menu | ||
)), | ||
("pr", Storage( | ||
name_nice = T("Person Registry"), | ||
#description = "Central point to record details on People", | ||
restricted = True, | ||
access = "|1|", # Only Administrators can see this module in the default menu (access to controller is possible to all still) | ||
module_type = 10 | ||
)), | ||
("org", Storage( | ||
name_nice = T("Organizations"), | ||
#description = 'Lists "who is doing what & where". Allows relief agencies to coordinate their activities', | ||
restricted = True, | ||
module_type = 4 | ||
)), | ||
#("hrm", Storage( | ||
# name_nice = T("Staff"), | ||
# #description = "Human Resources Management", | ||
# restricted = True, | ||
# module_type = 2, | ||
#)), | ||
#("vol", Storage( | ||
# name_nice = T("Volunteers"), | ||
# #description = "Human Resources Management", | ||
# restricted = True, | ||
# module_type = 2, | ||
#)), | ||
#("cms", Storage( | ||
# name_nice = T("Content Management"), | ||
# #description = "Content Management System", | ||
# restricted = True, | ||
# module_type = 10, | ||
#)), | ||
#("doc", Storage( | ||
# name_nice = T("Documents"), | ||
# #description = "A library of digital resources, such as photos, documents and reports", | ||
# restricted = True, | ||
# module_type = 10, | ||
#)), | ||
#("msg", Storage( | ||
# name_nice = T("Messaging"), | ||
# #description = "Sends & Receives Alerts via Email & SMS", | ||
# restricted = True, | ||
# # The user-visible functionality of this module isn't normally required. Rather it's main purpose is to be accessed from other modules. | ||
# module_type = None, | ||
#)), | ||
("supply", Storage( | ||
name_nice = T("Supply Chain Management"), | ||
#description = "Used within Inventory Management, Request Management and Asset Management", | ||
restricted = True, | ||
module_type = None, # Not displayed | ||
)), | ||
("inv", Storage( | ||
name_nice = T("Warehouses"), | ||
#description = "Receiving and Sending Items", | ||
restricted = True, | ||
module_type = 10 | ||
)), | ||
("asset", Storage( | ||
name_nice = T("Assets"), | ||
#description = "Recording and Assigning Assets", | ||
restricted = True, | ||
module_type = 2, | ||
)), | ||
# Vehicle depends on Assets | ||
#("vehicle", Storage( | ||
# name_nice = T("Vehicles"), | ||
# #description = "Manage Vehicles", | ||
# restricted = True, | ||
# module_type = 10, | ||
#)), | ||
("req", Storage( | ||
name_nice = T("Requests"), | ||
#description = "Manage requests for supplies, assets, staff or other resources. Matches against Inventories where supplies are requested.", | ||
restricted = True, | ||
module_type = 3, | ||
)), | ||
#("project", Storage( | ||
# name_nice = T("Projects"), | ||
# #description = "Tracking of Projects, Activities and Tasks", | ||
# restricted = True, | ||
# module_type = 2 | ||
#)), | ||
#("cr", Storage( | ||
# name_nice = T("Shelters"), | ||
# #description = "Tracks the location, capacity and breakdown of victims in Shelters", | ||
# restricted = True, | ||
# module_type = 10 | ||
#)), | ||
#("hms", Storage( | ||
# name_nice = T("Hospitals"), | ||
# #description = "Helps to monitor status of hospitals", | ||
# restricted = True, | ||
# module_type = 10 | ||
#)), | ||
#("dvr", Storage( | ||
# name_nice = T("Disaster Victim Registry"), | ||
# #description = "Allow affected individuals & households to register to receive compensation and distributions", | ||
# restricted = True, | ||
# module_type = 10, | ||
#)), | ||
#("event", Storage( | ||
# name_nice = T("Events"), | ||
# #description = "Activate Events (e.g. from Scenario templates) for allocation of appropriate Resources (Human, Assets & Facilities).", | ||
# restricted = True, | ||
# module_type = 10, | ||
#)), | ||
#("transport", Storage( | ||
# name_nice = T("Transport"), | ||
# restricted = True, | ||
# module_type = 10, | ||
#)), | ||
#("stats", Storage( | ||
# name_nice = T("Statistics"), | ||
# #description = "Manages statistics", | ||
# restricted = True, | ||
# module_type = None, | ||
#)), | ||
]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
from gluon import * | ||
from s3 import S3CustomController | ||
|
||
THEME = "NetHope" | ||
|
||
# ============================================================================= | ||
class index(S3CustomController): | ||
""" Custom Home Page """ | ||
|
||
def __call__(self): | ||
|
||
output = {} | ||
|
||
# Allow editing of page content from browser using CMS module | ||
if current.deployment_settings.has_module("cms"): | ||
system_roles = current.auth.get_system_roles() | ||
ADMIN = system_roles.ADMIN in current.session.s3.roles | ||
s3db = current.s3db | ||
table = s3db.cms_post | ||
ltable = s3db.cms_post_module | ||
module = "default" | ||
resource = "index" | ||
query = (ltable.module == module) & \ | ||
((ltable.resource == None) | \ | ||
(ltable.resource == resource)) & \ | ||
(ltable.post_id == table.id) & \ | ||
(table.deleted != True) | ||
item = current.db(query).select(table.body, | ||
table.id, | ||
limitby=(0, 1)).first() | ||
if item: | ||
if ADMIN: | ||
item = DIV(XML(item.body), | ||
BR(), | ||
A(current.T("Edit"), | ||
_href=URL(c="cms", f="post", | ||
args=[item.id, "update"]), | ||
_class="action-btn")) | ||
else: | ||
item = DIV(XML(item.body)) | ||
elif ADMIN: | ||
if current.response.s3.crud.formstyle == "bootstrap": | ||
_class = "btn" | ||
else: | ||
_class = "action-btn" | ||
item = A(current.T("Edit"), | ||
_href=URL(c="cms", f="post", args="create", | ||
vars={"module": module, | ||
"resource": resource | ||
}), | ||
_class="%s cms-edit" % _class) | ||
else: | ||
item = "" | ||
else: | ||
item = "" | ||
output["item"] = item | ||
|
||
self._view(THEME, "index.html") | ||
return output | ||
|
||
# END ========================================================================= |
Oops, something went wrong.