Skip to content

Commit

Permalink
Merge branch 'master' of github.com:nursix/eden
Browse files Browse the repository at this point in the history
  • Loading branch information
nursix committed Apr 9, 2019
2 parents 3e47367 + b5ab2f1 commit ca3f4d1
Show file tree
Hide file tree
Showing 39 changed files with 2,824 additions and 1,147 deletions.
108 changes: 96 additions & 12 deletions controllers/br.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,12 @@ def index():
def index_alt():
""" Default Module Homepage """

# Just redirect to list of current cases
s3_redirect_default(URL(f="person", vars={"closed": "0"}))
from gluon import current
if current.auth.s3_has_permission("read", "pr_person", c="br", f="person"):
# Just redirect to list of current cases
s3_redirect_default(URL(f="person", vars={"closed": "0"}))

return {"module_name": settings.modules["br"].name_nice}

# =============================================================================
# Case File and Component Tabs
Expand All @@ -30,7 +34,7 @@ def person():
""" Case File: RESTful CRUD Controller """

# Set the default case status
default_status = s3db.br_case_default_status()
s3db.br_case_default_status()

# Set contacts-method for tab
s3db.set_method("pr", "person",
Expand Down Expand Up @@ -332,19 +336,29 @@ def prep(r):
filter_opts = (root_org,),
))

# TODO when assistance inline and using themes,
# limit selectable themes to case root org

# Default person_id in inline-measures
# Configure inline assistance measures
if assistance_inline:
if record:
mtable.person_id.default = record.id

if settings.get_br_assistance_themes() and root_org:
# Limit selectable themes to the case root org
field = mtable.theme_ids
dbset = s3db.br_org_assistance_themes(root_org)
field.requires = IS_EMPTY_OR(IS_ONE_OF(dbset, "br_assistance_theme.id",
field.represent,
multiple = True,
))
s3db.br_assistance_default_status()

elif r.component_name == "assistance_measure":

# Default human_resource_id in assistance measures
mtable = r.component.table
ltable = s3db.br_assistance_measure_theme

# Default status
s3db.br_assistance_default_status()

# Default human_resource_id
if human_resource_id and settings.get_br_assistance_manager():
mtable.human_resource_id.default = human_resource_id

Expand All @@ -357,6 +371,30 @@ def prep(r):
requires.set_filter(filterby = "person_id",
filter_opts = (record.id,))

# Represent for br_assistance_measure_theme.id
details_per_theme = settings.get_br_assistance_details_per_theme()
if details_per_theme:
ltable.id.represent = s3db.br_AssistanceMeasureThemeRepresent(
paragraph = True,
details = True,
)

# Filter theme_id selectors to case root org
root_org = s3db.br_case_root_org(r.id)
if not root_org:
root_org = auth.root_org()
if root_org:
dbset = s3db.br_org_assistance_themes(root_org)
field = mtable.theme_ids
field.requires = IS_EMPTY_OR(IS_ONE_OF(dbset, "br_assistance_theme.id",
field.represent,
multiple = True,
))
field = ltable.theme_id
field.requires = IS_EMPTY_OR(IS_ONE_OF(dbset, "br_assistance_theme.id",
field.represent,
))

# Allow organizer to set an end_date
if r.method == "organize" and \
settings.get_br_assistance_measures_use_time():
Expand Down Expand Up @@ -795,6 +833,12 @@ def assistance_status():

return s3_rest_controller()

# -----------------------------------------------------------------------------
def assistance_theme():
""" Assistance Themes: RESTful CRUD controller """

return s3_rest_controller()

# -----------------------------------------------------------------------------
def assistance_type():
""" Types of Assistance: RESTful CRUD controller """
Expand All @@ -810,6 +854,9 @@ def prep(r):
resource = r.resource
table = resource.table

# Set default status
s3db.br_assistance_default_status()

# Populate human_resource_id with current user, don't link
human_resource_id = auth.s3_logged_in_human_resource()
if human_resource_id:
Expand Down Expand Up @@ -845,14 +892,16 @@ def prep(r):

if not r.component:

record = r.record
ltable = s3db.br_assistance_measure_theme

# Show person_id as link to case file, not writable in this perspective
field = table.person_id
field.writable = False
if r.representation != "popup":
field.represent = s3db.pr_PersonRepresent(show_link=True)

# Filter case_activity_id selector to current case
record = r.record
field = table.case_activity_id
if record and field.writable:
requires = field.requires
Expand All @@ -861,10 +910,28 @@ def prep(r):
requires.set_filter(filterby = "person_id",
filter_opts = (record.person_id,))

# Filter theme_ids selector to case root org
if record and field.writable:
root_org = s3db.br_case_root_org(record.person_id)
if not root_org:
root_org = auth.root_org()
if root_org:
dbset = s3db.br_org_assistance_themes(root_org)
field = table.theme_ids
field.requires = IS_EMPTY_OR(IS_ONE_OF(dbset, "br_assistance_theme.id",
field.represent,
multiple = True,
))
field = ltable.theme_id
field.requires = IS_EMPTY_OR(IS_ONE_OF(dbset, "br_assistance_theme.id",
field.represent,
))

# Adapt list fields to perspective
list_fields = [(T("ID"), "person_id$pe_label"),
"person_id",
#"assistance_type_id"|"comments",
#"theme_ids"|measure-theme-links,
#"human_resource_id",
"start_date",
#"hours",
Expand All @@ -875,11 +942,28 @@ def prep(r):
if not mine and settings.get_br_assistance_manager():
list_fields.insert(2, "human_resource_id")

use_themes = settings.get_br_assistance_themes()
details_per_theme = settings.get_br_assistance_details_per_theme()

# Include comments if not per-theme
if not use_themes or not details_per_theme:
list_fields.insert(2, "comments")

# Include themes if using themes
if use_themes:
if details_per_theme:
ltable.id.represent = s3db.br_AssistanceMeasureThemeRepresent(
paragraph = True,
details = True,
)

list_fields.insert(2, (T("Themes"), "assistance_measure_theme.id"))
else:
list_fields.insert(2, "theme_ids")

# Include type when using types, otherwise show details
if settings.get_br_assistance_types():
list_fields.insert(2, "assistance_type_id")
else:
list_fields.insert(2, "comments")

# Show effort when tracking effort
if settings.get_br_assistance_track_effort():
Expand Down
Loading

0 comments on commit ca3f4d1

Please sign in to comment.