Skip to content
Snippets Groups Projects
Commit b4e21b8d authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Merge branch '65-add-week-select-to-week-view' into 'master'

Resolve "Add week select to week view"

Closes #65

See merge request !73
parents 49392296 82f5c040
No related branches found
No related tags found
1 merge request!73Resolve "Add week select to week view"
Pipeline #3276 passed
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<script type="text/javascript" src="{% static "js/helper.js" %}"></script>
{{ week_select|json_script:"week_select" }}
<script type="text/javascript" src="{% static "js/chronos/week_select.js" %}"></script>
<div class="row"> <div class="row">
{% if group %} {% if group %}
<div class="col s12 m2 push-m10 l1 push-l11"> <div class="col s12 m2 push-m10 l1 push-l11">
...@@ -30,7 +33,11 @@ ...@@ -30,7 +33,11 @@
</div> </div>
</div> </div>
<h4>{% blocktrans with el=el week=week.week %}CW {{ week }}: {{ instance }}{% endblocktrans %} </h4>
<div class="row">
<h4 class="col s12 m6">{% blocktrans with el=el week=week.week %}CW {{ week }}: {{ instance }}{% endblocktrans %} </h4>
{% include "chronos/partials/week_select.html" with wanted_week=week %}
</div>
{% if lesson_periods %} {% if lesson_periods %}
<div class="row"> <div class="row">
......
...@@ -9,9 +9,15 @@ urlpatterns = [ ...@@ -9,9 +9,15 @@ urlpatterns = [
views.lesson, views.lesson,
name="lesson_by_week_and_period", name="lesson_by_week_and_period",
), ),
path("week", views.week_view, name="week_view"), path("week/", views.week_view, name="week_view"),
path("week/<int:year>/<int:week>", views.week_view, name="week_view_by_week"), path("week/<int:year>/<int:week>/", views.week_view, name="week_view_by_week"),
path("week/year/cw/", views.week_view, name="week_view_placeholders"),
path("week/<str:type_>/<int:id_>/", views.week_view, name="week_view"), path("week/<str:type_>/<int:id_>/", views.week_view, name="week_view"),
path(
"week/year/cw/<str:type_>/<int:id_>/",
views.week_view,
name="week_view_placeholders",
),
path( path(
"week/<int:year>/<int:week>/<str:type_>/<int:id_>/", "week/<int:year>/<int:week>/<str:type_>/<int:id_>/",
views.week_view, views.week_view,
......
...@@ -2,21 +2,21 @@ from datetime import date, datetime, timedelta ...@@ -2,21 +2,21 @@ from datetime import date, datetime, timedelta
from typing import Optional from typing import Optional
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.db.models import Count, Exists, F, OuterRef, Q, Subquery, Sum from django.db.models import Count, Exists, OuterRef, Q, Subquery, Sum
from django.http import Http404, HttpRequest, HttpResponse, HttpResponseNotFound from django.http import Http404, HttpRequest, HttpResponse, HttpResponseNotFound
from django.shortcuts import get_object_or_404, redirect, render from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse, reverse_lazy from django.urls import reverse, reverse_lazy
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
from calendarweek import CalendarWeek from calendarweek import CalendarWeek
from django_tables2 import RequestConfig, SingleTableView from django_tables2 import SingleTableView
from reversion.views import RevisionMixin from reversion.views import RevisionMixin
from rules.contrib.views import PermissionRequiredMixin from rules.contrib.views import PermissionRequiredMixin
from aleksis.apps.chronos.managers import TimetableType from aleksis.apps.chronos.managers import TimetableType
from aleksis.apps.chronos.models import LessonPeriod, LessonSubstitution from aleksis.apps.chronos.models import LessonPeriod
from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk
from aleksis.apps.chronos.util.date import week_weekday_to_date from aleksis.apps.chronos.util.date import get_weeks_for_year, week_weekday_to_date
from aleksis.core.mixins import AdvancedCreateView, AdvancedDeleteView, AdvancedEditView from aleksis.core.mixins import AdvancedCreateView, AdvancedDeleteView, AdvancedEditView
from aleksis.core.models import Group, Person, SchoolTerm from aleksis.core.models import Group, Person, SchoolTerm
from aleksis.core.util import messages from aleksis.core.util import messages
...@@ -296,6 +296,7 @@ def week_view( ...@@ -296,6 +296,7 @@ def week_view(
context["extra_marks"] = ExtraMark.objects.all() context["extra_marks"] = ExtraMark.objects.all()
context["week"] = wanted_week context["week"] = wanted_week
context["weeks"] = get_weeks_for_year(year=wanted_week.year)
context["lesson_periods"] = lesson_periods context["lesson_periods"] = lesson_periods
context["persons"] = persons context["persons"] = persons
context["group"] = group context["group"] = group
...@@ -304,14 +305,21 @@ def week_view( ...@@ -304,14 +305,21 @@ def week_view(
week_prev = wanted_week - 1 week_prev = wanted_week - 1
week_next = wanted_week + 1 week_next = wanted_week + 1
context["url_prev"] = "%s?%s" % ( args_prev = [week_prev.year, week_prev.week]
reverse("week_view_by_week", args=[week_prev.year, week_prev.week]), args_next = [week_next.year, week_next.week]
request.GET.urlencode(), args_dest = []
) if type_ and id_:
context["url_next"] = "%s?%s" % ( args_prev += [type_.value, id_]
reverse("week_view_by_week", args=[week_next.year, week_next.week]), args_next += [type_.value, id_]
request.GET.urlencode(), args_dest += [type_.value, id_]
)
context["week_select"] = {
"year": wanted_week.year,
"dest": reverse("week_view_placeholders", args=args_dest),
}
context["url_prev"] = reverse("week_view_by_week", args=args_prev)
context["url_next"] = reverse("week_view_by_week", args=args_next)
return render(request, "alsijil/class_register/week_view.html", context) return render(request, "alsijil/class_register/week_view.html", context)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment