summaryrefslogtreecommitdiffstats
path: root/core/views/caves.py
diff options
context:
space:
mode:
Diffstat (limited to 'core/views/caves.py')
-rw-r--r--core/views/caves.py32
1 files changed, 16 insertions, 16 deletions
diff --git a/core/views/caves.py b/core/views/caves.py
index 3fbc934..1b47c39 100644
--- a/core/views/caves.py
+++ b/core/views/caves.py
@@ -481,31 +481,31 @@ def caveQMs(request, slug):
else:
return render(request,'cave_qms.html', {'cave': cave})
-def qm(request,cave_id,qm_id,year,grade=None):
+def qm(request,cave_id,qm_id,year,grade=None, blockname=""):
'''Reports on one specific QM
Fixed and working July 2022, for both CSV imported QMs and for survex-imported QMs,
- need refactoring though.
+ needs refactoring though.
'''
year=int(year)
- try:
- qm=getCave(cave_id).get_QMs().get(number=qm_id,found_by__date__year=year)
- return render(request,'qm.html',locals())
- except Cave.MultipleObjectsReturned: # entirely the wrong action, REPLACE with the right display
- caves = Cave.objects.filter(kataster_number=cave_id)
- return render(request, 'svxcaveseveral.html', {'settings': settings, "caves":caves })
+ try:
+ c=getCave(cave_id)
+ manyqms=c.get_QMs()
+ qm=manyqms.get(number=qm_id,found_by__date__year=year, found_by__cave_slug=c.slug())
+ return render(request,'qm.html', {'qm': qm})
except QM.DoesNotExist:
- return render(request,'errors/badslug.html', {'badslug': f'{cave_id=} {year=} {qm_id=}'})
-
- # Ouch, this does not look like what we want to do. We need to replace this with something better.
- url=urllib.parse.urljoin(settings.URL_ROOT, r'/admin/core/qm/add/'+'?'+ r'number=' + qm_id)
- if grade:
- url += r'&grade=' + grade
- return HttpResponseRedirect(url)
-
+ return render(request,'errors/badslug.html', {'badslug': f'{cave_id=} {year=} {qm_id=} {blockname=}'})
+ except MultipleObjectsReturned:
+ qm = manyqms.filter(blockname = blockname) # we could still get multiple objects..
+ if qm:
+ return render(request,'qm.html', {'qm': qm})
+ else:
+ return render(request,'errors/badslug.html', {'badslug': f'{cave_id=} {year=} {qm_id=} {blockname=}'})
+
def get_qms(request, caveslug):
'''Does not crash, but just returns a text list of the entrances for a cave.
Used internally by the JSON export code? Archeology required..
+ cf get_entrances() above
'''
try:
cave = Cave.objects.get(caveslug__slug = caveslug)