diff options
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 |