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 | cc8c47f21f8415ba5d37632385d7440e455bf61a (patch) | |
tree | 89449484042c1e7a0d39cc35bc22e64708e3027e /core/models_survex.py | |
parent | 1e1d63c768fb7791f278c164ded138e95fd787e5 (diff) | |
parent | 861daee66feb985ccfb9271c211dc1a27263fbf4 (diff) | |
download | troggle-cc8c47f21f8415ba5d37632385d7440e455bf61a.tar.gz troggle-cc8c47f21f8415ba5d37632385d7440e455bf61a.tar.bz2 troggle-cc8c47f21f8415ba5d37632385d7440e455bf61a.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()
|