summaryrefslogtreecommitdiffstats
path: root/core/models_survex.py
diff options
context:
space:
mode:
authorMartin Green <martin.speleo@gmail.com>2012-06-10 14:59:21 +0100
committerMartin Green <martin.speleo@gmail.com>2012-06-10 14:59:21 +0100
commit711fefb0da7b4a744c71f3d1648d3398c401f4fc (patch)
treed3fbeeb25593d70bb276f0173807490f7ba91d1d /core/models_survex.py
parentfd12e70f7818f42f7f569576369dec287fec7ccc (diff)
downloadtroggle-711fefb0da7b4a744c71f3d1648d3398c401f4fc.tar.gz
troggle-711fefb0da7b4a744c71f3d1648d3398c401f4fc.tar.bz2
troggle-711fefb0da7b4a744c71f3d1648d3398c401f4fc.zip
Start to change dataformat for caves, along with there editing. Start to change survex reader to cope better with equates/tags.
Diffstat (limited to 'core/models_survex.py')
-rw-r--r--core/models_survex.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/core/models_survex.py b/core/models_survex.py
index 1bf75ef..b726d59 100644
--- a/core/models_survex.py
+++ b/core/models_survex.py
@@ -56,16 +56,27 @@ class SurvexStationLookUpManager(models.Manager):
def lookup(self, name):
blocknames, sep, stationname = name.rpartition(".")
return self.get(block = SurvexBlock.objects.lookup(blocknames),
- name = stationname)
+ name__iexact = stationname)
class SurvexStation(models.Model):
- name = models.CharField(max_length=20)
+ name = models.CharField(max_length=100)
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)
+
+ def path(self):
+ r = self.name
+ b = self.block
+ while True:
+ if b.name:
+ r = b.name + "." + r
+ if b.parent:
+ b = b.parent
+ else:
+ return r
class SurvexLeg(models.Model):
block = models.ForeignKey('SurvexBlock')
@@ -85,7 +96,7 @@ class SurvexBlockLookUpManager(models.Manager):
blocknames = name.split(".")
block = SurvexBlock.objects.get(parent=None, survexfile__path="all")
for blockname in blocknames:
- block = SurvexBlock.objects.get(parent=block, name=blockname)
+ block = SurvexBlock.objects.get(parent=block, name__iexact=blockname)
return block
class SurvexBlock(models.Model):
@@ -131,6 +142,7 @@ class SurvexBlock(models.Model):
if ssl:
assert len(ssl) == 1
return ssl[0]
+ #print name
ss = SurvexStation(name=name, block=self)
ss.save()
return ss