diff options
Diffstat (limited to 'core/views_caves.py')
-rw-r--r-- | core/views_caves.py | 99 |
1 files changed, 45 insertions, 54 deletions
diff --git a/core/views_caves.py b/core/views_caves.py index 41831bd..c306461 100644 --- a/core/views_caves.py +++ b/core/views_caves.py @@ -3,24 +3,52 @@ from __future__ import (absolute_import, division, print_function, unicode_literals) -from troggle.core.models import CaveSlug, Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription, EntranceSlug, Entrance, Area, SurvexStation -from troggle.core.forms import CaveForm, CaveAndEntranceFormSet, VersionControlCommentForm, EntranceForm, EntranceLetterForm -import troggle.core.models as models -import troggle.settings as settings -from troggle.helper import login_required_if_public +import sys +import os +import string +import subprocess +import re +import settings +import urllib.parse -from django.forms.models import modelformset_factory +from PIL import Image, ImageDraw, ImageFont from django import forms +from django.conf import settings +from django.forms.models import modelformset_factory from django.core.urlresolvers import reverse from django.http import HttpResponse, HttpResponseRedirect -from django.conf import settings -import re, urllib.parse from django.shortcuts import get_object_or_404, render -import settings +import troggle.settings as settings +import troggle.core.models as models +from troggle.core.models import CaveSlug, Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription, EntranceSlug, Entrance, Area, SurvexStation +from troggle.core.forms import CaveForm, CaveAndEntranceFormSet, VersionControlCommentForm, EntranceForm, EntranceLetterForm +from troggle.helper import login_required_if_public -from PIL import Image, ImageDraw, ImageFont -import string, os, sys, subprocess +class MapLocations(object): + p = [ + ("laser.0_7", "BNase", "Reference", "Bräuning Nase laser point"), + ("226-96", "BZkn", "Reference", "Bräuning Zinken trig point"), + ("vd1","VD1","Reference", "VD1 survey point"), + ("laser.kt114_96","HSK","Reference", "Hinterer Schwarzmooskogel trig point"), + ("2000","Nipple","Reference", "Nipple (Weiße Warze)"), + ("3000","VSK","Reference", "Vorderer Schwarzmooskogel summit"), + ("oldtopcamp", "OTC", "Reference", "Old Top Camp"), + ("laser.0", "LSR0", "Reference", "Laser Point 0"), + ("laser.0_1", "LSR1", "Reference", "Laser Point 0/1"), + ("laser.0_3", "LSR3", "Reference", "Laser Point 0/3"), + ("laser.0_5", "LSR5", "Reference", "Laser Point 0/5"), + ("225-96", "BAlm", "Reference", "Bräuning Alm trig point") + ] + def points(self): + for ent in Entrance.objects.all(): + if ent.best_station(): + areaName = ent.caveandentrance_set.all()[0].cave.getArea().short_name + self.p.append((ent.best_station(), "%s-%s" % (areaName, str(ent)[5:]), ent.needs_surface_work(), str(ent))) + return self.p + + def __str__(self): + return "{} map locations".format(len(self.p)) def getCave(cave_id): """Returns a cave object when given a cave name or number. It is used by views including cavehref, ent, and qm.""" @@ -57,8 +85,6 @@ def caveindex(request): def millenialcaves(request): #RW messing around area return HttpResponse("Test text", content_type="text/plain") - - def cave3d(request, cave_id=''): cave = getCave(cave_id) @@ -216,9 +242,7 @@ def qm(request,cave_id,qm_id,year,grade=None): if grade: url += r'&grade=' + grade return HttpResponseRedirect(url) - - def ent(request, cave_id, ent_letter): cave = Cave.objects.filter(kataster_number = cave_id)[0] cave_and_ent = CaveAndEntrance.objects.filter(cave = cave).filter(entrance_letter = ent_letter)[0] @@ -362,7 +386,6 @@ areacolours = { '7' : '#808080' } - for FONT in [ "/usr/share/fonts/truetype/freefont/FreeSans.ttf", "/usr/X11R6/lib/X11/fonts/truetype/arial.ttf", @@ -460,27 +483,11 @@ def prospecting_image(request, name): draw.line([10+m100, TEXTSIZE * 3, 10+m100, TEXTSIZE*2], fill='#000000', width=LINEWIDTH) label = "100m" draw.text([10 + (m100 - draw.textsize(label)[0]) / 2, TEXTSIZE/2], label, fill='#000000') - plot("laser.0_7", "BNase", "Reference", "Bräuning Nase laser point", name, draw, img) - plot("226-96", "BZkn", "Reference", "Bräuning Zinken trig point", name, draw, img) - plot("vd1","VD1","Reference", "VD1 survey point", name, draw, img) - plot("laser.kt114_96","HSK","Reference", "Hinterer Schwarzmooskogel trig point", name, draw, img) - plot("2000","Nipple","Reference", "Nipple (Weiße Warze)", name, draw, img) - plot("3000","VSK","Reference", "Vorderer Schwarzmooskogel summit", name, draw, img) - plot("topcamp", "TC", "Reference", "Top Camp", name, draw, img) - plot("laser.0", "LSR0", "Reference", "Laser Point 0", name, draw, img) - plot("laser.0_1", "LSR1", "Reference", "Laser Point 0/1", name, draw, img) - plot("laser.0_3", "LSR3", "Reference", "Laser Point 0/3", name, draw, img) - plot("laser.0_5", "LSR5", "Reference", "Laser Point 0/5", name, draw, img) - plot("225-96", "BAlm", "Reference", "Bräuning Alm trig point", name, draw, img) - for entrance in Entrance.objects.all(): - station = entrance.best_station() - if station: - #try: - areaName = entrance.caveandentrance_set.all()[0].cave.getArea().short_name - plot(station, "%s-%s" % (areaName, str(entrance)[5:]), entrance.needs_surface_work(), str(entrance), name, draw, img) - #except: - # pass - + + for p in MapLocations.points(): + surveypoint, number, point_type, label = p + plot(surveypoint, number, point_type, label, name, draw, img) + for (N, E, D, num) in [(35975.37, 83018.21, 100,"177"), # Calculated from bearings (35350.00, 81630.00, 50, "71"), # From Auer map (36025.00, 82475.00, 50, "146"), # From mystery map @@ -503,20 +510,4 @@ def prospecting_image(request, name): response = HttpResponse(content_type = "image/png") del draw img.save(response, "PNG") - return response - -# Not used. -# All imported using parsers.survex.LoadPos() now -# STATIONS = {} -# poslineregex = re.compile("^\(\s*([+-]?\d*\.\d*),\s*([+-]?\d*\.\d*),\s*([+-]?\d*\.\d*)\s*\)\s*([^\s]+)$") -# def LoadPos(): -# call([settings.CAVERN, "--output=%s/all.3d" % settings.SURVEX_DATA, "%s/all.svx" % settings.SURVEX_DATA]) -# call([settings.THREEDTOPOS, '%sall.3d' % settings.SURVEX_DATA], cwd = settings.SURVEX_DATA) -# posfile = open("%sall.pos" % settings.SURVEX_DATA) -# posfile.readline()#Drop header -# for line in posfile.readlines(): -# r = poslineregex.match(line) -# if r: -# x, y, z, name = r.groups() -# STATIONS[name] = (x, y, z) - + return response
\ No newline at end of file |