diff --git a/aleksis/apps/alsijil/data_checks.py b/aleksis/apps/alsijil/data_checks.py index 98decd9aaa5cfac0ace215146ab9740a19a1927b..be36446beaf9d1bfc2474df29242f47a23d9a1c8 100644 --- a/aleksis/apps/alsijil/data_checks.py +++ b/aleksis/apps/alsijil/data_checks.py @@ -56,11 +56,15 @@ class NoPersonalNotesInCancelledLessonsDataCheck(DataCheck): def check_data(cls): from .models import PersonalNote - personal_notes = PersonalNote.objects.filter( - lesson_period__substitutions__cancelled=True, - lesson_period__substitutions__week=F("week"), - lesson_period__substitutions__year=F("year"), - ).prefetch_related("lesson_period", "lesson_period__substitutions") + personal_notes = ( + PersonalNote.objects.not_empty() + .filter( + lesson_period__substitutions__cancelled=True, + lesson_period__substitutions__week=F("week"), + lesson_period__substitutions__year=F("year"), + ) + .prefetch_related("lesson_period", "lesson_period__substitutions") + ) for note in personal_notes: logging.info(f"Check personal note {note}") @@ -119,9 +123,9 @@ class LessonDocumentationOnHolidaysDataCheck(DataCheck): holidays = Holiday.objects.all() - documentations = LessonDocumentation.objects.filter( - ~Q(topic="") | ~Q(group_note="") | ~Q(homework="") - ).annotate(actual_date=weekday_to_date) + documentations = LessonDocumentation.objects.not_empty().annotate( + actual_date=weekday_to_date + ) q = Q() for holiday in holidays: @@ -155,9 +159,7 @@ class PersonalNoteOnHolidaysDataCheck(DataCheck): holidays = Holiday.objects.all() - personal_notes = PersonalNote.objects.filter( - ~Q(remarks="") | Q(absent=True) | ~Q(late=0) | Q(extra_marks__isnull=False) - ).annotate(actual_date=weekday_to_date) + personal_notes = PersonalNote.objects.not_empty().annotate(actual_date=weekday_to_date) q = Q() for holiday in holidays: diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py index 8ea5ee1c553a3d40e82c3a015ed30e0206b7fd6a..9a3e7ac7bbbbe6b03b3717e832f263966e353fe4 100644 --- a/aleksis/apps/alsijil/forms.py +++ b/aleksis/apps/alsijil/forms.py @@ -5,7 +5,6 @@ from django.core.exceptions import ValidationError from django.db.models import Count, Q from django.utils.translation import gettext_lazy as _ -from django_global_request.middleware import get_request from django_select2.forms import ModelSelect2MultipleWidget, ModelSelect2Widget, Select2Widget from guardian.shortcuts import get_objects_for_user from material import Fieldset, Layout, Row @@ -83,8 +82,8 @@ class SelectForm(forms.Form): data["instance"] = instance return data - def __init__(self, *args, **kwargs): - self.request = get_request() + def __init__(self, request, *args, **kwargs): + self.request = request super().__init__(*args, **kwargs) person = self.request.user.person @@ -146,7 +145,6 @@ class RegisterAbsenceForm(forms.Form): remarks = forms.CharField(label=_("Remarks"), max_length=30, required=False) def __init__(self, *args, **kwargs): - self.request = get_request() super().__init__(*args, **kwargs) period_choices = TimePeriod.period_choices diff --git a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po index cc86fc5cf3595ae437aef2bd28e649204b1af4ff..a98f11e58e851ea9d34f885b57c0be53c9f646a9 100644 --- a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-05 21:26+0100\n" +"POT-Creation-Date: 2021-01-22 22:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -18,11 +18,63 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +#: data_checks.py:15 +msgid "Delete object" +msgstr "" + +#: data_checks.py:25 +msgid "Set current groups" +msgstr "" + +#: data_checks.py:36 +msgid "Reset personal note to defaults" +msgstr "" + +#: data_checks.py:48 +msgid "Ensure that there are no personal notes in cancelled lessons" +msgstr "" + +#: data_checks.py:49 +msgid "The personal note is related to a cancelled lesson." +msgstr "" + +#: data_checks.py:72 +msgid "Ensure that 'groups_of_person' is set for every personal note" +msgstr "" + +#: data_checks.py:73 +msgid "The personal note has no group in 'groups_of_person'." +msgstr "" + +#: data_checks.py:107 +msgid "Ensure that there are no filled out lesson documentations on holidays" +msgstr "" + +#: data_checks.py:108 +msgid "The lesson documentation is on holidays." +msgstr "" + +#: data_checks.py:143 +msgid "Ensure that there are no filled out personal notes on holidays" +msgstr "" + +#: data_checks.py:144 +msgid "The personal note is on holidays." +msgstr "" + +#: data_checks.py:174 +msgid "Ensure that there are no excused personal notes without an absence" +msgstr "" + +#: data_checks.py:175 +msgid "The personal note is marked as excused, but not as absent." +msgstr "" + #: forms.py:29 msgid "Homework for the next lesson" msgstr "" -#: forms.py:54 templates/alsijil/class_register/week_view.html:168 +#: forms.py:54 templates/alsijil/class_register/week_view.html:191 #: templates/alsijil/print/full_register.html:199 msgid "Group" msgstr "" @@ -53,16 +105,16 @@ msgid "End period" msgstr "" #: forms.py:130 templates/alsijil/absences/register_confirm.html:52 -#: templates/alsijil/class_register/lesson.html:243 +#: templates/alsijil/class_register/lesson.html:247 #: templates/alsijil/class_register/person.html:207 -#: templates/alsijil/class_register/week_view.html:261 +#: templates/alsijil/class_register/week_view.html:287 #: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "" #: forms.py:131 templates/alsijil/absences/register_confirm.html:56 -#: templates/alsijil/class_register/lesson.html:245 +#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/person.html:98 #: templates/alsijil/class_register/person.html:215 #: templates/alsijil/partials/mark_as_buttons.html:2 @@ -73,14 +125,14 @@ msgstr "" msgid "Excused" msgstr "" -#: forms.py:133 models.py:37 models.py:64 -#: templates/alsijil/class_register/lesson.html:246 -#: templates/alsijil/class_register/lesson.html:281 +#: forms.py:133 models.py:45 models.py:79 +#: templates/alsijil/class_register/lesson.html:250 +#: templates/alsijil/class_register/lesson.html:285 msgid "Excuse type" msgstr "" -#: forms.py:138 templates/alsijil/class_register/lesson.html:248 -#: templates/alsijil/class_register/lesson.html:302 +#: forms.py:138 templates/alsijil/class_register/lesson.html:252 +#: templates/alsijil/class_register/lesson.html:306 #: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "" @@ -111,14 +163,14 @@ msgstr "" msgid "My students" msgstr "" -#: menus.py:71 models.py:38 templates/alsijil/excuse_type/list.html:8 +#: menus.py:71 models.py:46 templates/alsijil/excuse_type/list.html:8 #: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/partials/legend.html:26 msgid "Excuse types" msgstr "" -#: menus.py:82 models.py:70 models.py:201 -#: templates/alsijil/class_register/lesson.html:247 +#: menus.py:82 models.py:84 models.py:232 +#: templates/alsijil/class_register/lesson.html:251 #: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/partials/legend.html:41 @@ -163,75 +215,75 @@ msgstr "" msgid "Can register an absence for a person" msgstr "" -#: models.py:25 models.py:188 +#: models.py:33 models.py:219 msgid "Short name" msgstr "" -#: models.py:26 models.py:189 templates/alsijil/class_register/groups.html:20 +#: models.py:34 models.py:220 templates/alsijil/class_register/groups.html:20 #: templates/alsijil/partials/persons_with_stats.html:14 #: templates/alsijil/partials/persons_with_stats.html:24 msgid "Name" msgstr "" -#: models.py:54 models.py:121 +#: models.py:69 models.py:144 msgid "Year" msgstr "" -#: models.py:101 +#: models.py:122 msgid "Personal note" msgstr "" -#: models.py:102 templates/alsijil/class_register/lesson.html:101 -#: templates/alsijil/class_register/lesson.html:233 -#: templates/alsijil/class_register/week_view.html:68 -#: templates/alsijil/class_register/week_view.html:242 +#: models.py:123 templates/alsijil/class_register/lesson.html:105 +#: templates/alsijil/class_register/lesson.html:237 +#: templates/alsijil/class_register/week_view.html:71 +#: templates/alsijil/class_register/week_view.html:267 msgid "Personal notes" msgstr "" -#: models.py:127 templates/alsijil/class_register/lesson.html:129 -#: templates/alsijil/class_register/week_view.html:90 -#: templates/alsijil/class_register/week_view.html:177 -#: templates/alsijil/print/full_register.html:371 +#: models.py:150 templates/alsijil/class_register/lesson.html:133 +#: templates/alsijil/class_register/week_view.html:106 +#: templates/alsijil/class_register/week_view.html:200 +#: templates/alsijil/print/full_register.html:369 msgid "Lesson topic" msgstr "" -#: models.py:128 templates/alsijil/class_register/lesson.html:137 -#: templates/alsijil/class_register/week_view.html:91 -#: templates/alsijil/class_register/week_view.html:183 -#: templates/alsijil/class_register/week_view.html:216 -#: templates/alsijil/print/full_register.html:372 +#: models.py:151 templates/alsijil/class_register/lesson.html:141 +#: templates/alsijil/class_register/week_view.html:107 +#: templates/alsijil/class_register/week_view.html:206 +#: templates/alsijil/class_register/week_view.html:239 +#: templates/alsijil/print/full_register.html:370 msgid "Homework" msgstr "" -#: models.py:129 templates/alsijil/class_register/lesson.html:145 -#: templates/alsijil/class_register/week_view.html:92 -#: templates/alsijil/class_register/week_view.html:189 -#: templates/alsijil/class_register/week_view.html:222 +#: models.py:152 templates/alsijil/class_register/lesson.html:149 +#: templates/alsijil/class_register/week_view.html:108 +#: templates/alsijil/class_register/week_view.html:212 +#: templates/alsijil/class_register/week_view.html:245 msgid "Group note" msgstr "" -#: models.py:171 templates/alsijil/class_register/lesson.html:97 -#: templates/alsijil/class_register/lesson.html:120 +#: models.py:202 templates/alsijil/class_register/lesson.html:101 +#: templates/alsijil/class_register/lesson.html:124 msgid "Lesson documentation" msgstr "" -#: models.py:172 templates/alsijil/class_register/week_view.html:67 +#: models.py:203 templates/alsijil/class_register/week_view.html:68 msgid "Lesson documentations" msgstr "" -#: models.py:200 +#: models.py:231 msgid "Extra mark" msgstr "" -#: models.py:208 +#: models.py:239 msgid "Can view week overview" msgstr "" -#: models.py:209 +#: models.py:240 msgid "Can register absence" msgstr "" -#: models.py:210 +#: models.py:241 msgid "Can list all personal note filters" msgstr "" @@ -263,6 +315,10 @@ msgstr "" msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgstr "" +#: preferences.py:68 +msgid "Allow teachers to add data for lessons in holidays" +msgstr "" + #: tables.py:16 tables.py:36 msgid "Edit" msgstr "" @@ -274,13 +330,13 @@ msgstr "" #: templates/alsijil/absences/register.html:5 #: templates/alsijil/absences/register.html:6 #: templates/alsijil/class_register/person.html:30 -#: templates/alsijil/class_register/week_view.html:256 +#: templates/alsijil/class_register/week_view.html:282 #: templates/alsijil/partials/persons_with_stats.html:115 msgid "Register absence" msgstr "" #: templates/alsijil/absences/register.html:9 -#: templates/alsijil/class_register/lesson.html:242 +#: templates/alsijil/class_register/lesson.html:246 msgid "Person" msgstr "" @@ -382,13 +438,12 @@ msgid "My next lesson" msgstr "" #: templates/alsijil/class_register/lesson.html:46 -#: templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:171 #, python-format msgid "%(period)s. period" msgstr "" -#: templates/alsijil/class_register/lesson.html:77 -#: templates/alsijil/class_register/lesson.html:359 +#: templates/alsijil/class_register/lesson.html:79 #, python-format msgid "" "\n" @@ -396,8 +451,7 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:85 -#: templates/alsijil/class_register/lesson.html:367 +#: templates/alsijil/class_register/lesson.html:87 #, python-format msgid "" "\n" @@ -405,40 +459,40 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:107 +#: templates/alsijil/class_register/lesson.html:111 msgid "Previous lesson" msgstr "" -#: templates/alsijil/class_register/lesson.html:111 -#: templates/alsijil/class_register/lesson.html:342 +#: templates/alsijil/class_register/lesson.html:115 +#: templates/alsijil/class_register/lesson.html:346 msgid "Change history" msgstr "" -#: templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/class_register/lesson.html:170 msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/class_register/lesson.html:173 +#: templates/alsijil/class_register/lesson.html:177 msgid "Lesson topic of previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:180 +#: templates/alsijil/class_register/lesson.html:184 msgid "Homework for this lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:187 +#: templates/alsijil/class_register/lesson.html:191 msgid "Group notes for previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:194 +#: templates/alsijil/class_register/lesson.html:198 msgid "Absent persons:" msgstr "" -#: templates/alsijil/class_register/lesson.html:201 +#: templates/alsijil/class_register/lesson.html:205 msgid "Late persons:" msgstr "" -#: templates/alsijil/class_register/lesson.html:244 +#: templates/alsijil/class_register/lesson.html:248 #: templates/alsijil/class_register/person.html:110 #: templates/alsijil/partials/persons_with_stats.html:17 #: templates/alsijil/partials/persons_with_stats.html:34 @@ -447,10 +501,33 @@ msgstr "" msgid "Tardiness" msgstr "" -#: templates/alsijil/class_register/lesson.html:267 +#: templates/alsijil/class_register/lesson.html:271 msgid "Tardiness (in m)" msgstr "" +#: templates/alsijil/class_register/lesson.html:364 +#, python-format +msgid "" +"\n" +" Previous %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:372 +#, python-format +msgid "" +"\n" +" Next %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:387 +msgid "" +"\n" +" This lesson overlaps with holidays and can't be edited.\n" +" " +msgstr "" + #: templates/alsijil/class_register/person.html:8 msgid "Class register: person" msgstr "" @@ -555,44 +632,44 @@ msgid "" " %(instance)s" msgstr "" -#: templates/alsijil/class_register/week_view.html:84 +#: templates/alsijil/class_register/week_view.html:100 msgid "Period" msgstr "" -#: templates/alsijil/class_register/week_view.html:86 +#: templates/alsijil/class_register/week_view.html:102 msgid "Groups" msgstr "" -#: templates/alsijil/class_register/week_view.html:88 -#: templates/alsijil/class_register/week_view.html:163 +#: templates/alsijil/class_register/week_view.html:104 +#: templates/alsijil/class_register/week_view.html:186 #: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:200 msgid "Subject" msgstr "" -#: templates/alsijil/class_register/week_view.html:89 -#: templates/alsijil/class_register/week_view.html:173 +#: templates/alsijil/class_register/week_view.html:105 +#: templates/alsijil/class_register/week_view.html:196 msgid "Teachers" msgstr "" -#: templates/alsijil/class_register/week_view.html:262 +#: templates/alsijil/class_register/week_view.html:288 msgid "unexcused" msgstr "" -#: templates/alsijil/class_register/week_view.html:265 +#: templates/alsijil/class_register/week_view.html:291 msgid "Summed up tardiness" msgstr "" -#: templates/alsijil/class_register/week_view.html:268 +#: templates/alsijil/class_register/week_view.html:294 #: templates/alsijil/partials/persons_with_stats.html:94 msgid "Count of tardiness" msgstr "" -#: templates/alsijil/class_register/week_view.html:297 +#: templates/alsijil/class_register/week_view.html:323 msgid "No lessons available" msgstr "" -#: templates/alsijil/class_register/week_view.html:300 +#: templates/alsijil/class_register/week_view.html:326 msgid "" "\n" " There are no lessons for the selected group or teacher in this week.\n" @@ -661,7 +738,7 @@ msgid "Data complete" msgstr "" #: templates/alsijil/partials/lesson_status_icon.html:12 -#: templates/alsijil/print/full_register.html:406 +#: templates/alsijil/print/full_register.html:404 msgid "Lesson cancelled" msgstr "" @@ -678,9 +755,9 @@ msgid "Substitution" msgstr "" #: templates/alsijil/partials/mark_as_buttons.html:4 -#: templates/alsijil/print/full_register.html:335 -#: templates/alsijil/print/full_register.html:424 -#: templates/alsijil/print/full_register.html:439 +#: templates/alsijil/print/full_register.html:334 +#: templates/alsijil/print/full_register.html:422 +#: templates/alsijil/print/full_register.html:437 msgid "e" msgstr "" @@ -836,17 +913,17 @@ msgid "Date" msgstr "" #: templates/alsijil/print/full_register.html:309 -#: templates/alsijil/print/full_register.html:369 +#: templates/alsijil/print/full_register.html:367 msgid "Pe." msgstr "" #: templates/alsijil/print/full_register.html:310 -#: templates/alsijil/print/full_register.html:370 +#: templates/alsijil/print/full_register.html:368 msgid "Subj." msgstr "" #: templates/alsijil/print/full_register.html:311 -#: templates/alsijil/print/full_register.html:374 +#: templates/alsijil/print/full_register.html:372 msgid "Te." msgstr "" @@ -854,70 +931,70 @@ msgstr "" msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:330 +#: templates/alsijil/print/full_register.html:329 msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:363 +#: templates/alsijil/print/full_register.html:361 msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:373 +#: templates/alsijil/print/full_register.html:371 msgid "Notes" msgstr "" -#: views.py:65 +#: views.py:68 msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: views.py:90 +#: views.py:93 msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: views.py:127 +#: views.py:141 msgid "The lesson documentation has been saved." msgstr "" -#: views.py:151 +#: views.py:165 msgid "The personal notes have been saved." msgstr "" -#: views.py:570 +#: views.py:591 msgid "The absences have been marked as excused." msgstr "" -#: views.py:585 +#: views.py:606 msgid "The absence has been marked as excused." msgstr "" -#: views.py:721 +#: views.py:749 msgid "The absence has been saved." msgstr "" -#: views.py:741 +#: views.py:770 msgid "The personal note has been deleted." msgstr "" -#: views.py:762 +#: views.py:792 msgid "The extra mark has been created." msgstr "" -#: views.py:773 +#: views.py:804 msgid "The extra mark has been saved." msgstr "" -#: views.py:783 +#: views.py:815 msgid "The extra mark has been deleted." msgstr "" -#: views.py:803 +#: views.py:836 msgid "The excuse type has been created." msgstr "" -#: views.py:814 +#: views.py:848 msgid "The excuse type has been saved." msgstr "" -#: views.py:824 +#: views.py:859 msgid "The excuse type has been deleted." msgstr "" diff --git a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po index add03b74eeb7a5e69c3c19dce2a7bedb2038c90d..5c542270637495824e90c2e8bbd1c4bfc8f746b3 100644 --- a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-05 21:26+0100\n" -"PO-Revision-Date: 2020-12-05 20:56+0000\n" +"POT-Creation-Date: 2021-01-22 22:01+0100\n" +"PO-Revision-Date: 2021-01-22 21:30+0000\n" "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n" "Language-Team: German <https://translate.edugit.org/projects/aleksis/" "aleksis-app-alsijil/de/>\n" @@ -17,13 +17,76 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.3.2\n" +"X-Generator: Weblate 4.4\n" + +#: data_checks.py:15 +msgid "Delete object" +msgstr "Objekt löschen" + +#: data_checks.py:25 +msgid "Set current groups" +msgstr "Aktuelle Gruppen setzen" + +#: data_checks.py:36 +msgid "Reset personal note to defaults" +msgstr "Persönliche Notiz zurücksetzen" + +#: data_checks.py:48 +msgid "Ensure that there are no personal notes in cancelled lessons" +msgstr "" +"Sicherstellen, dass es keine persönlichen Notizen in ausgefallenen Stunden " +"gibt" + +#: data_checks.py:49 +msgid "The personal note is related to a cancelled lesson." +msgstr "Die persönliche Notiz ist einer ausgefallenen Stunde zugeordnet." + +#: data_checks.py:72 +msgid "Ensure that 'groups_of_person' is set for every personal note" +msgstr "" +"Sicherstellen, dass \"groups_of_person\" für alle persönlichen Notizen " +"gesetzt ist" + +#: data_checks.py:73 +msgid "The personal note has no group in 'groups_of_person'." +msgstr "Die persönliche Notiz hat keine Gruppe in \"groups_of_person\"." + +#: data_checks.py:107 +msgid "Ensure that there are no filled out lesson documentations on holidays" +msgstr "" +"Sicherstellen, dass es keine ausgefüllten Stundendokumentationen in den " +"Ferien gibt" + +#: data_checks.py:108 +msgid "The lesson documentation is on holidays." +msgstr "Die Stundendokumentation ist in den Ferien." + +#: data_checks.py:143 +msgid "Ensure that there are no filled out personal notes on holidays" +msgstr "" +"Sicherstellen, dass es keine ausgefüllten persönlichen Notizen in den Ferien " +"gibt" + +#: data_checks.py:144 +msgid "The personal note is on holidays." +msgstr "Die persönliche Notiz ist in den Ferien." + +#: data_checks.py:174 +msgid "Ensure that there are no excused personal notes without an absence" +msgstr "" +"Sicherstellen, dass es keine entschuldigten persönlichen Notizen ohne eine " +"Absenz gibt" + +#: data_checks.py:175 +msgid "The personal note is marked as excused, but not as absent." +msgstr "" +"Die persönliche Notiz ist als entschuldigt, aber nicht als abwesend markiert." #: forms.py:29 msgid "Homework for the next lesson" msgstr "Hausaufgabe zur nächsten Stunde" -#: forms.py:54 templates/alsijil/class_register/week_view.html:168 +#: forms.py:54 templates/alsijil/class_register/week_view.html:191 #: templates/alsijil/print/full_register.html:199 msgid "Group" msgstr "Gruppe" @@ -54,16 +117,16 @@ msgid "End period" msgstr "Endstunde" #: forms.py:130 templates/alsijil/absences/register_confirm.html:52 -#: templates/alsijil/class_register/lesson.html:243 +#: templates/alsijil/class_register/lesson.html:247 #: templates/alsijil/class_register/person.html:207 -#: templates/alsijil/class_register/week_view.html:261 +#: templates/alsijil/class_register/week_view.html:287 #: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "Abwesend" #: forms.py:131 templates/alsijil/absences/register_confirm.html:56 -#: templates/alsijil/class_register/lesson.html:245 +#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/person.html:98 #: templates/alsijil/class_register/person.html:215 #: templates/alsijil/partials/mark_as_buttons.html:2 @@ -74,14 +137,14 @@ msgstr "Abwesend" msgid "Excused" msgstr "Entschuldigt" -#: forms.py:133 models.py:37 models.py:64 -#: templates/alsijil/class_register/lesson.html:246 -#: templates/alsijil/class_register/lesson.html:281 +#: forms.py:133 models.py:45 models.py:79 +#: templates/alsijil/class_register/lesson.html:250 +#: templates/alsijil/class_register/lesson.html:285 msgid "Excuse type" msgstr "Entschuldigungsart" -#: forms.py:138 templates/alsijil/class_register/lesson.html:248 -#: templates/alsijil/class_register/lesson.html:302 +#: forms.py:138 templates/alsijil/class_register/lesson.html:252 +#: templates/alsijil/class_register/lesson.html:306 #: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "Bemerkungen" @@ -112,14 +175,14 @@ msgstr "Meine Übersicht" msgid "My students" msgstr "Meine Schüler*innen" -#: menus.py:71 models.py:38 templates/alsijil/excuse_type/list.html:8 +#: menus.py:71 models.py:46 templates/alsijil/excuse_type/list.html:8 #: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/partials/legend.html:26 msgid "Excuse types" msgstr "Entschuldigungsarten" -#: menus.py:82 models.py:70 models.py:201 -#: templates/alsijil/class_register/lesson.html:247 +#: menus.py:82 models.py:84 models.py:232 +#: templates/alsijil/class_register/lesson.html:251 #: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/partials/legend.html:41 @@ -164,75 +227,75 @@ msgstr "Kann eine Absenz für alle Mitglieder eine Gruppe registrieren" msgid "Can register an absence for a person" msgstr "Kann eine Absenz für eine Person registrieren" -#: models.py:25 models.py:188 +#: models.py:33 models.py:219 msgid "Short name" msgstr "Kurzname" -#: models.py:26 models.py:189 templates/alsijil/class_register/groups.html:20 +#: models.py:34 models.py:220 templates/alsijil/class_register/groups.html:20 #: templates/alsijil/partials/persons_with_stats.html:14 #: templates/alsijil/partials/persons_with_stats.html:24 msgid "Name" msgstr "Name" -#: models.py:54 models.py:121 +#: models.py:69 models.py:144 msgid "Year" msgstr "Jahr" -#: models.py:101 +#: models.py:122 msgid "Personal note" msgstr "Persönliche Notiz" -#: models.py:102 templates/alsijil/class_register/lesson.html:101 -#: templates/alsijil/class_register/lesson.html:233 -#: templates/alsijil/class_register/week_view.html:68 -#: templates/alsijil/class_register/week_view.html:242 +#: models.py:123 templates/alsijil/class_register/lesson.html:105 +#: templates/alsijil/class_register/lesson.html:237 +#: templates/alsijil/class_register/week_view.html:71 +#: templates/alsijil/class_register/week_view.html:267 msgid "Personal notes" msgstr "Persönliche Notizen" -#: models.py:127 templates/alsijil/class_register/lesson.html:129 -#: templates/alsijil/class_register/week_view.html:90 -#: templates/alsijil/class_register/week_view.html:177 -#: templates/alsijil/print/full_register.html:371 +#: models.py:150 templates/alsijil/class_register/lesson.html:133 +#: templates/alsijil/class_register/week_view.html:106 +#: templates/alsijil/class_register/week_view.html:200 +#: templates/alsijil/print/full_register.html:369 msgid "Lesson topic" msgstr "Stundenthema" -#: models.py:128 templates/alsijil/class_register/lesson.html:137 -#: templates/alsijil/class_register/week_view.html:91 -#: templates/alsijil/class_register/week_view.html:183 -#: templates/alsijil/class_register/week_view.html:216 -#: templates/alsijil/print/full_register.html:372 +#: models.py:151 templates/alsijil/class_register/lesson.html:141 +#: templates/alsijil/class_register/week_view.html:107 +#: templates/alsijil/class_register/week_view.html:206 +#: templates/alsijil/class_register/week_view.html:239 +#: templates/alsijil/print/full_register.html:370 msgid "Homework" msgstr "Hausaufgaben" -#: models.py:129 templates/alsijil/class_register/lesson.html:145 -#: templates/alsijil/class_register/week_view.html:92 -#: templates/alsijil/class_register/week_view.html:189 -#: templates/alsijil/class_register/week_view.html:222 +#: models.py:152 templates/alsijil/class_register/lesson.html:149 +#: templates/alsijil/class_register/week_view.html:108 +#: templates/alsijil/class_register/week_view.html:212 +#: templates/alsijil/class_register/week_view.html:245 msgid "Group note" msgstr "Gruppennotiz" -#: models.py:171 templates/alsijil/class_register/lesson.html:97 -#: templates/alsijil/class_register/lesson.html:120 +#: models.py:202 templates/alsijil/class_register/lesson.html:101 +#: templates/alsijil/class_register/lesson.html:124 msgid "Lesson documentation" msgstr "Stunden-Dokumentation" -#: models.py:172 templates/alsijil/class_register/week_view.html:67 +#: models.py:203 templates/alsijil/class_register/week_view.html:68 msgid "Lesson documentations" msgstr "Stunden-Dokumentationen" -#: models.py:200 +#: models.py:231 msgid "Extra mark" msgstr "Zusätzliche Markierung" -#: models.py:208 +#: models.py:239 msgid "Can view week overview" msgstr "Kann die Wochenübersicht sehen" -#: models.py:209 +#: models.py:240 msgid "Can register absence" msgstr "Kann eine Absenz registrieren" -#: models.py:210 +#: models.py:241 msgid "Can list all personal note filters" msgstr "Kann alle Filter für persönliche Notizen anzeigen" @@ -264,6 +327,10 @@ msgstr "Erlaube Lehrkräften, Unterrichtsstunden bereits am gleichen Tag und nic msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgstr "Unterrichtsstunden in der Vergangenheit werden nicht durch diese Einstellung beeinflusst, sie können immer geöffnet werden." +#: preferences.py:68 +msgid "Allow teachers to add data for lessons in holidays" +msgstr "Lehrkräften erlauben, Daten für Stunden in den Ferien hinzuzufügen" + #: tables.py:16 tables.py:36 msgid "Edit" msgstr "Bearbeiten" @@ -275,13 +342,13 @@ msgstr "Löschen" #: templates/alsijil/absences/register.html:5 #: templates/alsijil/absences/register.html:6 #: templates/alsijil/class_register/person.html:30 -#: templates/alsijil/class_register/week_view.html:256 +#: templates/alsijil/class_register/week_view.html:282 #: templates/alsijil/partials/persons_with_stats.html:115 msgid "Register absence" msgstr "Abwesenheit eintragen" #: templates/alsijil/absences/register.html:9 -#: templates/alsijil/class_register/lesson.html:242 +#: templates/alsijil/class_register/lesson.html:246 msgid "Person" msgstr "Person" @@ -324,8 +391,7 @@ msgid "" " " msgstr "" "\n" -" Es gibt keine betroffenen Stunden. Das Eintragen dieser " -"Abwesenheit wird keinen Effekt haben.\n" +" Es gibt keine betroffenen Stunden. Das Eintragen dieser Abwesenheit wird keinen Effekt haben.\n" " " #: templates/alsijil/absences/register_confirm.html:59 @@ -394,13 +460,12 @@ msgid "My next lesson" msgstr "Meine nächste Stunde" #: templates/alsijil/class_register/lesson.html:46 -#: templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:171 #, python-format msgid "%(period)s. period" msgstr "%(period)s. Stunde" -#: templates/alsijil/class_register/lesson.html:77 -#: templates/alsijil/class_register/lesson.html:359 +#: templates/alsijil/class_register/lesson.html:79 #, python-format msgid "" "\n" @@ -411,8 +476,7 @@ msgstr "" " Vorherige %(subject)s Stunde\n" " " -#: templates/alsijil/class_register/lesson.html:85 -#: templates/alsijil/class_register/lesson.html:367 +#: templates/alsijil/class_register/lesson.html:87 #, python-format msgid "" "\n" @@ -423,40 +487,40 @@ msgstr "" " Nächste %(subject)s Stunde\n" " " -#: templates/alsijil/class_register/lesson.html:107 +#: templates/alsijil/class_register/lesson.html:111 msgid "Previous lesson" msgstr "Vorherige Unterrichtsstunde" -#: templates/alsijil/class_register/lesson.html:111 -#: templates/alsijil/class_register/lesson.html:342 +#: templates/alsijil/class_register/lesson.html:115 +#: templates/alsijil/class_register/lesson.html:346 msgid "Change history" msgstr "Veränderungen" -#: templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/class_register/lesson.html:170 msgid "Overview: Previous lesson" msgstr "Übersicht: Vorherige Stunde" -#: templates/alsijil/class_register/lesson.html:173 +#: templates/alsijil/class_register/lesson.html:177 msgid "Lesson topic of previous lesson:" msgstr "Stundenthema der vorherigen Stunde:" -#: templates/alsijil/class_register/lesson.html:180 +#: templates/alsijil/class_register/lesson.html:184 msgid "Homework for this lesson:" msgstr "Hausaufgaben zu dieser Stunde:" -#: templates/alsijil/class_register/lesson.html:187 +#: templates/alsijil/class_register/lesson.html:191 msgid "Group notes for previous lesson:" msgstr "Gruppennotizen für die vorherige Stunde:" -#: templates/alsijil/class_register/lesson.html:194 +#: templates/alsijil/class_register/lesson.html:198 msgid "Absent persons:" msgstr "Abwesende Personen:" -#: templates/alsijil/class_register/lesson.html:201 +#: templates/alsijil/class_register/lesson.html:205 msgid "Late persons:" msgstr "Verspätete Personen:" -#: templates/alsijil/class_register/lesson.html:244 +#: templates/alsijil/class_register/lesson.html:248 #: templates/alsijil/class_register/person.html:110 #: templates/alsijil/partials/persons_with_stats.html:17 #: templates/alsijil/partials/persons_with_stats.html:34 @@ -465,10 +529,43 @@ msgstr "Verspätete Personen:" msgid "Tardiness" msgstr "Verspätung" -#: templates/alsijil/class_register/lesson.html:267 +#: templates/alsijil/class_register/lesson.html:271 msgid "Tardiness (in m)" msgstr "Verspätung (in m)" +#: templates/alsijil/class_register/lesson.html:364 +#, python-format +msgid "" +"\n" +" Previous %(subject)s lesson\n" +" " +msgstr "" +"\n" +" Vorherige %(subject)s Stunde\n" +" " + +#: templates/alsijil/class_register/lesson.html:372 +#, python-format +msgid "" +"\n" +" Next %(subject)s lesson\n" +" " +msgstr "" +"\n" +" Nächste %(subject)s Stunde\n" +" " + +#: templates/alsijil/class_register/lesson.html:387 +msgid "" +"\n" +" This lesson overlaps with holidays and can't be edited.\n" +" " +msgstr "" +"\n" +" Diese Stunde ist in den Ferien und kann somit nicht " +"bearbeitet werden.\n" +" " + #: templates/alsijil/class_register/person.html:8 msgid "Class register: person" msgstr "Klassenbuch: Person" @@ -578,44 +675,44 @@ msgstr "" "KW %(week)s: \n" "%(instance)s" -#: templates/alsijil/class_register/week_view.html:84 +#: templates/alsijil/class_register/week_view.html:100 msgid "Period" msgstr "Stunde" -#: templates/alsijil/class_register/week_view.html:86 +#: templates/alsijil/class_register/week_view.html:102 msgid "Groups" msgstr "Gruppen" -#: templates/alsijil/class_register/week_view.html:88 -#: templates/alsijil/class_register/week_view.html:163 +#: templates/alsijil/class_register/week_view.html:104 +#: templates/alsijil/class_register/week_view.html:186 #: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:200 msgid "Subject" msgstr "Fach" -#: templates/alsijil/class_register/week_view.html:89 -#: templates/alsijil/class_register/week_view.html:173 +#: templates/alsijil/class_register/week_view.html:105 +#: templates/alsijil/class_register/week_view.html:196 msgid "Teachers" msgstr "Lehrkräfte" -#: templates/alsijil/class_register/week_view.html:262 +#: templates/alsijil/class_register/week_view.html:288 msgid "unexcused" msgstr "unentschuldigt" -#: templates/alsijil/class_register/week_view.html:265 +#: templates/alsijil/class_register/week_view.html:291 msgid "Summed up tardiness" msgstr "Summierte Verspätung" -#: templates/alsijil/class_register/week_view.html:268 +#: templates/alsijil/class_register/week_view.html:294 #: templates/alsijil/partials/persons_with_stats.html:94 msgid "Count of tardiness" msgstr "Anzahl der Verspätungen" -#: templates/alsijil/class_register/week_view.html:297 +#: templates/alsijil/class_register/week_view.html:323 msgid "No lessons available" msgstr "Keine Stunden verfügbar" -#: templates/alsijil/class_register/week_view.html:300 +#: templates/alsijil/class_register/week_view.html:326 msgid "" "\n" " There are no lessons for the selected group or teacher in this week.\n" @@ -691,7 +788,7 @@ msgid "Data complete" msgstr "Daten vollständig" #: templates/alsijil/partials/lesson_status_icon.html:12 -#: templates/alsijil/print/full_register.html:406 +#: templates/alsijil/print/full_register.html:404 msgid "Lesson cancelled" msgstr "Stunde ist ausgefallen" @@ -708,9 +805,9 @@ msgid "Substitution" msgstr "Vertretung" #: templates/alsijil/partials/mark_as_buttons.html:4 -#: templates/alsijil/print/full_register.html:335 -#: templates/alsijil/print/full_register.html:424 -#: templates/alsijil/print/full_register.html:439 +#: templates/alsijil/print/full_register.html:334 +#: templates/alsijil/print/full_register.html:422 +#: templates/alsijil/print/full_register.html:437 msgid "e" msgstr "e" @@ -880,17 +977,17 @@ msgid "Date" msgstr "Datum" #: templates/alsijil/print/full_register.html:309 -#: templates/alsijil/print/full_register.html:369 +#: templates/alsijil/print/full_register.html:367 msgid "Pe." msgstr "Std." #: templates/alsijil/print/full_register.html:310 -#: templates/alsijil/print/full_register.html:370 +#: templates/alsijil/print/full_register.html:368 msgid "Subj." msgstr "Fa." #: templates/alsijil/print/full_register.html:311 -#: templates/alsijil/print/full_register.html:374 +#: templates/alsijil/print/full_register.html:372 msgid "Te." msgstr "Lk." @@ -898,73 +995,73 @@ msgstr "Lk." msgid "Tard." msgstr "Verspät." -#: templates/alsijil/print/full_register.html:330 +#: templates/alsijil/print/full_register.html:329 msgid "Yes" msgstr "Ja" -#: templates/alsijil/print/full_register.html:363 +#: templates/alsijil/print/full_register.html:361 msgid "Lesson documentation for week" msgstr "Unterrichtsdokumentation für Woche" -#: templates/alsijil/print/full_register.html:373 +#: templates/alsijil/print/full_register.html:371 msgid "Notes" msgstr "Notizen" -#: views.py:65 +#: views.py:68 msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" "Sie haben eine ungültige Stunde ausgewählt oder es\n" " läuft momentan keine Stunde." -#: views.py:90 +#: views.py:93 msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "Ihnen ist es nicht erlaubt, eine Eintragung für eine Unterrichtsstunde in der Zukunft vorzunehmen." -#: views.py:127 +#: views.py:141 msgid "The lesson documentation has been saved." msgstr "Die Stunden-Dokumentation wurde gespeichert." -#: views.py:151 +#: views.py:165 msgid "The personal notes have been saved." msgstr "Die persönlichen Notizen wurden gespeichert." -#: views.py:570 +#: views.py:591 msgid "The absences have been marked as excused." msgstr "Die Fehlzeiten wurden als entschuldigt markiert." -#: views.py:585 +#: views.py:606 msgid "The absence has been marked as excused." msgstr "Die Fehlzeit wurde als entschuldigt markiert." -#: views.py:721 +#: views.py:749 msgid "The absence has been saved." msgstr "Die Abwesenheit wurde gespeichert." -#: views.py:741 +#: views.py:770 msgid "The personal note has been deleted." msgstr "Die persönliche Notiz wurde gelöscht." -#: views.py:762 +#: views.py:792 msgid "The extra mark has been created." msgstr "Die zusätzliche Markierung wurde erstellt." -#: views.py:773 +#: views.py:804 msgid "The extra mark has been saved." msgstr "Die zusätzliche Markierung wurde gespeichert." -#: views.py:783 +#: views.py:815 msgid "The extra mark has been deleted." msgstr "Die zusätzliche Markierung wurde gelöscht." -#: views.py:803 +#: views.py:836 msgid "The excuse type has been created." msgstr "Die Entschuldigungsart wurde erstellt." -#: views.py:814 +#: views.py:848 msgid "The excuse type has been saved." msgstr "Die Entschuldigunsart wurde gespeichert." -#: views.py:824 +#: views.py:859 msgid "The excuse type has been deleted." msgstr "Die Entschuldigungsart wurde gelöscht." diff --git a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po index 404d2879d67b75879d9fbae9e3f467a4f78e4f96..d848e625848478871d3a2f37c74f913a506feaef 100644 --- a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-05 21:26+0100\n" +"POT-Creation-Date: 2021-01-22 22:01+0100\n" "PO-Revision-Date: 2020-07-26 14:08+0000\n" "Last-Translator: Marlene Grundey <grundema@katharineum.de>\n" "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/fr/>\n" @@ -18,11 +18,73 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 4.0.1\n" +#: data_checks.py:15 +msgid "Delete object" +msgstr "" + +#: data_checks.py:25 +msgid "Set current groups" +msgstr "" + +#: data_checks.py:36 +#, fuzzy +#| msgid "Relevant personal notes" +msgid "Reset personal note to defaults" +msgstr "Notes personnelles importantes" + +#: data_checks.py:48 +msgid "Ensure that there are no personal notes in cancelled lessons" +msgstr "" + +#: data_checks.py:49 +#, fuzzy +#| msgid "Lesson documentation for calendar week" +msgid "The personal note is related to a cancelled lesson." +msgstr "Documentation de cours pour la semaine calendrier" + +#: data_checks.py:72 +msgid "Ensure that 'groups_of_person' is set for every personal note" +msgstr "" + +#: data_checks.py:73 +msgid "The personal note has no group in 'groups_of_person'." +msgstr "" + +#: data_checks.py:107 +msgid "Ensure that there are no filled out lesson documentations on holidays" +msgstr "" + +#: data_checks.py:108 +#, fuzzy +#| msgid "Lesson documentation for calendar week" +msgid "The lesson documentation is on holidays." +msgstr "Documentation de cours pour la semaine calendrier" + +#: data_checks.py:143 +msgid "Ensure that there are no filled out personal notes on holidays" +msgstr "" + +#: data_checks.py:144 +#, fuzzy +#| msgid "Lesson documentation for calendar week" +msgid "The personal note is on holidays." +msgstr "Documentation de cours pour la semaine calendrier" + +#: data_checks.py:174 +msgid "Ensure that there are no excused personal notes without an absence" +msgstr "" + +#: data_checks.py:175 +#, fuzzy +#| msgid "Lesson documentation for calendar week" +msgid "The personal note is marked as excused, but not as absent." +msgstr "Documentation de cours pour la semaine calendrier" + #: forms.py:29 msgid "Homework for the next lesson" msgstr "" -#: forms.py:54 templates/alsijil/class_register/week_view.html:168 +#: forms.py:54 templates/alsijil/class_register/week_view.html:191 #: templates/alsijil/print/full_register.html:199 msgid "Group" msgstr "Groupe" @@ -57,16 +119,16 @@ msgid "End period" msgstr "De la période" #: forms.py:130 templates/alsijil/absences/register_confirm.html:52 -#: templates/alsijil/class_register/lesson.html:243 +#: templates/alsijil/class_register/lesson.html:247 #: templates/alsijil/class_register/person.html:207 -#: templates/alsijil/class_register/week_view.html:261 +#: templates/alsijil/class_register/week_view.html:287 #: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "Absent(e)" #: forms.py:131 templates/alsijil/absences/register_confirm.html:56 -#: templates/alsijil/class_register/lesson.html:245 +#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/person.html:98 #: templates/alsijil/class_register/person.html:215 #: templates/alsijil/partials/mark_as_buttons.html:2 @@ -77,16 +139,16 @@ msgstr "Absent(e)" msgid "Excused" msgstr "Excusé" -#: forms.py:133 models.py:37 models.py:64 -#: templates/alsijil/class_register/lesson.html:246 -#: templates/alsijil/class_register/lesson.html:281 +#: forms.py:133 models.py:45 models.py:79 +#: templates/alsijil/class_register/lesson.html:250 +#: templates/alsijil/class_register/lesson.html:285 #, fuzzy #| msgid "Excused" msgid "Excuse type" msgstr "Excusé" -#: forms.py:138 templates/alsijil/class_register/lesson.html:248 -#: templates/alsijil/class_register/lesson.html:302 +#: forms.py:138 templates/alsijil/class_register/lesson.html:252 +#: templates/alsijil/class_register/lesson.html:306 #: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "Remarque" @@ -121,7 +183,7 @@ msgstr "Vue d'ensemble personnelle" msgid "My students" msgstr "" -#: menus.py:71 models.py:38 templates/alsijil/excuse_type/list.html:8 +#: menus.py:71 models.py:46 templates/alsijil/excuse_type/list.html:8 #: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/partials/legend.html:26 #, fuzzy @@ -129,8 +191,8 @@ msgstr "" msgid "Excuse types" msgstr "Excusé" -#: menus.py:82 models.py:70 models.py:201 -#: templates/alsijil/class_register/lesson.html:247 +#: menus.py:82 models.py:84 models.py:232 +#: templates/alsijil/class_register/lesson.html:251 #: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/partials/legend.html:41 @@ -185,85 +247,85 @@ msgstr "" msgid "Can register an absence for a person" msgstr "Registre de la classe" -#: models.py:25 models.py:188 +#: models.py:33 models.py:219 #, fuzzy #| msgid "First name" msgid "Short name" msgstr "Prénom" -#: models.py:26 models.py:189 templates/alsijil/class_register/groups.html:20 +#: models.py:34 models.py:220 templates/alsijil/class_register/groups.html:20 #: templates/alsijil/partials/persons_with_stats.html:14 #: templates/alsijil/partials/persons_with_stats.html:24 msgid "Name" msgstr "" -#: models.py:54 models.py:121 +#: models.py:69 models.py:144 msgid "Year" msgstr "" -#: models.py:101 +#: models.py:122 #, fuzzy #| msgid "Personal notes" msgid "Personal note" msgstr "Notes personnelles" -#: models.py:102 templates/alsijil/class_register/lesson.html:101 -#: templates/alsijil/class_register/lesson.html:233 -#: templates/alsijil/class_register/week_view.html:68 -#: templates/alsijil/class_register/week_view.html:242 +#: models.py:123 templates/alsijil/class_register/lesson.html:105 +#: templates/alsijil/class_register/lesson.html:237 +#: templates/alsijil/class_register/week_view.html:71 +#: templates/alsijil/class_register/week_view.html:267 msgid "Personal notes" msgstr "Notes personnelles" -#: models.py:127 templates/alsijil/class_register/lesson.html:129 -#: templates/alsijil/class_register/week_view.html:90 -#: templates/alsijil/class_register/week_view.html:177 -#: templates/alsijil/print/full_register.html:371 +#: models.py:150 templates/alsijil/class_register/lesson.html:133 +#: templates/alsijil/class_register/week_view.html:106 +#: templates/alsijil/class_register/week_view.html:200 +#: templates/alsijil/print/full_register.html:369 msgid "Lesson topic" msgstr "Sujet de cours" -#: models.py:128 templates/alsijil/class_register/lesson.html:137 -#: templates/alsijil/class_register/week_view.html:91 -#: templates/alsijil/class_register/week_view.html:183 -#: templates/alsijil/class_register/week_view.html:216 -#: templates/alsijil/print/full_register.html:372 +#: models.py:151 templates/alsijil/class_register/lesson.html:141 +#: templates/alsijil/class_register/week_view.html:107 +#: templates/alsijil/class_register/week_view.html:206 +#: templates/alsijil/class_register/week_view.html:239 +#: templates/alsijil/print/full_register.html:370 msgid "Homework" msgstr "Devoirs" -#: models.py:129 templates/alsijil/class_register/lesson.html:145 -#: templates/alsijil/class_register/week_view.html:92 -#: templates/alsijil/class_register/week_view.html:189 -#: templates/alsijil/class_register/week_view.html:222 +#: models.py:152 templates/alsijil/class_register/lesson.html:149 +#: templates/alsijil/class_register/week_view.html:108 +#: templates/alsijil/class_register/week_view.html:212 +#: templates/alsijil/class_register/week_view.html:245 #, fuzzy #| msgid "Group" msgid "Group note" msgstr "Groupe" -#: models.py:171 templates/alsijil/class_register/lesson.html:97 -#: templates/alsijil/class_register/lesson.html:120 +#: models.py:202 templates/alsijil/class_register/lesson.html:101 +#: templates/alsijil/class_register/lesson.html:124 msgid "Lesson documentation" msgstr "Documentation de cours" -#: models.py:172 templates/alsijil/class_register/week_view.html:67 +#: models.py:203 templates/alsijil/class_register/week_view.html:68 #, fuzzy #| msgid "Lesson documentation" msgid "Lesson documentations" msgstr "Documentation de cours" -#: models.py:200 +#: models.py:231 msgid "Extra mark" msgstr "" -#: models.py:208 +#: models.py:239 msgid "Can view week overview" msgstr "" -#: models.py:209 +#: models.py:240 #, fuzzy #| msgid "Register absence" msgid "Can register absence" msgstr "Registre de Absence" -#: models.py:210 +#: models.py:241 #, fuzzy #| msgid "List of all personal note filters" msgid "Can list all personal note filters" @@ -297,6 +359,12 @@ msgstr "" msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgstr "" +#: preferences.py:68 +#, fuzzy +#| msgid "Teachers and lessons in group" +msgid "Allow teachers to add data for lessons in holidays" +msgstr "Profs et cours en groupe" + #: tables.py:16 tables.py:36 msgid "Edit" msgstr "" @@ -308,13 +376,13 @@ msgstr "" #: templates/alsijil/absences/register.html:5 #: templates/alsijil/absences/register.html:6 #: templates/alsijil/class_register/person.html:30 -#: templates/alsijil/class_register/week_view.html:256 +#: templates/alsijil/class_register/week_view.html:282 #: templates/alsijil/partials/persons_with_stats.html:115 msgid "Register absence" msgstr "Registre de Absence" #: templates/alsijil/absences/register.html:9 -#: templates/alsijil/class_register/lesson.html:242 +#: templates/alsijil/class_register/lesson.html:246 msgid "Person" msgstr "Personne" @@ -432,14 +500,13 @@ msgid "My next lesson" msgstr "Lecon actuelle" #: templates/alsijil/class_register/lesson.html:46 -#: templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:171 #, fuzzy, python-format #| msgid "From period" msgid "%(period)s. period" msgstr "De la période" -#: templates/alsijil/class_register/lesson.html:77 -#: templates/alsijil/class_register/lesson.html:359 +#: templates/alsijil/class_register/lesson.html:79 #, python-format msgid "" "\n" @@ -447,8 +514,7 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:85 -#: templates/alsijil/class_register/lesson.html:367 +#: templates/alsijil/class_register/lesson.html:87 #, python-format msgid "" "\n" @@ -456,44 +522,44 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:107 +#: templates/alsijil/class_register/lesson.html:111 #, fuzzy #| msgid "Current lesson" msgid "Previous lesson" msgstr "Lecon actuelle" -#: templates/alsijil/class_register/lesson.html:111 -#: templates/alsijil/class_register/lesson.html:342 +#: templates/alsijil/class_register/lesson.html:115 +#: templates/alsijil/class_register/lesson.html:346 msgid "Change history" msgstr "Changement d' histoire" -#: templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/class_register/lesson.html:170 msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/class_register/lesson.html:173 +#: templates/alsijil/class_register/lesson.html:177 msgid "Lesson topic of previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:180 +#: templates/alsijil/class_register/lesson.html:184 msgid "Homework for this lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:187 +#: templates/alsijil/class_register/lesson.html:191 msgid "Group notes for previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:194 +#: templates/alsijil/class_register/lesson.html:198 #, fuzzy #| msgid "Absences" msgid "Absent persons:" msgstr "Absences" -#: templates/alsijil/class_register/lesson.html:201 +#: templates/alsijil/class_register/lesson.html:205 msgid "Late persons:" msgstr "" -#: templates/alsijil/class_register/lesson.html:244 +#: templates/alsijil/class_register/lesson.html:248 #: templates/alsijil/class_register/person.html:110 #: templates/alsijil/partials/persons_with_stats.html:17 #: templates/alsijil/partials/persons_with_stats.html:34 @@ -502,12 +568,43 @@ msgstr "" msgid "Tardiness" msgstr "Retard" -#: templates/alsijil/class_register/lesson.html:267 +#: templates/alsijil/class_register/lesson.html:271 #, fuzzy #| msgid "Tardiness" msgid "Tardiness (in m)" msgstr "Retard" +#: templates/alsijil/class_register/lesson.html:364 +#, python-format +msgid "" +"\n" +" Previous %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:372 +#, python-format +msgid "" +"\n" +" Next %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:387 +#, fuzzy +#| msgid "" +#| "\n" +#| " There are no lessons for the selected group, teacher, room or time.\n" +#| " " +msgid "" +"\n" +" This lesson overlaps with holidays and can't be edited.\n" +" " +msgstr "" +"\n" +" Il n' y a pas des cours pour le groupe sélectionné, les profs, le salle ou le temps.\n" +" " + #: templates/alsijil/class_register/person.html:8 #, fuzzy #| msgid "Class register" @@ -616,48 +713,48 @@ msgid "" " %(instance)s" msgstr "" -#: templates/alsijil/class_register/week_view.html:84 +#: templates/alsijil/class_register/week_view.html:100 msgid "Period" msgstr "Période" -#: templates/alsijil/class_register/week_view.html:86 +#: templates/alsijil/class_register/week_view.html:102 #, fuzzy #| msgid "Group" msgid "Groups" msgstr "Groupe" -#: templates/alsijil/class_register/week_view.html:88 -#: templates/alsijil/class_register/week_view.html:163 +#: templates/alsijil/class_register/week_view.html:104 +#: templates/alsijil/class_register/week_view.html:186 #: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:200 msgid "Subject" msgstr "Sujet" -#: templates/alsijil/class_register/week_view.html:89 -#: templates/alsijil/class_register/week_view.html:173 +#: templates/alsijil/class_register/week_view.html:105 +#: templates/alsijil/class_register/week_view.html:196 msgid "Teachers" msgstr "Profs" -#: templates/alsijil/class_register/week_view.html:262 +#: templates/alsijil/class_register/week_view.html:288 msgid "unexcused" msgstr "Injustifié(e)" -#: templates/alsijil/class_register/week_view.html:265 +#: templates/alsijil/class_register/week_view.html:291 msgid "Summed up tardiness" msgstr "Résumé des retards" -#: templates/alsijil/class_register/week_view.html:268 +#: templates/alsijil/class_register/week_view.html:294 #: templates/alsijil/partials/persons_with_stats.html:94 #, fuzzy #| msgid "Summed up tardiness" msgid "Count of tardiness" msgstr "Résumé des retards" -#: templates/alsijil/class_register/week_view.html:297 +#: templates/alsijil/class_register/week_view.html:323 msgid "No lessons available" msgstr "" -#: templates/alsijil/class_register/week_view.html:300 +#: templates/alsijil/class_register/week_view.html:326 #, fuzzy #| msgid "" #| "\n" @@ -736,7 +833,7 @@ msgid "Data complete" msgstr "" #: templates/alsijil/partials/lesson_status_icon.html:12 -#: templates/alsijil/print/full_register.html:406 +#: templates/alsijil/print/full_register.html:404 msgid "Lesson cancelled" msgstr "Cours annulés" @@ -753,9 +850,9 @@ msgid "Substitution" msgstr "" #: templates/alsijil/partials/mark_as_buttons.html:4 -#: templates/alsijil/print/full_register.html:335 -#: templates/alsijil/print/full_register.html:424 -#: templates/alsijil/print/full_register.html:439 +#: templates/alsijil/print/full_register.html:334 +#: templates/alsijil/print/full_register.html:422 +#: templates/alsijil/print/full_register.html:437 msgid "e" msgstr "e" @@ -917,17 +1014,17 @@ msgid "Date" msgstr "Date" #: templates/alsijil/print/full_register.html:309 -#: templates/alsijil/print/full_register.html:369 +#: templates/alsijil/print/full_register.html:367 msgid "Pe." msgstr "" #: templates/alsijil/print/full_register.html:310 -#: templates/alsijil/print/full_register.html:370 +#: templates/alsijil/print/full_register.html:368 msgid "Subj." msgstr "" #: templates/alsijil/print/full_register.html:311 -#: templates/alsijil/print/full_register.html:374 +#: templates/alsijil/print/full_register.html:372 msgid "Te." msgstr "" @@ -935,81 +1032,81 @@ msgstr "" msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:330 +#: templates/alsijil/print/full_register.html:329 msgid "Yes" msgstr "Oui" -#: templates/alsijil/print/full_register.html:363 +#: templates/alsijil/print/full_register.html:361 #, fuzzy #| msgid "Lesson documentation for calendar week" msgid "Lesson documentation for week" msgstr "Documentation de cours pour la semaine calendrier" -#: templates/alsijil/print/full_register.html:373 +#: templates/alsijil/print/full_register.html:371 msgid "Notes" msgstr "Notes" -#: views.py:65 +#: views.py:68 msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: views.py:90 +#: views.py:93 msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: views.py:127 +#: views.py:141 #, fuzzy #| msgid "Lesson documentation for calendar week" msgid "The lesson documentation has been saved." msgstr "Documentation de cours pour la semaine calendrier" -#: views.py:151 +#: views.py:165 msgid "The personal notes have been saved." msgstr "" -#: views.py:570 +#: views.py:591 msgid "The absences have been marked as excused." msgstr "" -#: views.py:585 +#: views.py:606 msgid "The absence has been marked as excused." msgstr "" -#: views.py:721 +#: views.py:749 msgid "The absence has been saved." msgstr "" -#: views.py:741 +#: views.py:770 #, fuzzy #| msgid "Lesson documentation for calendar week" msgid "The personal note has been deleted." msgstr "Documentation de cours pour la semaine calendrier" -#: views.py:762 +#: views.py:792 #, fuzzy #| msgid "Lesson documentation for calendar week" msgid "The extra mark has been created." msgstr "Documentation de cours pour la semaine calendrier" -#: views.py:773 +#: views.py:804 #, fuzzy #| msgid "Lesson documentation for calendar week" msgid "The extra mark has been saved." msgstr "Documentation de cours pour la semaine calendrier" -#: views.py:783 +#: views.py:815 msgid "The extra mark has been deleted." msgstr "" -#: views.py:803 +#: views.py:836 msgid "The excuse type has been created." msgstr "" -#: views.py:814 +#: views.py:848 msgid "The excuse type has been saved." msgstr "" -#: views.py:824 +#: views.py:859 msgid "The excuse type has been deleted." msgstr "" diff --git a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po index 053c32a5484cf531503f41a76d6e56ff51bcd59c..f084ed1f6bee2fb6607fb04229f5c1e492a7fd7d 100644 --- a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-05 21:26+0100\n" +"POT-Creation-Date: 2021-01-22 22:01+0100\n" "PO-Revision-Date: 2020-07-26 14:08+0000\n" "Last-Translator: Julian <leuckerj@gmail.com>\n" "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/la/>\n" @@ -18,11 +18,63 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.0.1\n" +#: data_checks.py:15 +msgid "Delete object" +msgstr "" + +#: data_checks.py:25 +msgid "Set current groups" +msgstr "" + +#: data_checks.py:36 +msgid "Reset personal note to defaults" +msgstr "" + +#: data_checks.py:48 +msgid "Ensure that there are no personal notes in cancelled lessons" +msgstr "" + +#: data_checks.py:49 +msgid "The personal note is related to a cancelled lesson." +msgstr "" + +#: data_checks.py:72 +msgid "Ensure that 'groups_of_person' is set for every personal note" +msgstr "" + +#: data_checks.py:73 +msgid "The personal note has no group in 'groups_of_person'." +msgstr "" + +#: data_checks.py:107 +msgid "Ensure that there are no filled out lesson documentations on holidays" +msgstr "" + +#: data_checks.py:108 +msgid "The lesson documentation is on holidays." +msgstr "" + +#: data_checks.py:143 +msgid "Ensure that there are no filled out personal notes on holidays" +msgstr "" + +#: data_checks.py:144 +msgid "The personal note is on holidays." +msgstr "" + +#: data_checks.py:174 +msgid "Ensure that there are no excused personal notes without an absence" +msgstr "" + +#: data_checks.py:175 +msgid "The personal note is marked as excused, but not as absent." +msgstr "" + #: forms.py:29 msgid "Homework for the next lesson" msgstr "" -#: forms.py:54 templates/alsijil/class_register/week_view.html:168 +#: forms.py:54 templates/alsijil/class_register/week_view.html:191 #: templates/alsijil/print/full_register.html:199 msgid "Group" msgstr "Grex" @@ -53,16 +105,16 @@ msgid "End period" msgstr "" #: forms.py:130 templates/alsijil/absences/register_confirm.html:52 -#: templates/alsijil/class_register/lesson.html:243 +#: templates/alsijil/class_register/lesson.html:247 #: templates/alsijil/class_register/person.html:207 -#: templates/alsijil/class_register/week_view.html:261 +#: templates/alsijil/class_register/week_view.html:287 #: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "" #: forms.py:131 templates/alsijil/absences/register_confirm.html:56 -#: templates/alsijil/class_register/lesson.html:245 +#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/person.html:98 #: templates/alsijil/class_register/person.html:215 #: templates/alsijil/partials/mark_as_buttons.html:2 @@ -73,14 +125,14 @@ msgstr "" msgid "Excused" msgstr "" -#: forms.py:133 models.py:37 models.py:64 -#: templates/alsijil/class_register/lesson.html:246 -#: templates/alsijil/class_register/lesson.html:281 +#: forms.py:133 models.py:45 models.py:79 +#: templates/alsijil/class_register/lesson.html:250 +#: templates/alsijil/class_register/lesson.html:285 msgid "Excuse type" msgstr "" -#: forms.py:138 templates/alsijil/class_register/lesson.html:248 -#: templates/alsijil/class_register/lesson.html:302 +#: forms.py:138 templates/alsijil/class_register/lesson.html:252 +#: templates/alsijil/class_register/lesson.html:306 #: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "" @@ -113,14 +165,14 @@ msgstr "" msgid "My students" msgstr "" -#: menus.py:71 models.py:38 templates/alsijil/excuse_type/list.html:8 +#: menus.py:71 models.py:46 templates/alsijil/excuse_type/list.html:8 #: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/partials/legend.html:26 msgid "Excuse types" msgstr "" -#: menus.py:82 models.py:70 models.py:201 -#: templates/alsijil/class_register/lesson.html:247 +#: menus.py:82 models.py:84 models.py:232 +#: templates/alsijil/class_register/lesson.html:251 #: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/partials/legend.html:41 @@ -165,81 +217,81 @@ msgstr "" msgid "Can register an absence for a person" msgstr "" -#: models.py:25 models.py:188 +#: models.py:33 models.py:219 #, fuzzy #| msgid "First name" msgid "Short name" msgstr "Primus nomen" -#: models.py:26 models.py:189 templates/alsijil/class_register/groups.html:20 +#: models.py:34 models.py:220 templates/alsijil/class_register/groups.html:20 #: templates/alsijil/partials/persons_with_stats.html:14 #: templates/alsijil/partials/persons_with_stats.html:24 msgid "Name" msgstr "" -#: models.py:54 models.py:121 +#: models.py:69 models.py:144 msgid "Year" msgstr "" -#: models.py:101 +#: models.py:122 #, fuzzy #| msgid "Person" msgid "Personal note" msgstr "Persona" -#: models.py:102 templates/alsijil/class_register/lesson.html:101 -#: templates/alsijil/class_register/lesson.html:233 -#: templates/alsijil/class_register/week_view.html:68 -#: templates/alsijil/class_register/week_view.html:242 +#: models.py:123 templates/alsijil/class_register/lesson.html:105 +#: templates/alsijil/class_register/lesson.html:237 +#: templates/alsijil/class_register/week_view.html:71 +#: templates/alsijil/class_register/week_view.html:267 msgid "Personal notes" msgstr "" -#: models.py:127 templates/alsijil/class_register/lesson.html:129 -#: templates/alsijil/class_register/week_view.html:90 -#: templates/alsijil/class_register/week_view.html:177 -#: templates/alsijil/print/full_register.html:371 +#: models.py:150 templates/alsijil/class_register/lesson.html:133 +#: templates/alsijil/class_register/week_view.html:106 +#: templates/alsijil/class_register/week_view.html:200 +#: templates/alsijil/print/full_register.html:369 msgid "Lesson topic" msgstr "" -#: models.py:128 templates/alsijil/class_register/lesson.html:137 -#: templates/alsijil/class_register/week_view.html:91 -#: templates/alsijil/class_register/week_view.html:183 -#: templates/alsijil/class_register/week_view.html:216 -#: templates/alsijil/print/full_register.html:372 +#: models.py:151 templates/alsijil/class_register/lesson.html:141 +#: templates/alsijil/class_register/week_view.html:107 +#: templates/alsijil/class_register/week_view.html:206 +#: templates/alsijil/class_register/week_view.html:239 +#: templates/alsijil/print/full_register.html:370 msgid "Homework" msgstr "" -#: models.py:129 templates/alsijil/class_register/lesson.html:145 -#: templates/alsijil/class_register/week_view.html:92 -#: templates/alsijil/class_register/week_view.html:189 -#: templates/alsijil/class_register/week_view.html:222 +#: models.py:152 templates/alsijil/class_register/lesson.html:149 +#: templates/alsijil/class_register/week_view.html:108 +#: templates/alsijil/class_register/week_view.html:212 +#: templates/alsijil/class_register/week_view.html:245 #, fuzzy #| msgid "Group" msgid "Group note" msgstr "Grex" -#: models.py:171 templates/alsijil/class_register/lesson.html:97 -#: templates/alsijil/class_register/lesson.html:120 +#: models.py:202 templates/alsijil/class_register/lesson.html:101 +#: templates/alsijil/class_register/lesson.html:124 msgid "Lesson documentation" msgstr "" -#: models.py:172 templates/alsijil/class_register/week_view.html:67 +#: models.py:203 templates/alsijil/class_register/week_view.html:68 msgid "Lesson documentations" msgstr "" -#: models.py:200 +#: models.py:231 msgid "Extra mark" msgstr "" -#: models.py:208 +#: models.py:239 msgid "Can view week overview" msgstr "" -#: models.py:209 +#: models.py:240 msgid "Can register absence" msgstr "" -#: models.py:210 +#: models.py:241 msgid "Can list all personal note filters" msgstr "" @@ -271,6 +323,10 @@ msgstr "" msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgstr "" +#: preferences.py:68 +msgid "Allow teachers to add data for lessons in holidays" +msgstr "" + #: tables.py:16 tables.py:36 msgid "Edit" msgstr "" @@ -282,13 +338,13 @@ msgstr "" #: templates/alsijil/absences/register.html:5 #: templates/alsijil/absences/register.html:6 #: templates/alsijil/class_register/person.html:30 -#: templates/alsijil/class_register/week_view.html:256 +#: templates/alsijil/class_register/week_view.html:282 #: templates/alsijil/partials/persons_with_stats.html:115 msgid "Register absence" msgstr "" #: templates/alsijil/absences/register.html:9 -#: templates/alsijil/class_register/lesson.html:242 +#: templates/alsijil/class_register/lesson.html:246 msgid "Person" msgstr "Persona" @@ -390,13 +446,12 @@ msgid "My next lesson" msgstr "" #: templates/alsijil/class_register/lesson.html:46 -#: templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:171 #, python-format msgid "%(period)s. period" msgstr "" -#: templates/alsijil/class_register/lesson.html:77 -#: templates/alsijil/class_register/lesson.html:359 +#: templates/alsijil/class_register/lesson.html:79 #, python-format msgid "" "\n" @@ -404,8 +459,7 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:85 -#: templates/alsijil/class_register/lesson.html:367 +#: templates/alsijil/class_register/lesson.html:87 #, python-format msgid "" "\n" @@ -413,40 +467,40 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:107 +#: templates/alsijil/class_register/lesson.html:111 msgid "Previous lesson" msgstr "" -#: templates/alsijil/class_register/lesson.html:111 -#: templates/alsijil/class_register/lesson.html:342 +#: templates/alsijil/class_register/lesson.html:115 +#: templates/alsijil/class_register/lesson.html:346 msgid "Change history" msgstr "" -#: templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/class_register/lesson.html:170 msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/class_register/lesson.html:173 +#: templates/alsijil/class_register/lesson.html:177 msgid "Lesson topic of previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:180 +#: templates/alsijil/class_register/lesson.html:184 msgid "Homework for this lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:187 +#: templates/alsijil/class_register/lesson.html:191 msgid "Group notes for previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:194 +#: templates/alsijil/class_register/lesson.html:198 msgid "Absent persons:" msgstr "" -#: templates/alsijil/class_register/lesson.html:201 +#: templates/alsijil/class_register/lesson.html:205 msgid "Late persons:" msgstr "" -#: templates/alsijil/class_register/lesson.html:244 +#: templates/alsijil/class_register/lesson.html:248 #: templates/alsijil/class_register/person.html:110 #: templates/alsijil/partials/persons_with_stats.html:17 #: templates/alsijil/partials/persons_with_stats.html:34 @@ -455,10 +509,33 @@ msgstr "" msgid "Tardiness" msgstr "" -#: templates/alsijil/class_register/lesson.html:267 +#: templates/alsijil/class_register/lesson.html:271 msgid "Tardiness (in m)" msgstr "" +#: templates/alsijil/class_register/lesson.html:364 +#, python-format +msgid "" +"\n" +" Previous %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:372 +#, python-format +msgid "" +"\n" +" Next %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:387 +msgid "" +"\n" +" This lesson overlaps with holidays and can't be edited.\n" +" " +msgstr "" + #: templates/alsijil/class_register/person.html:8 msgid "Class register: person" msgstr "" @@ -563,46 +640,46 @@ msgid "" " %(instance)s" msgstr "" -#: templates/alsijil/class_register/week_view.html:84 +#: templates/alsijil/class_register/week_view.html:100 msgid "Period" msgstr "" -#: templates/alsijil/class_register/week_view.html:86 +#: templates/alsijil/class_register/week_view.html:102 #, fuzzy #| msgid "Group" msgid "Groups" msgstr "Grex" -#: templates/alsijil/class_register/week_view.html:88 -#: templates/alsijil/class_register/week_view.html:163 +#: templates/alsijil/class_register/week_view.html:104 +#: templates/alsijil/class_register/week_view.html:186 #: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:200 msgid "Subject" msgstr "" -#: templates/alsijil/class_register/week_view.html:89 -#: templates/alsijil/class_register/week_view.html:173 +#: templates/alsijil/class_register/week_view.html:105 +#: templates/alsijil/class_register/week_view.html:196 msgid "Teachers" msgstr "" -#: templates/alsijil/class_register/week_view.html:262 +#: templates/alsijil/class_register/week_view.html:288 msgid "unexcused" msgstr "" -#: templates/alsijil/class_register/week_view.html:265 +#: templates/alsijil/class_register/week_view.html:291 msgid "Summed up tardiness" msgstr "" -#: templates/alsijil/class_register/week_view.html:268 +#: templates/alsijil/class_register/week_view.html:294 #: templates/alsijil/partials/persons_with_stats.html:94 msgid "Count of tardiness" msgstr "" -#: templates/alsijil/class_register/week_view.html:297 +#: templates/alsijil/class_register/week_view.html:323 msgid "No lessons available" msgstr "" -#: templates/alsijil/class_register/week_view.html:300 +#: templates/alsijil/class_register/week_view.html:326 msgid "" "\n" " There are no lessons for the selected group or teacher in this week.\n" @@ -671,7 +748,7 @@ msgid "Data complete" msgstr "" #: templates/alsijil/partials/lesson_status_icon.html:12 -#: templates/alsijil/print/full_register.html:406 +#: templates/alsijil/print/full_register.html:404 msgid "Lesson cancelled" msgstr "" @@ -688,9 +765,9 @@ msgid "Substitution" msgstr "" #: templates/alsijil/partials/mark_as_buttons.html:4 -#: templates/alsijil/print/full_register.html:335 -#: templates/alsijil/print/full_register.html:424 -#: templates/alsijil/print/full_register.html:439 +#: templates/alsijil/print/full_register.html:334 +#: templates/alsijil/print/full_register.html:422 +#: templates/alsijil/print/full_register.html:437 msgid "e" msgstr "" @@ -848,17 +925,17 @@ msgid "Date" msgstr "dies" #: templates/alsijil/print/full_register.html:309 -#: templates/alsijil/print/full_register.html:369 +#: templates/alsijil/print/full_register.html:367 msgid "Pe." msgstr "" #: templates/alsijil/print/full_register.html:310 -#: templates/alsijil/print/full_register.html:370 +#: templates/alsijil/print/full_register.html:368 msgid "Subj." msgstr "" #: templates/alsijil/print/full_register.html:311 -#: templates/alsijil/print/full_register.html:374 +#: templates/alsijil/print/full_register.html:372 msgid "Te." msgstr "" @@ -866,71 +943,71 @@ msgstr "" msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:330 +#: templates/alsijil/print/full_register.html:329 msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:363 +#: templates/alsijil/print/full_register.html:361 msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:373 +#: templates/alsijil/print/full_register.html:371 msgid "Notes" msgstr "" -#: views.py:65 +#: views.py:68 msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: views.py:90 +#: views.py:93 msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: views.py:127 +#: views.py:141 msgid "The lesson documentation has been saved." msgstr "" -#: views.py:151 +#: views.py:165 msgid "The personal notes have been saved." msgstr "" -#: views.py:570 +#: views.py:591 msgid "The absences have been marked as excused." msgstr "" -#: views.py:585 +#: views.py:606 msgid "The absence has been marked as excused." msgstr "" -#: views.py:721 +#: views.py:749 msgid "The absence has been saved." msgstr "" -#: views.py:741 +#: views.py:770 msgid "The personal note has been deleted." msgstr "" -#: views.py:762 +#: views.py:792 msgid "The extra mark has been created." msgstr "" -#: views.py:773 +#: views.py:804 msgid "The extra mark has been saved." msgstr "" -#: views.py:783 +#: views.py:815 msgid "The extra mark has been deleted." msgstr "" -#: views.py:803 +#: views.py:836 msgid "The excuse type has been created." msgstr "" -#: views.py:814 +#: views.py:848 msgid "The excuse type has been saved." msgstr "" -#: views.py:824 +#: views.py:859 msgid "The excuse type has been deleted." msgstr "" diff --git a/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po index 219d7af7ff7ca661ccb440d5fab0002ecb546788..4704f58a5eb1586fdaf87d76c815c27f80e81c30 100644 --- a/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/nb_NO/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-05 21:26+0100\n" +"POT-Creation-Date: 2021-01-22 22:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,11 +17,63 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +#: data_checks.py:15 +msgid "Delete object" +msgstr "" + +#: data_checks.py:25 +msgid "Set current groups" +msgstr "" + +#: data_checks.py:36 +msgid "Reset personal note to defaults" +msgstr "" + +#: data_checks.py:48 +msgid "Ensure that there are no personal notes in cancelled lessons" +msgstr "" + +#: data_checks.py:49 +msgid "The personal note is related to a cancelled lesson." +msgstr "" + +#: data_checks.py:72 +msgid "Ensure that 'groups_of_person' is set for every personal note" +msgstr "" + +#: data_checks.py:73 +msgid "The personal note has no group in 'groups_of_person'." +msgstr "" + +#: data_checks.py:107 +msgid "Ensure that there are no filled out lesson documentations on holidays" +msgstr "" + +#: data_checks.py:108 +msgid "The lesson documentation is on holidays." +msgstr "" + +#: data_checks.py:143 +msgid "Ensure that there are no filled out personal notes on holidays" +msgstr "" + +#: data_checks.py:144 +msgid "The personal note is on holidays." +msgstr "" + +#: data_checks.py:174 +msgid "Ensure that there are no excused personal notes without an absence" +msgstr "" + +#: data_checks.py:175 +msgid "The personal note is marked as excused, but not as absent." +msgstr "" + #: forms.py:29 msgid "Homework for the next lesson" msgstr "" -#: forms.py:54 templates/alsijil/class_register/week_view.html:168 +#: forms.py:54 templates/alsijil/class_register/week_view.html:191 #: templates/alsijil/print/full_register.html:199 msgid "Group" msgstr "" @@ -52,16 +104,16 @@ msgid "End period" msgstr "" #: forms.py:130 templates/alsijil/absences/register_confirm.html:52 -#: templates/alsijil/class_register/lesson.html:243 +#: templates/alsijil/class_register/lesson.html:247 #: templates/alsijil/class_register/person.html:207 -#: templates/alsijil/class_register/week_view.html:261 +#: templates/alsijil/class_register/week_view.html:287 #: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "" #: forms.py:131 templates/alsijil/absences/register_confirm.html:56 -#: templates/alsijil/class_register/lesson.html:245 +#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/person.html:98 #: templates/alsijil/class_register/person.html:215 #: templates/alsijil/partials/mark_as_buttons.html:2 @@ -72,14 +124,14 @@ msgstr "" msgid "Excused" msgstr "" -#: forms.py:133 models.py:37 models.py:64 -#: templates/alsijil/class_register/lesson.html:246 -#: templates/alsijil/class_register/lesson.html:281 +#: forms.py:133 models.py:45 models.py:79 +#: templates/alsijil/class_register/lesson.html:250 +#: templates/alsijil/class_register/lesson.html:285 msgid "Excuse type" msgstr "" -#: forms.py:138 templates/alsijil/class_register/lesson.html:248 -#: templates/alsijil/class_register/lesson.html:302 +#: forms.py:138 templates/alsijil/class_register/lesson.html:252 +#: templates/alsijil/class_register/lesson.html:306 #: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "" @@ -110,14 +162,14 @@ msgstr "" msgid "My students" msgstr "" -#: menus.py:71 models.py:38 templates/alsijil/excuse_type/list.html:8 +#: menus.py:71 models.py:46 templates/alsijil/excuse_type/list.html:8 #: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/partials/legend.html:26 msgid "Excuse types" msgstr "" -#: menus.py:82 models.py:70 models.py:201 -#: templates/alsijil/class_register/lesson.html:247 +#: menus.py:82 models.py:84 models.py:232 +#: templates/alsijil/class_register/lesson.html:251 #: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/partials/legend.html:41 @@ -162,75 +214,75 @@ msgstr "" msgid "Can register an absence for a person" msgstr "" -#: models.py:25 models.py:188 +#: models.py:33 models.py:219 msgid "Short name" msgstr "" -#: models.py:26 models.py:189 templates/alsijil/class_register/groups.html:20 +#: models.py:34 models.py:220 templates/alsijil/class_register/groups.html:20 #: templates/alsijil/partials/persons_with_stats.html:14 #: templates/alsijil/partials/persons_with_stats.html:24 msgid "Name" msgstr "" -#: models.py:54 models.py:121 +#: models.py:69 models.py:144 msgid "Year" msgstr "" -#: models.py:101 +#: models.py:122 msgid "Personal note" msgstr "" -#: models.py:102 templates/alsijil/class_register/lesson.html:101 -#: templates/alsijil/class_register/lesson.html:233 -#: templates/alsijil/class_register/week_view.html:68 -#: templates/alsijil/class_register/week_view.html:242 +#: models.py:123 templates/alsijil/class_register/lesson.html:105 +#: templates/alsijil/class_register/lesson.html:237 +#: templates/alsijil/class_register/week_view.html:71 +#: templates/alsijil/class_register/week_view.html:267 msgid "Personal notes" msgstr "" -#: models.py:127 templates/alsijil/class_register/lesson.html:129 -#: templates/alsijil/class_register/week_view.html:90 -#: templates/alsijil/class_register/week_view.html:177 -#: templates/alsijil/print/full_register.html:371 +#: models.py:150 templates/alsijil/class_register/lesson.html:133 +#: templates/alsijil/class_register/week_view.html:106 +#: templates/alsijil/class_register/week_view.html:200 +#: templates/alsijil/print/full_register.html:369 msgid "Lesson topic" msgstr "" -#: models.py:128 templates/alsijil/class_register/lesson.html:137 -#: templates/alsijil/class_register/week_view.html:91 -#: templates/alsijil/class_register/week_view.html:183 -#: templates/alsijil/class_register/week_view.html:216 -#: templates/alsijil/print/full_register.html:372 +#: models.py:151 templates/alsijil/class_register/lesson.html:141 +#: templates/alsijil/class_register/week_view.html:107 +#: templates/alsijil/class_register/week_view.html:206 +#: templates/alsijil/class_register/week_view.html:239 +#: templates/alsijil/print/full_register.html:370 msgid "Homework" msgstr "" -#: models.py:129 templates/alsijil/class_register/lesson.html:145 -#: templates/alsijil/class_register/week_view.html:92 -#: templates/alsijil/class_register/week_view.html:189 -#: templates/alsijil/class_register/week_view.html:222 +#: models.py:152 templates/alsijil/class_register/lesson.html:149 +#: templates/alsijil/class_register/week_view.html:108 +#: templates/alsijil/class_register/week_view.html:212 +#: templates/alsijil/class_register/week_view.html:245 msgid "Group note" msgstr "" -#: models.py:171 templates/alsijil/class_register/lesson.html:97 -#: templates/alsijil/class_register/lesson.html:120 +#: models.py:202 templates/alsijil/class_register/lesson.html:101 +#: templates/alsijil/class_register/lesson.html:124 msgid "Lesson documentation" msgstr "" -#: models.py:172 templates/alsijil/class_register/week_view.html:67 +#: models.py:203 templates/alsijil/class_register/week_view.html:68 msgid "Lesson documentations" msgstr "" -#: models.py:200 +#: models.py:231 msgid "Extra mark" msgstr "" -#: models.py:208 +#: models.py:239 msgid "Can view week overview" msgstr "" -#: models.py:209 +#: models.py:240 msgid "Can register absence" msgstr "" -#: models.py:210 +#: models.py:241 msgid "Can list all personal note filters" msgstr "" @@ -262,6 +314,10 @@ msgstr "" msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgstr "" +#: preferences.py:68 +msgid "Allow teachers to add data for lessons in holidays" +msgstr "" + #: tables.py:16 tables.py:36 msgid "Edit" msgstr "" @@ -273,13 +329,13 @@ msgstr "" #: templates/alsijil/absences/register.html:5 #: templates/alsijil/absences/register.html:6 #: templates/alsijil/class_register/person.html:30 -#: templates/alsijil/class_register/week_view.html:256 +#: templates/alsijil/class_register/week_view.html:282 #: templates/alsijil/partials/persons_with_stats.html:115 msgid "Register absence" msgstr "" #: templates/alsijil/absences/register.html:9 -#: templates/alsijil/class_register/lesson.html:242 +#: templates/alsijil/class_register/lesson.html:246 msgid "Person" msgstr "" @@ -381,13 +437,12 @@ msgid "My next lesson" msgstr "" #: templates/alsijil/class_register/lesson.html:46 -#: templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:171 #, python-format msgid "%(period)s. period" msgstr "" -#: templates/alsijil/class_register/lesson.html:77 -#: templates/alsijil/class_register/lesson.html:359 +#: templates/alsijil/class_register/lesson.html:79 #, python-format msgid "" "\n" @@ -395,8 +450,7 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:85 -#: templates/alsijil/class_register/lesson.html:367 +#: templates/alsijil/class_register/lesson.html:87 #, python-format msgid "" "\n" @@ -404,40 +458,40 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:107 +#: templates/alsijil/class_register/lesson.html:111 msgid "Previous lesson" msgstr "" -#: templates/alsijil/class_register/lesson.html:111 -#: templates/alsijil/class_register/lesson.html:342 +#: templates/alsijil/class_register/lesson.html:115 +#: templates/alsijil/class_register/lesson.html:346 msgid "Change history" msgstr "" -#: templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/class_register/lesson.html:170 msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/class_register/lesson.html:173 +#: templates/alsijil/class_register/lesson.html:177 msgid "Lesson topic of previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:180 +#: templates/alsijil/class_register/lesson.html:184 msgid "Homework for this lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:187 +#: templates/alsijil/class_register/lesson.html:191 msgid "Group notes for previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:194 +#: templates/alsijil/class_register/lesson.html:198 msgid "Absent persons:" msgstr "" -#: templates/alsijil/class_register/lesson.html:201 +#: templates/alsijil/class_register/lesson.html:205 msgid "Late persons:" msgstr "" -#: templates/alsijil/class_register/lesson.html:244 +#: templates/alsijil/class_register/lesson.html:248 #: templates/alsijil/class_register/person.html:110 #: templates/alsijil/partials/persons_with_stats.html:17 #: templates/alsijil/partials/persons_with_stats.html:34 @@ -446,10 +500,33 @@ msgstr "" msgid "Tardiness" msgstr "" -#: templates/alsijil/class_register/lesson.html:267 +#: templates/alsijil/class_register/lesson.html:271 msgid "Tardiness (in m)" msgstr "" +#: templates/alsijil/class_register/lesson.html:364 +#, python-format +msgid "" +"\n" +" Previous %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:372 +#, python-format +msgid "" +"\n" +" Next %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:387 +msgid "" +"\n" +" This lesson overlaps with holidays and can't be edited.\n" +" " +msgstr "" + #: templates/alsijil/class_register/person.html:8 msgid "Class register: person" msgstr "" @@ -554,44 +631,44 @@ msgid "" " %(instance)s" msgstr "" -#: templates/alsijil/class_register/week_view.html:84 +#: templates/alsijil/class_register/week_view.html:100 msgid "Period" msgstr "" -#: templates/alsijil/class_register/week_view.html:86 +#: templates/alsijil/class_register/week_view.html:102 msgid "Groups" msgstr "" -#: templates/alsijil/class_register/week_view.html:88 -#: templates/alsijil/class_register/week_view.html:163 +#: templates/alsijil/class_register/week_view.html:104 +#: templates/alsijil/class_register/week_view.html:186 #: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:200 msgid "Subject" msgstr "" -#: templates/alsijil/class_register/week_view.html:89 -#: templates/alsijil/class_register/week_view.html:173 +#: templates/alsijil/class_register/week_view.html:105 +#: templates/alsijil/class_register/week_view.html:196 msgid "Teachers" msgstr "" -#: templates/alsijil/class_register/week_view.html:262 +#: templates/alsijil/class_register/week_view.html:288 msgid "unexcused" msgstr "" -#: templates/alsijil/class_register/week_view.html:265 +#: templates/alsijil/class_register/week_view.html:291 msgid "Summed up tardiness" msgstr "" -#: templates/alsijil/class_register/week_view.html:268 +#: templates/alsijil/class_register/week_view.html:294 #: templates/alsijil/partials/persons_with_stats.html:94 msgid "Count of tardiness" msgstr "" -#: templates/alsijil/class_register/week_view.html:297 +#: templates/alsijil/class_register/week_view.html:323 msgid "No lessons available" msgstr "" -#: templates/alsijil/class_register/week_view.html:300 +#: templates/alsijil/class_register/week_view.html:326 msgid "" "\n" " There are no lessons for the selected group or teacher in this week.\n" @@ -660,7 +737,7 @@ msgid "Data complete" msgstr "" #: templates/alsijil/partials/lesson_status_icon.html:12 -#: templates/alsijil/print/full_register.html:406 +#: templates/alsijil/print/full_register.html:404 msgid "Lesson cancelled" msgstr "" @@ -677,9 +754,9 @@ msgid "Substitution" msgstr "" #: templates/alsijil/partials/mark_as_buttons.html:4 -#: templates/alsijil/print/full_register.html:335 -#: templates/alsijil/print/full_register.html:424 -#: templates/alsijil/print/full_register.html:439 +#: templates/alsijil/print/full_register.html:334 +#: templates/alsijil/print/full_register.html:422 +#: templates/alsijil/print/full_register.html:437 msgid "e" msgstr "" @@ -835,17 +912,17 @@ msgid "Date" msgstr "" #: templates/alsijil/print/full_register.html:309 -#: templates/alsijil/print/full_register.html:369 +#: templates/alsijil/print/full_register.html:367 msgid "Pe." msgstr "" #: templates/alsijil/print/full_register.html:310 -#: templates/alsijil/print/full_register.html:370 +#: templates/alsijil/print/full_register.html:368 msgid "Subj." msgstr "" #: templates/alsijil/print/full_register.html:311 -#: templates/alsijil/print/full_register.html:374 +#: templates/alsijil/print/full_register.html:372 msgid "Te." msgstr "" @@ -853,70 +930,70 @@ msgstr "" msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:330 +#: templates/alsijil/print/full_register.html:329 msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:363 +#: templates/alsijil/print/full_register.html:361 msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:373 +#: templates/alsijil/print/full_register.html:371 msgid "Notes" msgstr "" -#: views.py:65 +#: views.py:68 msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: views.py:90 +#: views.py:93 msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: views.py:127 +#: views.py:141 msgid "The lesson documentation has been saved." msgstr "" -#: views.py:151 +#: views.py:165 msgid "The personal notes have been saved." msgstr "" -#: views.py:570 +#: views.py:591 msgid "The absences have been marked as excused." msgstr "" -#: views.py:585 +#: views.py:606 msgid "The absence has been marked as excused." msgstr "" -#: views.py:721 +#: views.py:749 msgid "The absence has been saved." msgstr "" -#: views.py:741 +#: views.py:770 msgid "The personal note has been deleted." msgstr "" -#: views.py:762 +#: views.py:792 msgid "The extra mark has been created." msgstr "" -#: views.py:773 +#: views.py:804 msgid "The extra mark has been saved." msgstr "" -#: views.py:783 +#: views.py:815 msgid "The extra mark has been deleted." msgstr "" -#: views.py:803 +#: views.py:836 msgid "The excuse type has been created." msgstr "" -#: views.py:814 +#: views.py:848 msgid "The excuse type has been saved." msgstr "" -#: views.py:824 +#: views.py:859 msgid "The excuse type has been deleted." msgstr "" diff --git a/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po index 219d7af7ff7ca661ccb440d5fab0002ecb546788..4704f58a5eb1586fdaf87d76c815c27f80e81c30 100644 --- a/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/tr_TR/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-05 21:26+0100\n" +"POT-Creation-Date: 2021-01-22 22:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -17,11 +17,63 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +#: data_checks.py:15 +msgid "Delete object" +msgstr "" + +#: data_checks.py:25 +msgid "Set current groups" +msgstr "" + +#: data_checks.py:36 +msgid "Reset personal note to defaults" +msgstr "" + +#: data_checks.py:48 +msgid "Ensure that there are no personal notes in cancelled lessons" +msgstr "" + +#: data_checks.py:49 +msgid "The personal note is related to a cancelled lesson." +msgstr "" + +#: data_checks.py:72 +msgid "Ensure that 'groups_of_person' is set for every personal note" +msgstr "" + +#: data_checks.py:73 +msgid "The personal note has no group in 'groups_of_person'." +msgstr "" + +#: data_checks.py:107 +msgid "Ensure that there are no filled out lesson documentations on holidays" +msgstr "" + +#: data_checks.py:108 +msgid "The lesson documentation is on holidays." +msgstr "" + +#: data_checks.py:143 +msgid "Ensure that there are no filled out personal notes on holidays" +msgstr "" + +#: data_checks.py:144 +msgid "The personal note is on holidays." +msgstr "" + +#: data_checks.py:174 +msgid "Ensure that there are no excused personal notes without an absence" +msgstr "" + +#: data_checks.py:175 +msgid "The personal note is marked as excused, but not as absent." +msgstr "" + #: forms.py:29 msgid "Homework for the next lesson" msgstr "" -#: forms.py:54 templates/alsijil/class_register/week_view.html:168 +#: forms.py:54 templates/alsijil/class_register/week_view.html:191 #: templates/alsijil/print/full_register.html:199 msgid "Group" msgstr "" @@ -52,16 +104,16 @@ msgid "End period" msgstr "" #: forms.py:130 templates/alsijil/absences/register_confirm.html:52 -#: templates/alsijil/class_register/lesson.html:243 +#: templates/alsijil/class_register/lesson.html:247 #: templates/alsijil/class_register/person.html:207 -#: templates/alsijil/class_register/week_view.html:261 +#: templates/alsijil/class_register/week_view.html:287 #: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "" #: forms.py:131 templates/alsijil/absences/register_confirm.html:56 -#: templates/alsijil/class_register/lesson.html:245 +#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/person.html:98 #: templates/alsijil/class_register/person.html:215 #: templates/alsijil/partials/mark_as_buttons.html:2 @@ -72,14 +124,14 @@ msgstr "" msgid "Excused" msgstr "" -#: forms.py:133 models.py:37 models.py:64 -#: templates/alsijil/class_register/lesson.html:246 -#: templates/alsijil/class_register/lesson.html:281 +#: forms.py:133 models.py:45 models.py:79 +#: templates/alsijil/class_register/lesson.html:250 +#: templates/alsijil/class_register/lesson.html:285 msgid "Excuse type" msgstr "" -#: forms.py:138 templates/alsijil/class_register/lesson.html:248 -#: templates/alsijil/class_register/lesson.html:302 +#: forms.py:138 templates/alsijil/class_register/lesson.html:252 +#: templates/alsijil/class_register/lesson.html:306 #: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "" @@ -110,14 +162,14 @@ msgstr "" msgid "My students" msgstr "" -#: menus.py:71 models.py:38 templates/alsijil/excuse_type/list.html:8 +#: menus.py:71 models.py:46 templates/alsijil/excuse_type/list.html:8 #: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/partials/legend.html:26 msgid "Excuse types" msgstr "" -#: menus.py:82 models.py:70 models.py:201 -#: templates/alsijil/class_register/lesson.html:247 +#: menus.py:82 models.py:84 models.py:232 +#: templates/alsijil/class_register/lesson.html:251 #: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/partials/legend.html:41 @@ -162,75 +214,75 @@ msgstr "" msgid "Can register an absence for a person" msgstr "" -#: models.py:25 models.py:188 +#: models.py:33 models.py:219 msgid "Short name" msgstr "" -#: models.py:26 models.py:189 templates/alsijil/class_register/groups.html:20 +#: models.py:34 models.py:220 templates/alsijil/class_register/groups.html:20 #: templates/alsijil/partials/persons_with_stats.html:14 #: templates/alsijil/partials/persons_with_stats.html:24 msgid "Name" msgstr "" -#: models.py:54 models.py:121 +#: models.py:69 models.py:144 msgid "Year" msgstr "" -#: models.py:101 +#: models.py:122 msgid "Personal note" msgstr "" -#: models.py:102 templates/alsijil/class_register/lesson.html:101 -#: templates/alsijil/class_register/lesson.html:233 -#: templates/alsijil/class_register/week_view.html:68 -#: templates/alsijil/class_register/week_view.html:242 +#: models.py:123 templates/alsijil/class_register/lesson.html:105 +#: templates/alsijil/class_register/lesson.html:237 +#: templates/alsijil/class_register/week_view.html:71 +#: templates/alsijil/class_register/week_view.html:267 msgid "Personal notes" msgstr "" -#: models.py:127 templates/alsijil/class_register/lesson.html:129 -#: templates/alsijil/class_register/week_view.html:90 -#: templates/alsijil/class_register/week_view.html:177 -#: templates/alsijil/print/full_register.html:371 +#: models.py:150 templates/alsijil/class_register/lesson.html:133 +#: templates/alsijil/class_register/week_view.html:106 +#: templates/alsijil/class_register/week_view.html:200 +#: templates/alsijil/print/full_register.html:369 msgid "Lesson topic" msgstr "" -#: models.py:128 templates/alsijil/class_register/lesson.html:137 -#: templates/alsijil/class_register/week_view.html:91 -#: templates/alsijil/class_register/week_view.html:183 -#: templates/alsijil/class_register/week_view.html:216 -#: templates/alsijil/print/full_register.html:372 +#: models.py:151 templates/alsijil/class_register/lesson.html:141 +#: templates/alsijil/class_register/week_view.html:107 +#: templates/alsijil/class_register/week_view.html:206 +#: templates/alsijil/class_register/week_view.html:239 +#: templates/alsijil/print/full_register.html:370 msgid "Homework" msgstr "" -#: models.py:129 templates/alsijil/class_register/lesson.html:145 -#: templates/alsijil/class_register/week_view.html:92 -#: templates/alsijil/class_register/week_view.html:189 -#: templates/alsijil/class_register/week_view.html:222 +#: models.py:152 templates/alsijil/class_register/lesson.html:149 +#: templates/alsijil/class_register/week_view.html:108 +#: templates/alsijil/class_register/week_view.html:212 +#: templates/alsijil/class_register/week_view.html:245 msgid "Group note" msgstr "" -#: models.py:171 templates/alsijil/class_register/lesson.html:97 -#: templates/alsijil/class_register/lesson.html:120 +#: models.py:202 templates/alsijil/class_register/lesson.html:101 +#: templates/alsijil/class_register/lesson.html:124 msgid "Lesson documentation" msgstr "" -#: models.py:172 templates/alsijil/class_register/week_view.html:67 +#: models.py:203 templates/alsijil/class_register/week_view.html:68 msgid "Lesson documentations" msgstr "" -#: models.py:200 +#: models.py:231 msgid "Extra mark" msgstr "" -#: models.py:208 +#: models.py:239 msgid "Can view week overview" msgstr "" -#: models.py:209 +#: models.py:240 msgid "Can register absence" msgstr "" -#: models.py:210 +#: models.py:241 msgid "Can list all personal note filters" msgstr "" @@ -262,6 +314,10 @@ msgstr "" msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgstr "" +#: preferences.py:68 +msgid "Allow teachers to add data for lessons in holidays" +msgstr "" + #: tables.py:16 tables.py:36 msgid "Edit" msgstr "" @@ -273,13 +329,13 @@ msgstr "" #: templates/alsijil/absences/register.html:5 #: templates/alsijil/absences/register.html:6 #: templates/alsijil/class_register/person.html:30 -#: templates/alsijil/class_register/week_view.html:256 +#: templates/alsijil/class_register/week_view.html:282 #: templates/alsijil/partials/persons_with_stats.html:115 msgid "Register absence" msgstr "" #: templates/alsijil/absences/register.html:9 -#: templates/alsijil/class_register/lesson.html:242 +#: templates/alsijil/class_register/lesson.html:246 msgid "Person" msgstr "" @@ -381,13 +437,12 @@ msgid "My next lesson" msgstr "" #: templates/alsijil/class_register/lesson.html:46 -#: templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:171 #, python-format msgid "%(period)s. period" msgstr "" -#: templates/alsijil/class_register/lesson.html:77 -#: templates/alsijil/class_register/lesson.html:359 +#: templates/alsijil/class_register/lesson.html:79 #, python-format msgid "" "\n" @@ -395,8 +450,7 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:85 -#: templates/alsijil/class_register/lesson.html:367 +#: templates/alsijil/class_register/lesson.html:87 #, python-format msgid "" "\n" @@ -404,40 +458,40 @@ msgid "" " " msgstr "" -#: templates/alsijil/class_register/lesson.html:107 +#: templates/alsijil/class_register/lesson.html:111 msgid "Previous lesson" msgstr "" -#: templates/alsijil/class_register/lesson.html:111 -#: templates/alsijil/class_register/lesson.html:342 +#: templates/alsijil/class_register/lesson.html:115 +#: templates/alsijil/class_register/lesson.html:346 msgid "Change history" msgstr "" -#: templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/class_register/lesson.html:170 msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/class_register/lesson.html:173 +#: templates/alsijil/class_register/lesson.html:177 msgid "Lesson topic of previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:180 +#: templates/alsijil/class_register/lesson.html:184 msgid "Homework for this lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:187 +#: templates/alsijil/class_register/lesson.html:191 msgid "Group notes for previous lesson:" msgstr "" -#: templates/alsijil/class_register/lesson.html:194 +#: templates/alsijil/class_register/lesson.html:198 msgid "Absent persons:" msgstr "" -#: templates/alsijil/class_register/lesson.html:201 +#: templates/alsijil/class_register/lesson.html:205 msgid "Late persons:" msgstr "" -#: templates/alsijil/class_register/lesson.html:244 +#: templates/alsijil/class_register/lesson.html:248 #: templates/alsijil/class_register/person.html:110 #: templates/alsijil/partials/persons_with_stats.html:17 #: templates/alsijil/partials/persons_with_stats.html:34 @@ -446,10 +500,33 @@ msgstr "" msgid "Tardiness" msgstr "" -#: templates/alsijil/class_register/lesson.html:267 +#: templates/alsijil/class_register/lesson.html:271 msgid "Tardiness (in m)" msgstr "" +#: templates/alsijil/class_register/lesson.html:364 +#, python-format +msgid "" +"\n" +" Previous %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:372 +#, python-format +msgid "" +"\n" +" Next %(subject)s lesson\n" +" " +msgstr "" + +#: templates/alsijil/class_register/lesson.html:387 +msgid "" +"\n" +" This lesson overlaps with holidays and can't be edited.\n" +" " +msgstr "" + #: templates/alsijil/class_register/person.html:8 msgid "Class register: person" msgstr "" @@ -554,44 +631,44 @@ msgid "" " %(instance)s" msgstr "" -#: templates/alsijil/class_register/week_view.html:84 +#: templates/alsijil/class_register/week_view.html:100 msgid "Period" msgstr "" -#: templates/alsijil/class_register/week_view.html:86 +#: templates/alsijil/class_register/week_view.html:102 msgid "Groups" msgstr "" -#: templates/alsijil/class_register/week_view.html:88 -#: templates/alsijil/class_register/week_view.html:163 +#: templates/alsijil/class_register/week_view.html:104 +#: templates/alsijil/class_register/week_view.html:186 #: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:200 msgid "Subject" msgstr "" -#: templates/alsijil/class_register/week_view.html:89 -#: templates/alsijil/class_register/week_view.html:173 +#: templates/alsijil/class_register/week_view.html:105 +#: templates/alsijil/class_register/week_view.html:196 msgid "Teachers" msgstr "" -#: templates/alsijil/class_register/week_view.html:262 +#: templates/alsijil/class_register/week_view.html:288 msgid "unexcused" msgstr "" -#: templates/alsijil/class_register/week_view.html:265 +#: templates/alsijil/class_register/week_view.html:291 msgid "Summed up tardiness" msgstr "" -#: templates/alsijil/class_register/week_view.html:268 +#: templates/alsijil/class_register/week_view.html:294 #: templates/alsijil/partials/persons_with_stats.html:94 msgid "Count of tardiness" msgstr "" -#: templates/alsijil/class_register/week_view.html:297 +#: templates/alsijil/class_register/week_view.html:323 msgid "No lessons available" msgstr "" -#: templates/alsijil/class_register/week_view.html:300 +#: templates/alsijil/class_register/week_view.html:326 msgid "" "\n" " There are no lessons for the selected group or teacher in this week.\n" @@ -660,7 +737,7 @@ msgid "Data complete" msgstr "" #: templates/alsijil/partials/lesson_status_icon.html:12 -#: templates/alsijil/print/full_register.html:406 +#: templates/alsijil/print/full_register.html:404 msgid "Lesson cancelled" msgstr "" @@ -677,9 +754,9 @@ msgid "Substitution" msgstr "" #: templates/alsijil/partials/mark_as_buttons.html:4 -#: templates/alsijil/print/full_register.html:335 -#: templates/alsijil/print/full_register.html:424 -#: templates/alsijil/print/full_register.html:439 +#: templates/alsijil/print/full_register.html:334 +#: templates/alsijil/print/full_register.html:422 +#: templates/alsijil/print/full_register.html:437 msgid "e" msgstr "" @@ -835,17 +912,17 @@ msgid "Date" msgstr "" #: templates/alsijil/print/full_register.html:309 -#: templates/alsijil/print/full_register.html:369 +#: templates/alsijil/print/full_register.html:367 msgid "Pe." msgstr "" #: templates/alsijil/print/full_register.html:310 -#: templates/alsijil/print/full_register.html:370 +#: templates/alsijil/print/full_register.html:368 msgid "Subj." msgstr "" #: templates/alsijil/print/full_register.html:311 -#: templates/alsijil/print/full_register.html:374 +#: templates/alsijil/print/full_register.html:372 msgid "Te." msgstr "" @@ -853,70 +930,70 @@ msgstr "" msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:330 +#: templates/alsijil/print/full_register.html:329 msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:363 +#: templates/alsijil/print/full_register.html:361 msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:373 +#: templates/alsijil/print/full_register.html:371 msgid "Notes" msgstr "" -#: views.py:65 +#: views.py:68 msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: views.py:90 +#: views.py:93 msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: views.py:127 +#: views.py:141 msgid "The lesson documentation has been saved." msgstr "" -#: views.py:151 +#: views.py:165 msgid "The personal notes have been saved." msgstr "" -#: views.py:570 +#: views.py:591 msgid "The absences have been marked as excused." msgstr "" -#: views.py:585 +#: views.py:606 msgid "The absence has been marked as excused." msgstr "" -#: views.py:721 +#: views.py:749 msgid "The absence has been saved." msgstr "" -#: views.py:741 +#: views.py:770 msgid "The personal note has been deleted." msgstr "" -#: views.py:762 +#: views.py:792 msgid "The extra mark has been created." msgstr "" -#: views.py:773 +#: views.py:804 msgid "The extra mark has been saved." msgstr "" -#: views.py:783 +#: views.py:815 msgid "The extra mark has been deleted." msgstr "" -#: views.py:803 +#: views.py:836 msgid "The excuse type has been created." msgstr "" -#: views.py:814 +#: views.py:848 msgid "The excuse type has been saved." msgstr "" -#: views.py:824 +#: views.py:859 msgid "The excuse type has been deleted." msgstr "" diff --git a/aleksis/apps/alsijil/managers.py b/aleksis/apps/alsijil/managers.py index b2589345adac4c2c02159ea54fc872fe9055408a..7350cf375a12205b7ebe56b9d5fd57bd045a2477 100644 --- a/aleksis/apps/alsijil/managers.py +++ b/aleksis/apps/alsijil/managers.py @@ -1,3 +1,6 @@ +from django.db.models import QuerySet +from django.db.models.query_utils import Q + from aleksis.core.managers import CurrentSiteManagerWithoutMigrations @@ -21,3 +24,21 @@ class PersonalNoteManager(CurrentSiteManagerWithoutMigrations): ) .prefetch_related("extra_marks") ) + + +class PersonalNoteQuerySet(QuerySet): + def not_empty(self): + """Get all not empty personal notes.""" + return self.filter( + ~Q(remarks="") | Q(absent=True) | ~Q(late=0) | Q(extra_marks__isnull=False) + ) + + +class LessonDocumentationManager(CurrentSiteManagerWithoutMigrations): + pass + + +class LessonDocumentationQuerySet(QuerySet): + def not_empty(self): + """Get all not empty lesson documentations.""" + return self.filter(~Q(topic="") | ~Q(group_note="") | ~Q(homework="")) diff --git a/aleksis/apps/alsijil/model_extensions.py b/aleksis/apps/alsijil/model_extensions.py index 7ab840196988b80bffa63c9c4d3a5aa20aedffef..fdd05fd4bf3a867c98914b17ace921c65ffe052b 100644 --- a/aleksis/apps/alsijil/model_extensions.py +++ b/aleksis/apps/alsijil/model_extensions.py @@ -5,10 +5,7 @@ from django.db.models import Exists, OuterRef, Q, QuerySet from django.db.models.aggregates import Count, Sum from django.utils.translation import gettext as _ -import reversion from calendarweek import CalendarWeek -from django_global_request.middleware import get_request -from reversion import set_user from aleksis.apps.chronos.models import LessonPeriod from aleksis.core.models import Group, Person @@ -63,31 +60,25 @@ def mark_absent( if sub and sub.cancelled: continue - with reversion.create_revision(): - set_user(get_request().user) - personal_note, created = ( - PersonalNote.objects.select_related(None) - .prefetch_related(None) - .update_or_create( - person=self, - lesson_period=lesson_period, - week=wanted_week.week, - year=wanted_week.year, - defaults={ - "absent": absent, - "excused": excused, - "excuse_type": excuse_type, - }, - ) + personal_note, created = ( + PersonalNote.objects.select_related(None) + .prefetch_related(None) + .update_or_create( + person=self, + lesson_period=lesson_period, + week=wanted_week.week, + year=wanted_week.year, + defaults={"absent": absent, "excused": excused, "excuse_type": excuse_type,}, ) - personal_note.groups_of_person.set(self.member_of.all()) + ) + personal_note.groups_of_person.set(self.member_of.all()) - if remarks: - if personal_note.remarks: - personal_note.remarks += "; %s" % remarks - else: - personal_note.remarks = remarks - personal_note.save() + if remarks: + if personal_note.remarks: + personal_note.remarks += "; %s" % remarks + else: + personal_note.remarks = remarks + personal_note.save() return lesson_periods.count() @@ -276,11 +267,14 @@ def generate_person_list_with_class_register_statistics( self: Group, persons: Optional[Iterable] = None ) -> QuerySet: """Get with class register statistics annotated list of all members.""" - persons = persons or self.members.all() + if persons is None: + persons = self.members.all() + persons = persons.filter( personal_notes__groups_of_person=self, personal_notes__lesson_period__lesson__validity__school_term=self.school_term, - ).annotate( + ).distinct() + persons = persons.annotate( absences_count=Count( "personal_notes__absent", filter=Q( diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py index 8890c0d286110a06f3b651c51e886157270db36d..2335efe5f7e8b56a020198554dca9beaf0edaac5 100644 --- a/aleksis/apps/alsijil/models.py +++ b/aleksis/apps/alsijil/models.py @@ -12,7 +12,12 @@ from aleksis.apps.alsijil.data_checks import ( NoPersonalNotesInCancelledLessonsDataCheck, PersonalNoteOnHolidaysDataCheck, ) -from aleksis.apps.alsijil.managers import PersonalNoteManager +from aleksis.apps.alsijil.managers import ( + LessonDocumentationManager, + LessonDocumentationQuerySet, + PersonalNoteManager, + PersonalNoteQuerySet, +) from aleksis.apps.chronos.managers import GroupPropertiesMixin from aleksis.apps.chronos.mixins import WeekRelatedMixin from aleksis.apps.chronos.models import LessonPeriod @@ -62,7 +67,7 @@ class PersonalNote(ExtensibleModel, WeekRelatedMixin): ExcusesWithoutAbsences, ] - objects = PersonalNoteManager() + objects = PersonalNoteManager.from_queryset(PersonalNoteQuerySet)() person = models.ForeignKey("core.Person", models.CASCADE, related_name="personal_notes") groups_of_person = models.ManyToManyField("core.Group", related_name="+") @@ -140,6 +145,8 @@ class LessonDocumentation(ExtensibleModel, WeekRelatedMixin): Non-personal, includes the topic and homework of the lesson. """ + objects = LessonDocumentationManager.from_queryset(LessonDocumentationQuerySet)() + data_checks = [LessonDocumentationOnHolidaysDataCheck] week = models.IntegerField() diff --git a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html index 85ac0fbca5b83004f40621abc5a39bde0864dc47..c95a168f7dc6bbe82f6a8823b0a074abf836b756 100644 --- a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html +++ b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html @@ -316,40 +316,38 @@ </thead> <tbody> - {% for note in person.personal_notes.all %} - {% if note.lesson_period in lesson_periods %} - {% if note.absent or note.late or note.remarks or note.extra_marks.all %} - {% weekday_to_date note.calendar_week note.lesson_period.period.weekday as note_date %} - <tr> - <td>{{ note_date }}</td> - <td>{{ note.lesson_period.period.period }}</td> - <td>{{ note.lesson_period.get_subject.short_name }} </td> - <td>{{ note.lesson_period.get_teachers.first.short_name }}</td> - <td> - {% if note.absent %} - {% trans 'Yes' %} - {% if note.excused %} - {% if note.excuse_type %} - ({{ note.excuse_type.short_name }}) - {% else %} - ({% trans 'e' %}) - {% endif %} + {% for note in person.filtered_notes %} + {% if note.absent or note.late or note.remarks or note.extra_marks.all %} + {% weekday_to_date note.calendar_week note.lesson_period.period.weekday as note_date %} + <tr> + <td>{{ note_date }}</td> + <td>{{ note.lesson_period.period.period }}</td> + <td>{{ note.lesson_period.get_subject.short_name }} </td> + <td>{{ note.lesson_period.get_teachers.first.short_name }}</td> + <td> + {% if note.absent %} + {% trans 'Yes' %} + {% if note.excused %} + {% if note.excuse_type %} + ({{ note.excuse_type.short_name }}) + {% else %} + ({% trans 'e' %}) {% endif %} {% endif %} - </td> - <td> - {% if note.late %} - {{ note.late }}' - {% endif %} - </td> - <td> - {% for extra_mark in note.extra_marks.all %} - {{ extra_mark.short_name }}{% if not forloop.last %},{% endif %} - {% endfor %} - </td> - <td>{{ note.remarks }}</td> - </tr> - {% endif %} + {% endif %} + </td> + <td> + {% if note.late %} + {{ note.late }}' + {% endif %} + </td> + <td> + {% for extra_mark in note.extra_marks.all %} + {{ extra_mark.short_name }}{% if not forloop.last %},{% endif %} + {% endfor %} + </td> + <td>{{ note.remarks }}</td> + </tr> {% endif %} {% endfor %} </tbody> diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index b37becc357e78adcc680bcd4099594870973a9d7..24da1a73817d4fcf1d49bbb9360497a2decadb47 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -1,3 +1,4 @@ +from contextlib import nullcontext from datetime import date, datetime, timedelta from typing import Any, Dict, Optional @@ -169,14 +170,16 @@ def lesson( instances = personal_note_formset.save() # Iterate over personal notes and carry changed absences to following lessons - for instance in instances: - instance.person.mark_absent( - wanted_week[lesson_period.period.weekday], - lesson_period.period.period + 1, - instance.absent, - instance.excused, - instance.excuse_type, - ) + with reversion.create_revision(): + reversion.set_user(request.user) + for instance in instances: + instance.person.mark_absent( + wanted_week[lesson_period.period.weekday], + lesson_period.period.period + 1, + instance.absent, + instance.excused, + instance.excuse_type, + ) messages.success(request, _("The personal notes have been saved.")) @@ -239,7 +242,7 @@ def week_view( initial = {type_.value: instance} else: initial = {} - select_form = SelectForm(request.POST or None, initial=initial) + select_form = SelectForm(request, request.POST or None, initial=initial) if request.method == "POST": if select_form.is_valid(): @@ -418,20 +421,29 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: group = get_object_or_404(Group, pk=id_) - # Get all lesson periods for the selected group - lesson_periods = ( - LessonPeriod.objects.filter_group(group) - .distinct() + personal_notes = ( + PersonalNote.objects.select_related("lesson_period") .prefetch_related( - "documentations", - "personal_notes", - "personal_notes__excuse_type", - "personal_notes__extra_marks", - "personal_notes__person", - "personal_notes__groups_of_person", + "lesson_period__substitutions", "lesson_period__lesson__teachers", "groups_of_person" + ) + .not_empty() + .filter( + Q(lesson_period__lesson__groups=group) + | Q(lesson_period__lesson__groups__parent_groups=group) + ) + ) + documentations = ( + LessonDocumentation.objects.select_related("lesson_period") + .not_empty() + .filter( + Q(lesson_period__lesson__groups=group) + | Q(lesson_period__lesson__groups__parent_groups=group) ) ) + # Get all lesson periods for the selected group + lesson_periods = LessonPeriod.objects.filter_group(group).distinct() + weeks = CalendarWeek.weeks_within(group.school_term.date_start, group.school_term.date_end,) periods_by_day = {} @@ -444,39 +456,38 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: <= day <= lesson_period.lesson.validity.date_end ): - documentations = list( + filtered_documentations = list( filter( - lambda d: d.week == week.week and d.year == week.year, - lesson_period.documentations.all(), + lambda d: d.week == week.week + and d.year == week.year + and d.lesson_period == lesson_period, + documentations, ) ) - notes = list( + filtered_personal_notes = list( filter( - lambda d: d.week == week.week and d.year == week.year, - lesson_period.personal_notes.all(), + lambda d: d.week == week.week + and d.year == week.year + and d.lesson_period == lesson_period, + personal_notes, ) ) substitution = lesson_period.get_substitution(week) periods_by_day.setdefault(day, []).append( - (lesson_period, documentations, notes, substitution) + (lesson_period, filtered_documentations, filtered_personal_notes, substitution) ) - persons = Person.objects.prefetch_related( - "personal_notes", - "personal_notes__excuse_type", - "personal_notes__extra_marks", - "personal_notes__lesson_period__lesson__subject", - "personal_notes__lesson_period__substitutions", - "personal_notes__lesson_period__substitutions__subject", - "personal_notes__lesson_period__substitutions__teachers", - "personal_notes__lesson_period__lesson__teachers", - "personal_notes__lesson_period__period", - ) + persons = Person.objects.prefetch_related(None).select_related(None) persons = group.generate_person_list_with_class_register_statistics(persons) + prefetched_persons = [] + for person in persons: + person.filtered_notes = list(filter(lambda d: d.person == person, personal_notes)) + prefetched_persons.append(person) + context["school_term"] = group.school_term - context["persons"] = persons + context["persons"] = prefetched_persons context["excuse_types"] = ExcuseType.objects.all() context["extra_marks"] = ExtraMark.objects.all() context["group"] = group @@ -633,9 +644,7 @@ def overview_person(request: HttpRequest, id_: Optional[int] = None) -> HttpResp unexcused_absences = allowed_personal_notes.filter(absent=True, excused=False) context["unexcused_absences"] = unexcused_absences - personal_notes = allowed_personal_notes.filter( - Q(absent=True) | Q(late__gt=0) | ~Q(remarks="") | Q(extra_marks__isnull=False) - ).order_by( + personal_notes = allowed_personal_notes.not_empty().order_by( "-lesson_period__lesson__validity__date_start", "-week", "lesson_period__period__weekday", @@ -734,16 +743,17 @@ def register_absence(request: HttpRequest, id_: int) -> HttpResponse: if holiday: continue - affected_count += person.mark_absent( - day, - from_period_on_day, - absent, - excused, - excuse_type, - remarks, - to_period_on_day, - dry_run=not confirmed, - ) + with reversion.create_revision() if confirmed else nullcontext(): + affected_count += person.mark_absent( + day, + from_period_on_day, + absent, + excused, + excuse_type, + remarks, + to_period_on_day, + dry_run=not confirmed, + ) if not confirmed: # Show confirmation page diff --git a/tox.ini b/tox.ini index e1283a1b72150383c5c2c9b7fbf43abb6cdf6ea2..f09d243fd2ddcd42c0eae1a6c298c08eb9557a13 100644 --- a/tox.ini +++ b/tox.ini @@ -35,6 +35,7 @@ commands = [testenv:build] commands_pre = + poetry run sh -c "cd aleksis; aleksis-admin compilemessages" commands = poetry build [testenv:docs]