From e5332b2fa8f889041e31cc7ea1bee9f813a55e28 Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sun, 1 Nov 2020 16:07:46 +0100 Subject: [PATCH] [Lesson] Add next/previous buttons for currently logged in person To do that, restructure page accordingly --- .../alsijil/static/css/alsijil/lesson.css | 4 + .../alsijil/class_register/lesson.html | 123 ++++++++++++------ aleksis/apps/alsijil/views.py | 5 + 3 files changed, 94 insertions(+), 38 deletions(-) diff --git a/aleksis/apps/alsijil/static/css/alsijil/lesson.css b/aleksis/apps/alsijil/static/css/alsijil/lesson.css index 9847ea0f0..d402156fc 100644 --- a/aleksis/apps/alsijil/static/css/alsijil/lesson.css +++ b/aleksis/apps/alsijil/static/css/alsijil/lesson.css @@ -22,3 +22,7 @@ vertical-align: top; height: 109px;} } + +.alsijil-top-button { + margin-top: -20px; +} diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html index 241797183..52462d694 100644 --- a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html +++ b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html @@ -9,55 +9,84 @@ <link rel="stylesheet" href="{% static 'css/alsijil/lesson.css' %}"/> {% endblock %} -{% block page_title %} - {% with lesson_period.get_lesson_documentation as lesson_doc %} - <a href="{% url "week_view_by_week" lesson_doc.year lesson_doc.week "group" lesson_period.lesson.groups.all.0.pk %}" - class="btn-flat primary-color-text waves-light waves-effect"> - <i class="material-icons left">chevron_left</i> {% trans "Back" %} - </a> - {% endwith %} - {{ day }}, {% blocktrans with period=lesson_period.period.period %}{{ period }}. period{% endblocktrans %} – - - {% for group in lesson_period.get_groups.all %} - <span>{{ group.name }}</span>, - {% endfor %} - - {{ lesson_period.get_subject.name }}, - - {% for teacher in lesson_period.get_teachers.all %} - {{ teacher.short_name }} - {% endfor %} - - <span class="right"> +{% block content %} + {% if next_lesson_person or prev_lesson_person %} + <div class="row no-margin"> + <div class="col s12 no-padding"> + {# Back to week view #} + {% with lesson_period.get_lesson_documentation as lesson_doc %} + <a href="{% url "week_view_by_week" lesson_doc.year lesson_doc.week "group" lesson_period.lesson.groups.all.0.pk %}" + class="btn primary-color waves-light waves-effect alsijil-top-button"> + <i class="material-icons left">chevron_left</i> {% trans "Back to week view" %} + </a> + {% endwith %} + + {# Next lesson #} + {% if prev_lesson_person %} + <a class="btn primary waves-effect waves-light alsijil-top-button" + href="{% url "lesson_by_week_and_period" prev_lesson_person.week.year prev_lesson_person.week.week prev_lesson_person.id %}"> + <i class="material-icons left">arrow_back</i> + {% trans "My previous lesson" %} + </a> + {% endif %} + + {# Previous lesson #} + {% if next_lesson_person %} + <a class="btn primary right waves-effect waves-light alsijil-top-button" + href="{% url "lesson_by_week_and_period" next_lesson_person.week.year next_lesson_person.week.week next_lesson_person.id %}"> + <i class="material-icons right">arrow_forward</i> + {% trans "My next lesson" %} + </a> + {% endif %} + </div> + </div> + {% endif %} + + <h4> + {{ day }}, {% blocktrans with period=lesson_period.period.period %}{{ period }}. period{% endblocktrans %} – + + {% for group in lesson_period.get_groups.all %} + <span>{{ group.name }}</span>, + {% endfor %} + + {{ lesson_period.get_subject.name }}, + + {% for teacher in lesson_period.get_teachers.all %} + {{ teacher.short_name }} + {% endfor %} + + <span class="right"> {% include "alsijil/partials/lesson_status_icon.html" with period=lesson_period css_class="medium" %} </span> -{% endblock %} + </h4> + <br/> -{% block content %} {% has_perm "alsijil.view_lessondocumentation" user lesson_period as can_view_lesson_documentation %} {% has_perm "alsijil.edit_lessondocumentation" user lesson_period as can_edit_lesson_documentation %} {% has_perm "alsijil.edit_lesson_personalnote" user lesson_period as can_edit_lesson_personalnote %} - <div class="row"> - <div class="col s12"> - <a class="btn-flat left waves-effect waves-light" + <form method="post" class="row"> + <p> + {% if can_edit_lesson_documentation or can_edit_lesson_personalnote %} + {% include "core/partials/save_button.html" %} + {% endif %} + + <a class="btn waves-effect waves-light primary" href="{% url "lesson_by_week_and_period" prev_lesson.week.year prev_lesson.week.week prev_lesson.id %}"> <i class="material-icons left">arrow_back</i> - {% trans "Previous lesson" %} + {% blocktrans with subject=lesson_period.get_subject.name %} + Previous {{ subject }} lesson + {% endblocktrans %} </a> - <a class="btn-flat right waves-effect waves-light" + <a class="btn right waves-effect waves-light primary" href="{% url "lesson_by_week_and_period" next_lesson.week.year next_lesson.week.week next_lesson.id %}"> <i class="material-icons right">arrow_forward</i> - {% trans "Next lesson" %} + {% blocktrans with subject=lesson_period.get_subject.name %} + Next {{ subject }} lesson + {% endblocktrans %} </a> - </div> - </div> - - <form method="post"> - {% if can_edit_lesson_documentation or can_edit_lesson_personalnote %} - <p>{% include "core/partials/save_button.html" %}</p> - {% endif %} + </p> {% csrf_token %} @@ -319,8 +348,26 @@ {% endif %} </div> - {% if can_edit_lesson_documentation or can_edit_lesson_personalnote %} - <p>{% include "core/partials/save_button.html" %}</p> - {% endif %} + <p> + {% if can_edit_lesson_documentation or can_edit_lesson_personalnote %} + {% include "core/partials/save_button.html" %} + {% endif %} + + <a class="btn primary waves-effect waves-light" + href="{% url "lesson_by_week_and_period" prev_lesson.week.year prev_lesson.week.week prev_lesson.id %}"> + <i class="material-icons left">arrow_back</i> + {% blocktrans with subject=lesson_period.get_subject.name %} + Previous {{ subject }} lesson + {% endblocktrans %} + </a> + + <a class="btn primary right waves-effect waves-light" + href="{% url "lesson_by_week_and_period" next_lesson.week.year next_lesson.week.week next_lesson.id %}"> + <i class="material-icons right">arrow_forward</i> + {% blocktrans with subject=lesson_period.get_subject.name %} + Next {{ subject }} lesson + {% endblocktrans %} + </a> + </p> </form> {% endblock %} diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index 5c3abdc46..b059ebf8d 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -96,9 +96,14 @@ def lesson( ) ) + next_lesson = request.user.person.next_lesson(lesson_period, date_of_lesson) + prev_lesson = request.user.person.previous_lesson(lesson_period, date_of_lesson) + context["lesson_period"] = lesson_period context["week"] = wanted_week context["day"] = wanted_week[lesson_period.period.weekday] + context["next_lesson_person"] = next_lesson + context["prev_lesson_person"] = prev_lesson # Create or get lesson documentation object; can be empty when first opening lesson lesson_documentation = lesson_period.get_or_create_lesson_documentation(wanted_week) -- GitLab