forked from expo/troggle
Make robust against duplicate objects
This commit is contained in:
parent
3c78ab79ca
commit
7d4ca5dae2
@ -311,11 +311,22 @@ class Entrance(TroggleModel):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.slug)
|
return str(self.slug)
|
||||||
|
|
||||||
|
def single(self, station):
|
||||||
|
try:
|
||||||
|
single = SurvexStation.objects.get(name = station)
|
||||||
|
return single
|
||||||
|
except:
|
||||||
|
stations = SurvexStation.objects.filter(name = station)
|
||||||
|
print(f" # MULTIPLE stations found with same name '{station}' in Entrance {self}:")
|
||||||
|
for s in stations:
|
||||||
|
print(f" # {s.id=} - {s.name} {s.latlong()}") # .id is Django internal field, not one of ours
|
||||||
|
return stations[0]
|
||||||
|
|
||||||
def exact_location(self):
|
def exact_location(self):
|
||||||
return SurvexStation.objects.get(name = self.exact_station)
|
return self.single(self.exact_station)
|
||||||
|
|
||||||
def other_location(self):
|
def other_location(self):
|
||||||
return SurvexStation.objects.get(name = self.other_station)
|
return self.single(self.other_station)
|
||||||
|
|
||||||
def find_location(self):
|
def find_location(self):
|
||||||
r = {"": "To be entered ", "?": "To be confirmed:", "S": "", "L": "Lost:", "R": "Refindable:"}[self.findability]
|
r = {"": "To be entered ", "?": "To be confirmed:", "S": "", "L": "Lost:", "R": "Refindable:"}[self.findability]
|
||||||
@ -376,7 +387,7 @@ class Entrance(TroggleModel):
|
|||||||
return f[1]
|
return f[1]
|
||||||
|
|
||||||
def tag(self):
|
def tag(self):
|
||||||
return SurvexStation.objects.get(name = self.tag_station)
|
return self.single(self.tag_station)
|
||||||
|
|
||||||
def needs_surface_work(self):
|
def needs_surface_work(self):
|
||||||
return self.findability != "S" or not self.has_photo or self.marking != "T"
|
return self.findability != "S" or not self.has_photo or self.marking != "T"
|
||||||
|
Loading…
Reference in New Issue
Block a user