diff options
author | Martin Green <martin.speleo@gmail.com> | 2022-08-01 16:04:22 +0200 |
---|---|---|
committer | Martin Green <martin.speleo@gmail.com> | 2022-08-01 16:04:22 +0200 |
commit | f491264b9ecb9724be99419bbc5331f9ca492bac (patch) | |
tree | 640ad435b60253fdaa144c24a70f72297850a333 /core/models/caves.py | |
parent | fa6758b9a0d8229d919b917687b703980de0fb84 (diff) | |
download | troggle-f491264b9ecb9724be99419bbc5331f9ca492bac.tar.gz troggle-f491264b9ecb9724be99419bbc5331f9ca492bac.tar.bz2 troggle-f491264b9ecb9724be99419bbc5331f9ca492bac.zip |
Allow entrances to be edited with the correct parent url. Commit changes to caves when adding a new entrance. Order entrances alphabetically
Diffstat (limited to 'core/models/caves.py')
-rw-r--r-- | core/models/caves.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/core/models/caves.py b/core/models/caves.py index d6650c0..e1783c6 100644 --- a/core/models/caves.py +++ b/core/models/caves.py @@ -62,6 +62,10 @@ class CaveAndEntrance(models.Model): cave = models.ForeignKey('Cave',on_delete=models.CASCADE) entrance = models.ForeignKey('Entrance',on_delete=models.CASCADE) entrance_letter = models.CharField(max_length=20,blank=True, null=True) + class Meta: + unique_together = [['cave', 'entrance'], ['cave', 'entrance_letter']] + ordering = ['entrance_letter'] + def __str__(self): return str(self.cave) + str(self.entrance_letter) @@ -176,7 +180,7 @@ class Cave(TroggleModel): # 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 + # return res.number+1CaveAndEntrance def kat_area(self): for a in self.area.all(): @@ -228,7 +232,15 @@ class Cave(TroggleModel): u = t.render(c) writetrogglefile(filepath, u) return + + def file_output(self): + filepath = Path(os.path.join(settings.CAVEDESCRIPTIONS, self.filename)) + t = loader.get_template('dataformat/cave.xml') + #c = Context({'cave': self}) + c = dict({'cave': self}) + content = t.render(c) + return (filepath, content, "utf8") def getArea(self): areas = self.area.all() @@ -287,6 +299,9 @@ class Entrance(TroggleModel): url = models.CharField(max_length=200,blank=True, null=True) filename = models.CharField(max_length=200) cached_primary_slug = models.CharField(max_length=200,blank=True, null=True) + + class Meta: + ordering = ['caveandentrance__entrance_letter'] def __str__(self): return str(self.slug()) @@ -338,7 +353,7 @@ class Entrance(TroggleModel): def has_photo(self): if self.photo: if (self.photo.find("<img") > -1 or self.photo.find("<a") > -1 or self.photo.find("<IMG") > -1 or self.photo.find("<A") > -1): - return "Yecaves" + return "Yes" else: return "Missing" else: @@ -394,6 +409,14 @@ class Entrance(TroggleModel): def get_file_path(self): return Path(settings.ENTRANCEDESCRIPTIONS, self.filename) + + def file_output(self): + filepath = Path(os.path.join(settings.ENTRANCEDESCRIPTIONS, self.filename)) + + t = loader.get_template('dataformat/entrance.xml') + c = dict({'entrance': self}) + content = t.render(c) + return (filepath, content, "utf8") def writeDataFile(self): filepath = os.path.join(settings.ENTRANCEDESCRIPTIONS, self.filename) |