Beispiel #1
0
    def project():
        """ PROJECT / Project/Task Management """

        return M(c="project", f="task")(M("Tasks", f="task")(
            M("Create", m="create"),
            M("My Open Tasks", vars={"mine": 1}),
        ), )
Beispiel #2
0
    def project():
        """ PROJECT / Project Management """

        return M(c="project") (
                    M("Projects", f="project")(
                        M("Create", m="create")
                        )
                    )
    def req():

        return M(c="req", f="need")(
                M("Recruitment", link=False)(
                    M("Open Requests", f="need"),
                    M("Assigned Staff", f="need"),
                    )
                )
Beispiel #4
0
    def event():
        """ EVENT / Event Management """

        return M(c="event")(M("Events",
                              f="event")(M("Create",
                                           m="create",
                                           restrict=("EVENT_MANAGER", )), ),
                            M("Administration",
                              restrict=("ADMIN", ))(M("Event Types",
                                                      f="event_type"), ))
Beispiel #5
0
    def transport():
        """ Transport """

        return M(c="transport")(
                    M("Airports", f="airport")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                    M("Flights", f="flight")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                    M("Airplane Types", f="airplane")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                    )
Beispiel #6
0
    def org():
        """ ORG / Organization Registry """

        sysroles = current.auth.get_system_roles()

        ADMIN = sysroles.ADMIN
        ORG_GROUP_ADMIN = sysroles.ORG_GROUP_ADMIN

        return M(c="org")(M("Organizations", f="organisation")(
            M("Hierarchy", m="hierarchy"),
            M("Create", m="create", restrict=(ADMIN, ORG_GROUP_ADMIN)),
        ), M("Facilities", f="facility")(M("Create", m="create"), ),
                          M("Administration",
                            restrict=(ADMIN, ORG_GROUP_ADMIN))(
                                M("Facility Types", f="facility_type"),
                                M("Organization Types", f="organisation_type"),
                                M("Sectors", f="sector"),
                            ))
Beispiel #7
0
    def hrm():
        """ HRM / Human Resources Management """

        #settings = current.deployment_settings

        #teams = settings.get_hrm_teams()
        #use_teams = lambda i: teams

        return M(c="hrm")(
                    M("Staff", f="staff")( # settings.get_hrm_staff_label()
                        # Always create via User
                        #M("Create", m="create"),
                        ),
                    #M(teams, f="group", check=use_teams)(
                    #    M("Create", m="create"),
                    #    ),
                    #M("Job Titles", f="job_title")(
                    #    M("Create", m="create"),
                    #    ),
                    )
Beispiel #8
0
    def med():
        """ Medical """

        ADMIN = current.auth.get_system_roles().ADMIN

        return M(c="med")(
                    M("Medical Facilities", f="hospital", m="summary")(
                        M("Create", m="create"),
                        ),
                    M("Medical Personnel", f="contact")(
                        M("Create", m="create"),
                        ),
                    M("Pharmacies", f="pharmacy")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                    M("Administration", link=False, restrict=ADMIN)(
                        M("Qualifications", c="hrm", f="skill"),
                        ),
                    )
Beispiel #9
0
    def disease():

        has_role = current.auth.s3_has_role
        daily_report = lambda i: has_role("ORG_ADMIN") and \
                                 has_role("TEST_PROVIDER", include_admin=False)
        return M(c="disease")(
                    M("Test Results", f="case_diagnostics", restrict="TEST_PROVIDER")(
                        M("Registrieren", m="register"),
                        M("Statistics", m="report"),
                        ),
                    M("Daily Reports", f="testing_report")(
                        M("Create", m="create", check=daily_report),
                        M("Statistics", m="report"),
                        ),
                    M("Administration", restrict="ADMIN")(
                        M("Diseases", f="disease"),
                        )
                    )
