2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-15 10:07:12 +00:00

Trial QM tick mechanism in survex files

This commit is contained in:
Philip Sargent
2022-07-20 20:47:29 +03:00
parent de37eea167
commit 0a158db97d
4 changed files with 47 additions and 23 deletions

View File

@@ -468,7 +468,7 @@ class QM(TroggleModel):
"""
cave = models.ForeignKey(Cave, related_name='QMs',blank=True, null=True,on_delete=models.SET_NULL )
block = models.ForeignKey('SurvexBlock', null=True,on_delete=models.SET_NULL) # only for QMs from survex files
blockname=models.TextField(blank=True,null=True) # NB truncated copy of survexblock name
blockname=models.TextField(blank=True,null=True) # NB truncated copy of survexblock name with last char added
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 attached to a logbook entry, should imply completion_description has text
@@ -480,7 +480,7 @@ class QM(TroggleModel):
('C', 'C: Tight unpromising lead'),
('D', 'D: Dig'),
('X', 'X: Unclimbable aven')
) # also seen "?" in imported data - see urls.py
) # also seen "?" and "V" in imported data - see urls.py
grade = models.CharField(max_length=1, choices=GRADE_CHOICES)
location_description = models.TextField(blank=True)
nearest_station_description = models.CharField(max_length=400,blank=True, null=True)
@@ -503,11 +503,10 @@ class QM(TroggleModel):
else:
expoyearstr = str(self.cave.slug())[5:9]
if self.blockname:
blocknamestr = str(self.blockname)
blocknamestr = "-" + str(self.blockname)
else:
blocknamestr = ""
#return f'{self.cave.slug()[5:]}-{self.expoyear}-{self.blockname}{self.number}{self.grade}'
return f'{cavestr}-{expoyearstr}-{self.number}{self.grade}-{blocknamestr}'
return f'{cavestr}-{expoyearstr}-{self.number}{self.grade}{blocknamestr}'
def get_completion_url(self):
'''assumes html file named is in same folder as cave description file
@@ -526,7 +525,7 @@ class QM(TroggleModel):
return qmslug
def get_absolute_url(self):
#return settings.URL_ROOT + '/cave/' + self.found_by.cave.kataster_number + '/' + str(self.found_by.date.year) + '-' + '%02d' %self.number
# This reverse resolution stuff is pure magic. Just change the regex in urls.py and everything changes to suit. Whacky.
return urljoin(settings.URL_ROOT, reverse('qm',kwargs={'cave_id':self.cave.slug(),'year':self.expoyear, 'blockname':self.blockname,'qm_id':self.number,'grade':self.grade}))
def get_next_by_id(self):
@@ -535,9 +534,6 @@ class QM(TroggleModel):
def get_previous_by_id(self):
return QM.objects.get(id=self.id-1)
# def wiki_link(self):
# return "%s%s%s" % ('[[QM:',self.code(),']]')
class PersonTrip(TroggleModel):
"""Single Person going on a trip, which may or may not be written up.
It accounts for different T/U for people in same logbook entry.