diff options
Diffstat (limited to 'expo')
-rw-r--r-- | expo/models.py | 11 | ||||
-rw-r--r-- | expo/models_survex.py | 16 | ||||
-rw-r--r-- | expo/views_logbooks.py | 18 |
3 files changed, 29 insertions, 16 deletions
diff --git a/expo/models.py b/expo/models.py index 3cc0492..ebaf9ab 100644 --- a/expo/models.py +++ b/expo/models.py @@ -45,6 +45,8 @@ class Person(models.Model): is_vfho = models.BooleanField(help_text="VFHO is the Vereines für Höhlenkunde in Obersteier, a nearby Austrian caving club.")
mug_shot = models.CharField(max_length=100, blank=True,null=True)
blurb = models.TextField(blank=True,null=True)
+ href = models.CharField(max_length=200)
+
class Meta:
verbose_name_plural = "People"
@@ -53,12 +55,6 @@ class Person(models.Model): return "%s %s" % (self.first_name, self.last_name)
return self.first_name
- # this should be a member entry
- def href(self):
- if self.last_name:
- return "%s_%s" % (self.first_name.lower(), self.last_name.lower())
- return self.first_name.lower()
-
class PersonExpedition(models.Model):
expedition = models.ForeignKey(Expedition)
@@ -205,9 +201,10 @@ class LogbookEntry(models.Model): expedition = models.ForeignKey(Expedition,blank=True,null=True) # yes this is double-
author = models.ForeignKey(PersonExpedition,blank=True,null=True) # the person who writes it up doesn't have to have been on the trip
title = models.CharField(max_length=200)
- cave = models.ForeignKey(Cave,blank=True,null=True)
+ cave = models.ForeignKey(Cave,blank=True,null=True)
place = models.CharField(max_length=100,blank=True,null=True)
text = models.TextField()
+ href = models.CharField(max_length=100)
logbookentry_next = models.ForeignKey('LogbookEntry', related_name='pnext', blank=True,null=True)
logbookentry_prev = models.ForeignKey('LogbookEntry', related_name='pprev', blank=True,null=True)
diff --git a/expo/models_survex.py b/expo/models_survex.py index da8ec88..80e5f5b 100644 --- a/expo/models_survex.py +++ b/expo/models_survex.py @@ -1,5 +1,6 @@ from django.db import models
-
+import troggle.settings as settings
+import os
class SurvexBlock(models.Model):
name = models.CharField(max_length=100, blank=True, null=True)
@@ -11,15 +12,28 @@ class SurvexBlock(models.Model): end_year = models.IntegerField(blank=True, null=True)
end_month = models.IntegerField(blank=True, null=True)
end_day = models.IntegerField(blank=True, null=True)
+
person = models.ManyToManyField('Person', through='PersonRole', blank=True, null=True)
+
begin_file = models.CharField(max_length=200)
begin_char = models.IntegerField()
end_file = models.CharField(max_length=200, blank=True, null=True)
end_char = models.IntegerField(blank=True, null=True)
+
def __unicode__(self):
return unicode(self.name)
+
+ def filecontents(self):
+ f = os.path.join(settings.SURVEX_DATA, self.begin_file)
+ fin = open(f)
+ res = fin.read()
+ fin.close()
+ return res
+
+
class PersonRole(models.Model):
+ personexpedition = models.ForeignKey('PersonExpedition')
person = models.ForeignKey('Person')
survex_block = models.ForeignKey('SurvexBlock')
role = models.ForeignKey('Role')
diff --git a/expo/views_logbooks.py b/expo/views_logbooks.py index 1f3de23..935eebd 100644 --- a/expo/views_logbooks.py +++ b/expo/views_logbooks.py @@ -22,17 +22,19 @@ def expedition(request, expeditionname): return render_to_response('expedition.html', {'expedition': expedition, 'expedition_next':expedition_next, 'expedition_prev':expedition_prev, 'logbookentries':logbookentries, 'message':message, 'settings': settings})
def person(request, name):
- persons = Person.objects.all()
- for person in persons:
- if person.href() == name:
- break
- person = None
+ person = Person.objects.get(href=name)
return render_to_response('person.html', {'person': person, 'settings': settings})
+def personexpedition(request, name, expeditionname):
+ person = Person.objects.get(href=name)
+ year = int(expeditionname)
+ expedition = Expedition.objects.get(year=year)
+ personexpedition = person.personexpedition_set.get(expedition=expedition)
+ return render_to_response('personexpedition.html', {'personexpedition': personexpedition, 'settings': settings})
+
+
def logbookentry(request, logbookentry_id):
- logbookentry = LogbookEntry.objects.filter(id = logbookentry_id)[0]
-
-
+ logbookentry = LogbookEntry.objects.filter(href = logbookentry_id)[0]
return render_to_response('logbookentry.html', {'logbookentry': logbookentry, 'settings': settings})
|