Skip to content
Snippets Groups Projects
Verified Commit e8144bc6 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch 'master' into 73-add-rules-and-permissions

parents 910e001c b4e21b8d
No related branches found
No related tags found
1 merge request!49Resolve "Add rules and permissions"
Pipeline #3277 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, permission_required from rules.contrib.views import PermissionRequiredMixin, permission_required
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
...@@ -305,6 +305,7 @@ def week_view( ...@@ -305,6 +305,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
...@@ -313,14 +314,21 @@ def week_view( ...@@ -313,14 +314,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