summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorgoatchurch <goatchurch@ubuntu.clocksoft.dom>2009-09-10 22:07:31 +0100
committergoatchurch <goatchurch@ubuntu.clocksoft.dom>2009-09-10 22:07:31 +0100
commit735b729a414fdda2e4b832c58707decb19aaae6c (patch)
tree91d23745102961bdb4ce5c8e30c54ac69d33a59b /core
parentc5b933f922f922c7c3a3a2c3d11e8b866fe790b6 (diff)
downloadtroggle-735b729a414fdda2e4b832c58707decb19aaae6c.tar.gz
troggle-735b729a414fdda2e4b832c58707decb19aaae6c.tar.bz2
troggle-735b729a414fdda2e4b832c58707decb19aaae6c.zip
survey scans features added
Diffstat (limited to 'core')
-rw-r--r--core/admin.py7
-rw-r--r--core/models_survex.py72
-rw-r--r--core/view_surveys.py17
-rw-r--r--core/views_survex.py6
4 files changed, 74 insertions, 28 deletions
diff --git a/core/admin.py b/core/admin.py
index 87c812a..37afc3b 100644
--- a/core/admin.py
+++ b/core/admin.py
@@ -19,7 +19,7 @@ class TroggleModelAdmin(admin.ModelAdmin):
js = ('js/jquery.js','js/QM_helper.js')
class RoleInline(admin.TabularInline):
- model = PersonRole
+ model = SurvexPersonRole
extra = 4
class SurvexBlockAdmin(TroggleModelAdmin):
@@ -116,7 +116,7 @@ admin.site.register(Entrance, EntranceAdmin)
admin.site.register(SurvexBlock, SurvexBlockAdmin)
admin.site.register(Expedition)
admin.site.register(Person,PersonAdmin)
-admin.site.register(PersonRole)
+admin.site.register(SurvexPersonRole)
admin.site.register(PersonExpedition,PersonExpeditionAdmin)
admin.site.register(LogbookEntry, LogbookEntryAdmin)
#admin.site.register(PersonTrip)
@@ -124,6 +124,9 @@ admin.site.register(QM, QMAdmin)
admin.site.register(Survey, SurveyAdmin)
admin.site.register(ScannedImage)
+admin.site.register(SurvexScansFolder)
+admin.site.register(SurvexScanSingle)
+
def export_as_json(modeladmin, request, queryset):
response = HttpResponse(mimetype="text/json")
response['Content-Disposition'] = 'attachment; filename=troggle_output.json'
diff --git a/core/models_survex.py b/core/models_survex.py
index ffb3d4d..c6eb5b9 100644
--- a/core/models_survex.py
+++ b/core/models_survex.py
@@ -1,6 +1,9 @@
from django.db import models
from django.conf import settings
import os
+import urlparse
+import re
+from django.core.urlresolvers import reverse
###########################################################
@@ -47,37 +50,42 @@ class SurvexFile(models.Model):
self.save()
class SurvexEquate(models.Model):
- cave = models.ForeignKey('Cave', blank=True, null=True)
+ cave = models.ForeignKey('Cave', blank=True, null=True)
class SurvexStation(models.Model):
- name = models.CharField(max_length=20)
- block = models.ForeignKey('SurvexBlock')
- equate = models.ForeignKey('SurvexEquate', blank=True, null=True)
+ name = models.CharField(max_length=20)
+ block = models.ForeignKey('SurvexBlock')
+ equate = models.ForeignKey('SurvexEquate', blank=True, null=True)
class SurvexLeg(models.Model):
- block = models.ForeignKey('SurvexBlock')
+ block = models.ForeignKey('SurvexBlock')
#title = models.ForeignKey('SurvexTitle')
stationfrom = models.ForeignKey('SurvexStation', related_name='stationfrom')
- stationto = models.ForeignKey('SurvexStation', related_name='stationto')
- tape = models.FloatField()
- compass = models.FloatField()
- clino = models.FloatField()
+ stationto = models.ForeignKey('SurvexStation', related_name='stationto')
+ tape = models.FloatField()
+ compass = models.FloatField()
+ clino = models.FloatField()
+
+
#
# Single SurvexBlock
#
class SurvexBlock(models.Model):
- name = models.CharField(max_length=100)
- parent = models.ForeignKey('SurvexBlock', blank=True, null=True)
- text = models.TextField()
- cave = models.ForeignKey('Cave', blank=True, null=True)
+ name = models.CharField(max_length=100)
+ parent = models.ForeignKey('SurvexBlock', blank=True, null=True)
+ text = models.TextField()
+ cave = models.ForeignKey('Cave', blank=True, null=True)
- date = models.DateField(blank=True, null=True)
+ date = models.DateField(blank=True, null=True)
expedition = models.ForeignKey('Expedition', blank=True, null=True)
- survexfile = models.ForeignKey("SurvexFile", blank=True, null=True)
+ survexfile = models.ForeignKey("SurvexFile", blank=True, null=True)
begin_char = models.IntegerField() # code for where in the survex data files this block sits
survexpath = models.CharField(max_length=200) # the path for the survex stations
- refscandir = models.CharField(max_length=100)
+
+ survexscansfolder = models.ForeignKey("SurvexScansFolder", null=True)
+ #refscandir = models.CharField(max_length=100)
+
totalleglength = models.FloatField()
class Meta:
@@ -108,16 +116,13 @@ class SurvexBlock(models.Model):
class SurvexTitle(models.Model):
survexblock = models.ForeignKey('SurvexBlock')
- title = models.CharField(max_length=200)
- cave = models.ForeignKey('Cave', blank=True, null=True)
+ title = models.CharField(max_length=200)
+ cave = models.ForeignKey('Cave', blank=True, null=True)
#
# member of a SurvexBlock
#
-class PersonRole(models.Model):
- survexblock = models.ForeignKey('SurvexBlock')
-
- ROLE_CHOICES = (
+ROLE_CHOICES = (
('insts','Instruments'),
('dog','Other'),
('notes','Notes'),
@@ -128,9 +133,11 @@ class PersonRole(models.Model):
('disto','Disto'),
('consultant','Consultant'),
)
- nrole = models.CharField(choices=ROLE_CHOICES, max_length=200, blank=True, null=True)
- # increasing levels of precision
+class SurvexPersonRole(models.Model):
+ survexblock = models.ForeignKey('SurvexBlock')
+ nrole = models.CharField(choices=ROLE_CHOICES, max_length=200, blank=True, null=True)
+ # increasing levels of precision
personname = models.CharField(max_length=100)
person = models.ForeignKey('Person', blank=True, null=True)
personexpedition = models.ForeignKey('PersonExpedition', blank=True, null=True)
@@ -140,3 +147,20 @@ class PersonRole(models.Model):
return unicode(self.person) + " - " + unicode(self.survexblock) + " - " + unicode(self.nrole)
+class SurvexScansFolder(models.Model):
+ fpath = models.CharField(max_length=200)
+ walletname = models.CharField(max_length=200)
+
+ def get_absolute_url(self):
+ return urlparse.urljoin(settings.URL_ROOT, reverse('surveyscansfolder', kwargs={"path":re.sub("#", "%23", self.walletname)}))
+
+class SurvexScanSingle(models.Model):
+ ffile = models.CharField(max_length=200)
+ name = models.CharField(max_length=200)
+ survexscansfolder = models.ForeignKey("SurvexScansFolder", null=True)
+
+ def get_absolute_url(self):
+ return urlparse.urljoin(settings.URL_ROOT, reverse('surveyscansingle', kwargs={"path":re.sub("#", "%23", self.survexscansfolder.walletname), "file":self.name}))
+
+
+
diff --git a/core/view_surveys.py b/core/view_surveys.py
index 846b245..ab45438 100644
--- a/core/view_surveys.py
+++ b/core/view_surveys.py
@@ -4,10 +4,12 @@ from django.shortcuts import render_to_response
from django.http import HttpResponse, Http404
import os
import re
+from troggle.core.models import SurvexScansFolder, SurvexScanSingle, SurvexBlock
# inline fileabstraction into here if it's not going to be useful anywhere else
# keep things simple and ignore exceptions everywhere for now
+
def getMimeType(extension):
try:
return {"txt": "text/plain",
@@ -159,3 +161,18 @@ def jgtuploadfile(request):
print "gothere"
return render_to_response('fileupload.html', {'message':message, 'filesuploaded':filesuploaded, 'settings': settings})
+def surveyscansfolder(request, path):
+ #print [ s.walletname for s in SurvexScansFolder.objects.all() ]
+ survexscansfolder = SurvexScansFolder.objects.get(walletname=path)
+ return render_to_response('survexscansfolder.html', { 'survexscansfolder':survexscansfolder, 'settings': settings })
+
+def surveyscansingle(request, path, file):
+ survexscansfolder = SurvexScansFolder.objects.get(walletname=path)
+ survexscansingle = SurvexScanSingle.objects.get(survexscansfolder=survexscansfolder, name=file)
+ return HttpResponse(content=open(survexscansingle.ffile), mimetype="image/png")
+ #return render_to_response('survexscansfolder.html', { 'survexscansfolder':survexscansfolder, 'settings': settings })
+
+def surveyscansfolders(request):
+ survexscansfolders = SurvexScansFolder.objects.all()
+ return render_to_response('survexscansfolders.html', { 'survexscansfolders':survexscansfolders, 'settings': settings })
+ \ No newline at end of file
diff --git a/core/views_survex.py b/core/views_survex.py
index 698268c..b6b5aba 100644
--- a/core/views_survex.py
+++ b/core/views_survex.py
@@ -8,7 +8,7 @@ import datetime
import difflib
from troggle.core.models import Expedition, Person, PersonExpedition, PersonTrip, LogbookEntry, Cave
-from troggle.core.models import SurvexBlock, PersonRole, SurvexFile, SurvexDirectory, SurvexTitle
+from troggle.core.models import SurvexBlock, SurvexPersonRole, SurvexFile, SurvexDirectory, SurvexTitle
from parsers.people import GetPersonExpeditionNameLookup
import troggle.settings as settings
@@ -306,8 +306,10 @@ def survexcaveslist(request):
# parsing all the survex files of a single cave and showing that it's consistent and can find all the files and people
# doesn't use recursion. just writes it twice
def survexcavesingle(request, survex_cave):
+ breload = False
cave = Cave.objects.get(kataster_number=survex_cave)
- parsers.survex.ReloadSurvexCave(survex_cave)
+ if breload:
+ parsers.survex.ReloadSurvexCave(survex_cave)
return render_to_response('svxcavesingle.html', {'settings': settings, "cave":cave })