diff options
Diffstat (limited to 'core/models')
-rw-r--r-- | core/models/logbooks.py | 6 | ||||
-rw-r--r-- | core/models/survex.py | 12 | ||||
-rw-r--r-- | core/models/troggle.py | 14 |
3 files changed, 12 insertions, 20 deletions
diff --git a/core/models/logbooks.py b/core/models/logbooks.py index 1c7c9f7..8c8edbc 100644 --- a/core/models/logbooks.py +++ b/core/models/logbooks.py @@ -25,9 +25,9 @@ class LogbookEntry(TroggleModel): date = ( models.DateField() ) - expedition = models.ForeignKey(Expedition, blank=True, null=True, on_delete=models.CASCADE) + expedition = models.ForeignKey(Expedition, blank=True, null=True, on_delete=models.CASCADE, db_index=True) title = models.CharField(max_length=200) - cave = models.ForeignKey("Cave", blank=True, null=True, on_delete=models.SET_NULL) + cave = models.ForeignKey("Cave", blank=True, null=True, on_delete=models.SET_NULL, db_index=True) place = models.CharField( max_length=100, blank=True, null=True, help_text="Only use this if you haven't chosen a cave" ) @@ -173,7 +173,7 @@ class PersonLogEntry(TroggleModel): then this PersonLogEntry is deleted too """ - personexpedition = models.ForeignKey("PersonExpedition", null=True, on_delete=models.CASCADE) + personexpedition = models.ForeignKey("PersonExpedition", null=True, on_delete=models.CASCADE, db_index=True) time_underground = models.FloatField(help_text="In decimal hours") logbook_entry = models.ForeignKey(LogbookEntry, on_delete=models.CASCADE, db_index=True) is_logbook_entry_author = models.BooleanField(default=False) diff --git a/core/models/survex.py b/core/models/survex.py index fabc381..7160893 100644 --- a/core/models/survex.py +++ b/core/models/survex.py @@ -199,17 +199,17 @@ class SurvexBlock(models.Model): objects = SurvexBlockLookUpManager() # overwrites SurvexBlock.objects and enables lookup() name = models.CharField(max_length=100) title = models.CharField(max_length=200) - parent = models.ForeignKey("SurvexBlock", blank=True, null=True, on_delete=models.SET_NULL) + parent = models.ForeignKey("SurvexBlock", blank=True, null=True, on_delete=models.SET_NULL, db_index=True) date = models.DateField(blank=True, null=True) - expedition = models.ForeignKey("Expedition", blank=True, null=True, on_delete=models.SET_NULL) + expedition = models.ForeignKey("Expedition", blank=True, null=True, on_delete=models.SET_NULL, db_index=True) # if the survexfile object is deleted, then all the survex-blocks in it should be too, # though a block can span more than one file... survexfile = models.ForeignKey("SurvexFile", blank=True, null=True, on_delete=models.CASCADE, db_index=True) # survexpath = models.CharField(max_length=200, blank=True, null=True) No need for this anymore scanswallet = models.ForeignKey( - "Wallet", null=True, on_delete=models.SET_NULL + "Wallet", null=True, on_delete=models.SET_NULL, db_index=True ) # only ONE wallet per block. The most recent seen overwites.. ugh. legsall = models.IntegerField(null=True) # summary data for this block @@ -245,11 +245,11 @@ class SurvexPersonRole(models.Model): """The CASCADE means that if a SurvexBlock or a Person is deleted, then the SurvexPersonRole is deleted too """ - survexblock = models.ForeignKey("SurvexBlock", on_delete=models.CASCADE) + survexblock = models.ForeignKey("SurvexBlock", on_delete=models.CASCADE, db_index=True) # increasing levels of precision, Surely we only need survexblock and (either person or personexpedition)? personname = models.CharField(max_length=100) - person = models.ForeignKey("Person", blank=True, null=True, on_delete=models.CASCADE) # not needed - personexpedition = models.ForeignKey("PersonExpedition", blank=True, null=True, on_delete=models.SET_NULL) + person = models.ForeignKey("Person", blank=True, null=True, on_delete=models.CASCADE, db_index=True) # not needed + personexpedition = models.ForeignKey("PersonExpedition", blank=True, null=True, on_delete=models.SET_NULL, db_index=True) def __str__(self): return str(self.personname) + " - " + str(self.survexblock) diff --git a/core/models/troggle.py b/core/models/troggle.py index 89e6e00..237247f 100644 --- a/core/models/troggle.py +++ b/core/models/troggle.py @@ -154,8 +154,8 @@ class PersonExpedition(TroggleModel): is deleted too """ - expedition = models.ForeignKey(Expedition, on_delete=models.CASCADE) - person = models.ForeignKey(Person, on_delete=models.CASCADE) + expedition = models.ForeignKey(Expedition, on_delete=models.CASCADE, db_index=True) + person = models.ForeignKey(Person, on_delete=models.CASCADE, db_index=True) slugfield = models.SlugField(max_length=50, blank=True, null=True) # 2022 to be used in future # is_guest = models.BooleanField(default=False) # This is per-Person, not per-PersonExpedition @@ -170,6 +170,7 @@ class PersonExpedition(TroggleModel): def get_absolute_url(self): # we do not use URL_ROOT any more. + # This is crackers, the whole point of get_absolute_url is to use the automatic reverse resolution, see below return(f"/personexpedition/{self.person.slug}/{self.expedition.year}") # why does this hang the system ? return reverse( @@ -179,15 +180,6 @@ class PersonExpedition(TroggleModel): "year": self.expedition.year, }, ) - # old style, no longer used - return reverse( - "personexpedition", - kwargs={ - "first_name": self.person.first_name, - "last_name": self.person.last_name, - "year": self.expedition.year, - }, - ) def surveyedleglength(self): """Survey length for this person on all survex trips on this expedition""" |