Beispiel #10
0
    def fin():
        """ FIN / Finance """

        return M(c="fin")(
            M("Voucher Programs",
              f="voucher_program")(M("Create",
                                     m="create",
                                     restrict=("PROGRAM_MANAGER")), ),
            M("Vouchers", f="voucher")(M("Create Voucher",
                                         m="create",
                                         restrict=("VOUCHER_ISSUER")), ),
            M("Accepted Vouchers", f="voucher_debit")(
                M("Accept Voucher", m="create", restrict=("VOUCHER_PROVIDER")),
                M("Statistics", m="report"),
            ),
        )
Beispiel #11
0
    def vol():
        """ VOL / Volunteer Management """

        settings = current.deployment_settings

        teams = settings.get_hrm_teams()
        use_teams = lambda i: teams

        return M(c="vol")(
            M("Volunteers", f="volunteer")(M("Create", m="create"), ),
            M(teams, f="group", check=use_teams)(M("Create", m="create"), ),
            M("Job Titles", f="job_title")(M("Create", m="create"), ),
        )
Beispiel #12
0
    def disease():

        s3db = current.s3db
        report_results = lambda i: s3db.get_config("disease_case_diagnostics",
                                                   "insertable", True)

        return M(c="disease")(M("Test Results", f="case_diagnostics")(
            M("Registrieren", m="create", check=report_results),
            M("Statistics", m="report"),
        ), M("Administration", restrict="ADMIN")(M("Diseases", f="disease"), ))
Beispiel #13
0
    def hrm():
        """ HRM / Human Resources Management """

        settings = current.deployment_settings

        teams = settings.get_hrm_teams()
        use_teams = lambda i: teams

        return M(c="hrm")(
            M(settings.get_hrm_staff_label(), f="staff")(M("Create",
                                                           m="create"), ),
            M(teams, f="group", check=use_teams)(M("Create", m="create"), ),
            M("Job Titles", f="job_title")(M("Create", m="create"), ),
        )
Beispiel #14
0
    def cr():
        """ CR / Shelter Registry """

        ADMIN = current.auth.get_system_roles().ADMIN

        return M(c="cr")(
            M("Shelters", f="shelter")(M("Create", m="create"), ),
            M("Administration", link=False, restrict=(ADMIN, ))(
                M("Shelter Types", f="shelter_type"),
                M("Shelter Services", f="shelter_service"),
            ),
        )
Beispiel #15
0
    def org():
        """ ORG / Organization Registry """

        auth = current.auth

        sysroles = auth.get_system_roles()
        ADMIN = sysroles.ADMIN
        ORG_GROUP_ADMIN = sysroles.ORG_GROUP_ADMIN

        has_roles = auth.s3_has_roles
        is_org_user = not has_roles((ADMIN, ORG_GROUP_ADMIN)) and \
                      has_roles(("RELIEF_PROVIDER", "ORG_ADMIN"))

        return M(c="org")(M("Organizations", c="org", f="organisation")(
            M("Create", m="create", restrict=(ADMIN, ORG_GROUP_ADMIN)),
            M("My Organizations", vars={"mine": "1"}, check=is_org_user),
            M("All Organizations", check=is_org_user),
        ), M("Administration", restrict=ADMIN)(
            M("Organization Types", f="organisation_type"),
            M("Sectors", f="sector"),
        ))
Beispiel #16
0
    def cr():
        """ CR / Shelter Registry """

        ADMIN = current.auth.get_system_roles().ADMIN

        return M(c="cr")(
                    M("Accommodation", f="shelter")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                    M("Administration", link=False, restrict=ADMIN)(
                        M("Shelter Types", f="shelter_type"),
                        ),
                    )
