diff --git a/ofu_app/apps/events/urls.py b/ofu_app/apps/events/urls.py index 53922e3..4e9d892 100644 --- a/ofu_app/apps/events/urls.py +++ b/ofu_app/apps/events/urls.py @@ -19,6 +19,7 @@ from apps.events import views urlpatterns = [ url(r'^$', views.events_main_page, name='events-main'), + url(r'^today/$', views.day_events, name='day-events'), url(r'^week/$', views.week_events, name='week-events'), url(r'^all/$', views.all_events, name='all-events'), ] diff --git a/ofu_app/apps/events/views.py b/ofu_app/apps/events/views.py index 59e62b7..18789b1 100644 --- a/ofu_app/apps/events/views.py +++ b/ofu_app/apps/events/views.py @@ -1,10 +1,20 @@ import datetime +from time import time from django.shortcuts import render from apps.events.models import Event +# Helper Methods +def get_categories(events: list): + categories = [] + for event in events: + if not categories.__contains__(event.category): + categories.append(event.category) + return categories + + # Create your views here. def events_main_page(request): return render(request, "events/home.jinja") @@ -12,21 +22,33 @@ def events_main_page(request): def all_events(request): today = datetime.datetime.now() - all_future_events = Event.objects.filter(date__gte=today) + all_future_events = Event.objects.filter(date__gte=today).order_by('date', 'time') lastdate = Event.objects.latest('date').date return render(request, "events/all_events.jinja", { 'startdate': today, 'events': all_future_events, 'enddate': lastdate, + 'categories': get_categories(all_future_events), }) def week_events(request): today = datetime.datetime.now() weekdelta = today + datetime.timedelta(7) - events = Event.objects.filter(date__gte=today, date__lte=weekdelta) + events = Event.objects.filter(date__gte=today, date__lte=weekdelta).order_by('date', 'time') return render(request, "events/week_events.jinja", { 'startdate': today, 'enddate': weekdelta, 'events': events, + 'categories': get_categories(events), + }) + + +def day_events(request): + today = datetime.datetime.now() + events = Event.objects.filter(date=today).order_by('time') + return render(request, "events/day_events.jinja", { + 'date': today, + 'events': events, + 'categories': get_categories(events), }) diff --git a/ofu_app/static/css/events/main.css b/ofu_app/static/css/events/main.css new file mode 100644 index 0000000..5319d67 --- /dev/null +++ b/ofu_app/static/css/events/main.css @@ -0,0 +1,47 @@ +#food-nav { + padding-top: 0; + padding-bottom: 0; +} + +#food-nav .container, #food-nav .container .nav-link { + height: 100%; +} + +.jump-up-menu { + position: fixed; + margin-bottom: 50px; + bottom: 0; + right: 0; + background: white; + display: none; + border: 1px solid #343a40; + border-top-left-radius: 3px; +} + +#category-jump-up:hover .jump-up-menu, .jump-up-menu:hover { + display: block; +} + +.jump-up-elem { + padding: 5px; + margin-bottom: 0; + border-bottom: 1px solid #343a40; +} + +.jump-up-elem:hover { + background-color: #cfcfcf; +} + +footer { + /*mb equal height in #food-nav*/ + margin-bottom: 50px; +} + +/** Sticky Bottom Nav **/ +#food-nav { + z-index: 5000; + bottom: 0; + position: fixed; + width: 100%; + height: 50px; +} \ No newline at end of file diff --git a/ofu_app/static/js/events/sort_categories.js b/ofu_app/static/js/events/sort_categories.js new file mode 100644 index 0000000..42a2e9d --- /dev/null +++ b/ofu_app/static/js/events/sort_categories.js @@ -0,0 +1,19 @@ +/** + * Created by michigg on 16.10.17. + */ +function showCategory(category) { + // TODO: Überarbeiten. Uni eigentlich /= Univis geht das auch schöner? + var events = document.getElementsByClassName('event'); + for (var i = 0; i < events.length; i++) { + events[i].style.display = 'none'; + } + for (var i = 0; i < events.length; i++) { + var classes = events[i].classList; + for (var j = 0; j < classes.length; j++) { + if (category.includes(classes[j])) { + console.log(events[i]) + events[i].style.display = 'block'; + } + } + } +} \ No newline at end of file diff --git a/ofu_app/templates/base.jinja b/ofu_app/templates/base.jinja index 0fcac34..985df21 100644 --- a/ofu_app/templates/base.jinja +++ b/ofu_app/templates/base.jinja @@ -8,8 +8,6 @@ OFU App - {# {% javascript "main_js" %}#} - {# {% block js_head %}{% endblock %}#} {% block js_extra %}{% endblock %} diff --git a/ofu_app/templates/donar/show_room.jinja b/ofu_app/templates/donar/show_room.jinja index 71e090e..54d0665 100644 --- a/ofu_app/templates/donar/show_room.jinja +++ b/ofu_app/templates/donar/show_room.jinja @@ -1,10 +1,12 @@ {% extends 'base.jinja' %} -{% block head_extra_first %} + +{% block js_extra %} + + +{% endblock %} +{% block css_extra %} - - - {% endblock %} {% block headline %}

Donar

diff --git a/ofu_app/templates/events/all_events.jinja b/ofu_app/templates/events/all_events.jinja index 1cc9f5c..a68a4a1 100644 --- a/ofu_app/templates/events/all_events.jinja +++ b/ofu_app/templates/events/all_events.jinja @@ -1,32 +1,14 @@ -{% extends 'base.jinja' %} +{% extends 'events/events_wrapper.jinja' %} +{% import '/macros/event_macros.jinja' as macros %} {% block headline %} -

