diff options
Diffstat (limited to 'core/models/wallets.py')
-rw-r--r-- | core/models/wallets.py | 81 |
1 files changed, 42 insertions, 39 deletions
diff --git a/core/models/wallets.py b/core/models/wallets.py index c0a8664..ecf442c 100644 --- a/core/models/wallets.py +++ b/core/models/wallets.py @@ -213,6 +213,7 @@ class Wallet(models.Model): def get_ticks(self): """Reads all the JSON data and sets the colour of the completion tick for each condition""" ticks = {} + waldata = self.get_json() if not waldata: ticks["S"] = "darkgrey" @@ -278,57 +279,59 @@ class Wallet(models.Model): if 'notes not required' not in waldata: waldata['notes not required'] = False + - # Notes, Plan, Elevation; Tunnel - if waldata["electronic survey"]: + # Notes, Plan, Elevation + files = self.get_fnames() + + # Notes required + notes_scanned = reduce(operator.or_, [f.startswith("note") for f in files], False) + notes_scanned = reduce(operator.or_, [f.endswith("notes") for f in files], notes_scanned) + notes_required = not (notes_scanned or waldata["notes not required"]) + if notes_required: + ticks["N"] = "red" + else: ticks["N"] = "green" + # print(f"{self.walletname} {ticks['N'].upper()} {notes_scanned=} {notes_required=} {waldata['notes not required']=}") + + # Plan drawing required + plan_scanned = reduce(operator.or_, [f.startswith("plan") for f in files], False) + plan_scanned = reduce(operator.or_, [f.endswith("plan") for f in files], plan_scanned) + plan_drawing_required = not (plan_scanned or waldata["plan drawn"] or waldata["plan not required"]) + if plan_drawing_required: + ticks["P"] = "red" + else: ticks["P"] = "green" - ticks["E"] = "green" - ticks["T"] = "green" + + # Elev drawing required + elev_scanned = reduce(operator.or_, [f.startswith("elev") for f in files], False) + elev_scanned = reduce(operator.or_, [f.endswith("elev") for f in files], elev_scanned) + elev_scanned = reduce(operator.or_, [f.endswith("elevation") for f in files], elev_scanned) + elev_drawing_required = not (elev_scanned or waldata["elev drawn"] or waldata["elev not required"]) + if elev_drawing_required: + ticks["E"] = "red" else: + ticks["E"] = "green" - files = self.get_fnames() - - # Notes required - notes_scanned = reduce(operator.or_, [f.startswith("note") for f in files], False) - notes_scanned = reduce(operator.or_, [f.endswith("notes") for f in files], notes_scanned) - notes_required = not (notes_scanned or waldata["notes not required"]) - if notes_required: - ticks["N"] = "red" - else: - ticks["N"] = "green" - # print(f"{self.walletname} {ticks['N'].upper()} {notes_scanned=} {notes_required=} {waldata['notes not required']=}") + # if electronic, don't require P or E + if waldata["electronic survey"]: + # ticks["N"] = "green" + ticks["P"] = "green" + ticks["E"] = "green" + # ticks["T"] = "green" # No, this does not mean it has been 'tunneled' properly - # Plan drawing required - plan_scanned = reduce(operator.or_, [f.startswith("plan") for f in files], False) - plan_scanned = reduce(operator.or_, [f.endswith("plan") for f in files], plan_scanned) - plan_drawing_required = not (plan_scanned or waldata["plan drawn"] or waldata["plan not required"]) - if plan_drawing_required: - ticks["P"] = "red" - else: - ticks["P"] = "green" - - # Elev drawing required - elev_scanned = reduce(operator.or_, [f.startswith("elev") for f in files], False) - elev_scanned = reduce(operator.or_, [f.endswith("elev") for f in files], elev_scanned) - elev_scanned = reduce(operator.or_, [f.endswith("elevation") for f in files], elev_scanned) - elev_drawing_required = not (elev_scanned or waldata["elev drawn"] or waldata["elev not required"]) - if elev_drawing_required: - ticks["E"] = "red" - else: - ticks["E"] = "green" - - # Tunnel / Therion - if elev_drawing_required or plan_drawing_required: - ticks["T"] = "red" - else: - ticks["T"] = "green" + # Tunnel / Therion + if elev_drawing_required or plan_drawing_required: + ticks["T"] = "red" + else: + ticks["T"] = "green" # Website if waldata["website updated"]: ticks["W"] = "green" else: ticks["W"] = "red" + return ticks |