Beispiel #17
0
    def org():
        """ ORG / Organization Registry """

        org_menu = M("Organizations", f="organisation", link=False)

        if current.auth.s3_has_role("ORG_GROUP_ADMIN"):
            realms = current.auth.permission.permitted_realms(
                "org_group", "update")
            gtable = current.s3db.org_group
            query = (gtable.deleted == False)
            if realms is not None:
                query = (gtable.pe_id.belongs(realms)) & query
            groups = current.db(query).select(
                gtable.id,
                gtable.name,
                orderby=gtable.name,
            )
            for group in groups:
                org_menu(
                    M(
                        group.name,
                        f="organisation",
                        vars={"g": group.id},
                        translate=False,
                    ))

        org_menu(
            M("My Organizations", vars={"mine": 1}, restrict="ORG_ADMIN"),
            M("Create Organization", m="create", restrict="ORG_GROUP_ADMIN"),
        )

        return M(c="org")(
            org_menu,
            M("Administration", restrict=("ADMIN"))(
                M("Facility Types", f="facility_type"),
                M("Organization Types", f="organisation_type"),
                #    M("Sectors", f="sector"),
            ))
Beispiel #18
0
    def org():
        """ ORG / Organization Registry """

        ADMIN = current.auth.get_system_roles().ADMIN

        return M()(
                    M("Organizations", c="org", f="organisation")(
                        #M("Hierarchy", m="hierarchy"),
                        M("Create", m="create", restrict=ADMIN),
                        ),
                    M("Staff", c="hrm", f="staff")(
                        # Always create via User
                        #M("Create", m="create"),
                        ),
                    M("Administration", restrict=ADMIN)(
                        M("Organization Types", c="org", f="organisation_type"),
                        )
                    )
    def vol():
        """ VOL / Volunteer Management """

        pending_label = current.T("Pending Requests")
        if current.auth.s3_has_role("COORDINATOR"):
            from s3 import FS
            query = (FS("end_date") >= current.request.utcnow) & \
                    (FS("status") == "REQ")
            resource = current.s3db.resource("hrm_delegation",
                                             filter = query,
                                             )
            num_pending_requests = resource.count()
            if num_pending_requests:
                pending_label = "%s (%s)" % (pending_label, num_pending_requests)

        return M(c=("vol", "hrm"))(
                    M("Volunteers", c="vol", f="person")(
                        M("Create", m="create", t="pr_person"),
                        M("Currently Deployed",
                          vars = {"deployed_now": 1},
                          ),
                        M("Archive",
                          vars = {"active": "0"},
                          restrict = "COORDINATOR",
                          ),
                        ),
                    M("Deployments", c="hrm", f="delegation")(
                        M(pending_label,
                          vars = {"workflow": "p"},
                          translate = False,
                          ),
                        M("Processed Requests",
                          vars = {"workflow": "d"},
                          ),
                        M("Archive",
                          vars = {"workflow": "o"},
                          ),
                        M("Organizer", m="organize", restrict="HRMANAGER"),
                        ),
                    M("Statistics", link=False)(
                        M("Deployments", c="hrm", f="delegation", m="report"),
                        M("Volunteers", c="vol", f="person", m="report",
                          restrict = "COORDINATOR",
                          ),
                        ),
                    M("Administration", link=False, restrict="ADMIN")(
                        M("Occupation Types", c="pr", f="occupation_type"),
                        M("Skills / Resources", c="hrm", f="skill"),
                        #M("Competency Levels", c="hrm", f="competency_rating"),
                        )
                    )
