forked from expo/troggle
fix for individual QM display from survex
This commit is contained in:
@@ -181,13 +181,13 @@ class Cave(TroggleModel):
|
||||
return QM.objects.filter(cave=self)
|
||||
|
||||
|
||||
def new_QM_number(self, year=datetime.date.today().year):
|
||||
"""Given a cave and the current year, returns the next QM number."""
|
||||
try:
|
||||
res=QM.objects.filter(found_by__date__year=year, found_by__cave_slug=self.slug).order_by('-number')[0]
|
||||
except IndexError:
|
||||
return 1
|
||||
return res.number+1
|
||||
# def new_QM_number(self, year=datetime.date.today().year):
|
||||
# """Given a cave and the current year, returns the next QM number."""
|
||||
# try:
|
||||
# res=QM.objects.filter(found_by__date__year=year, found_by__cave_slug=self.slug).order_by('-number')[0]
|
||||
# except IndexError:
|
||||
# return 1
|
||||
# return res.number+1
|
||||
|
||||
def kat_area(self):
|
||||
for a in self.area.all():
|
||||
@@ -460,17 +460,17 @@ class LogbookEntry(TroggleModel):
|
||||
def get_previous_by_id(self):
|
||||
LogbookEntry.objects.get(id=self.id-1)
|
||||
|
||||
def new_QM_number(self):
|
||||
"""Returns """
|
||||
if self.cave:
|
||||
nextQMnumber=self.cave.new_QM_number(self.date.year)
|
||||
else:
|
||||
return None
|
||||
return nextQMnumber
|
||||
# def new_QM_number(self):
|
||||
# """Returns """
|
||||
# if self.cave:
|
||||
# nextQMnumber=self.cave.new_QM_number(self.date.year)
|
||||
# else:
|
||||
# return None
|
||||
# return nextQMnumber
|
||||
|
||||
def new_QM_found_link(self):
|
||||
"""Produces a link to a new QM with the next number filled in and this LogbookEntry set as 'found by' """
|
||||
return settings.URL_ROOT + r'/admin/core/qm/add/?' + r'found_by=' + str(self.pk) +'&number=' + str(self.new_QM_number())
|
||||
# def new_QM_found_link(self):
|
||||
# """Produces a link to a new QM with the next number filled in and this LogbookEntry set as 'found by' """
|
||||
# return settings.URL_ROOT + r'/admin/core/qm/add/?' + r'found_by=' + str(self.pk) +'&number=' + str(self.new_QM_number())
|
||||
|
||||
def DayIndex(self):
|
||||
return list(self.expeditionday.logbookentry_set.all()).index(self)
|
||||
@@ -480,16 +480,18 @@ class QM(TroggleModel):
|
||||
"Number","Grade","Area","Description","Page reference","Nearest station","Completion description","Comment"
|
||||
"""
|
||||
cave = models.ForeignKey(Cave, related_name='QMs',blank=True, null=True,on_delete=models.SET_NULL )
|
||||
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_off_by = models.ForeignKey(LogbookEntry, related_name='QMs_ticked_off',blank=True, null=True,on_delete=models.SET_NULL)
|
||||
number = models.IntegerField(help_text="this is the sequential number in the year", )
|
||||
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'),
|
||||
('B', 'B: Average lead'),
|
||||
('C', 'C: Tight unpromising lead'),
|
||||
('D', 'D: Dig'),
|
||||
('X', 'X: Unclimbable aven')
|
||||
) # also seen "?"
|
||||
) # also seen "?" 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)
|
||||
@@ -498,26 +500,21 @@ class QM(TroggleModel):
|
||||
area = models.CharField(max_length=100,blank=True, null=True)
|
||||
completion_description = models.TextField(blank=True,null=True)
|
||||
comment=models.TextField(blank=True,null=True)
|
||||
blockname=models.TextField(blank=True,null=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.code()}'
|
||||
|
||||
def code(self):
|
||||
if self.found_by:
|
||||
return f'{str(self.found_by.cave_slug)[5:]}-{self.found_by.date.year}-{self.blockname}{self.number}{self.grade}'
|
||||
else:
|
||||
return f'{self.cave.slug()[5:]}-xxxx-{self.blockname}{self.number}{self.grade}'
|
||||
|
||||
return f'{str(self.found_by.cave_slug)[5:]}-{self.expoyear}-{self.blockname}{self.number}{self.grade}'
|
||||
|
||||
def newslug(self):
|
||||
qmslug = f'{str(self.cave)}-{self.expoyear}-{self.blockname}{self.number}{self.grade}'
|
||||
return qmslug
|
||||
|
||||
def get_absolute_url(self):
|
||||
if self.found_by:
|
||||
qmyear = self.found_by.date.year
|
||||
else:
|
||||
qmyear = "1986" # HACK to check if other bits work
|
||||
#return settings.URL_ROOT + '/cave/' + self.found_by.cave.kataster_number + '/' + str(self.found_by.date.year) + '-' + '%02d' %self.number
|
||||
return urljoin(settings.URL_ROOT, reverse('qm',kwargs={'cave_id':self.cave.slug(),'year':qmyear, 'blockname':self.blockname,'qm_id':self.number,'grade':self.grade}))
|
||||
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):
|
||||
return QM.objects.get(id=self.id+1)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user