diff --git a/infoscreen/static/js/infoscreen_controllers.js b/infoscreen/static/js/infoscreen_controllers.js index e3ff3d4..922c230 100644 --- a/infoscreen/static/js/infoscreen_controllers.js +++ b/infoscreen/static/js/infoscreen_controllers.js @@ -75,7 +75,12 @@ app.controller('timetableCtrl', $scope.arr=[]; parse(data); }); - }; + $http.get('/infoscreen/hsl_data/settings') + .then(function(data, status, headers, config) { + $scope.departureThreshold = data.data['departure_threshold']; + $scope.hurryThreshold = data.data['hurry_threshold']; + }); + } $scope.$on('$destroy', function() { $interval.cancel(inter1); $interval.cancel(inter2); @@ -138,8 +143,8 @@ app.controller('timetableCtrl', delOld(); } function delOld(){ - var toSoon=5; - var hurry=10; + tooSoon = typeof($scope.departureThreshold) != 'undefined' ? $scope.departureThreshold: 0; + hurry = typeof($scope.hurryThreshold) != 'undefined' ? $scope.hurryThreshold : 0; f= new Date(); for(var a=$scope.arr.length-1; a>=0; a--){ var time=$scope.arr[a]['time'].split(":"); @@ -149,13 +154,14 @@ app.controller('timetableCtrl', d.setHours(time[0]); d.setMinutes(time[1]); var diff=(d.getTime()-f.getTime()); - if(diff < toSoon*60000) + if(diff < tooSoon*60000) $scope.arr.splice(a,1); else if(diff < hurry*60000) $scope.arr[a]['hurry']=true; } } + load(); var inter1=$interval(delOld,2000); var inter2=$interval(load,10000); diff --git a/infoscreen/views.py b/infoscreen/views.py index 4b7d9c7..9f8aad6 100644 --- a/infoscreen/views.py +++ b/infoscreen/views.py @@ -10,6 +10,7 @@ from infoscreen.models import ABBInfoItem, ExternalImageInfoItem, ImageInfoItem, from infoscreen.models import ImageUploadForm from infoscreen.models import HSLDataModel from infoscreen.hsl_fetcher import HSLFetcher +import sikweb.settings as settings import json import logging import threading @@ -183,6 +184,12 @@ def delete_rotation(request, *args, **kwargs): return resp +@require_http_methods(["GET"]) +def hsl_timetable_settings(request, *args, **kwargs): + d = {"departure_threshold": settings.HSL_DEPARTURE_THRESHOLD, + "hurry_threshold": settings.HSL_HURRY_THRESHOLD} + resp = json.dumps(d) + return HttpResponse(resp, status=200) @require_http_methods(["GET"]) def CurrentHSLView(request, *args, **kwargs): diff --git a/sikweb/settings-sample.py b/sikweb/settings-sample.py index 2805754..f274030 100644 --- a/sikweb/settings-sample.py +++ b/sikweb/settings-sample.py @@ -152,3 +152,5 @@ STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.AppDirectoriesFinder' STATIC_URL = '/static/' HSL_USERHASH = 'YOUR HSL USERHASH HERE' +HSL_DEPARTURE_THRESHOLD = 8 +HSL_HURRY_THRESHOLD = 13 diff --git a/sikweb/urls.py b/sikweb/urls.py index 900caa3..58d74f6 100644 --- a/sikweb/urls.py +++ b/sikweb/urls.py @@ -50,6 +50,7 @@ from infoscreen.views import create_rotation from infoscreen.views import delete_rotation from infoscreen.views import CurrentHSLView from infoscreen.views import admin as infoscreen_admin +from infoscreen.views import hsl_timetable_settings #application from members.views import application_index from members.views import application_success_index @@ -93,6 +94,7 @@ urlpatterns = [ url(r'^infoscreen/create_rotation$', create_rotation), url(r'^infoscreen/delete_rotation/(?P\d+)$', delete_rotation), url(r'^infoscreen/hsl_data$', CurrentHSLView), + url(r'^infoscreen/hsl_data/settings$', hsl_timetable_settings), #application url(r'^application/$', application_index), url(r'^application/success$', application_success_index),