mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2026-04-06 20:55:42 +01:00
trying to isolate bug in letter setting on ents
This commit is contained in:
@@ -64,20 +64,21 @@ class CaveAndEntrance(models.Model):
|
||||
entrances in one form.
|
||||
CASCADE means that if the cave or the entrance is deleted, then this CaveAndEntrance
|
||||
is deleted too
|
||||
NOT NEEDED anymore if we insist that cave:entrances have 1:n multiplicity.
|
||||
"""
|
||||
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)
|
||||
entranceletter = models.CharField(max_length=20, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
unique_together = [["cave", "entrance"], ["cave", "entrance_letter"]]
|
||||
ordering = ["entrance_letter"]
|
||||
unique_together = [["cave", "entrance"], ["cave", "entranceletter"]]
|
||||
ordering = ["entranceletter"]
|
||||
|
||||
def __str__(self):
|
||||
return str(self.cave) + str(self.entrance_letter)
|
||||
return str(self.cave) + str(self.entranceletter)
|
||||
|
||||
# class CaveSlug(models.Model):
|
||||
# moved to models/logbooks.py to avoid cyclic import problem
|
||||
# moved to models/logbooks.py to avoid cyclic import problem. No I don't know why either.
|
||||
|
||||
class Cave(TroggleModel):
|
||||
# too much here perhaps,
|
||||
@@ -208,8 +209,8 @@ class Cave(TroggleModel):
|
||||
rs = []
|
||||
res = ""
|
||||
for e in CaveAndEntrance.objects.filter(cave=self):
|
||||
if e.entrance_letter:
|
||||
rs.append(e.entrance_letter)
|
||||
if e.entranceletter:
|
||||
rs.append(e.entranceletter)
|
||||
rs.sort()
|
||||
prevR = ""
|
||||
n = 0
|
||||
@@ -246,7 +247,9 @@ class Cave(TroggleModel):
|
||||
return
|
||||
|
||||
def file_output(self):
|
||||
filepath = Path(os.path.join(settings.CAVEDESCRIPTIONS, self.filename))
|
||||
"""This produces the content which wll be re-saved as the cave_data html file.
|
||||
"""
|
||||
filepath = Path(settings.CAVEDESCRIPTIONS, self.filename)
|
||||
|
||||
t = loader.get_template("dataformat/cave.xml")
|
||||
now = datetime.now(timezone.utc)
|
||||
@@ -306,7 +309,7 @@ class Entrance(TroggleModel):
|
||||
url = models.CharField(max_length=300, blank=True, null=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["caveandentrance__entrance_letter"]
|
||||
ordering = ["caveandentrance__entranceletter"]
|
||||
|
||||
def __str__(self):
|
||||
return str(self.slug)
|
||||
@@ -325,6 +328,26 @@ class Entrance(TroggleModel):
|
||||
else:
|
||||
return None
|
||||
|
||||
def singleletter(self):
|
||||
"""Used in template/dataformat/cave.xml to write out a replacement cave_data file
|
||||
why is this not working?
|
||||
"""
|
||||
cavelist = self.cavelist
|
||||
try:
|
||||
first = cavelist[0]
|
||||
ce = CaveAndEntrance.objects.get(entrance=self, cave=first)
|
||||
except:
|
||||
# will fail if no caves in cavelist or if the cave isnt in the db
|
||||
return "Z"
|
||||
print(f"singleletter() access for first cave in {cavelist=}")
|
||||
if ce.entranceletter == "":
|
||||
print(f"### BLANK LETTER")
|
||||
return "Y"
|
||||
else:
|
||||
letter = ce.entranceletter
|
||||
print(f"### LETTER {letter}")
|
||||
return letter
|
||||
|
||||
def exact_location(self):
|
||||
return self.single(self.exact_station)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user