From 469a520e5c9c480979af4bc194d4e9f393946cce Mon Sep 17 00:00:00 2001
From: substantialnoninfringinguser <substantialnoninfringinguser@gmail.com>
Date: Wed, 13 May 2009 05:21:39 +0100
Subject: [PATCH] [svn] Generalised the way dates are stored, and added a
 personRole and Role field Copied from
 http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8079 by julian @
 11/8/2008 11:27 PM

---
 expo/models_survex.py | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/expo/models_survex.py b/expo/models_survex.py
index 7dba60e..da8ec88 100644
--- a/expo/models_survex.py
+++ b/expo/models_survex.py
@@ -1,17 +1,32 @@
 from django.db import models
 
+
 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()
-    date = models.DateField(blank=True, null=True)
-    notes_person = models.ManyToManyField('PersonTrip', related_name="notes", blank=True, null=True)
-    pics_person = models.ManyToManyField('PersonTrip', related_name="pics", blank=True, null=True)
-    tape_person = models.ManyToManyField('PersonTrip', related_name="tape", blank=True, null=True)
-    insts_person = models.ManyToManyField('PersonTrip', related_name="insts", blank=True, null=True)
+    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)
+    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)
+
+class PersonRole(models.Model):
+    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)
\ No newline at end of file