diff options
author | Martin Green <martin.speleo@gmail.com> | 2012-06-10 14:59:21 +0100 |
---|---|---|
committer | Martin Green <martin.speleo@gmail.com> | 2012-06-10 14:59:21 +0100 |
commit | 711fefb0da7b4a744c71f3d1648d3398c401f4fc (patch) | |
tree | d3fbeeb25593d70bb276f0173807490f7ba91d1d /core/models_survex.py | |
parent | fd12e70f7818f42f7f569576369dec287fec7ccc (diff) | |
download | troggle-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.py | 18 |
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 |