From 04194aeac8b3d37c5f8b509e5c1fee3439a6886e Mon Sep 17 00:00:00 2001 From: michigg Date: Tue, 17 Oct 2017 21:51:00 +0200 Subject: [PATCH] donar bus erweiterung --- ofu_app/apps/donar/urls.py | 3 + ofu_app/apps/donar/views.py | 3 +- ofu_app/static/js/donar/vgn.js | 66 +++++++++++++++++++ ofu_app/templates/donar/home.jinja | 2 +- ofu_app/templates/donar/vgn_connections.jinja | 20 ++++-- 5 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 ofu_app/static/js/donar/vgn.js diff --git a/ofu_app/apps/donar/urls.py b/ofu_app/apps/donar/urls.py index dcb90a2..d66b963 100644 --- a/ofu_app/apps/donar/urls.py +++ b/ofu_app/apps/donar/urls.py @@ -23,4 +23,7 @@ urlpatterns = [ url(r'^search/$', views.search_room, name='search-rooms'), url(r'^search/(?P.+/.+)/$', views.show_room, name='show-room'), url(r'^search/(?P.+)/$', views.show_room, name='show-room'), + + # VGN + url(r'^bus/$', views.bus_connections, name='vgn-bus'), ] diff --git a/ofu_app/apps/donar/views.py b/ofu_app/apps/donar/views.py index afedf45..a43b942 100644 --- a/ofu_app/apps/donar/views.py +++ b/ofu_app/apps/donar/views.py @@ -30,4 +30,5 @@ def show_room(request, room): def bus_connections(request): - return render(request, '') \ No newline at end of file + locations = VGN_Coords.objects.all() + return render(request, 'donar/vgn_connections.jinja', {'locations': locations}) diff --git a/ofu_app/static/js/donar/vgn.js b/ofu_app/static/js/donar/vgn.js new file mode 100644 index 0000000..07a4a9d --- /dev/null +++ b/ofu_app/static/js/donar/vgn.js @@ -0,0 +1,66 @@ +/** + * Created by michigg on 17.10.17. + */ +document.addEventListener('DOMContentLoaded', loadVGNPos); + +function getPos() { + var lat = 49.8955663; + var lon = 10.886907899999999; + if (navigator.geolocation) { + var geo_option = { + enableHighAccuracy: true + }; + navigator.geolocation.getCurrentPosition(function (position) { + console.log(position); + lat = position.coords.latitude; + lon = position.coords.longitude; + }, function (err) { + console.log(err.code); + console.log(err.message); + }, geo_option) + } + console.log(lat) + return {'lat': lat, 'lon': lon}; +} +function loadData(url) { + var address = document.getElementById('nav_data').getAttribute('data-address') + + var xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function () { + console.log('receive') + if (this.readyState == 4 && this.status == 200) { + setVGNLinks(JSON.parse(this.response)) + } + }; + xhttp.open("GET", url, true); + xhttp.send(); +} + + +function getVGNCoords(lat, lon) { + console.log("getVGNCoords: " + lat + "/" + lon) + var url = "https://www.vgn.de/ib/site/tools/VN_PointDetail.php?Edition=de&lat=" + lat + "&lon=" + lon + "&mode=fnSetFromEFA&mode2=origin&_=1508264908632"; + console.log(url) + loadData(url); +} + +function loadVGNPos() { + document.getElementsByTagName('body')[0].style.visibility = "hidden" + pos = getPos() + console.log(pos) + getVGNCoords(pos['lat'], pos['lon']) +} + +function setVGNLinks(response) { + console.log("Get Response: " + response); + var type = response['ident']['type']; + var startpoint = response['ident']['name']; + console.log(startpoint) + var connections = document.getElementsByClassName('connection'); + var destinations = document.getElementsByClassName('destination') + for (var i = 0; i < connections.length; i++) { + connections[i].href = 'https://www.vgn.de/verbindungen/?to=' + startpoint + '&td=' + destinations[i].innerHTML; + console.log(connections[i].href) + } + document.getElementsByTagName('body')[0].style.visibility = "visible" +} \ No newline at end of file diff --git a/ofu_app/templates/donar/home.jinja b/ofu_app/templates/donar/home.jinja index 352bdfa..e101b96 100644 --- a/ofu_app/templates/donar/home.jinja +++ b/ofu_app/templates/donar/home.jinja @@ -8,7 +8,7 @@
{{ macros.home_item_with_icon(icon='fa-map-o', url_id='search-rooms', title="Donar", icon_size='fa-3x') }} {{ macros.home_item_with_icon(icon='fa-search', link='https://suche.wiai.de/', title="Roofis", icon_size='fa-3x') }} - {{ macros.home_item_with_icon(icon='fa-bus', url_id='', title='Bus und Bahn', icon_size='fa-3x') }} + {{ macros.home_item_with_icon(icon='fa-bus', url_id='vgn-bus', title='Bus und Bahn', icon_size='fa-3x') }}
{% endblock %} \ No newline at end of file diff --git a/ofu_app/templates/donar/vgn_connections.jinja b/ofu_app/templates/donar/vgn_connections.jinja index e7f1120..e1fa733 100644 --- a/ofu_app/templates/donar/vgn_connections.jinja +++ b/ofu_app/templates/donar/vgn_connections.jinja @@ -1,10 +1,22 @@ {% extends 'base.jinja' %} - +{% block js_extra %} + +{% endblock %} {% block headline %}

VGN Connections

-

Donar

+

Donar

{% endblock %} {% block content %} - {% for location in locations %} - {% endfor %} +
+ {% if locations %} + {% for location in locations %} +
+
+ {{ location.name }} + +
+
+ {% endfor %} + {% endif %} +
{% endblock %}