diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 03c15c23bc1e10bea74192b9cf6eb8c679d75927..3d32813f5b6629d29fba6b38a4f609b6a7e0220b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -12,6 +12,9 @@ Unreleased Fixed ~~~~~ +* In some cases, pages showing the count of extra marks and lessons with custom excuse types of + persons threw an error. +* The redirection to generated class register PDF printouts did not work. * Absences with custom excuse types were always counted as 0 or 1. `3.0b0`_ - 2022-02-28 diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py index b504a294164a6388099148fda5149091767577a7..615b28b360e661e2a5e2c784a10069de6c6a43bd 100644 --- a/aleksis/apps/alsijil/models.py +++ b/aleksis/apps/alsijil/models.py @@ -1,12 +1,14 @@ from datetime import date from typing import Optional, Union from urllib.parse import urlparse +from uuid import uuid4 from django.db import models from django.db.models.constraints import CheckConstraint from django.db.models.query_utils import Q from django.urls import reverse from django.utils.formats import date_format +from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ from calendarweek import CalendarWeek @@ -66,7 +68,7 @@ class ExcuseType(ExtensibleModel): @property def count_label(self): - return f"{self.short_name}_count" + return f"excuse_type_{self.id}_count" class Meta: ordering = ["name"] @@ -437,7 +439,7 @@ class ExtraMark(ExtensibleModel): @property def count_label(self): - return f"{self.short_name}_count" + return f"extra_mark_{self.id}_count" class Meta: ordering = ["short_name"] diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index f78ab22097f78ec0e3477000543977f14518d32d..590708deb9c403831def46d4e2f070e1e5fc2893 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -642,8 +642,11 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: group = get_object_or_404(Group, pk=id_) file_object = PDFFile.objects.create() + if has_person(request): + file_object.person = request.user.person + file_object.save() - redirect_url = reverse("redirect_to_pdf_file", args=[file_object.pk]) + redirect_url = f"/pdfs/{file_object.pk}" result = generate_full_register_printout.delay(group.pk, file_object.pk)