diff options
author | Wookey <wookey@wookware.org> | 2011-07-11 00:49:18 +0100 |
---|---|---|
committer | Wookey <wookey@wookware.org> | 2011-07-11 00:49:18 +0100 |
commit | 129d93dfa74eaa6f8ec6aeefaff38699bca8d40f (patch) | |
tree | 30de6c64f4fb6d281c9d15879af5d8940eba3cb1 /core/models_survex.py | |
parent | 28924db9f87af72343206383e9065841e3fd1c14 (diff) | |
parent | 65c55f0f21fe85a678d48842da10e0ea5c917ae5 (diff) | |
download | troggle-129d93dfa74eaa6f8ec6aeefaff38699bca8d40f.tar.gz troggle-129d93dfa74eaa6f8ec6aeefaff38699bca8d40f.tar.bz2 troggle-129d93dfa74eaa6f8ec6aeefaff38699bca8d40f.zip |
Merge from Martin's tip
Diffstat (limited to 'core/models_survex.py')
-rw-r--r-- | core/models_survex.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/core/models_survex.py b/core/models_survex.py index ed21658..efd3022 100644 --- a/core/models_survex.py +++ b/core/models_survex.py @@ -52,10 +52,20 @@ class SurvexFile(models.Model): class SurvexEquate(models.Model):
cave = models.ForeignKey('Cave', blank=True, null=True)
+class SurvexStationLookUpManager(models.Manager):
+ def lookup(self, name):
+ blocknames, sep, stationname = name.rpartition(".")
+ return self.get(block = SurvexBlock.objects.lookup(blocknames),
+ name = stationname)
+
class SurvexStation(models.Model):
name = models.CharField(max_length=20)
block = models.ForeignKey('SurvexBlock')
equate = models.ForeignKey('SurvexEquate', blank=True, null=True)
+ objects = SurvexStationLookUpManager()
+ x = models.FloatField(blank=True, null=True)
+ y = models.FloatField(blank=True, null=True)
+ z = models.FloatField(blank=True, null=True)
class SurvexLeg(models.Model):
block = models.ForeignKey('SurvexBlock')
@@ -70,7 +80,16 @@ class SurvexLeg(models.Model): #
# Single SurvexBlock
#
+class SurvexBlockLookUpManager(models.Manager):
+ def lookup(self, name):
+ blocknames = name.split(".")
+ block = SurvexBlock.objects.get(parent=None, survexfile__path="all")
+ for blockname in blocknames:
+ block = SurvexBlock.objects.get(parent=block, name=blockname)
+ return block
+
class SurvexBlock(models.Model):
+ objects = SurvexBlockLookUpManager()
name = models.CharField(max_length=100)
parent = models.ForeignKey('SurvexBlock', blank=True, null=True)
text = models.TextField()
|