diff options
author | goatchurch <goatchurch@ubuntu.clocksoft.dom> | 2009-09-13 17:27:46 +0100 |
---|---|---|
committer | goatchurch <goatchurch@ubuntu.clocksoft.dom> | 2009-09-13 17:27:46 +0100 |
commit | 7578b65573b3c49bab55deecd0198adce4ca84fa (patch) | |
tree | 7218d2f65c886bef55e3a4c561dd61866491eef2 /core | |
parent | ced45c92f7db673968069bf3ba506a4f2259d224 (diff) | |
download | troggle-7578b65573b3c49bab55deecd0198adce4ca84fa.tar.gz troggle-7578b65573b3c49bab55deecd0198adce4ca84fa.tar.bz2 troggle-7578b65573b3c49bab55deecd0198adce4ca84fa.zip |
able to save sketches up from tunnel
Diffstat (limited to 'core')
-rw-r--r-- | core/models_survex.py | 4 | ||||
-rw-r--r-- | core/view_surveys.py | 45 |
2 files changed, 47 insertions, 2 deletions
diff --git a/core/models_survex.py b/core/models_survex.py index 9fd23c4..2828389 100644 --- a/core/models_survex.py +++ b/core/models_survex.py @@ -173,5 +173,9 @@ class TunnelFile(models.Model): survexscans = models.ManyToManyField("SurvexScanSingle")
survexblocks = models.ManyToManyField("SurvexBlock")
tunnelcontains = models.ManyToManyField("TunnelFile") # case when its a frame type
+ filesize = models.IntegerField(default=0)
+ npaths = models.IntegerField(default=0)
+ class Meta:
+ ordering = ('tunnelpath',)
\ No newline at end of file diff --git a/core/view_surveys.py b/core/view_surveys.py index 0324b24..fc93a7e 100644 --- a/core/view_surveys.py +++ b/core/view_surveys.py @@ -2,7 +2,7 @@ from django.conf import settings import fileAbstraction
from django.shortcuts import render_to_response
from django.http import HttpResponse, Http404
-import os
+import os, stat
import re
from troggle.core.models import SurvexScansFolder, SurvexScanSingle, SurvexBlock, TunnelFile
@@ -181,4 +181,45 @@ def surveyscansfolders(request): def tunneldata(request):
tunnelfiles = TunnelFile.objects.all()
return render_to_response('tunnelfiles.html', { 'tunnelfiles':tunnelfiles, 'settings': settings })
-
\ No newline at end of file +
+def tunnelfile(request, path):
+ tunnelfile = TunnelFile.objects.get(tunnelpath=path)
+ tfile = os.path.join(settings.TUNNEL_DATA, tunnelfile.tunnelpath)
+
+ # just output the file
+ if not request.POST:
+ return HttpResponse(content=open(tfile), mimetype="text/plain")
+
+ project, user, password, tunnelversion = request.POST["tunnelproject"], request.POST["tunneluser"], request.POST["tunnelpassword"], request.POST["tunnelversion"]
+ print (project, user, tunnelversion)
+ for uploadedfile in request.FILES.values():
+ if uploadedfile.field_name != "sketch":
+ return HttpResponse(content="Error: non-sketch file uploaded", mimetype="text/plain")
+ if uploadedfile.content_type != "text/plain":
+ return HttpResponse(content="Error: non-plain content type", mimetype="text/plain")
+
+ # could use this to add new files
+ if os.path.split(path)[1] != uploadedfile.name:
+ return HttpResponse(content="Error: name disagrees", mimetype="text/plain")
+
+ orgsize = tunnelfile.filesize # = os.stat(tfile)[stat.ST_SIZE]
+
+ ttext = uploadedfile.read()
+
+ # could check that the user and projects agree here
+
+ fout = open(tfile, "w")
+ fout.write(ttext)
+ fout.close()
+
+ # redo its settings of
+ tunnelfile.filesize = os.stat(tfile)[stat.ST_SIZE]
+ tunnelfile.save()
+
+ uploadedfile.close()
+ message = "File size %d overwritten with size %d" % (orgsize, tunnelfile.filesize)
+ return HttpResponse(content=message, mimetype="text/plain")
+
+
+
+
|