summaryrefslogtreecommitdiffstats
path: root/expo/models.py
diff options
context:
space:
mode:
authorsubstantialnoninfringinguser <substantialnoninfringinguser@gmail.com>2009-05-22 01:50:16 +0100
committersubstantialnoninfringinguser <substantialnoninfringinguser@gmail.com>2009-05-22 01:50:16 +0100
commitc38dfd20a1f66d40e67d478f5b340557a2ac20c2 (patch)
treea6e9166a4a03e32373430e4a7a9a16629cc73285 /expo/models.py
parent83634fe95a124c32e333383c6202bbb41986a343 (diff)
downloadtroggle-c38dfd20a1f66d40e67d478f5b340557a2ac20c2.tar.gz
troggle-c38dfd20a1f66d40e67d478f5b340557a2ac20c2.tar.bz2
troggle-c38dfd20a1f66d40e67d478f5b340557a2ac20c2.zip
[svn] * Make subcave urls work.
* Add json and xml download to admin.
Diffstat (limited to 'expo/models.py')
-rw-r--r--expo/models.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/expo/models.py b/expo/models.py
index ece0e26..70f8381 100644
--- a/expo/models.py
+++ b/expo/models.py
@@ -466,13 +466,25 @@ class Entrance(TroggleModel):
class Subcave(TroggleModel):
description = models.TextField(blank=True, null=True)
title = models.CharField(max_length=200, )
- cave = models.ForeignKey('Cave', blank=True, null=True, help_text="Only the top-level subcave should be linked to a cave")
+ cave = models.ForeignKey('Cave', blank=True, null=True, help_text="Only the top-level subcave should be linked to a cave!")
parent = models.ForeignKey('self', null=True, blank=True, related_name='children')
#adjoining = models.ManyToManyField('Subcave',blank=True, null=True,)
legacy_description_path = models.CharField(max_length=600, blank=True, null=True)
def __unicode__(self):
return self.title
-
+
+ def get_absolute_url(self):
+
+ ancestor_titles='/'.join([subcave.title for subcave in self.get_ancestors()])
+ 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))
+
+ return res
+
+# This was the old way, before we were using django-mptt
# def get_absolute_url(self):
# urlString=self.name
@@ -524,7 +536,7 @@ class QM(TroggleModel):
def get_absolute_url(self):
#return settings.URL_ROOT + '/cave/' + self.found_by.cave.kataster_number + '/' + str(self.found_by.date.year) + '-' + '%02d' %self.number
- return settings.URL_ROOT + reverse('qm',kwargs={'cave_id':self.cave.kataster_number,'year':self.found_by.date.year,'qm_id':self.number,'grade':self.grade})
+ return settings.URL_ROOT + reverse('qm',kwargs={'cave_id':self.found_by.cave.kataster_number,'year':self.found_by.date.year,'qm_id':self.number,'grade':self.grade})
def get_next_by_id(self):
return QM.objects.get(id=self.id+1)