From 9014661e518c6d9457723571d7b0ef1ac9be6c6b Mon Sep 17 00:00:00 2001 From: Dominik George <nik@naturalnet.de> Date: Sun, 8 Dec 2019 21:05:49 +0100 Subject: [PATCH] Remove SchoolRelated and all related uses Advances BiscuIT-ng#115. --- biscuit/apps/alsijil/models.py | 21 ++++++++++--------- .../alsijil/print/full_register.html | 2 +- biscuit/apps/alsijil/views.py | 5 +++-- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/biscuit/apps/alsijil/models.py b/biscuit/apps/alsijil/models.py index 309d5b5e7..e2e079d99 100644 --- a/biscuit/apps/alsijil/models.py +++ b/biscuit/apps/alsijil/models.py @@ -1,14 +1,14 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ -from biscuit.core.mixins import SchoolRelated +from biscuit.core.mixins import CRUDMixin def isidentifier(value: str) -> bool: return value.isidentifier() -class PersonalNote(SchoolRelated): +class PersonalNote(models.Model): """ A personal note about a single person. Used in the class register to note absences, excuses and remarks about a student in a single lesson period. """ @@ -25,12 +25,12 @@ class PersonalNote(SchoolRelated): remarks = models.CharField(max_length=200, blank=True) class Meta: - unique_together = [['school', 'lesson_period', 'week', 'person']] + unique_together = [['lesson_period', 'week', 'person']] ordering = ['lesson_period__lesson__date_start', 'week', 'lesson_period__period__weekday', 'lesson_period__period__period', 'person__last_name', 'person__first_name'] -class LessonDocumentation(SchoolRelated): +class LessonDocumentation(models.Model, CRUDMixin): """ A documentation on a single lesson period. Non-personal, includes the topic and homework of the lesson. """ @@ -43,20 +43,21 @@ class LessonDocumentation(SchoolRelated): homework = models.CharField(verbose_name=_('Homework'), max_length=200, blank=True) class Meta: - unique_together = [['school', 'lesson_period', 'week']] + unique_together = [['lesson_period', 'week']] ordering = ['lesson_period__lesson__date_start', 'week', 'lesson_period__period__weekday', 'lesson_period__period__period'] -class PersonalNoteFilter(SchoolRelated): +class PersonalNoteFilter(models.Model): """ A filter definition that can generate statistics on personal note texts. """ identifier = models.CharField(verbose_name=_('Identifier'), max_length=30, - validators=[isidentifier]) - description = models.CharField(verbose_name=_('Description'), max_length=60, blank=True) + validators=[isidentifier], unique=True) + description = models.CharField(verbose_name=_('Description'), max_length=60, + blank=True, unique=True) - regex = models.CharField(verbose_name=_('Match expression'), max_length=100) + regex = models.CharField(verbose_name=_('Match expression'), max_length=100, + unique=True) class Meta: - unique_together = [['school', 'identifier'], ['school', 'description'], ['school', 'regex']] ordering = ['identifier'] diff --git a/biscuit/apps/alsijil/templates/alsijil/print/full_register.html b/biscuit/apps/alsijil/templates/alsijil/print/full_register.html index a08df051c..9a8daa204 100644 --- a/biscuit/apps/alsijil/templates/alsijil/print/full_register.html +++ b/biscuit/apps/alsijil/templates/alsijil/print/full_register.html @@ -17,7 +17,7 @@ <section class="sheet padding-10mm bigprint" id="titlepage"> <div> <h1>{% trans 'Class register' %}</h1> - <img src="{% cropped_thumbnail group.school 'logo_cropping' max_size='600x600' %}" id="school-logo" /> + <img src="{% cropped_thumbnail school 'logo_cropping' max_size='600x600' %}" id="school-logo" /> <p id="group-desc"> {{ group.name }} </p> diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py index 44c9ed95a..10cd8641f 100644 --- a/biscuit/apps/alsijil/views.py +++ b/biscuit/apps/alsijil/views.py @@ -13,7 +13,7 @@ from django_tables2 import RequestConfig from biscuit.apps.chronos.models import LessonPeriod from biscuit.apps.chronos.util import CalendarWeek -from biscuit.core.models import Group, Person +from biscuit.core.models import Group, Person, School from biscuit.core.decorators import admin_required from biscuit.core.util import messages @@ -176,7 +176,7 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: 'documentations', 'personal_notes' ) - weeks = CalendarWeek.weeks_within(group.school.current_term.date_start, group.school.current_term.date_end) + weeks = CalendarWeek.weeks_within(School.objects.first().current_term.date_start, School.objects.first().current_term.date_end) periods_by_day = {} for lesson_period in lesson_periods: for week in weeks: @@ -216,6 +216,7 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: context['weeks'] = weeks context['periods_by_day'] = periods_by_day context['today'] = date.today() + context['school'] School.objects.first() return render(request, 'alsijil/print/full_register.html', context) -- GitLab