From 779afc2f2ae84957517e3df22e69d95bf3852887 Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Tue, 5 Jul 2022 15:38:23 +0300 Subject: QM report pages now not crashing, working.. --- core/models/caves.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'core/models/caves.py') diff --git a/core/models/caves.py b/core/models/caves.py index 7deaca1..4e221e7 100644 --- a/core/models/caves.py +++ b/core/models/caves.py @@ -183,7 +183,9 @@ class Cave(TroggleModel): most folks to maintain and is not really necessary. Need to do a proper search for the cave. Seems pretty broken - all needs re-doing more cleanly. ''' - return QM.objects.filter(found_by__cave_slug=self.slug) + #return QM.objects.filter(found_by__cave_slug=self.slug) + 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.""" @@ -482,7 +484,9 @@ class LogbookEntry(TroggleModel): class QM(TroggleModel): """This is based on qm.csv in trunk/expoweb/1623/204 which has the fields: "Number","Grade","Area","Description","Page reference","Nearest station","Completion description","Comment" + Note that there is NO LINK TO THE CAVE that the QM is in ! """ + cave = models.ForeignKey(Cave, related_name='QMs',blank=True, null=True,on_delete=models.SET_NULL ) 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", ) @@ -503,7 +507,7 @@ class QM(TroggleModel): comment=models.TextField(blank=True,null=True) def __str__(self): - return f'{self.nearest_station_name}, {self.code()}-{self.grade}' + return f'{self.code()}' def code(self): if self.found_by: @@ -513,7 +517,7 @@ class QM(TroggleModel): 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 - return urljoin(settings.URL_ROOT, reverse('qm',kwargs={'cave_id':self.found_by.cave_slug,'year':self.found_by.date.year,'qm_id':self.number,'grade':self.grade})) + return urljoin(settings.URL_ROOT, reverse('qm',kwargs={'cave_id':self.cave.slug(),'year':self.found_by.date.year,'qm_id':self.number,'grade':self.grade})) def get_next_by_id(self): return QM.objects.get(id=self.id+1) -- cgit v1.2.3