mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-15 06:07:08 +00:00
QMs now have working url to survexfile & tick description
This commit is contained in:
@@ -4,6 +4,7 @@ import datetime
|
||||
import re
|
||||
import json
|
||||
import subprocess
|
||||
import operator
|
||||
|
||||
from collections import defaultdict
|
||||
from pathlib import Path
|
||||
@@ -149,7 +150,21 @@ class Cave(TroggleModel):
|
||||
return str(self.slug())
|
||||
|
||||
def get_QMs(self):
|
||||
return QM.objects.filter(cave=self)
|
||||
'''Searches for all QMs that reference this cave. Probably a better Django way to do this
|
||||
'''
|
||||
qms = QM.objects.filter(cave=self).order_by('expoyear', 'block__date') # a QuerySet, see https://docs.djangoproject.com/en/4.0/ref/models/querysets/#order-by
|
||||
return qms # a QuerySet
|
||||
# undated = []
|
||||
# dated = []
|
||||
# qms = QM.objects.filter(cave=self) # a QuerySet
|
||||
# for q in qms:
|
||||
# if q.block:
|
||||
# dated.append(q)
|
||||
# else:
|
||||
# undated.append(q)
|
||||
# sortedqms = sorted(dated, key=operator.attrgetter('block.date')) # sort by date of survexblock the QM was defined in
|
||||
# orderedqms = sorted(undated, key=operator.attrgetter('expoyear')) # sort by date of expoyear
|
||||
# return orderedqms + sortedqms # a list, NOT a QuerySet
|
||||
|
||||
|
||||
# def new_QM_number(self, year=datetime.date.today().year):
|
||||
@@ -456,8 +471,8 @@ class QM(TroggleModel):
|
||||
blockname=models.TextField(blank=True,null=True) # NB truncated copy of survexblock name
|
||||
expoyear = models.CharField(max_length=4,blank=True, null=True) # could change to datetime if logbooks similarly chnaged
|
||||
found_by = models.ForeignKey(LogbookEntry, related_name='QMs_found',blank=True, null=True,on_delete=models.SET_NULL )
|
||||
ticked = models.BooleanField(default=False) # for ticked QMs not atatched to a logbook entry
|
||||
ticked_off_by = models.ForeignKey(LogbookEntry, related_name='QMs_ticked_off',blank=True, null=True,on_delete=models.SET_NULL)
|
||||
ticked = models.BooleanField(default=False) # for ticked QMs not attached to a logbook entry, should imply completion_description has text
|
||||
ticked_off_by = models.ForeignKey(LogbookEntry, related_name='QMs_ticked_off',blank=True, null=True,on_delete=models.SET_NULL) # unused, ever?!
|
||||
number = models.IntegerField(help_text="this is the sequential number in the year, only unique for CSV imports", )
|
||||
GRADE_CHOICES=(
|
||||
('A', 'A: Large obvious lead'),
|
||||
@@ -493,9 +508,20 @@ class QM(TroggleModel):
|
||||
blocknamestr = ""
|
||||
#return f'{self.cave.slug()[5:]}-{self.expoyear}-{self.blockname}{self.number}{self.grade}'
|
||||
return f'{cavestr}-{expoyearstr}-{blocknamestr}{self.number}{self.grade}'
|
||||
|
||||
def newslug(self):
|
||||
|
||||
|
||||
def get_completion_url(self):
|
||||
'''assumes html file named is in same folder as cave description file
|
||||
'''
|
||||
cd = None
|
||||
if self.completion_description:
|
||||
try:
|
||||
dir = Path(self.cave.url).parent
|
||||
cd = dir / self.completion_description
|
||||
except:
|
||||
cd = None
|
||||
return cd
|
||||
|
||||
def newslug(self):
|
||||
qmslug = f'{str(self.cave)}-{self.expoyear}-{self.blockname}{self.number}{self.grade}'
|
||||
return qmslug
|
||||
|
||||
|
||||
Reference in New Issue
Block a user