summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/views_survex.py133
1 files changed, 80 insertions, 53 deletions
diff --git a/core/views_survex.py b/core/views_survex.py
index c7d980c..6bf65bf 100644
--- a/core/views_survex.py
+++ b/core/views_survex.py
@@ -18,46 +18,74 @@ from troggle.parsers.people import GetPersonExpeditionNameLookup
-survextemplatefile = """; Locn: Totes Gebirge, Austria - Loser/Augst-Eck Plateau (kataster group 1623)
-; Cave:
+survextemplatefile = """; *** DO NOT SAVE THIS FILE WITHOUT RENAMING IT !! ***
+;[Stuff in square brackets is example text to be replaced with real data,
+; removing the square brackets]
*begin [surveyname]
-*export [connecting stations]
-
-*title "area title"
-*date 2099.99.99
-*team Insts [Caver]
-*team Insts [Caver]
-*team Notes [Caver]
-*instrument [set number]
-
-*ref: 2099#NN
-
-*calibrate tape +0.0 ; +ve if tape was too short, -ve if too long
-
-*data normal from to tape compass clino
-1 2 3.90 298 -20
-
-*data passage station left right up down ignoreall
-1 [L] [R] [U] [D] comment
-
-*end [surveyname]"""
-
-def ReplaceTabs(stext):
- res = [ ]
- nsl = 0
- for s in re.split("(\t|\n)", stext):
- if s == "\t":
- res.append(" " * (4 - (nsl % 4)))
- nsl = 0
- continue
- if s == "\n":
- nsl = 0
- else:
- nsl += len(s)
- res.append(s)
- return "".join(res)
+; stations linked into other surveys (or likely to)
+*export [1 8 12 34]
+
+; Cave:
+; Area in cave/QM:
+*title ""
+*date [2040.07.04]
+*team Insts [Fred Foo]
+*team Notes [Brenda Bar]
+*team Pics [Brenda Bar]
+*team Tape [Albert Anyone]
+*instrument [SAP #+Laser Tape/DistoX/Compass # ; Clino #]
+; Calibration: [Where, readings]
+*ref 2040#00
+; the #number is on the clear pocket containing the original notes
+
+; if using a tape:
+*calibrate tape +0.0 ; +ve if tape was too short, -ve if too long
+
+; Centreline data
+*data normal from to length bearing gradient ignoreall
+[ 1 2 5.57 034.5 -12.8 ]
+
+;-----------
+;recorded station details (leave commented out)
+;(NP=Nail Polish, LHW/RHW=Left/Right Hand Wall)
+;Station Left Right Up Down Description
+;[Red] nail varnish markings
+[;1 0.8 0 5.3 1.6 ; NP on boulder. pt 23 on foo survey ]
+[;2 0.3 1.2 6 1.2 ; NP '2' LHW ]
+[;3 1.3 0 3.4 0.2 ; Rock on floor - not refindable ]
+
+
+;LRUDs arranged into passage tubes
+;new *data command for each 'passage',
+;repeat stations and adjust numbers as needed
+*data passage station left right up down
+;[ 1 0.8 0 5.3 1.6 ]
+;[ 2 0.3 1.2 6 1.2 ]
+*data passage station left right up down
+;[ 1 1.3 1.5 5.3 1.6 ]
+;[ 3 2.4 0 3.4 0.2 ]
+
+
+;-----------
+;Question Mark List ;(leave commented-out)
+; The nearest-station is the name of the survey and station which are nearest to
+; the QM. The resolution-station is either '-' to indicate that the QM hasn't
+; been checked; or the name of the survey and station which push that QM. If a
+; QM doesn't go anywhere, set the resolution-station to be the same as the
+; nearest-station. Include any relevant details of how to find or push the QM in
+; the textual description.
+;Serial number grade(A/B/C/X) nearest-station resolution-station description
+;[ QM1 A surveyname.3 - description of QM ]
+;[ QM2 B surveyname.5 - description of QM ]
+
+;------------
+;Cave description ;(leave commented-out)
+;freeform text describing this section of the cave
+
+*end [surveyname]
+"""
class SvxForm(forms.Form):
@@ -71,9 +99,8 @@ class SvxForm(forms.Form):
fname = settings.SURVEX_DATA + self.data['filename'] + ".svx"
if not os.path.isfile(fname):
return survextemplatefile
- fin = open(fname, "rb")
- svxtext = fin.read().decode("latin1") # unicode(a, "latin1")
- svxtext = ReplaceTabs(svxtext).strip()
+ fin = open(fname, "rt",encoding='utf8',newline='')
+ svxtext = fin.read()
fin.close()
return svxtext
@@ -86,19 +113,19 @@ class SvxForm(forms.Form):
def SaveCode(self, rcode):
fname = settings.SURVEX_DATA + self.data['filename'] + ".svx"
if not os.path.isfile(fname):
- # only save if appears valid
if re.search(r"\[|\]", rcode):
- return "Error: clean up all []s from the text"
+ return "Error: remove all []s from the text. They are only template guidance."
mbeginend = re.search(r"(?s)\*begin\s+(\w+).*?\*end\s+(\w+)", rcode)
if not mbeginend:
return "Error: no begin/end block here"
if mbeginend.group(1) != mbeginend.group(2):
- return "Error: mismatching beginend"
+ return "Error: mismatching begin/end labels"
- fout = open(fname, "wb")
- res = fout.write(rcode.encode("latin1"))
+ fout = open(fname, "wt", encoding='utf8',newline='\n')
+ # javascript seems to insert CRLF on WSL1.
+ res = fout.write(rcode.replace("\r",""))
fout.close()
- return "SAVED"
+ return "SAVED ."
def Process(self):
print("....\n\n\n....Processing\n\n\n")
@@ -106,10 +133,10 @@ class SvxForm(forms.Form):
os.chdir(os.path.split(settings.SURVEX_DATA + self.data['filename'])[0])
os.system(settings.CAVERN + " --log " + settings.SURVEX_DATA + self.data['filename'] + ".svx")
os.chdir(cwd)
- fin = open(settings.SURVEX_DATA + self.data['filename'] + ".log", "rb")
+ fin = open(settings.SURVEX_DATA + self.data['filename'] + ".log", "rt",encoding='utf8')
log = fin.read()
fin.close()
- log = re.sub(b"(?s).*?(Survey contains)", "\\1", log)
+ log = re.sub("(?s).*?(Survey contains)", "\\1", log)
return log
@@ -181,7 +208,7 @@ def svx(request, survex_file):
return render_to_response('svxfile.html', vmap)
def svxraw(request, survex_file):
- svx = open(os.path.join(settings.SURVEX_DATA, survex_file+".svx"), "rb")
+ svx = open(os.path.join(settings.SURVEX_DATA, survex_file+".svx"), "rt",encoding='utf8')
return HttpResponse(svx, content_type="text")
@@ -196,20 +223,20 @@ def process(survex_file):
def threed(request, survex_file):
process(survex_file)
try:
- threed = open(settings.SURVEX_DATA + survex_file + ".3d", "rb")
+ threed = open(settings.SURVEX_DATA + survex_file + ".3d", "rt",encoding='utf8')
return HttpResponse(threed, content_type="model/3d")
except:
- log = open(settings.SURVEX_DATA + survex_file + ".log", "rb")
+ log = open(settings.SURVEX_DATA + survex_file + ".log", "rt",encoding='utf8')
return HttpResponse(log, content_type="text")
def log(request, survex_file):
process(survex_file)
- log = open(settings.SURVEX_DATA + survex_file + ".log", "rb")
+ log = open(settings.SURVEX_DATA + survex_file + ".log", "rt",encoding='utf8')
return HttpResponse(log, content_type="text")
def err(request, survex_file):
process(survex_file)
- err = open(settings.SURVEX_DATA + survex_file + ".err", "rb")
+ err = open(settings.SURVEX_DATA + survex_file + ".err", "rt",encoding='utf8')
return HttpResponse(err, content_type="text")