diff --git a/infoscreen/models.py b/infoscreen/models.py index 8927c6d..95a6c7e 100644 --- a/infoscreen/models.py +++ b/infoscreen/models.py @@ -136,6 +136,17 @@ class SossoInfoItem(InfoItem): def get_create_template_url(): return "/static/html/sosso_create.html" +class EventInfoItem(InfoItem): + display_name = _("Events") + + def get_template_url(self): + return "/static/html/events.html" + + @staticmethod + def get_create_template_url(): + return "/static/html/events_create.html" + + class ImageInfoItem(InfoItem): display_name = _("Image") diff --git a/infoscreen/static/css/events.css b/infoscreen/static/css/events.css new file mode 100644 index 0000000..6dc51c7 --- /dev/null +++ b/infoscreen/static/css/events.css @@ -0,0 +1,42 @@ +.event { + font-size: 5vh; + font-family: 'Droid Sans Mono', monospace; +} +.event-col{ + padding-top:1vh; + padding-bottom:1vh; +}.event:nth-child(odd){ + background-color: #d4e2fd; +} + +.black { + color: black; +} +.header-row{ + background: #d4e2fd; + font-size: 7vh; + font-family: 'Droid Sans Mono', monospace; + padding-bottom:20px; +} + +.container { + width: 100vw; + padding: 0 0 0 0; + margin-left: 20px; + margin-right: 20px; +} + +.repeat-item.ng-leave { + -webkit-transition:0.5s linear all; + transition:0.5s linear all; +} + +.repeat-item.ng-leave.ng-leave-active { + opacity: 0; + font-size: 0vh; +} + +.repeat-item.ng-leave{ + opacity: 1; + font-size: 5vh; +} diff --git a/infoscreen/static/html/events.html b/infoscreen/static/html/events.html new file mode 100644 index 0000000..30f39c6 --- /dev/null +++ b/infoscreen/static/html/events.html @@ -0,0 +1,14 @@ + + +
+
+
Tapahtuma
+
Aika
+
Paikka
+
+
+
{{event.name}}
+
{{event.event_start}}
+
{{event.location}}
+
+
diff --git a/infoscreen/static/html/events_create.html b/infoscreen/static/html/events_create.html new file mode 100644 index 0000000..d534dcb --- /dev/null +++ b/infoscreen/static/html/events_create.html @@ -0,0 +1,10 @@ +
+
+ Create new item to show events Name is used only as identifier +
+
+ + +
+ +
diff --git a/infoscreen/static/js/infoadmin_controllers.js b/infoscreen/static/js/infoadmin_controllers.js index 9a49e0d..c4b11d6 100644 --- a/infoscreen/static/js/infoadmin_controllers.js +++ b/infoscreen/static/js/infoadmin_controllers.js @@ -141,6 +141,13 @@ app.controller('infoadmin_sossoitem_create', function($scope, $http,ItemList){ $http.post("/infoscreen/create_sossoitem", $scope.item).then(ItemList.loadItems) } }); +app.controller('infoadmin_eventitem_create', function($scope, $http,ItemList){ + $scope.item = {} + $scope.send = function(){ + $http.post("/infoscreen/create_eventitem", $scope.item).then(ItemList.loadItems) + } +}); + app.controller('infoadmin_hslitem_create', function($scope, $http,ItemList){ $scope.item = {} $scope.send = function(){ diff --git a/infoscreen/static/js/infoscreen_controllers.js b/infoscreen/static/js/infoscreen_controllers.js index a499fda..98205e0 100644 --- a/infoscreen/static/js/infoscreen_controllers.js +++ b/infoscreen/static/js/infoscreen_controllers.js @@ -48,7 +48,7 @@ app.filter('trusted_url', ['$sce', function ($sce) { app.controller('ABBController', function($scope, $http){ $scope.jobs = []; var min_date = moment().subtract(30,'days').format("YYYY-MM-DD%20HH:mm:ss"); - var url = "http://sahkoinsinoorikilta.fi/api/news.php"; + var url = "https://sahkoinsinoorikilta.fi/api/news.php"; var params = "?type=11&lang=fi&title_search=ABB&min_date="+min_date $http.get(url+params).then(function(response){ $scope.jobs = _.filter(response.data, function(job){ @@ -73,6 +73,26 @@ app.controller('SossoController', function($scope, $http) { $scope.data = response.data; }) }); +app.controller('EventController', function($scope, $http) { + $scope.data = []; + $http.get("https://sik.ayy.fi/api/events.php?limit=10").then(function(response) + { + $scope.events = response.data; + $scope.events = _.each($scope.events, function(ev){ + var time = moment(ev.event_start); + ev.event_start = time; + ev.event_start = time.format("ddd DD.MM"); + // lets not trust locale + ev.event_start = ev.event_start.replace("Mon", "Ma"); + ev.event_start = ev.event_start.replace("Tue", "Ti"); + ev.event_start = ev.event_start.replace("Wed", "Ke"); + ev.event_start = ev.event_start.replace("Thu", "To"); + ev.event_start = ev.event_start.replace("Fri", "Pe"); + ev.event_start = ev.event_start.replace("Sat", "La"); + ev.event_start = ev.event_start.replace("Sun", "Su"); + }); + }) +}); app.controller('timetableCtrl', function($scope, $http, $interval) { diff --git a/infoscreen/views.py b/infoscreen/views.py index 6f0ab36..ed7108b 100644 --- a/infoscreen/views.py +++ b/infoscreen/views.py @@ -7,6 +7,7 @@ from django.contrib.auth.decorators import permission_required from infoscreen.models import Rotation, InfoItem, InfoInstance from infoscreen.models import ABBInfoItem, ExternalImageInfoItem, ImageInfoItem, SossoInfoItem, HslInfoItem +from infoscreen.models import EventInfoItem from infoscreen.models import ExternalWebsiteInfoItem from infoscreen.models import ImageUploadForm from infoscreen.models import HSLDataModel @@ -215,3 +216,4 @@ createSossoItem = create_item_generator(SossoInfoItem) createHslItem = create_item_generator(HslInfoItem) createExternalImageInfoItem = create_item_generator(ExternalImageInfoItem) createExternalWebsiteItem = create_item_generator(ExternalWebsiteInfoItem) +createEventItem = create_item_generator(EventInfoItem) diff --git a/sikweb/urls.py b/sikweb/urls.py index b8a544a..5af072d 100644 --- a/sikweb/urls.py +++ b/sikweb/urls.py @@ -62,6 +62,7 @@ from infoscreen.views import create_image_item from infoscreen.views import createABBItem from infoscreen.views import createSossoItem from infoscreen.views import createHslItem +from infoscreen.views import createEventItem from infoscreen.views import createExternalWebsiteItem from infoscreen.views import create_rotation from infoscreen.views import delete_rotation @@ -123,6 +124,7 @@ urlpatterns = [ url(r'^infoscreen/create_image$', create_image_item), url(r'^infoscreen/create_abbitem$', createABBItem), url(r'^infoscreen/create_sossoitem$', createSossoItem), + url(r'^infoscreen/create_eventitem$', createEventItem), url(r'^infoscreen/create_hslitem$', createHslItem), url(r'^infoscreen/create_websiteitem$', createExternalWebsiteItem), url(r'^infoscreen/admin$', infoscreen_admin),