diff options
author | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-07-02 20:43:18 +0100 |
---|---|---|
committer | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-07-02 20:43:18 +0100 |
commit | ae3fe8cd423be5268d630a498361e376c6add776 (patch) | |
tree | 1cf7409b5377484ba38d8feba94a893abb7d8611 /core/models_survex.py | |
parent | c0b274767b5c0ed209b9ff03679519e2d2170134 (diff) | |
download | troggle-ae3fe8cd423be5268d630a498361e376c6add776.tar.gz troggle-ae3fe8cd423be5268d630a498361e376c6add776.tar.bz2 troggle-ae3fe8cd423be5268d630a498361e376c6add776.zip |
[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)
Diffstat (limited to 'core/models_survex.py')
-rw-r--r-- | core/models_survex.py | 66 |
1 files changed, 66 insertions, 0 deletions
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)
+
|