Fixed bugs in rules returning strings.
This commit is contained in:
parent
bc7fc340f5
commit
9ea335d68f
4 changed files with 10 additions and 7 deletions
|
@ -79,6 +79,7 @@ class Field(models.Model):
|
||||||
return "{}".format(self.data_string)
|
return "{}".format(self.data_string)
|
||||||
elif self.field_type == "integer":
|
elif self.field_type == "integer":
|
||||||
return "{}".format(self.data_integer)
|
return "{}".format(self.data_integer)
|
||||||
|
return "Invalid type"
|
||||||
|
|
||||||
def get_datatype(self):
|
def get_datatype(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -70,13 +70,13 @@ general_section = Section(
|
||||||
title="General Info",
|
title="General Info",
|
||||||
html_description="<p>Each section of this report is designed to guide you through the reimbursement process. Please read through each and answer as many questions as you can that apply to you.</p><p>Be sure to click 'Save' after completing each section. Your entered data will be saved as you progress. You may also receive feedback from sections regarding policy restrictions and special requirements.</p>",
|
html_description="<p>Each section of this report is designed to guide you through the reimbursement process. Please read through each and answer as many questions as you can that apply to you.</p><p>Be sure to click 'Save' after completing each section. Your entered data will be saved as you progress. You may also receive feedback from sections regarding policy restrictions and special requirements.</p>",
|
||||||
fields={
|
fields={
|
||||||
"before_trip": {"number": 0, "label": "Have you taken this trip already?", "field_type": "boolean"},
|
"after_trip": {"number": 0, "label": "Have you taken this trip already?", "field_type": "boolean"},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
general_section.add_rule(
|
general_section.add_rule(
|
||||||
title="Pre-trip / post-trip check",
|
title="Pre-trip / post-trip check",
|
||||||
rule=lambda report, fields: None if fields['before_trip'] else "If you have already take the trip your request will require special approval by the administrator. You may skip the following 'Pre-trip Planning' section."
|
rule=lambda report, fields: "If you have already take the trip your request will require special approval by the administrator. You may skip the following 'Pre-trip Planning' section." if fields['after_trip'] else None
|
||||||
)
|
)
|
||||||
|
|
||||||
pol.add_section(general_section)
|
pol.add_section(general_section)
|
||||||
|
@ -193,7 +193,7 @@ lodging_section = Section(
|
||||||
"cost": {"number": 1, "label": "Total cost for lodging", "field_type": "decimal"},
|
"cost": {"number": 1, "label": "Total cost for lodging", "field_type": "decimal"},
|
||||||
"check_in_date": {"number": 2, "label": "Check-in date", "field_type": "date"},
|
"check_in_date": {"number": 2, "label": "Check-in date", "field_type": "date"},
|
||||||
"check_out_date": {"number": 3, "label": "Check-out date", "field_type": "date"},
|
"check_out_date": {"number": 3, "label": "Check-out date", "field_type": "date"},
|
||||||
"invoice_screenshot": {"number": 4, "label": "Screenshot of invoice", "field_type": "screenshot"},
|
"invoice_screenshot": {"number": 4, "label": "Screenshot of invoice", "field_type": "file"},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -53,10 +53,11 @@ def get_sections(r_id):
|
||||||
for rule in rules:
|
for rule in rules:
|
||||||
try:
|
try:
|
||||||
named_fields = generate_named_fields_for_section(data['fields'])
|
named_fields = generate_named_fields_for_section(data['fields'])
|
||||||
if not rule['rule'](data, named_fields):
|
result = rule['rule'](data, named_fields)
|
||||||
|
if not result is None:
|
||||||
info = {
|
info = {
|
||||||
"label": rule['title'],
|
"label": rule['title'],
|
||||||
"rule_break_text": rule['rule_break_text'],
|
"rule_break_text": result,
|
||||||
}
|
}
|
||||||
data['rule_violations'].append(info)
|
data['rule_violations'].append(info)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -342,10 +343,11 @@ def section(request, report_pk, section_pk):
|
||||||
for rule in rules:
|
for rule in rules:
|
||||||
try:
|
try:
|
||||||
named_fields = generate_named_fields_for_section(data['fields'])
|
named_fields = generate_named_fields_for_section(data['fields'])
|
||||||
if not rule['rule'](data, named_fields):
|
result = rule['rule'](data, named_fields)
|
||||||
|
if not result is None:
|
||||||
info = {
|
info = {
|
||||||
"label": rule['title'],
|
"label": rule['title'],
|
||||||
"rule_break_text": rule['rule_break_text'],
|
"rule_break_text": result,
|
||||||
}
|
}
|
||||||
data['rule_violations'].append(info)
|
data['rule_violations'].append(info)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
BIN
back/db.sqlite3
BIN
back/db.sqlite3
Binary file not shown.
Loading…
Reference in a new issue