summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsubstantialnoninfringinguser <substantialnoninfringinguser@gmail.com>2009-05-13 05:15:20 +0100
committersubstantialnoninfringinguser <substantialnoninfringinguser@gmail.com>2009-05-13 05:15:20 +0100
commit01cd96122983233ded47cd5a8994b84fb1bec486 (patch)
tree6ebf461a769bec20009c903e348481ac3e5501a6
parentf5d3c9d28196a1678647fe3239fa3eaf633e6c41 (diff)
downloadtroggle-01cd96122983233ded47cd5a8994b84fb1bec486.tar.gz
troggle-01cd96122983233ded47cd5a8994b84fb1bec486.tar.bz2
troggle-01cd96122983233ded47cd5a8994b84fb1bec486.zip
[svn] Add QM model. Note that I had to put models_logbook into models cave because it referred to models from both. Will try to split them back up, should be possible.
Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8042 by aaron @ 10/28/2008 10:21 PM
-rw-r--r--expo/admin.py1
-rw-r--r--expo/models_cave.py105
-rw-r--r--localsettingswindows.py10
-rw-r--r--parsers/cavetab.py3
-rw-r--r--settings.py2
5 files changed, 112 insertions, 9 deletions
diff --git a/expo/admin.py b/expo/admin.py
index 5b1036b..96947cb 100644
--- a/expo/admin.py
+++ b/expo/admin.py
@@ -13,3 +13,4 @@ admin.site.register(Person)
admin.site.register(PersonExpedition)
admin.site.register(LogbookEntry)
admin.site.register(PersonTrip)
+admin.site.register(QM)
diff --git a/expo/models_cave.py b/expo/models_cave.py
index 3ae6752..3193019 100644
--- a/expo/models_cave.py
+++ b/expo/models_cave.py
@@ -1,4 +1,5 @@
from django.db import models
+import models_logbooks
class Area(models.Model):
short_name = models.CharField(max_length=100)
@@ -47,7 +48,7 @@ class Cave(models.Model):
if self.kat_area():
return self.kat_area() + u": " + self.kataster_number
else:
- return unicode(l) + u": " + self.kataster_number
+ return unicode("l") + u": " + self.kataster_number
else:
if self.kat_area():
return self.kat_area() + u": " + self.unofficial_number
@@ -150,4 +151,104 @@ class Entrance(models.Model):
def findability_val(self):
for f in self.FINDABLE_CHOICES:
if f[0] == self.findability:
- return f[1] \ No newline at end of file
+ return f[1]
+
+class Expedition(models.Model):
+ year = models.CharField(max_length=20, unique=True)
+ name = models.CharField(max_length=100)
+ start_date = models.DateField(blank=True,null=True)
+ end_date = models.DateField(blank=True,null=True)
+
+ def __str__(self):
+ return self.year
+
+ def GetPersonExpedition(self, name):
+ if name == "Dour":
+ name = "Anthony Day"
+ personyears = PersonExpedition.objects.filter(expedition=self)
+ res = None
+ for personyear in personyears:
+ if name == "%s %s" % (personyear.person.first_name, personyear.person.last_name):
+ assert not res, "Ambiguous:" + name
+ res = personyear
+ if name == "%s %s" % (personyear.person.first_name, personyear.person.last_name[0]):
+ assert not res, "Ambiguous:" + name
+ res = personyear
+ if name == personyear.person.first_name:
+ assert not res, "Ambiguous:" + name
+ res = personyear
+ return res
+
+class Person(models.Model):
+ first_name = models.CharField(max_length=100)
+ last_name = models.CharField(max_length=100)
+ is_guest = models.BooleanField()
+ is_vfho = models.BooleanField()
+ mug_shot = models.CharField(max_length=100, blank=True,null=True)
+ def __str__(self):
+ return "%s %s" % (self.first_name, self.last_name)
+
+class PersonExpedition(models.Model):
+ expedition = models.ForeignKey(Expedition)
+ person = models.ForeignKey(Person)
+ from_date = models.DateField(blank=True,null=True)
+ to_date = models.DateField(blank=True,null=True)
+ nickname = models.CharField(max_length=100,blank=True,null=True)
+ def __str__(self):
+ return "%s: (%s)" % (self.person, self.expedition)
+
+class LogbookEntry(models.Model):
+ date = models.DateField()
+ author = models.ForeignKey(PersonExpedition,blank=True,null=True)
+ title = models.CharField(max_length=100)
+
+ # this will be a foreign key
+ place = models.CharField(max_length=100,blank=True,null=True)
+ text = models.TextField()
+
+ #cavers = models.ManyToManyField(PersonYear)
+ #tu = models.CharField(max_length=50)
+ def __str__(self):
+ return "%s: (%s)" % (self.date, self.title)
+
+class PersonTrip(models.Model):
+ personexpedition = models.ForeignKey(PersonExpedition)
+ place = models.CharField(max_length=100) # this will be a foreign key
+ date = models.DateField()
+ timeunderground = models.CharField(max_length=100)
+ logbookentry = models.ForeignKey(LogbookEntry)
+
+ #is_author = models.BooleanField()
+
+ def __str__(self):
+ return "%s %s (%s)" % (self.personexpedition, self.place, self.date)
+
+class QM(models.Model):
+ #based on qm.csv in trunk/expoweb/smkridge/204 which has the fields:
+ #"Number","Grade","Area","Description","Page reference","Nearest station","Completion description","Comment"
+ found_by = models.ForeignKey(PersonTrip, related_name='QMs_found',)
+ ticked_off_by = models.ForeignKey(PersonTrip, related_name='QMs_ticked_off',null=True,blank=True)
+ #the cave field is unneeded- go through trips
+ #cave = models.ForeignKey(Cave, edit_inline=models.TABULAR, num_in_admin=3)
+ number_in_year = models.IntegerField()
+ GRADE_CHOICES=(
+ ('A', 'A: Large obvious lead'),
+ ('B', 'B: Average lead'),
+ ('C', 'C: Tight unpromising lead'),
+ ('D', 'D: Dig'),
+ ('X', 'X: Unclimbable aven')
+ )
+ grade = models.CharField(max_length=1, choices=GRADE_CHOICES)
+ location_description = models.TextField(blank=True)
+ #should be a foreignkey to surveystation
+ nearest_station = models.CharField(max_length=400,blank=True)
+ completion_description = models.TextField(blank=True)
+ comment=models.TextField(blank=True)
+ #the below are unneeded- instead use the date fields of the QM's trips
+ #dateFound = models.DateField(blank=True)
+ #dateKilled = models.DateField(blank=True)
+ def __str__(self):
+ QMnumber=str(self.found_by.date.year)+"-"+str(self.number_in_year)+self.grade
+ return str(QMnumber)
+
+
diff --git a/localsettingswindows.py b/localsettingswindows.py
index 179669f..2ac583b 100644
--- a/localsettingswindows.py
+++ b/localsettingswindows.py
@@ -1,10 +1,10 @@
-DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
-DATABASE_NAME = './sqlite.db' # Or path to database file if using sqlite3.
-DATABASE_USER = '' # Not used with sqlite3.
+DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+DATABASE_NAME = 'troggle' # Or path to database file if using sqlite3.
+DATABASE_USER = 'root' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
-SURVEX_DATA = 'c:\\loser\\'
+SURVEX_DATA = 'c:\\Expo\\loser\\'
CAVERN = '"C:\\Program Files\\Survex\\cavern"'
-EXPOWEB = 'C:\\expoweb\\' \ No newline at end of file
+EXPOWEB = 'C:\\Expo\\expoweb\\' \ No newline at end of file
diff --git a/parsers/cavetab.py b/parsers/cavetab.py
index 0bdac72..c4d53a6 100644
--- a/parsers/cavetab.py
+++ b/parsers/cavetab.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
-
+import sys
+sys.path.append('C:\\Expo\\expoweb\\troggle\\')
import settings
import expo.models as models
import csv
diff --git a/settings.py b/settings.py
index bccbe9a..ef4a66b 100644
--- a/settings.py
+++ b/settings.py
@@ -1,4 +1,4 @@
-from localsettings import *
+from localsettingsserver import *
# Django settings for troggle2 project.
DEBUG = True