Beispiel #20
0
    def br():
        """ Beneficiary Registry """

        s3db = current.s3db

        labels = s3db.br_terminology()
        crud_strings = s3db.br_crud_strings("pr_person")

        f = current.request.function

        auth = current.auth
        is_event_manager = auth.s3_has_role("EVENT_MANAGER")
        is_relief_provider = auth.s3_has_role("RELIEF_PROVIDER",
                                              include_admin=False)
        is_case_manager = auth.s3_has_role("CASE_MANAGER", include_admin=False)
        org_role = is_event_manager or is_relief_provider or is_case_manager

        if org_role:
            # Org Users: separate menus per function
            if is_event_manager and f in ("offers", "assistance_type"):
                # Relief Offers
                menu = [
                    M("Current Relief Offers", f="offers")(
                        M("Statistics", m="report"),
                        # TODO enable when implemented
                        #M("Map", m="map"),
                    ),
                    M("Approval",
                      f="offers",
                      link=False,
                      restrict="EVENT_MANAGER")(
                          M("Pending Approvals", vars={"pending": "1"}),
                          M("Blocked Entries", vars={"blocked": 1}),
                          M("All Offers", vars={"all": 1}),
                      ),
                    M("Administration", link=False,
                      restrict="ADMIN")(M("Assistance Types",
                                          f="assistance_type"), )
                ]
            elif f in ("person", "case_activity", "offers"):
                # Cases, needs and relief offers
                menu = [
                    M(labels.CURRENT,
                      f="person",
                      vars={"closed": "0"},
                      restrict=("EVENT_MANAGER", "RELIEF_PROVIDER",
                                "CASE_MANAGER"))(M(crud_strings.label_create,
                                                   m="create"), ),
                    M("Our Needs",
                      f="case_activity",
                      check=lambda i: is_relief_provider or is_case_manager)(M(
                          "Statistic", m="report"), ),
                    M("Current Relief Offers",
                      f="offers",
                      check=lambda i: not is_event_manager)(
                          M("Statistics", m="report"),
                          # TODO enable when implemented
                          #M("Map", m="map"),
                      ),
                    M("Archive", link=False)(
                        M(labels.CLOSED, f="person", vars={"closed": "1"}),
                        M("Invalid Cases",
                          f="person",
                          vars={"invalid": "1"},
                          restrict=["ADMIN"]),
                    ),
                ]
            elif f in ("assistance_offer", "assistance_type"):
                # Our Offers
                menu = [
                    M("Our Relief Offers",
                      f="assistance_offer",
                      restrict="RELIEF_PROVIDER")(M("Create", m="create"), ),
                ]
            else:
                # Needs
                menu = [
                    M("Current Needs", f="activities")(M("Statistic",
                                                         m="report"), ),
                    M("Administration", link=False,
                      restrict="ADMIN")(M("Need Types", f="need"), )
                ]
        else:
            # Private Citizen: combined menu
            menu = [
                M("My Needs", f="case_activity")(
                    M("Report Need", m="create"),
                    M("Matching Offers", f="offers", vars={"match": "1"}),
                    M("All Relief Offers", f="offers"),
                ),
                M("My Relief Offers", f="assistance_offer")(M("New Offer",
                                                              m="create"), ),
                M("All Current Needs", f="activities")(M("Statistic",
                                                         m="report"), ),
            ]

        return M(c="br")(menu)
    def admin(self):
        """ ADMIN menu """

        if not current.auth.s3_has_role("ADMIN"):
            # OrgAdmin: No Side-menu
            return None

        settings = current.deployment_settings
        consent_tracking = lambda i: settings.get_auth_consent_tracking()

        # NB: Do not specify a controller for the main menu to allow
        #     re-use of this menu by other controllers
        return M()(
                    M("User Management", c="admin", f="user")(
                        M("Create User", m="create"),
                        M("List All Users"),
                        M("Import Users", m="import"),
                        M("List All Roles", f="role"),
                    ),
                    M("Consent Tracking", c="admin", link=False, check=consent_tracking)(
                        M("Processing Types", f="processing_type"),
                        M("Consent Options", f="consent_option"),
                        ),
                    M("CMS", c="cms", f="post"),
                    M("Database", c="appadmin", f="index")(
                        M("Raw Database access", c="appadmin", f="index")
                    ),
                    M("Scheduler", c="admin", f="task"),
                    M("Error Tickets", c="admin", f="errors"),
                )
