From ae3fe8cd423be5268d630a498361e376c6add776 Mon Sep 17 00:00:00 2001 From: substantialnoninfringinguser Date: Thu, 2 Jul 2009 20:43:18 +0100 Subject: [svn] Renaming troggle.expo to troggle.core. To do this, used: perl -p -i -e "s/expo(?=[\s\.']+)/core/g" `find -name \*.py` and then manually checked each change (had to remove a couple) --- core/models_survex.py | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 core/models_survex.py (limited to 'core/models_survex.py') diff --git a/core/models_survex.py b/core/models_survex.py new file mode 100644 index 0000000..cf339f9 --- /dev/null +++ b/core/models_survex.py @@ -0,0 +1,66 @@ +from django.db import models +from django.conf import settings +import os + +class SurvexBlock(models.Model): + name = models.CharField(max_length=100, blank=True, null=True) + parent = models.ForeignKey('SurvexBlock', blank=True, null=True) + text = models.TextField() + + # non-useful representation of incomplete data + start_year = models.IntegerField(blank=True, null=True) + start_month = models.IntegerField(blank=True, null=True) + start_day = models.IntegerField(blank=True, null=True) + end_year = models.IntegerField(blank=True, null=True) + end_month = models.IntegerField(blank=True, null=True) + end_day = models.IntegerField(blank=True, null=True) + + date = models.DateField(blank=True, null=True) + survexpath = models.CharField(max_length=100) + + # superfluous + person = models.ManyToManyField('Person', through='PersonRole', blank=True, null=True) + + # code for where in the survex data files this block sits + 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) + + class Meta: + ordering = ('date', 'survexpath') + + def __unicode__(self): + return unicode(self.name) + + def filecontents(self): + f = os.path.join(settings.SURVEX_DATA, self.begin_file) + fin = open(f, "rb") + res = fin.read().decode("latin1") + fin.close() + return res + + def GetPersonroles(self): + res = [ ] + for personrole in self.personrole_set.order_by('personexpedition'): + if res and res[-1]['person'] == personrole.personexpedition.person: + res[-1]['roles'] += ", " + str(personrole.role) + else: + res.append({'person':personrole.personexpedition.person, 'expeditionyear':personrole.personexpedition.expedition.year, 'roles':str(personrole.role)}) + print res + return res + + +class PersonRole(models.Model): + personexpedition = models.ForeignKey('PersonExpedition') + person = models.ForeignKey('Person') + survex_block = models.ForeignKey('SurvexBlock') + role = models.ForeignKey('Role') + def __unicode__(self): + return unicode(self.person) + " - " + unicode(self.survex_block) + " - " + unicode(self.role) + +class Role(models.Model): + name = models.CharField(max_length=50) + def __unicode__(self): + return unicode(self.name) + -- cgit v1.2.3