Alle Events an der OFU

-

{{ startdate.strftime("%d.%m.%Y") }} bis {{ enddate.strftime("%d.%m.%Y") }}

+

Events

+

{{ startdate.strftime("%d.%m.%Y") }} bis {{ enddate.strftime("%d.%m.%Y") }}

{% endblock %} {% block content %}
-
+
{% for event in events %} -
-
-

{{ event.title }}

-

Wann: {{ event.date.strftime("%d.%m.") }} ab {{ event.time.strftime("%H:%M") }}

-

Wo:

-
    - {% for location in event.locations.all() %} -
  • {{ location.name }}
  • - {% endfor %} -
- {% if event.orgname %} -

Organisator: {{ event.orgname }}

- {% endif %} - {% if event.link %} - Details - {% endif %} - -

Kategorie: {{ event.category }}

-
-
+ {{ macros.event(event) }} {% endfor %}
diff --git a/ofu_app/templates/events/day_events.jinja b/ofu_app/templates/events/day_events.jinja new file mode 100644 index 0000000..2dc0636 --- /dev/null +++ b/ofu_app/templates/events/day_events.jinja @@ -0,0 +1,15 @@ +{% extends 'events/events_wrapper.jinja' %} +{% import '/macros/event_macros.jinja' as macros %} +{% block headline %} +

Events

+

{{ date.strftime("%d.%m.%Y") }}

+{% endblock %} +{% block content %} +
+
+ {% for event in events %} + {{ macros.event(event) }} + {% endfor %} +
+
+{% endblock %} \ No newline at end of file diff --git a/ofu_app/templates/events/events_wrapper.jinja b/ofu_app/templates/events/events_wrapper.jinja new file mode 100644 index 0000000..6558df4 --- /dev/null +++ b/ofu_app/templates/events/events_wrapper.jinja @@ -0,0 +1,23 @@ +{% extends 'base.jinja' %} +{% block js_extra %} + +{% endblock %} +{% block css_extra %} + +{% endblock %} +{% block bottom_nav %} + +{% endblock %} \ No newline at end of file diff --git a/ofu_app/templates/events/week_events.jinja b/ofu_app/templates/events/week_events.jinja index 33f5d91..77234e1 100644 --- a/ofu_app/templates/events/week_events.jinja +++ b/ofu_app/templates/events/week_events.jinja @@ -1,28 +1,17 @@ -{% extends 'base.jinja' %} +{% extends 'events/events_wrapper.jinja' %} +{% import '/macros/event_macros.jinja' as macros %} +{% block js_extra %} + +{% endblock %} {% block headline %} -

Events an der OFU

-

{{ startdate.strftime("%d.%m.%Y") }} bis {{ enddate.strftime("%d.%m.%Y") }}

+

Events

+

{{ startdate.strftime("%d.%m.%Y") }} bis {{ enddate.strftime("%d.%m.%Y") }}

{% endblock %} {% block content %}
-
+
{% for event in events %} -
-
-

{{ event.title }}

-

Wann: {{ event.date.strftime("%d.%m.") }} ab {{ event.time.strftime("%H:%M") }}

-

Wo:

-
    - {% for location in event.locations.all() %} -
  • {{ location.name }}
  • - {% endfor %} -
- {% if event.link %} - Details - {% endif %} -

Kategorie: {{ event.category }}

-
-
+ {{ macros.event(event) }} {% endfor %}
diff --git a/ofu_app/templates/food/home.jinja b/ofu_app/templates/food/home.jinja index 79b3618..8d300ba 100644 --- a/ofu_app/templates/food/home.jinja +++ b/ofu_app/templates/food/home.jinja @@ -4,10 +4,10 @@

Essen an der OFU

{% endblock %} {% block content %} -
-
- {{ macros.home_item(title='Daily Food', url_id='daily-food', description='Übersicht über die heutigen Essensmöglichkeiten für Studenten') }} - {{ macros.home_item(title='Weekly Food', url_id='weekly-food', description='Übersicht über die wöchentlichen Essensmöglichkeiten für Studenten.') }} -
-
+{#
#} +{#
#} +{# {{ macros.home_item(title='Daily Food', url_id='daily-food', description='Übersicht über die heutigen Essensmöglichkeiten für Studenten') }}#} +{# {{ macros.home_item(title='Weekly Food', url_id='weekly-food', description='Übersicht über die wöchentlichen Essensmöglichkeiten für Studenten.') }}#} +{#
#} +{#
#} {% endblock %} diff --git a/ofu_app/templates/macros/event_macros.jinja b/ofu_app/templates/macros/event_macros.jinja new file mode 100644 index 0000000..899a8c8 --- /dev/null +++ b/ofu_app/templates/macros/event_macros.jinja @@ -0,0 +1,22 @@ +{% macro event(event) -%} +
+
+ {% if event.link %} + +
{{ event.title }}
+ {{ event.category }} + {% else %} +
{{ event.title }}
+ {{ event.category }} + {% endif %} + +

Wann: {{ event.date.strftime("%d.%m.") }} + ab {{ event.time.strftime("%H:%M") }}

+

Wo: + {% for location in event.locations.all() %} + {{ location.name }} + {% endfor %} +

+
+
+{% endmacro %}