Beispiel #22
0
    def req():
        """ REQ / Request Management """

        has_role = current.auth.s3_has_role

        supply_coordinator = lambda i: has_role("SUPPLY_COORDINATOR")
        supply_distributor = lambda i: has_role(
            "SUPPLY_DISTRIBUTOR",
            include_admin=False,
        )
        supply_requester = lambda i: bool(get_managed_requester_orgs())

        order_access = lambda i: supply_coordinator(i) or \
                                 supply_requester(i)

        return M()(
            M("Orders##delivery",
              c="req",
              f="req",
              vars={"type": 1},
              check=order_access)(M("Create",
                                    m="create",
                                    vars={"type": 1},
                                    check=supply_requester), ),
            M("Shipment##process",
              c="inv",
              f="send",
              restrict="SUPPLY_COORDINATOR"),
            M("Shipments", c="inv", f="send", check=supply_distributor),
            M("Deliveries", "inv", "recv", check=supply_requester),
            M("Statistics", link=False, restrict="SUPPLY_COORDINATOR")(
                M("Orders##delivery", c="req", f="req", m="report"),
                M("Shipments", c="inv", f="send", m="report"),
            ),
            M("Items", c="supply", f="item")(M("Create", m="create"), ),
            M("Warehouses", c="inv", f="warehouse", restrict="ADMIN"),
        )
Beispiel #23
0
    def disease():

        return M(c="disease")(M("Test Results", f="case_diagnostics")(
            M("Registrieren", m="create"),
            M("Statistics", m="report"),
        ), M("Administration", restrict="ADMIN")(M("Diseases", f="disease"), ))
Beispiel #24
0
    def br():
        """ Beneficiary Registry """

        auth = current.auth
        has_role = auth.s3_has_role

        sysroles = auth.get_system_roles()
        ADMIN = sysroles.ADMIN
        ORG_GROUP_ADMIN = sysroles.ORG_GROUP_ADMIN

        s3db = current.s3db
        labels = s3db.br_terminology()
        crud_strings = s3db.br_crud_strings("pr_person")

        settings = current.deployment_settings
        use_activities = settings.get_br_case_activities()
        urgent_activities = use_activities and settings.get_br_case_activity_urgent_option(
        )

        manage_assistance = settings.get_br_manage_assistance()

        menu = M(c="br")

        # Statistics sub-memnu (common for all roles)
        statistics = M("Statistics", link=False)(
            M("Cases", f="person", m="report"),
            M("Activities",
              f="case_activity",
              m="report",
              check=use_activities),
            M("Measures",
              f="assistance_measure",
              m="report",
              check=manage_assistance),
        )

        # Registry sub-menu
        human_resource_id = auth.s3_logged_in_human_resource()
        if human_resource_id and has_role("CASE_MANAGEMENT"):

            # Side menu for case managers (including "my"-sections)
            menu(
                M(labels.CURRENT_MINE,
                  f="person",
                  vars={
                      "closed": "0",
                      "mine": "1"
                  })(
                      M(crud_strings.label_create, m="create"),
                      M(
                          "My Activities",
                          f="case_activity",
                          vars={"mine": "1"},
                          check=use_activities,
                      ),
                      M("Emergencies",
                        f="case_activity",
                        vars={
                            "mine": "1",
                            "~.priority": "0"
                        },
                        check=urgent_activities),
                  ),
                M("My Measures",
                  f="assistance_measure",
                  vars={"mine": "1"},
                  check=manage_assistance)(M("Calendar",
                                             m="organize",
                                             vars={"mine": "1"}), ),
                #M("Appointments"),
                statistics,
                M("Compilations", link=False)(
                    M("Current Cases", f="person", vars={"closed": "0"}),
                    M("All Cases", f="person"),
                    M("All Activities",
                      f="case_activity",
                      check=use_activities),
                    M("All Measures",
                      f="assistance_measure",
                      check=manage_assistance),
                ),
            )
        else:

            # Default side menu (without "my"-sections)
            menu(
                M(labels.CURRENT, f="person", vars={"closed": "0"})(
                    M(crud_strings.label_create, m="create"),
                    M(
                        "Activities",
                        f="case_activity",
                        check=use_activities,
                    ),
                    M(
                        "Emergencies",
                        f="case_activity",
                        vars={"~.priority": "0"},
                        check=urgent_activities,
                    ),
                ),
                M("Measures", f="assistance_measure", check=manage_assistance)(
                    #M("Overview"),
                ),
                #M("Appointments"),
                statistics,
                M("Compilations", link=False)(M("All Cases", f="person"), ),
            )

        # Archive- and Administration sub-menus (common for all roles)
        menu(M("Archive", link=False)(
                M(labels.CLOSED, f="person", vars={"closed": "1"}),
                M("Invalid Cases", f="person", vars={"invalid": "1"}, restrict=[ADMIN]),
                ),
             M("Administration", link=False, restrict=[ADMIN, ORG_GROUP_ADMIN])(
                M("Case Statuses", f="case_status"),
                M("Case Activity Statuses", f="case_activity_status",
                  check = lambda i: use_activities and settings.get_br_case_activity_status(),
                  ),
                M("Need Types", f="need",
                  check = lambda i: not settings.get_br_needs_org_specific(),
                  ),
                M("Assistance Statuses", f="assistance_status",
                  check = manage_assistance,
                  ),
                M("Assistance Types", f="assistance_type",
                  check = lambda i: manage_assistance and \
                                    settings.get_br_assistance_types(),
                  ),
                M(labels.THEMES, f="assistance_theme",
                  check = lambda i: manage_assistance and \
                                    settings.get_br_assistance_themes() and \
                                    not settings.get_br_assistance_themes_org_specific(),
                  ),
                ),
             )

        return menu
