electronic surveys still need notes

This commit is contained in:
Philip Sargent 2023-07-29 18:21:07 +03:00
parent af6081e406
commit 5f07f234ef
2 changed files with 45 additions and 42 deletions

View File

@ -213,6 +213,7 @@ class Wallet(models.Model):
def get_ticks(self): def get_ticks(self):
"""Reads all the JSON data and sets the colour of the completion tick for each condition""" """Reads all the JSON data and sets the colour of the completion tick for each condition"""
ticks = {} ticks = {}
waldata = self.get_json() waldata = self.get_json()
if not waldata: if not waldata:
ticks["S"] = "darkgrey" ticks["S"] = "darkgrey"
@ -278,57 +279,59 @@ class Wallet(models.Model):
if 'notes not required' not in waldata: if 'notes not required' not in waldata:
waldata['notes not required'] = False waldata['notes not required'] = False
# Notes, Plan, Elevation; Tunnel # Notes, Plan, Elevation
if waldata["electronic survey"]: 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" 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"
# 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"
# if electronic, don't require P or E
if waldata["electronic survey"]:
# ticks["N"] = "green"
ticks["P"] = "green" ticks["P"] = "green"
ticks["E"] = "green" ticks["E"] = "green"
ticks["T"] = "green" # ticks["T"] = "green" # No, this does not mean it has been 'tunneled' properly
else:
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 # Tunnel / Therion
plan_scanned = reduce(operator.or_, [f.startswith("plan") for f in files], False) if elev_drawing_required or plan_drawing_required:
plan_scanned = reduce(operator.or_, [f.endswith("plan") for f in files], plan_scanned) ticks["T"] = "red"
plan_drawing_required = not (plan_scanned or waldata["plan drawn"] or waldata["plan not required"]) else:
if plan_drawing_required: ticks["T"] = "green"
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"
# Website # Website
if waldata["website updated"]: if waldata["website updated"]:
ticks["W"] = "green" ticks["W"] = "green"
else: else:
ticks["W"] = "red" ticks["W"] = "red"
return ticks return ticks

View File

@ -190,7 +190,7 @@ def get_complaints(complaints, waldata, svxfiles, files, wallet, wurl):
# Notes required # Notes required
if ticks["N"] != "green": if ticks["N"] != "green":
complaints.append( complaints.append(
"The notes needs scanning (or renaming) or tick 'Notes not required' checkbox. No noteNN.jpg or XXnote.jpg file was found; this is not an electronic survey." "The notes needs scanning (or renaming) or tick 'Notes not required' checkbox. No noteNN.jpg or XXnote.jpg file was found. Needed even for an electronic survey."
) )
# Plan drawing required # Plan drawing required
@ -208,7 +208,7 @@ def get_complaints(complaints, waldata, svxfiles, files, wallet, wurl):
# Therion # Therion
if ticks["T"] != "green": if ticks["T"] != "green":
complaints.append( complaints.append(
"Tunnel or Therion drawing files need drawing. Or if this an electronic survey, please tick the 'Electronic survey' checkbox." "Tunnel or Therion drawing files need drawing, or tick 'Plan/Elev drawn' checkbox or 'Plan/Elev not required' checkboxes"
) )
# Description # Description