summaryrefslogtreecommitdiffstats
path: root/core/models
diff options
context:
space:
mode:
Diffstat (limited to 'core/models')
-rw-r--r--core/models/caves.py46
1 files changed, 41 insertions, 5 deletions
diff --git a/core/models/caves.py b/core/models/caves.py
index f5ae320..9336f5b 100644
--- a/core/models/caves.py
+++ b/core/models/caves.py
@@ -70,6 +70,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)
@@ -121,7 +125,7 @@ class Cave(TroggleModel):
def hassurveydata(self):
if not self.underground_centre_line:
return "No"
- if self.survex_file:
+ if self.survex_filcavee:
return "Yes"
return "Missing"
@@ -153,6 +157,9 @@ class Cave(TroggleModel):
#return settings.URL_ROOT + '/cave/' + href + '/'
#return urljoin(settings.URL_ROOT, reverse('cave',kwargs={'cave_id':href,})) # WRONG. This produces /cave/161 and should be /1623/161
return Path(settings.URL_ROOT) / self.url # not good Django style.. NEEDS actual URL
+
+ def url_parent(self):
+ return self.url.rsplit("/", 1)[0]
def __str__(self, sep = ": "):
return str(self.slug())
@@ -172,7 +179,7 @@ class Cave(TroggleModel):
# undated.append(q)
# sortedqms = sorted(dated, key=operator.attrgetter('block.date')) # sort by date of survexblock the QM was defined in
# orderedqms = sorted(undated, key=operator.attrgetter('expoyear')) # sort by date of expoyear
- # return orderedqms + sortedqms # a list, NOT a QuerySet
+ # return orderedqmcaves + sortedqms # a list, NOT a QuerySet
# def new_QM_number(self, year=datetime.date.today().year):
@@ -181,7 +188,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():
@@ -233,7 +240,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()
@@ -292,6 +307,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())
@@ -370,7 +388,7 @@ class Entrance(TroggleModel):
# if ancestor_titles:
# res = '/'.join((self.get_root().cave.get_absolute_url(), ancestor_titles, self.title))
# else:
- # res = '/'.join((self.get_root().cave.get_absolute_url(), self.title))
+ # res = '/'.jocavein((self.get_root().cave.get_absolute_url(), self.title))
# return res
res = '/'.join((self.get_root().cave.get_absolute_url(), self.title))
return res
@@ -399,6 +417,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)
@@ -408,7 +434,17 @@ class Entrance(TroggleModel):
u = t.render(c)
writetrogglefile(filepath, u)
return
-
+
+ def url_parent(self):
+ if self.url:
+ return self.url.rsplit("/", 1)[0]
+ else:
+ cavelist = self.cavelist()
+ if len(self.cavelist()) == 1:
+ return cavelist[0].url_parent()
+ else:
+ return ""
+
class LogbookEntry(TroggleModel):
"""Single parsed entry from Logbook