Beispiel #25
0
    def fin():
        """ FIN / Finance """

        auth = current.auth
        s3db = current.s3db

        voucher_create = lambda i: s3db.get_config("fin_voucher", "insertable",
                                                   True)
        voucher_accept = lambda i: s3db.get_config("fin_voucher_debit",
                                                   "insertable", True)

        is_program_accountant = lambda i: auth.s3_has_role(
            "PROGRAM_ACCOUNTANT",
            include_admin=False,
        )

        return M(c="fin")(
            M("Voucher Programs",
              f="voucher_program")(M("Create",
                                     m="create",
                                     restrict=("PROGRAM_MANAGER")), ),
            M("Vouchers", f="voucher")(
                M(
                    "Create Voucher",
                    m="create",
                    restrict=("VOUCHER_ISSUER"),
                    check=voucher_create,
                ),
                M(
                    "Create Group Voucher",
                    m="create",
                    restrict=("VOUCHER_ISSUER"),
                    vars={"g": "1"},
                    check=voucher_create,
                ),
                M("Statistics", m="report", restrict=("PROGRAM_MANAGER")),
            ),
            M("Accepted Vouchers", f="voucher_debit")(
                M(
                    "Accept Voucher",
                    m="create",
                    restrict=("VOUCHER_PROVIDER"),
                    check=voucher_accept,
                ),
                M(
                    "Accept Group Voucher",
                    m="create",
                    restrict=("VOUCHER_PROVIDER"),
                    vars={"g": "1"},
                    check=voucher_accept,
                ),
                M("Statistics", m="report"),
            ),
            M("Billing", link=False)(
                M("Compensation Claims", f="voucher_claim"),
                M("Invoices", f="voucher_invoice"),
                M(
                    "My Work List",
                    f="voucher_invoice",
                    vars={"mine": "1"},
                    check=is_program_accountant,
                ),
            ),
        )
