diff options
Diffstat (limited to 'core/models')
-rw-r--r-- | core/models/caves.py | 4 | ||||
-rw-r--r-- | core/models/logbooks.py | 23 |
2 files changed, 3 insertions, 24 deletions
diff --git a/core/models/caves.py b/core/models/caves.py index 4cf0512..b63df2e 100644 --- a/core/models/caves.py +++ b/core/models/caves.py @@ -58,9 +58,7 @@ class CaveAndEntrance(models.Model): def __str__(self): return str(self.cave) + str(self.entranceletter) - -# class CaveSlug(models.Model): -# moved to models/logbooks.py to avoid cyclic import problem. No I don't know why either. + def get_cave_leniently(caveid): try: diff --git a/core/models/logbooks.py b/core/models/logbooks.py index 1ffe55d..d8b4d93 100644 --- a/core/models/logbooks.py +++ b/core/models/logbooks.py @@ -10,34 +10,19 @@ from django.template import loader import settings from troggle.core.models.troggle import Expedition, TroggleModel + """The model declarations LogBookEntry, PersonLogEntry, QM """ todo = """ -- Can we rewrite things to eliminate the CaveSlug and objects? No - Surely foreign keys work fine ?! No Foreign keys do not allow for there being multiple ways to refer to a cave, eg 1623-1999-03 aka 1623-204 Having slugs allows for much more loose coupling to caves, which removes alot of the need to reset the database, which interupts work flow. It also means we do not have to be creating temporary cave objects in the database, where we do not have the underlying file in cave_data. - - To Do move Cave Slug back to troggle.core.models """ -class CaveSlug(models.Model): - """Moved here to avoid nasty cyclic import error - CASCADE means that if the Cave is deleted, this is too - """ - - cave = models.ForeignKey("Cave", on_delete=models.CASCADE) - slug = models.SlugField(max_length=50, unique=True) - primary = models.BooleanField(default=False) - - def __str__(self): - return f"{self.slug}: {self.cave}" - class LogbookEntry(TroggleModel): """Single parsed entry from Logbook @@ -48,7 +33,7 @@ class LogbookEntry(TroggleModel): ) expedition = models.ForeignKey(Expedition, blank=True, null=True, on_delete=models.CASCADE) title = models.CharField(max_length=200) - cave_slug = models.SlugField(max_length=50, blank=True, null=True) + cave = models.ForeignKey("Cave", blank=True, null=True, on_delete=models.SET_NULL) place = models.CharField( max_length=100, blank=True, null=True, help_text="Only use this if you haven't chosen a cave" ) @@ -62,10 +47,6 @@ class LogbookEntry(TroggleModel): # several PersonLogEntrys point in to this object ordering = ("-date",) - def cave(self): # Why didn't he just make this a foreign key to Cave ? - c = CaveSlug.objects.get(slug=self.cave_slug, primary=True).cave - return c - def isLogbookEntry(self): # Function used in templates return True |