import json import urllib import pyproj import csv from django.http import HttpResponse, HttpResponseForbidden from django.shortcuts import render from django.template import RequestContext from .models import Point, Link SALT = '826cf910c71470c50b030faf7d0ab10f915a2aabed21e26a0eee655a425a30db' # Generate using 'python -c 'import hashlib,sys; print hashlib.sha256(sys.argv[1] + sys.argv[2]).hexdigest()' SALT PASS # PASS = wleiden PASSHASH = '1c8bb7b910bd92746e420136202a626f707d7e22e8620576b2fca576a62ff15d' def get_state(request): points = [] for point in Point.objects.all(): points.append({ 'name' : point.name, 'state' : point.state, 'lat' : float(point.lat), 'lon' : float(point.lon), 'comment': point.comment }) links = [] for link in Link.objects.all(): links.append({'master' : link.master.name, 'slave' : link.slave.name, 'state' : link.state, 'comment' : link.comment }) return HttpResponse(json.dumps({'points' : points, 'links' : links}),content_type="application/json") def set_state(request): # Reset data base with new values data = json.loads(request.body) # Poor mans password validation if (data['password'] != PASSHASH): return HttpResponseForbidden('Invalid Password') Link.objects.all().delete() Point.objects.all().delete() for point in data['points']: obj = Point(**point) obj.save() for link in data['links']: obj = Link( master=Point.objects.get(name=link['master']), slave=Point.objects.get(name=link['slave']), state=link['state'], comment=link['comment']) obj.save() return HttpResponse(json.dumps({'responseText' : 'OK'}),content_type="application/json") def proxy_gformat_nodeplanner_json(request): f = urllib.request.urlopen('https://wirelessleiden.nl/config/api/get/nodeplanner.json') data = f.read() return HttpResponse(data, content_type="application/json") def index(request): return render(request, 'nodeplanner.html', {'salt': SALT}) def export_peter_nodes(request): response = HttpResponse(content_type="text/csv") output = csv.writer(response) output.writerow(['nodeNode','nodeState','nodeRDx','nodeRDy','nodeLatitude','nodeLongitude']) p1 = pyproj.Proj(proj='latlon',datum='WGS84') p2 = pyproj.Proj(init='EPSG:28992') for point in Point.objects.all(): RDx, RDy = pyproj.transform(p1,p2,point.lon, point.lat) output.writerow([point.name, point.state, RDx, RDy, point.lat, point.lon]) return response def export_peter_links(request): response = HttpResponse(content_type="text/csv") output = csv.writer(response) output.writerow(['linkMaster','linkSlave','linkState','masteRDx','masterRDy','slaveRDx', 'slaveRDy', 'masterLatitude','masterLongitude', 'slaveLatitude', 'slaveLongitude']) p1 = pyproj.Proj(proj='latlon',datum='WGS84') p2 = pyproj.Proj(init='EPSG:28992') for link in Link.objects.all(): masterRDx, masterRDy = pyproj.transform(p1,p2,link.master.lon, link.master.lat) slaveRDx, slaveRDy = pyproj.transform(p1,p2,link.slave.lon, link.slave.lat) output.writerow([link.master, link.slave, link.state, masterRDx, masterRDy, slaveRDx, slaveRDy, link.master.lat, link.master.lon, link.slave.lat, link.slave.lon]) return response