Beispiel #26
0
    def admin(self):
        """ ADMIN menu """

        ADMIN = current.session.s3.system_roles.ADMIN
        settings_messaging = self.settings_messaging()

        settings = current.deployment_settings
        consent_tracking = lambda i: settings.get_auth_consent_tracking()
        is_data_repository = lambda i: settings.get_sync_data_repository()
        translate = settings.has_module("translate")

        # NB: Do not specify a controller for the main menu to allow
        #     re-use of this menu by other controllers
        return M(restrict=[ADMIN])(
            #M("Setup", c="setup", f="deployment")(
            #    #M("Create", m="create"),
            #    #M("Servers", f="server")(
            #    #),
            #    #M("Instances", f="instance")(
            #    #),
            #),
            #M("Settings", c="admin", f="setting")(
            #    settings_messaging,
            #),
            M("User Management", c="admin", f="user")(
                M("Create User", m="create"),
                M("List All Users"),
                M("Import Users", m="import"),
                M("List All Roles", f="role"),
                #M("List All Organization Approvers & Whitelists", f="organisation"),
                #M("Roles", f="group"),
                #M("Membership", f="membership"),
            ),
            M("Organizations", c="org", f="organisation")(
                M("Types", f="organisation_type"),
                M("Job Titles", c="hrm", f="job_title"),
            ),
            M("Consent Tracking",
              c="admin",
              link=False,
              check=consent_tracking)(
                  M("Processing Types", f="processing_type"),
                  M("Consent Options", f="consent_option"),
              ),
            #M("CMS", c="cms", f="post")(
            #),
            M("Database", c="appadmin", f="index")(M("Raw Database access",
                                                     c="appadmin",
                                                     f="index")),
            M("Error Tickets", c="admin", f="errors"),
            #M("Monitoring", c="setup", f="server")(
            #    M("Checks", f="monitor_check"),
            #    M("Servers", f="server"),
            #    M("Tasks", f="monitor_task"),
            #    M("Logs", f="monitor_run"),
            #),
            #M("Synchronization", c="sync", f="index")(
            #    M("Settings", f="config", args=[1], m="update"),
            #    M("Repositories", f="repository"),
            #    M("Public Data Sets", f="dataset", check=is_data_repository),
            #    M("Log", f="log"),
            #),
            #M("Edit Application", a="admin", c="default", f="design",
            #args=[request.application]),
            #M("Translation", c="admin", f="translate", check=translate)(
            #   M("Select Modules for translation", c="admin", f="translate",
            #     m="create", vars=dict(opt="1")),
            #   M("Upload translated files", c="admin", f="translate",
            #     m="create", vars=dict(opt="2")),
            #   M("View Translation Percentage", c="admin", f="translate",
            #     m="create", vars=dict(opt="3")),
            #   M("Add strings manually", c="admin", f="translate",
            #     m="create", vars=dict(opt="4"))
            #),
            #M("View Test Result Reports", c="admin", f="result"),
            #M("Portable App", c="admin", f="portable")
        )
Beispiel #27
0
    def security():
        """ Security """

        ADMIN = current.auth.get_system_roles().ADMIN

        return M()(M("Checkpoints", c="security", f="checkpoint")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                   # View from inside Activity?
                   M("Evacuation Routes", c="gis", f="route")(
                        M("Create", m="create"),
                        ),
                   M("Incident Reports", c="event", f="incident_report")(
                       M("Create", m="create"),
                       M("Map", m="map"),
                       ),
                   M("Security Zones", c="security", f="zone")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                   M("Administration", link=False, restrict=ADMIN)(
                        M("Incident Types", c="event", f="incident_type"),
                        M("Zone Types", c="security", f="zone_type"),
                        ),
                   )
