diff options
author | Philip Sargent <philip.sargent@gmail.com> | 2023-03-17 20:01:52 +0000 |
---|---|---|
committer | Philip Sargent <philip.sargent@gmail.com> | 2023-03-17 20:01:52 +0000 |
commit | 7345e3a3286ebf2771a7c7800c83632cc9930fa1 (patch) | |
tree | ff58cd35a20dc382dfa696d2edcf82664fbeba0d /core/views/caves.py | |
parent | de54576d1131c0f2020dca082499f837ad6c672e (diff) | |
download | troggle-7345e3a3286ebf2771a7c7800c83632cc9930fa1.tar.gz troggle-7345e3a3286ebf2771a7c7800c83632cc9930fa1.tar.bz2 troggle-7345e3a3286ebf2771a7c7800c83632cc9930fa1.zip |
Much QM re-engineering
Diffstat (limited to 'core/views/caves.py')
-rw-r--r-- | core/views/caves.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/core/views/caves.py b/core/views/caves.py index fa5e7ef..c866718 100644 --- a/core/views/caves.py +++ b/core/views/caves.py @@ -536,9 +536,11 @@ def caveQMs(request, slug): def qm(request, cave_id, qm_id, year, grade=None, blockname=None): """Reports on one specific QM Fixed and working July 2022, for both CSV imported QMs - needs refactoring though. + + Needs refactoring though! Uses extremely baroque way of getting the QMs instead of querying for QM objects + directly, presumably as a result of a baroque history. - 290 has several QMS with the same number, grade, year (2108) and first 8 chars of the survexblock. This crashes things. + Many caves have several QMS with the same number, grade, year (2018) and first 8 chars of the survexblock. This crashes things, so the terminal char of the survexblock name was added """ year = int(year) @@ -547,7 +549,7 @@ def qm(request, cave_id, qm_id, year, grade=None, blockname=None): # CSV import QMs, use old technique try: c = getCave(cave_id) - manyqms = c.get_QMs() + manyqms = c.get_open_QMs() | c.get_ticked_QMs() # set union operation qm = manyqms.get(number=qm_id, expoyear=year) return render(request, "qm.html", {"qm": qm}) except QM.DoesNotExist: @@ -565,12 +567,12 @@ def qm(request, cave_id, qm_id, year, grade=None, blockname=None): qmslug = f"{cave_id}-{year}-{blockname=}{qm_id}{grade}" print(f"{qmslug=}") c = getCave(cave_id) - manyqms = c.get_QMs() + manyqms = c.get_open_QMs() | c.get_ticked_QMs() # set union operation qmqs = manyqms.filter(expoyear=year, blockname=blockname, number=qm_id, grade=grade) if len(qmqs) > 1: for q in qmqs: print(qmqs) - message = f"Multiple QMs with the same cave, year, number, grade AND first 8 chars of the survexblock name. (Could be caused by incomplete databasereset). Fix this in the survex file(s). {cave_id=} {year=} {qm_id=} {blockname=}" + message = f"Multiple QMs with the same cave, year, number, grade AND first-several+terminal chars of the survexblock name. (Could be caused by incomplete databasereset). Fix this in the survex file(s). {cave_id=} {year=} {qm_id=} {blockname=}" return render(request, "errors/generic.html", {"message": message}) else: qm = qmqs.get(expoyear=year, blockname=blockname, number=qm_id, grade=grade) @@ -588,7 +590,7 @@ def qm(request, cave_id, qm_id, year, grade=None, blockname=None): {"badslug": f"Failed get {cave_id=} {year=} {qm_id=} {grade=} {blockname=}"}, ) except MultipleObjectsReturned: - message = f"Multiple QMs with the same cave, year, number, grade AND first 8 chars of the survexblock name. (Could be caused by incomplete databasereset). Fix this in the survex file(s). {cave_id=} {year=} {qm_id=} {blockname=}" + message = f"Multiple QMs with the same cave, year, number, grade AND first-several+terminal chars of the survexblock name. (Could be caused by incomplete databasereset). Fix this in the survex file(s). {cave_id=} {year=} {qm_id=} {blockname=}" return render(request, "errors/generic.html", {"message": message}) except QM.DoesNotExist: # raise |