Beispiel #28
0
    def br():
        """ Beneficiary Registry """

        auth = current.auth

        if not auth.s3_has_roles(("CASE_MANAGER",
                                  "CASE_SUPER",
                                  "ORG_ADMIN",
                                  )):
            # Can only see Activities
            return M(c="br")(
                    M("My Activities", f="case_activity")(),
                    M("Emergencies", f="case_activity",
                      vars = {"~.priority": "0"},
                      )
                    )

        from s3db.br import br_crud_strings, br_terminology
        crud_strings = br_crud_strings("pr_person")
        labels = br_terminology()

        system_roles = auth.get_system_roles()
        ADMIN = system_roles.ADMIN
        ORG_ADMIN = system_roles.ORG_ADMIN

        return M(c="br")(
                M(labels.CURRENT_MINE, f="person",
                  vars = {"closed": "0", "mine": "1"},
                  )(
                    M(crud_strings.label_create, m="create", restrict=ORG_ADMIN),
                    M("Activities", f="case_activity",
                      vars = {"my_cases": "1"},
                      ),
                    M("Emergencies", f="person",
                      vars = {"closed": "0", "mine": "1", "case.priority": "0"},
                      ),
                    ),
                M("Compilations", link=False)(
                    M("Urgent Cases", f="person",
                      vars = {"closed": "0",
                              "case.priority": "0",
                              }
                      ),
                    M("Current Cases", f="person",
                      vars = {"closed": "0"},
                      ),
                    M("All Cases", f="person"),
                    M("All Activities", f="case_activity",),
                    ),
                M("Statistics", link=False)(
                    M("Cases", f="person", m="report"),
                    M("Activities", f="case_activity", m="report"),
                    ),
                M("Archive", link=False)(
                    M(labels.CLOSED, f="person",
                      vars = {"closed": "1"},
                      ),
                    M("Invalid Cases", f="person",
                      vars = {"invalid": "1"},
                      restrict = ADMIN,
                      ),
                    ),
                M("Administration", link=False, restrict=ADMIN)(
                    M("Case Statuses", f="case_status"),
                    M("Case Activity Statuses", f="case_activity_status"),
                    M("Needs", f="need"),
                    M("Occupations", c="pr", f="occupation_type"),
                    ),
                )
Beispiel #29
0
    def org():
        """ ORG / Organization Registry """

        org_menu = M("Organizations", f="organisation")

        auth = current.auth

        ORG_GROUP_ADMIN = auth.get_system_roles().ORG_GROUP_ADMIN
        has_role = auth.s3_has_role

        if has_role(ORG_GROUP_ADMIN):
            gtable = current.s3db.org_group
            query = (gtable.deleted == False)
            realms = auth.user.realms[ORG_GROUP_ADMIN] \
                     if not has_role("ADMIN") else None
            if realms is not None:
                query = (gtable.pe_id.belongs(realms)) & query
            groups = current.db(query).select(
                gtable.id,
                gtable.name,
                orderby=gtable.name,
            )
            for group in groups:
                org_menu(
                    M(
                        group.name,
                        f="organisation",
                        vars={"g": group.id},
                        translate=False,
                    ))

        org_menu(
            M("My Organizations", vars={"mine": 1}, restrict="ORG_ADMIN"),
            M("Create Organization", m="create", restrict="ORG_GROUP_ADMIN"),
        )

        return M(c="org")(
            org_menu,
            M("Facilities", f="facility", link=False)(
                M(
                    "Unapproved Test Stations",
                    vars={"$$pending": "1"},
                    restrict="ORG_GROUP_ADMIN",
                ),
                M("Public Registry", m="summary"),
            ),
            M("Statistics", link=False)(
                M("Organizations", f="organisation", m="report"),
                M("Facilities", f="facility", m="report"),
            ),
            M("Administration", restrict=("ADMIN"))(
                M("Facility Types", f="facility_type"),
                M("Organization Types", f="organisation_type"),
                M("Services", f="service"),
            ),
        )
Beispiel #30
0
    def fin():
        """ Logistics """

        ADMIN = current.auth.get_system_roles().ADMIN

        return M()(
                    M("Accommodation", c="cr", f="shelter")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                    M("Banks", c="fin", f="bank")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                    M("Brokers", c="fin", f="broker")(
                        M("Create", m="create"),
                        M("Map", m="map"),
                        ),
                    M("Stock", c="inv", f="inv_item")(
                        M("Create", m="create"),
                        M("Warehouses", f="warehouse"),
                        ),
                    M("Administration", link=False, restrict=ADMIN)(
                        M("Accomodation Types", c="cr", f="shelter_type"),
                        M("Bank Services", c="fin", f="bank_service"),
                        M("Item Catalog", c="supply", f="item"),
                        ),
                    )