diff --git a/.gitignore b/.gitignore index b7f983def7a1bfd21715a5e2e7d976a28ae586e1..11164f0193906b0be7a568b29a8a04444705ebf7 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,6 @@ db.sqlite3 # Sphinx docs/_build/ + +# Test +.tox/ diff --git a/aleksis/apps/alsijil/forms.py b/aleksis/apps/alsijil/forms.py index 88127e98c45d71fbe22ec9572fc04d89891489a7..167a73dbc378e01b1189db08508a4d1828fc6ca2 100644 --- a/aleksis/apps/alsijil/forms.py +++ b/aleksis/apps/alsijil/forms.py @@ -11,13 +11,13 @@ from material import Layout, Row from aleksis.apps.chronos.managers import TimetableType from aleksis.core.models import Group, Person -from .models import ExcuseType, LessonDocumentation, PersonalNote, PersonalNoteFilter +from .models import ExcuseType, ExtraMark, LessonDocumentation, PersonalNote class LessonDocumentationForm(forms.ModelForm): class Meta: model = LessonDocumentation - fields = ["topic", "homework"] + fields = ["topic", "homework", "group_note"] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) @@ -28,7 +28,7 @@ class LessonDocumentationForm(forms.ModelForm): class PersonalNoteForm(forms.ModelForm): class Meta: model = PersonalNote - fields = ["absent", "late", "excused", "excuse_type", "remarks"] + fields = ["absent", "late", "excused", "excuse_type", "extra_marks", "remarks"] person_name = forms.CharField(disabled=True) @@ -109,12 +109,12 @@ class RegisterAbsenceForm(forms.Form): remarks = forms.CharField(label=_("Remarks"), max_length=30, required=False) -class PersonalNoteFilterForm(forms.ModelForm): - layout = Layout(Row("identifier", "description"), Row("regex")) +class ExtraMarkForm(forms.ModelForm): + layout = Layout("short_name", "name") class Meta: - model = PersonalNoteFilter - fields = ["identifier", "description", "regex"] + model = ExtraMark + fields = ["short_name", "name"] class ExcuseTypeForm(forms.ModelForm): diff --git a/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/ar/LC_MESSAGES/django.po index 075f3e3ab07c2dbfead9a64998c893280beb29e0..64943027bfa78a70aa978fbc1252b3062ea6e5d2 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-04-01 13:20+0200\n" +"POT-Creation-Date: 2020-07-26 16:10+0200\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" @@ -16,49 +16,57 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "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" +"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" -#: forms.py:41 +#: forms.py:25 +msgid "Homework for the next lesson" +msgstr "" + +#: forms.py:50 templates/alsijil/print/full_register.html:181 msgid "Group" msgstr "" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:56 templates/alsijil/print/full_register.html:152 +#: templates/alsijil/print/full_register.html:183 msgid "Teacher" msgstr "" -#: forms.py:57 -msgid "Room" +#: forms.py:73 +msgid "You can't select a group and a teacher both." msgstr "" -#: forms.py:70 +#: forms.py:101 msgid "Start date" msgstr "" -#: forms.py:73 +#: forms.py:102 msgid "End date" msgstr "" -#: forms.py:75 +#: forms.py:103 msgid "From period" msgstr "" -#: forms.py:77 templates/alsijil/lesson.html:58 +#: forms.py:105 templates/alsijil/class_register/lesson.html:150 msgid "Person" msgstr "" -#: forms.py:79 templates/alsijil/lesson.html:59 -#: templates/alsijil/print/full_register.html:223 -#: templates/alsijil/week_view.html:96 +#: forms.py:107 templates/alsijil/class_register/lesson.html:151 +#: templates/alsijil/class_register/week_view.html:93 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:305 msgid "Absent" msgstr "" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:153 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:280 msgid "Excused" msgstr "" -#: forms.py:81 templates/alsijil/lesson.html:62 -#: templates/alsijil/print/full_register.html:225 +#: forms.py:109 templates/alsijil/class_register/lesson.html:155 +#: templates/alsijil/class_register/lesson.html:195 +#: templates/alsijil/print/full_register.html:307 msgid "Remarks" msgstr "" @@ -78,306 +86,491 @@ msgstr "" msgid "Register absence" msgstr "" -#: menus.py:34 +#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8 msgid "Personal note filters" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" +msgstr "" + +#: models.py:18 +msgid "Short name" +msgstr "" + +#: models.py:20 +msgid "Name" +msgstr "" + +#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154 +#: templates/alsijil/class_register/lesson.html:187 +msgid "Excuse type" +msgstr "" + +#: models.py:70 +msgid "Personal note" +msgstr "" + +#: models.py:71 templates/alsijil/class_register/lesson.html:143 +#: templates/alsijil/class_register/week_view.html:88 +msgid "Personal notes" +msgstr "" + +#: models.py:94 templates/alsijil/print/full_register.html:357 msgid "Lesson topic" msgstr "" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:95 templates/alsijil/print/full_register.html:358 msgid "Homework" msgstr "" -#: models.py:68 +#: models.py:96 +msgid "Group note" +msgstr "" + +#: models.py:99 templates/alsijil/class_register/lesson.html:119 +msgid "Lesson documentation" +msgstr "" + +#: models.py:100 +msgid "Lesson documentations" +msgstr "" + +#: models.py:114 msgid "Identifier" msgstr "" -#: models.py:71 templates/alsijil/print/full_register.html:178 +#: models.py:120 templates/alsijil/print/full_register.html:253 msgid "Description" msgstr "" -#: models.py:74 +#: models.py:124 msgid "Match expression" msgstr "" -#: tables.py:14 +#: models.py:128 +msgid "Personal note filter" +msgstr "" + +#: tables.py:17 tables.py:31 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 +#: tables.py:37 +msgid "Delete" +msgstr "" + +#: templates/alsijil/absences/register.html:5 +#: templates/alsijil/absences/register.html:6 +msgid "Manage absence" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:6 msgid "Lesson" msgstr "" -#: templates/alsijil/lesson.html:34 -msgid "Lesson documentation" +#: templates/alsijil/class_register/lesson.html:14 +#: templates/alsijil/class_register/lesson.html:71 +#, python-format +msgid "%(period)s. period" msgstr "" -#: templates/alsijil/lesson.html:43 -msgid "Change history" +#: templates/alsijil/class_register/lesson.html:38 +msgid "Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:70 +msgid "Overview: Previous lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:77 +msgid "Lesson topic of previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:84 +msgid "Homework for this lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:91 +msgid "Group notes for previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:98 +msgid "Absent persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:105 +msgid "Late persons:" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:130 +msgid "Change history" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:152 +#: templates/alsijil/print/full_register.html:292 msgid "Tardiness" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:5 -#: templates/alsijil/manage_personal_note_filter.html:6 -msgid "Manage personal note filter" +#: templates/alsijil/class_register/lesson.html:173 +msgid "Tardiness (in m)" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:11 -msgid "Delete filter" +#: templates/alsijil/class_register/week_view.html:6 +msgid "Week view" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:33 +#, python-format +msgid "CW %(week)s: %(instance)s" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:51 +#: templates/alsijil/print/full_register.html:151 +#: templates/alsijil/print/full_register.html:182 +msgid "Subject" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:52 +msgid "Teachers" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:94 +msgid "unexcused" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:97 +msgid "Summed up tardiness" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:121 +msgid "No lessons available" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:124 +msgid "" +"\n" +" There are no lessons for the selected group or teacher in this week.\n" +" " +msgstr "" + +#: templates/alsijil/excuse_type/create.html:6 +#: templates/alsijil/excuse_type/create.html:7 +#: templates/alsijil/excuse_type/list.html:16 +msgid "Create excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/edit.html:6 +#: templates/alsijil/excuse_type/edit.html:7 +msgid "Edit excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/warning.html:5 +msgid "" +"\n" +" This function should only be used to define alternatives to the default excuse which also will be counted extra.\n" +" Don't use this to create a default excuse or if you don't divide between different types of excuse.\n" +" " +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:114 +msgid "(e)" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:118 +msgid "(u)" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" msgstr "" -#: templates/alsijil/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" +#: templates/alsijil/partials/lesson_status_icon.html:12 +msgid "Missing data" msgstr "" -#: templates/alsijil/personal_note_filters.html:12 +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Pending" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +#: templates/alsijil/print/full_register.html:392 +msgid "Lesson cancelled" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:20 +msgid "Substitution" +msgstr "" + +#: templates/alsijil/personal_note_filter/list.html:7 +msgid "All personal note filters" +msgstr "" + +#: templates/alsijil/personal_note_filter/list.html:12 msgid "Add filter" msgstr "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/personal_note_filter/manage.html:7 +#: templates/alsijil/personal_note_filter/manage.html:14 +msgid "Update personal note filter" +msgstr "" + +#: templates/alsijil/personal_note_filter/manage.html:9 +#: templates/alsijil/personal_note_filter/manage.html:16 +msgid "Create personal note filter" +msgstr "" + +#: templates/alsijil/personal_note_filter/manage.html:29 +msgid "Delete filter" +msgstr "" + +#: templates/alsijil/print/full_register.html:6 +msgid "Class register:" msgstr "" #: templates/alsijil/print/full_register.html:26 +#: templates/alsijil/print/full_register.html:59 +msgid "Owners" +msgstr "" + +#: templates/alsijil/print/full_register.html:30 msgid "Printed on" msgstr "" -#: templates/alsijil/print/full_register.html:34 +#: templates/alsijil/print/full_register.html:38 msgid "" "\n" -" This printout is intended for archival purposes. The main copy " -"of\n" -" the class register is stored in the AlekSIS School Information\n" -" System.\n" -" " +" This printout is intended for archival purposes. The main copy of\n" +" the class register is stored in the AlekSIS School Information\n" +" System.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:41 +#: templates/alsijil/print/full_register.html:45 msgid "" "\n" -" Copies of the class register, both digital and as printout, " -"must\n" -" only be kept inside the school and/or on devices authorised by " -"the\n" -" school.\n" -" " +" Copies of the class register, both digital and as printout, must\n" +" only be kept inside the school and/or on devices authorised by the\n" +" school.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:48 +#: templates/alsijil/print/full_register.html:52 msgid "" "\n" -" The owner of the group and the headteacher confirm the above, " -"as\n" -" well as the correctness of this printout.\n" -" " +" The owner of the group and the headteacher confirm the above, as\n" +" well as the correctness of this printout.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:55 +#: templates/alsijil/print/full_register.html:62 msgid "Headteacher" msgstr "" -#: templates/alsijil/print/full_register.html:61 +#: templates/alsijil/print/full_register.html:69 +msgid "Abbreviations" +msgstr "" + +#: templates/alsijil/print/full_register.html:71 +msgid "General" +msgstr "" + +#: templates/alsijil/print/full_register.html:78 +msgid "Late" +msgstr "" + +#: templates/alsijil/print/full_register.html:81 +#: templates/alsijil/print/full_register.html:288 +msgid "Unexcused" +msgstr "" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" +msgstr "" + +#: templates/alsijil/print/full_register.html:103 msgid "Persons in group" msgstr "" -#: templates/alsijil/print/full_register.html:66 +#: templates/alsijil/print/full_register.html:108 msgid "No." msgstr "" -#: templates/alsijil/print/full_register.html:67 +#: templates/alsijil/print/full_register.html:109 msgid "Last name" msgstr "" -#: templates/alsijil/print/full_register.html:68 +#: templates/alsijil/print/full_register.html:110 msgid "First name" msgstr "" -#: templates/alsijil/print/full_register.html:69 +#: templates/alsijil/print/full_register.html:111 msgid "Sex" msgstr "" -#: templates/alsijil/print/full_register.html:70 +#: templates/alsijil/print/full_register.html:112 msgid "Date of birth" msgstr "" -#: templates/alsijil/print/full_register.html:71 -#: templates/alsijil/print/full_register.html:200 -msgid "Absences" +#: templates/alsijil/print/full_register.html:113 +msgid "(a)" msgstr "" -#: templates/alsijil/print/full_register.html:72 -#: templates/alsijil/print/full_register.html:201 -msgid "Unexcused" +#: templates/alsijil/print/full_register.html:119 +msgid "(b)" msgstr "" -#: templates/alsijil/print/full_register.html:73 -#: templates/alsijil/print/full_register.html:224 -msgid "Tard." -msgstr "" - -#: templates/alsijil/print/full_register.html:95 +#: templates/alsijil/print/full_register.html:146 msgid "Teachers and lessons in group" msgstr "" -#: templates/alsijil/print/full_register.html:100 -#: templates/alsijil/week_view.html:48 -msgid "Subject" -msgstr "" - -#: templates/alsijil/print/full_register.html:102 +#: templates/alsijil/print/full_register.html:153 +#: templates/alsijil/print/full_register.html:184 msgid "Lesson start" msgstr "" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:154 +#: templates/alsijil/print/full_register.html:185 msgid "Lesson end" msgstr "" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:155 +#: templates/alsijil/print/full_register.html:186 msgid "Per week" msgstr "" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:176 +msgid "Teachers and lessons in child groups" +msgstr "" + +#: templates/alsijil/print/full_register.html:209 msgid "Personal overview" msgstr "" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:211 msgid "Contact details" msgstr "" -#: templates/alsijil/print/full_register.html:174 +#: templates/alsijil/print/full_register.html:249 msgid "Statistics on remarks" msgstr "" -#: templates/alsijil/print/full_register.html:179 +#: templates/alsijil/print/full_register.html:254 msgid "Count" msgstr "" -#: templates/alsijil/print/full_register.html:196 +#: templates/alsijil/print/full_register.html:271 msgid "Absences and tardiness" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:274 +msgid "Absences" +msgstr "" + +#: templates/alsijil/print/full_register.html:279 +msgid "thereof" +msgstr "" + +#: templates/alsijil/print/full_register.html:297 msgid "Relevant personal notes" msgstr "" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:301 msgid "Date" msgstr "" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:302 +#: templates/alsijil/print/full_register.html:355 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:303 +#: templates/alsijil/print/full_register.html:356 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:304 +#: templates/alsijil/print/full_register.html:360 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:306 +msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:242 -#: templates/alsijil/print/full_register.html:314 -#: templates/alsijil/print/full_register.html:324 -msgid "e" +#: templates/alsijil/print/full_register.html:322 +msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" +#: templates/alsijil/print/full_register.html:327 +#: templates/alsijil/print/full_register.html:409 +#: templates/alsijil/print/full_register.html:424 +msgid "e" msgstr "" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." +#: templates/alsijil/print/full_register.html:349 +msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:359 msgid "Notes" msgstr "" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" +#: views.py:66 +msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: templates/alsijil/register_absence.html:5 -#: templates/alsijil/register_absence.html:6 -msgid "Manage absence" +#: views.py:80 +msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: templates/alsijil/week_view.html:6 -msgid "Week view" +#: views.py:106 +msgid "The lesson documentation has been saved." msgstr "" -#: templates/alsijil/week_view.html:21 -msgid "Select" +#: views.py:121 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:47 -msgid "Period" +#: views.py:303 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:49 -msgid "Teachers" -msgstr "" - -#: templates/alsijil/week_view.html:97 -msgid "unexcused" -msgstr "" - -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" -msgstr "" - -#: templates/alsijil/week_view.html:122 -msgid "No group selected" -msgstr "" - -#: templates/alsijil/week_view.html:125 -msgid "" -"\n" -" There are no lessons for the selected group, teacher, room or " -"time.\n" -" " +#: views.py:419 +msgid "The absence has been saved." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:459 +msgid "The filter has been saved" msgstr "" -#: views.py:68 -msgid "" -"You are not allowed to create a lesson documentation for a lesson in the " -"future." +#: views.py:474 +msgid "The filter has been deleted." msgstr "" -#: views.py:306 -msgid "The absence has been saved." +#: views.py:497 +msgid "The excuse type has been created." msgstr "" -#: views.py:344 -msgid "The filter has been saved" +#: views.py:508 +msgid "The excuse type has been saved." msgstr "" -#: views.py:360 -msgid "The filter has been deleted." +#: views.py:518 +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 c91388c7ee373d3a0177a63f06b675a46ad8ed0d..19e781fa15510fb9fd521bd968238f6aa0266521 100644 --- a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po @@ -7,58 +7,67 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-01 13:20+0200\n" -"PO-Revision-Date: 2019-11-24 21:56+0000\n" -"Last-Translator: Tom Teichler <tom.teichler@teckids.org>\n" -"Language-Team: German <https://translate.edugit.org/projects/aleksis-sis/" +"POT-Creation-Date: 2020-07-26 16:10+0200\n" +"PO-Revision-Date: 2020-07-28 12:51+0000\n" +"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n" +"Language-Team: German <https://translate.edugit.org/projects/aleksis/" "aleksis-app-alsijil/de/>\n" "Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.8\n" +"X-Generator: Weblate 4.0.1\n" -#: forms.py:41 +#: forms.py:25 +msgid "Homework for the next lesson" +msgstr "Hausaufgabe zur nächsten Stunde" + +#: forms.py:50 templates/alsijil/print/full_register.html:181 msgid "Group" msgstr "Gruppe" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:56 templates/alsijil/print/full_register.html:152 +#: templates/alsijil/print/full_register.html:183 msgid "Teacher" msgstr "Lehrkraft" -#: forms.py:57 -msgid "Room" -msgstr "Raum" +#: forms.py:73 +msgid "You can't select a group and a teacher both." +msgstr "Es kann nur entweder eine Gruppe oder eine Lehrkraft ausgewählt werden." -#: forms.py:70 +#: forms.py:101 msgid "Start date" msgstr "Startdatum" -#: forms.py:73 +#: forms.py:102 msgid "End date" msgstr "Enddatum" -#: forms.py:75 +#: forms.py:103 msgid "From period" msgstr "Ab Stunde" -#: forms.py:77 templates/alsijil/lesson.html:58 +#: forms.py:105 templates/alsijil/class_register/lesson.html:150 msgid "Person" msgstr "Person" -#: forms.py:79 templates/alsijil/lesson.html:59 -#: templates/alsijil/print/full_register.html:223 -#: templates/alsijil/week_view.html:96 +#: forms.py:107 templates/alsijil/class_register/lesson.html:151 +#: templates/alsijil/class_register/week_view.html:93 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:305 msgid "Absent" msgstr "Abwesend" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:153 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:280 msgid "Excused" msgstr "Entschuldigt" -#: forms.py:81 templates/alsijil/lesson.html:62 -#: templates/alsijil/print/full_register.html:225 +#: forms.py:109 templates/alsijil/class_register/lesson.html:155 +#: templates/alsijil/class_register/lesson.html:195 +#: templates/alsijil/print/full_register.html:307 msgid "Remarks" msgstr "Bemerkungen" @@ -78,341 +87,543 @@ msgstr "Aktuelle Woche" msgid "Register absence" msgstr "Abwesenheit eintragen" -#: menus.py:34 +#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8 msgid "Personal note filters" msgstr "Filter für persönliche Notizen" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" +msgstr "Entschuldigungsarten" + +#: models.py:18 +msgid "Short name" +msgstr "Kurzname" + +#: models.py:20 +msgid "Name" +msgstr "Name" + +#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154 +#: templates/alsijil/class_register/lesson.html:187 +msgid "Excuse type" +msgstr "Entschuldigungsart" + +#: models.py:70 +msgid "Personal note" +msgstr "Persönliche Notiz" + +#: models.py:71 templates/alsijil/class_register/lesson.html:143 +#: templates/alsijil/class_register/week_view.html:88 +msgid "Personal notes" +msgstr "Persönliche Notizen" + +#: models.py:94 templates/alsijil/print/full_register.html:357 msgid "Lesson topic" msgstr "Stundenthema" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:95 templates/alsijil/print/full_register.html:358 msgid "Homework" msgstr "Hausaufgaben" -#: models.py:68 +#: models.py:96 +msgid "Group note" +msgstr "Gruppennotiz" + +#: models.py:99 templates/alsijil/class_register/lesson.html:119 +msgid "Lesson documentation" +msgstr "Stunden-Dokumentation" + +#: models.py:100 +msgid "Lesson documentations" +msgstr "Stunden-Dokumentationen" + +#: models.py:114 msgid "Identifier" msgstr "Kennung" -#: models.py:71 templates/alsijil/print/full_register.html:178 +#: models.py:120 templates/alsijil/print/full_register.html:253 msgid "Description" msgstr "Beschreibung" -#: models.py:74 +#: models.py:124 msgid "Match expression" msgstr "Suchausdruck" -#: tables.py:14 +#: models.py:128 +msgid "Personal note filter" +msgstr "Filter für persönliche Notizen" + +#: tables.py:17 tables.py:31 msgid "Edit" msgstr "Bearbeiten" -#: templates/alsijil/lesson.html:5 -#, fuzzy -#| msgid "Lessons" +#: tables.py:37 +msgid "Delete" +msgstr "Löschen" + +#: templates/alsijil/absences/register.html:5 +#: templates/alsijil/absences/register.html:6 +msgid "Manage absence" +msgstr "Abwesenheiten verwalten" + +#: templates/alsijil/class_register/lesson.html:6 msgid "Lesson" -msgstr "Unterrichtsstunden" +msgstr "Unterrichtsstunde" -#: templates/alsijil/lesson.html:34 -msgid "Lesson documentation" -msgstr "Stunden-Dokumentation" +#: templates/alsijil/class_register/lesson.html:14 +#: templates/alsijil/class_register/lesson.html:71 +#, python-format +msgid "%(period)s. period" +msgstr "%(period)s. Stunde" + +#: templates/alsijil/class_register/lesson.html:38 +msgid "Previous lesson" +msgstr "Vorherige Unterrichtsstunde" + +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" +msgstr "Nächste Unterrichtsstunde" + +#: templates/alsijil/class_register/lesson.html:70 +msgid "Overview: Previous lesson" +msgstr "Übersicht: Vorherige Stunde" + +#: templates/alsijil/class_register/lesson.html:77 +msgid "Lesson topic of previous lesson:" +msgstr "Stundenthema der vorherigen Stunde:" + +#: templates/alsijil/class_register/lesson.html:84 +msgid "Homework for this lesson:" +msgstr "Hausaufgaben zu dieser Stunde:" + +#: templates/alsijil/class_register/lesson.html:91 +msgid "Group notes for previous lesson:" +msgstr "Gruppennotizen für die vorherige Stunde:" + +#: templates/alsijil/class_register/lesson.html:98 +msgid "Absent persons:" +msgstr "Abwesende Personen:" + +#: templates/alsijil/class_register/lesson.html:105 +msgid "Late persons:" +msgstr "Verspätete Personen:" -#: templates/alsijil/lesson.html:43 +#: templates/alsijil/class_register/lesson.html:130 msgid "Change history" msgstr "Veränderungen" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" -msgstr "Persönliche Notizen" - -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:152 +#: templates/alsijil/print/full_register.html:292 msgid "Tardiness" msgstr "Verspätung" -#: templates/alsijil/manage_personal_note_filter.html:5 -#: templates/alsijil/manage_personal_note_filter.html:6 -msgid "Manage personal note filter" -msgstr "Filter für persönliche Notizen verwalten" +#: templates/alsijil/class_register/lesson.html:173 +msgid "Tardiness (in m)" +msgstr "Verspätung (in m)" -#: templates/alsijil/manage_personal_note_filter.html:11 -#, fuzzy -#| msgid "Personal note filters" -msgid "Delete filter" -msgstr "Filter für persönliche Notizen" +#: templates/alsijil/class_register/week_view.html:6 +msgid "Week view" +msgstr "Wochenansicht" -#: templates/alsijil/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" -msgstr "Liste aller Filter für persönliche Notizen" +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" +msgstr "Auswählen" -#: templates/alsijil/personal_note_filters.html:12 -msgid "Add filter" +#: templates/alsijil/class_register/week_view.html:33 +#, python-format +msgid "CW %(week)s: %(instance)s" +msgstr "KW %(week)s: %(instance)s" + +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "Stunde" + +#: templates/alsijil/class_register/week_view.html:51 +#: templates/alsijil/print/full_register.html:151 +#: templates/alsijil/print/full_register.html:182 +msgid "Subject" +msgstr "Fach" + +#: templates/alsijil/class_register/week_view.html:52 +msgid "Teachers" +msgstr "Lehrkräfte" + +#: templates/alsijil/class_register/week_view.html:94 +msgid "unexcused" +msgstr "unentschuldigt" + +#: templates/alsijil/class_register/week_view.html:97 +msgid "Summed up tardiness" +msgstr "Summierte Verspätung" + +#: templates/alsijil/class_register/week_view.html:121 +msgid "No lessons available" +msgstr "Keine Stunden verfügbar" + +#: templates/alsijil/class_register/week_view.html:124 +msgid "" +"\n" +" There are no lessons for the selected group or teacher in this week.\n" +" " +msgstr "" +"\n" +" Es gibt keine Stunden für die ausgewählte Gruppe oder Lehrkraft " +"in dieser Woche.\n" +" " + +#: templates/alsijil/excuse_type/create.html:6 +#: templates/alsijil/excuse_type/create.html:7 +#: templates/alsijil/excuse_type/list.html:16 +msgid "Create excuse type" +msgstr "Entschuldigungsart erstellen" + +#: templates/alsijil/excuse_type/edit.html:6 +#: templates/alsijil/excuse_type/edit.html:7 +msgid "Edit excuse type" +msgstr "Entschuldigungsart bearbeiten" + +#: templates/alsijil/excuse_type/warning.html:5 +msgid "" +"\n" +" This function should only be used to define alternatives to the default excuse which also will be counted extra.\n" +" Don't use this to create a default excuse or if you don't divide between different types of excuse.\n" +" " msgstr "" +"\n" +" Diese Funktion sollte nur benutzt werden, um Alternativen zur normalen " +"Entschuldigung, welche von sich aus extra gezählt wird, zu definieren.\n" +"Benutzen Sie diese Funktion nicht, um eine Entschuldigungsart für normale " +"Entschuldigungen zu erstellen oder wenn Sie nicht zwischen verschiedenen " +"Entschuldigungsarten unterscheiden möchten.\n" +" " + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:114 +msgid "(e)" +msgstr "(e)" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:118 +msgid "(u)" +msgstr "(u)" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" +msgstr "Daten vollständig" + +#: templates/alsijil/partials/lesson_status_icon.html:12 +msgid "Missing data" +msgstr "Fehlende Daten" + +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Pending" +msgstr "Findet gerade statt" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +#: templates/alsijil/print/full_register.html:392 +msgid "Lesson cancelled" +msgstr "Stunde ist ausgefallen" + +#: templates/alsijil/partials/lesson_status_icon.html:20 +msgid "Substitution" +msgstr "Vertretung" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 +#: templates/alsijil/personal_note_filter/list.html:7 +msgid "All personal note filters" +msgstr "Alle Filter für persönliche Notizen" + +#: templates/alsijil/personal_note_filter/list.html:12 +msgid "Add filter" +msgstr "Filter hinzufügen" + +#: templates/alsijil/personal_note_filter/manage.html:7 +#: templates/alsijil/personal_note_filter/manage.html:14 +msgid "Update personal note filter" +msgstr "Filter für persönliche Notizen aktualisieren" + +#: templates/alsijil/personal_note_filter/manage.html:9 +#: templates/alsijil/personal_note_filter/manage.html:16 +msgid "Create personal note filter" +msgstr "Filter für persönliche Notizen erstellen" + +#: templates/alsijil/personal_note_filter/manage.html:29 +msgid "Delete filter" +msgstr "Filter löschen" + +#: templates/alsijil/print/full_register.html:6 +msgid "Class register:" +msgstr "Klassenbuch:" + +#: templates/alsijil/print/full_register.html:26 +#: templates/alsijil/print/full_register.html:59 msgid "Owners" msgstr "Leiter/-innen" -#: templates/alsijil/print/full_register.html:26 +#: templates/alsijil/print/full_register.html:30 msgid "Printed on" msgstr "Gedruckt am" -#: templates/alsijil/print/full_register.html:34 +#: templates/alsijil/print/full_register.html:38 msgid "" "\n" -" This printout is intended for archival purposes. The main copy " -"of\n" -" the class register is stored in the AlekSIS School Information\n" -" System.\n" -" " +" This printout is intended for archival purposes. The main copy of\n" +" the class register is stored in the AlekSIS School Information\n" +" System.\n" +" " msgstr "" "\n" -" Dieser Ausdruck ist für Archivierungszwecke gedacht. Die " -"Hauptkopie\n" -" des Klassenbusches ist im AlekSIS-Schul-Informations-System " +" Dieser Ausdruck ist für Archivierungszwecke gedacht. Die Hauptkopie\n" +" des Klassenbuches ist im AlekSIS-Schul-Informations-System " "gespeichert.\n" -" " +" " -#: templates/alsijil/print/full_register.html:41 +#: templates/alsijil/print/full_register.html:45 +#, fuzzy +#| msgid "" +#| "\n" +#| " Copies of the class register, both digital and as printout, must\n" +#| " only be kept inside the school and/or on devices authorised by the\n" +#| " school.\n" +#| " " msgid "" "\n" -" Copies of the class register, both digital and as printout, " -"must\n" -" only be kept inside the school and/or on devices authorised by " -"the\n" -" school.\n" -" " +" Copies of the class register, both digital and as printout, must\n" +" only be kept inside the school and/or on devices authorised by the\n" +" school.\n" +" " msgstr "" "\n" -" Kopien des Klassenbuches, sowohl digital als auch als Ausdruck, " +" Kopien des Klassenbuches, sowohl digital als auch als Ausdruck, " "dürfen\n" " ausschließlich in der Schule und/oder auf vonder Schule " "autorisierten Geräten\n" " gespeichert werden.\n" -" " +" " -#: templates/alsijil/print/full_register.html:48 +#: templates/alsijil/print/full_register.html:52 msgid "" "\n" -" The owner of the group and the headteacher confirm the above, " -"as\n" -" well as the correctness of this printout.\n" -" " +" The owner of the group and the headteacher confirm the above, as\n" +" well as the correctness of this printout.\n" +" " msgstr "" "\n" -" Die Leitung der Gruppe sowie die Schulleitung bestätigen die " -"obigen Hinweise sowie\n" +" Die Leitung der Gruppe sowie die Schulleitung bestätigen die obigen " +"Hinweise sowie\n" " die Richtigkeit des Ausdrucks.\n" -" " +" " -#: templates/alsijil/print/full_register.html:55 +#: templates/alsijil/print/full_register.html:62 msgid "Headteacher" msgstr "Schulleitung" -#: templates/alsijil/print/full_register.html:61 +#: templates/alsijil/print/full_register.html:69 +msgid "Abbreviations" +msgstr "Abkürzungen" + +#: templates/alsijil/print/full_register.html:71 +msgid "General" +msgstr "Allgemein" + +#: templates/alsijil/print/full_register.html:78 +msgid "Late" +msgstr "Verspätet" + +#: templates/alsijil/print/full_register.html:81 +#: templates/alsijil/print/full_register.html:288 +msgid "Unexcused" +msgstr "Unentschuldigt" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" +msgstr "Benutzerdefinierte Entschuldigunsarten" + +#: templates/alsijil/print/full_register.html:103 msgid "Persons in group" msgstr "Personen in der Gruppe" -#: templates/alsijil/print/full_register.html:66 +#: templates/alsijil/print/full_register.html:108 msgid "No." msgstr "Nr." -#: templates/alsijil/print/full_register.html:67 +#: templates/alsijil/print/full_register.html:109 msgid "Last name" msgstr "Nachname" -#: templates/alsijil/print/full_register.html:68 +#: templates/alsijil/print/full_register.html:110 msgid "First name" msgstr "Vorname" -#: templates/alsijil/print/full_register.html:69 +#: templates/alsijil/print/full_register.html:111 msgid "Sex" msgstr "Geschlecht" -#: templates/alsijil/print/full_register.html:70 +#: templates/alsijil/print/full_register.html:112 msgid "Date of birth" msgstr "Geburtsdatum" -#: templates/alsijil/print/full_register.html:71 -#: templates/alsijil/print/full_register.html:200 -msgid "Absences" -msgstr "Abwesenheiten" - -#: templates/alsijil/print/full_register.html:72 -#: templates/alsijil/print/full_register.html:201 -msgid "Unexcused" -msgstr "Unentschuldigt" +#: templates/alsijil/print/full_register.html:113 +msgid "(a)" +msgstr "(a)" -#: templates/alsijil/print/full_register.html:73 -#: templates/alsijil/print/full_register.html:224 -msgid "Tard." -msgstr "Verspät." +#: templates/alsijil/print/full_register.html:119 +msgid "(b)" +msgstr "(b)" -#: templates/alsijil/print/full_register.html:95 +#: templates/alsijil/print/full_register.html:146 msgid "Teachers and lessons in group" msgstr "Lehrkräfte und Fächer der Gruppe" -#: templates/alsijil/print/full_register.html:100 -#: templates/alsijil/week_view.html:48 -msgid "Subject" -msgstr "Fach" - -#: templates/alsijil/print/full_register.html:102 +#: templates/alsijil/print/full_register.html:153 +#: templates/alsijil/print/full_register.html:184 msgid "Lesson start" msgstr "Unterrichtsbeginn" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:154 +#: templates/alsijil/print/full_register.html:185 msgid "Lesson end" msgstr "Unterrichtsende" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:155 +#: templates/alsijil/print/full_register.html:186 msgid "Per week" msgstr "Pro Woche" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:176 +msgid "Teachers and lessons in child groups" +msgstr "Lehrkräfte und Fächer von Untergruppen" + +#: templates/alsijil/print/full_register.html:209 msgid "Personal overview" msgstr "Persönliche Übersicht" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:211 msgid "Contact details" msgstr "Kontaktdetails" -#: templates/alsijil/print/full_register.html:174 +#: templates/alsijil/print/full_register.html:249 msgid "Statistics on remarks" msgstr "Statistiken zu Bemerkungen" -#: templates/alsijil/print/full_register.html:179 +#: templates/alsijil/print/full_register.html:254 msgid "Count" msgstr "Anzahl" -#: templates/alsijil/print/full_register.html:196 +#: templates/alsijil/print/full_register.html:271 msgid "Absences and tardiness" msgstr "Abwesenheiten und Verspätungen" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:274 +msgid "Absences" +msgstr "Absenzen" + +#: templates/alsijil/print/full_register.html:279 +msgid "thereof" +msgstr "davon" + +#: templates/alsijil/print/full_register.html:297 msgid "Relevant personal notes" msgstr "Relevante persönliche Notizen" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:301 msgid "Date" msgstr "Datum" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:302 +#: templates/alsijil/print/full_register.html:355 msgid "Pe." msgstr "Std." -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:303 +#: templates/alsijil/print/full_register.html:356 msgid "Subj." msgstr "Fa." -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:304 +#: templates/alsijil/print/full_register.html:360 msgid "Te." msgstr "Lk." -#: templates/alsijil/print/full_register.html:240 +#: templates/alsijil/print/full_register.html:306 +msgid "Tard." +msgstr "Verspät." + +#: templates/alsijil/print/full_register.html:322 msgid "Yes" msgstr "Ja" -#: templates/alsijil/print/full_register.html:242 -#: templates/alsijil/print/full_register.html:314 -#: templates/alsijil/print/full_register.html:324 +#: templates/alsijil/print/full_register.html:327 +#: templates/alsijil/print/full_register.html:409 +#: templates/alsijil/print/full_register.html:424 msgid "e" msgstr "e" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" -msgstr "Unterrichtsdokumentation für Kalenderwoche" - -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." -msgstr "Vertr." +#: templates/alsijil/print/full_register.html:349 +msgid "Lesson documentation for week" +msgstr "Unterrichtsdokumentation für Woche" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:359 msgid "Notes" msgstr "Notizen" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" -msgstr "Stunde ist ausgefallen" +#: views.py:66 +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." -#: templates/alsijil/register_absence.html:5 -#: templates/alsijil/register_absence.html:6 -msgid "Manage absence" -msgstr "Abwesenheiten verwalten" +#: views.py:80 +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." -#: templates/alsijil/week_view.html:6 -#, fuzzy -#| msgid "Week" -msgid "Week view" -msgstr "Woche" +#: views.py:106 +msgid "The lesson documentation has been saved." +msgstr "Die Stunden-Dokumentation wurde gespeichert." -#: templates/alsijil/week_view.html:21 -msgid "Select" -msgstr "Auswählen" +#: views.py:121 +msgid "The personal notes have been saved." +msgstr "Die persönlichen Notizen wurden gespeichert." -#: templates/alsijil/week_view.html:47 -msgid "Period" -msgstr "Stunde" +#: views.py:303 +msgid "There is no current school term." +msgstr "Es gibt aktuell kein Schuljahr." -#: templates/alsijil/week_view.html:49 -msgid "Teachers" -msgstr "Lehrkräfte" +#: views.py:419 +msgid "The absence has been saved." +msgstr "Die Abwesenheit wurde gespeichert." -#: templates/alsijil/week_view.html:97 -msgid "unexcused" -msgstr "unentschuldigt" +#: views.py:459 +msgid "The filter has been saved" +msgstr "Der Filter wurde gespeichert" -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" -msgstr "Summierte Verspätung" +#: views.py:474 +msgid "The filter has been deleted." +msgstr "Der Filter wurde gespeichert." -#: templates/alsijil/week_view.html:122 -msgid "No group selected" -msgstr "Keine Gruppe ausgewählt" +#: views.py:497 +msgid "The excuse type has been created." +msgstr "Die Entschuldigungsart wurde erstellt." -#: templates/alsijil/week_view.html:125 -msgid "" -"\n" -" There are no lessons for the selected group, teacher, room or " -"time.\n" -" " -msgstr "" -"\n" -" Es gibt keine Stunden für die ausgewählte Gruppe, den Lehrer " -"oder Raum.\n" -" " +#: views.py:508 +msgid "The excuse type has been saved." +msgstr "Die Entschuldigunsart wurde gespeichert." -#: views.py:56 -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:518 +msgid "The excuse type has been deleted." +msgstr "Die Entschuldigungsart wurde gelöscht." -#: views.py:68 -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." +#~ msgid "Room" +#~ msgstr "Raum" -#: views.py:306 -msgid "The absence has been saved." -msgstr "Die Abwesenheit wurde gespeichert." +#~ msgid "List of all personal note filters" +#~ msgstr "Liste aller Filter für persönliche Notizen" -#: views.py:344 -msgid "The filter has been saved" -msgstr "Der Filter wurde gespeichert" +#~ msgid "Subs." +#~ msgstr "Vertr." -#: views.py:360 -msgid "The filter has been deleted." -msgstr "Der Filter wurde gespeichert." +#~ msgid "No group selected" +#~ msgstr "Keine Gruppe ausgewählt" #~ msgid "Save" #~ msgstr "Speichern" diff --git a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po index c491f8a74e0717b777be7d612eed4eade787bcf7..cf0fdc479b7bc6078c1587307271b709ea49de33 100644 --- a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po @@ -3,380 +3,625 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-01 13:20+0200\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" -"Language: \n" +"POT-Creation-Date: 2020-07-26 16:10+0200\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" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.0.1\n" -#: forms.py:41 -msgid "Group" +#: forms.py:25 +msgid "Homework for the next lesson" msgstr "" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:50 templates/alsijil/print/full_register.html:181 +msgid "Group" +msgstr "Groupe" + +#: forms.py:56 templates/alsijil/print/full_register.html:152 +#: templates/alsijil/print/full_register.html:183 msgid "Teacher" -msgstr "" +msgstr "Profs" -#: forms.py:57 -msgid "Room" +#: forms.py:73 +msgid "You can't select a group and a teacher both." msgstr "" -#: forms.py:70 +#: forms.py:101 msgid "Start date" -msgstr "" +msgstr "Date de début" -#: forms.py:73 +#: forms.py:102 msgid "End date" -msgstr "" +msgstr "Date de fin" -#: forms.py:75 +#: forms.py:103 msgid "From period" -msgstr "" +msgstr "De la période" -#: forms.py:77 templates/alsijil/lesson.html:58 +#: forms.py:105 templates/alsijil/class_register/lesson.html:150 msgid "Person" -msgstr "" +msgstr "Personne" -#: forms.py:79 templates/alsijil/lesson.html:59 -#: templates/alsijil/print/full_register.html:223 -#: templates/alsijil/week_view.html:96 +#: forms.py:107 templates/alsijil/class_register/lesson.html:151 +#: templates/alsijil/class_register/week_view.html:93 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:305 msgid "Absent" -msgstr "" +msgstr "Absent(e)" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:153 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:280 msgid "Excused" -msgstr "" +msgstr "Excusé" -#: forms.py:81 templates/alsijil/lesson.html:62 -#: templates/alsijil/print/full_register.html:225 +#: forms.py:109 templates/alsijil/class_register/lesson.html:155 +#: templates/alsijil/class_register/lesson.html:195 +#: templates/alsijil/print/full_register.html:307 msgid "Remarks" -msgstr "" +msgstr "Remarque" #: menus.py:6 templates/alsijil/print/full_register.html:16 msgid "Class register" -msgstr "" +msgstr "Registre de la classe" #: menus.py:16 msgid "Current lesson" -msgstr "" +msgstr "Lecon actuelle" #: menus.py:22 msgid "Current week" -msgstr "" +msgstr "Semaine actuelle" #: menus.py:28 msgid "Register absence" -msgstr "" +msgstr "Registre de Absence" -#: menus.py:34 +#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8 msgid "Personal note filters" +msgstr "Filtres de notes personnelles" + +#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +#, fuzzy +#| msgid "Excused" +msgid "Excuse types" +msgstr "Excusé" + +#: models.py:18 +#, fuzzy +#| msgid "First name" +msgid "Short name" +msgstr "Prénom" + +#: models.py:20 +msgid "Name" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154 +#: templates/alsijil/class_register/lesson.html:187 +#, fuzzy +#| msgid "Excused" +msgid "Excuse type" +msgstr "Excusé" + +#: models.py:70 +#, fuzzy +#| msgid "Personal notes" +msgid "Personal note" +msgstr "Notes personnelles" + +#: models.py:71 templates/alsijil/class_register/lesson.html:143 +#: templates/alsijil/class_register/week_view.html:88 +msgid "Personal notes" +msgstr "Notes personnelles" + +#: models.py:94 templates/alsijil/print/full_register.html:357 msgid "Lesson topic" -msgstr "" +msgstr "Sujet de cours" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:95 templates/alsijil/print/full_register.html:358 msgid "Homework" -msgstr "" +msgstr "Devoirs" + +#: models.py:96 +#, fuzzy +#| msgid "Group" +msgid "Group note" +msgstr "Groupe" -#: models.py:68 +#: models.py:99 templates/alsijil/class_register/lesson.html:119 +msgid "Lesson documentation" +msgstr "Documentation de cours" + +#: models.py:100 +#, fuzzy +#| msgid "Lesson documentation" +msgid "Lesson documentations" +msgstr "Documentation de cours" + +#: models.py:114 msgid "Identifier" -msgstr "" +msgstr "Identificateur" -#: models.py:71 templates/alsijil/print/full_register.html:178 +#: models.py:120 templates/alsijil/print/full_register.html:253 msgid "Description" -msgstr "" +msgstr "Description" -#: models.py:74 +#: models.py:124 msgid "Match expression" msgstr "" -#: tables.py:14 +#: models.py:128 +#, fuzzy +#| msgid "Personal note filters" +msgid "Personal note filter" +msgstr "Filtres de notes personnelles" + +#: tables.py:17 tables.py:31 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 +#: tables.py:37 +msgid "Delete" +msgstr "" + +#: templates/alsijil/absences/register.html:5 +#: templates/alsijil/absences/register.html:6 +msgid "Manage absence" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:6 msgid "Lesson" +msgstr "Cours" + +#: templates/alsijil/class_register/lesson.html:14 +#: templates/alsijil/class_register/lesson.html:71 +#, fuzzy, python-format +#| msgid "From period" +msgid "%(period)s. period" +msgstr "De la période" + +#: templates/alsijil/class_register/lesson.html:38 +#, fuzzy +#| msgid "Current lesson" +msgid "Previous lesson" +msgstr "Lecon actuelle" + +#: templates/alsijil/class_register/lesson.html:46 +#, fuzzy +#| msgid "Current lesson" +msgid "Next lesson" +msgstr "Lecon actuelle" + +#: templates/alsijil/class_register/lesson.html:70 +msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:34 -msgid "Lesson documentation" +#: templates/alsijil/class_register/lesson.html:77 +msgid "Lesson topic of previous lesson:" msgstr "" -#: templates/alsijil/lesson.html:43 -msgid "Change history" +#: templates/alsijil/class_register/lesson.html:84 +msgid "Homework for this lesson:" msgstr "" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:91 +msgid "Group notes for previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:98 +#, fuzzy +#| msgid "Absences" +msgid "Absent persons:" +msgstr "Absences" + +#: templates/alsijil/class_register/lesson.html:105 +msgid "Late persons:" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:130 +msgid "Change history" +msgstr "Changement d' histoire" + +#: templates/alsijil/class_register/lesson.html:152 +#: templates/alsijil/print/full_register.html:292 msgid "Tardiness" +msgstr "Retard" + +#: templates/alsijil/class_register/lesson.html:173 +#, fuzzy +#| msgid "Tardiness" +msgid "Tardiness (in m)" +msgstr "Retard" + +#: templates/alsijil/class_register/week_view.html:6 +msgid "Week view" +msgstr "Vue de semaine" + +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" +msgstr "Sélectionner" + +#: templates/alsijil/class_register/week_view.html:33 +#, python-format +msgid "CW %(week)s: %(instance)s" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:5 -#: templates/alsijil/manage_personal_note_filter.html:6 -msgid "Manage personal note filter" +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "Période" + +#: templates/alsijil/class_register/week_view.html:51 +#: templates/alsijil/print/full_register.html:151 +#: templates/alsijil/print/full_register.html:182 +msgid "Subject" +msgstr "Sujet" + +#: templates/alsijil/class_register/week_view.html:52 +msgid "Teachers" +msgstr "Profs" + +#: templates/alsijil/class_register/week_view.html:94 +msgid "unexcused" +msgstr "Injustifié(e)" + +#: templates/alsijil/class_register/week_view.html:97 +msgid "Summed up tardiness" +msgstr "Résumé des retards" + +#: templates/alsijil/class_register/week_view.html:121 +msgid "No lessons available" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:11 -msgid "Delete filter" +#: templates/alsijil/class_register/week_view.html:124 +#, fuzzy +#| msgid "" +#| "\n" +#| " There are no lessons for the selected group, teacher, room or time.\n" +#| " " +msgid "" +"\n" +" There are no lessons for the selected group or teacher in this week.\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/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" +#: templates/alsijil/excuse_type/create.html:6 +#: templates/alsijil/excuse_type/create.html:7 +#: templates/alsijil/excuse_type/list.html:16 +msgid "Create excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/edit.html:6 +#: templates/alsijil/excuse_type/edit.html:7 +msgid "Edit excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/warning.html:5 +msgid "" +"\n" +" This function should only be used to define alternatives to the default excuse which also will be counted extra.\n" +" Don't use this to create a default excuse or if you don't divide between different types of excuse.\n" +" " msgstr "" -#: templates/alsijil/personal_note_filters.html:12 +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:114 +msgid "(e)" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:118 +msgid "(u)" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:12 +msgid "Missing data" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Pending" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +#: templates/alsijil/print/full_register.html:392 +msgid "Lesson cancelled" +msgstr "Cours annulés" + +#: templates/alsijil/partials/lesson_status_icon.html:20 +msgid "Substitution" +msgstr "" + +#: templates/alsijil/personal_note_filter/list.html:7 +#, fuzzy +#| msgid "Personal note filters" +msgid "All personal note filters" +msgstr "Filtres de notes personnelles" + +#: templates/alsijil/personal_note_filter/list.html:12 msgid "Add filter" msgstr "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/personal_note_filter/manage.html:7 +#: templates/alsijil/personal_note_filter/manage.html:14 +#, fuzzy +#| msgid "Personal note filters" +msgid "Update personal note filter" +msgstr "Filtres de notes personnelles" + +#: templates/alsijil/personal_note_filter/manage.html:9 +#: templates/alsijil/personal_note_filter/manage.html:16 +#, fuzzy +#| msgid "Personal note filters" +msgid "Create personal note filter" +msgstr "Filtres de notes personnelles" + +#: templates/alsijil/personal_note_filter/manage.html:29 +msgid "Delete filter" msgstr "" +#: templates/alsijil/print/full_register.html:6 +#, fuzzy +#| msgid "Class register" +msgid "Class register:" +msgstr "Registre de la classe" + #: templates/alsijil/print/full_register.html:26 +#: templates/alsijil/print/full_register.html:59 +msgid "Owners" +msgstr "Propriétaires" + +#: templates/alsijil/print/full_register.html:30 msgid "Printed on" -msgstr "" +msgstr "Imprimé sur" -#: templates/alsijil/print/full_register.html:34 +#: templates/alsijil/print/full_register.html:38 msgid "" "\n" -" This printout is intended for archival purposes. The main copy " -"of\n" -" the class register is stored in the AlekSIS School Information\n" -" System.\n" -" " +" This printout is intended for archival purposes. The main copy of\n" +" the class register is stored in the AlekSIS School Information\n" +" System.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:41 +#: templates/alsijil/print/full_register.html:45 msgid "" "\n" -" Copies of the class register, both digital and as printout, " -"must\n" -" only be kept inside the school and/or on devices authorised by " -"the\n" -" school.\n" -" " +" Copies of the class register, both digital and as printout, must\n" +" only be kept inside the school and/or on devices authorised by the\n" +" school.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:48 +#: templates/alsijil/print/full_register.html:52 msgid "" "\n" -" The owner of the group and the headteacher confirm the above, " -"as\n" -" well as the correctness of this printout.\n" -" " +" The owner of the group and the headteacher confirm the above, as\n" +" well as the correctness of this printout.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:55 +#: templates/alsijil/print/full_register.html:62 msgid "Headteacher" +msgstr "Prof principale" + +#: templates/alsijil/print/full_register.html:69 +msgid "Abbreviations" msgstr "" -#: templates/alsijil/print/full_register.html:61 -msgid "Persons in group" +#: templates/alsijil/print/full_register.html:71 +msgid "General" msgstr "" -#: templates/alsijil/print/full_register.html:66 -msgid "No." +#: templates/alsijil/print/full_register.html:78 +msgid "Late" msgstr "" -#: templates/alsijil/print/full_register.html:67 -msgid "Last name" +#: templates/alsijil/print/full_register.html:81 +#: templates/alsijil/print/full_register.html:288 +msgid "Unexcused" +msgstr "injustifié(e)" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" msgstr "" -#: templates/alsijil/print/full_register.html:68 +#: templates/alsijil/print/full_register.html:103 +msgid "Persons in group" +msgstr "Personnes en groupe" + +#: templates/alsijil/print/full_register.html:108 +msgid "No." +msgstr "Non." + +#: templates/alsijil/print/full_register.html:109 +msgid "Last name" +msgstr "Nom de famille" + +#: templates/alsijil/print/full_register.html:110 msgid "First name" -msgstr "" +msgstr "Prénom" -#: templates/alsijil/print/full_register.html:69 +#: templates/alsijil/print/full_register.html:111 msgid "Sex" -msgstr "" +msgstr "Sexe" -#: templates/alsijil/print/full_register.html:70 +#: templates/alsijil/print/full_register.html:112 msgid "Date of birth" -msgstr "" +msgstr "Date d'anniversaire" -#: templates/alsijil/print/full_register.html:71 -#: templates/alsijil/print/full_register.html:200 -msgid "Absences" +#: templates/alsijil/print/full_register.html:113 +msgid "(a)" msgstr "" -#: templates/alsijil/print/full_register.html:72 -#: templates/alsijil/print/full_register.html:201 -msgid "Unexcused" -msgstr "" - -#: templates/alsijil/print/full_register.html:73 -#: templates/alsijil/print/full_register.html:224 -msgid "Tard." +#: templates/alsijil/print/full_register.html:119 +msgid "(b)" msgstr "" -#: templates/alsijil/print/full_register.html:95 +#: templates/alsijil/print/full_register.html:146 msgid "Teachers and lessons in group" -msgstr "" - -#: templates/alsijil/print/full_register.html:100 -#: templates/alsijil/week_view.html:48 -msgid "Subject" -msgstr "" +msgstr "Profs et cours en groupe" -#: templates/alsijil/print/full_register.html:102 +#: templates/alsijil/print/full_register.html:153 +#: templates/alsijil/print/full_register.html:184 msgid "Lesson start" -msgstr "" +msgstr "Début de cours" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:154 +#: templates/alsijil/print/full_register.html:185 msgid "Lesson end" -msgstr "" +msgstr "Fin de cours" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:155 +#: templates/alsijil/print/full_register.html:186 msgid "Per week" -msgstr "" +msgstr "Par semaine" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:176 +#, fuzzy +#| msgid "Teachers and lessons in group" +msgid "Teachers and lessons in child groups" +msgstr "Profs et cours en groupe" + +#: templates/alsijil/print/full_register.html:209 msgid "Personal overview" -msgstr "" +msgstr "Vue d'ensemble personnelle" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:211 msgid "Contact details" -msgstr "" +msgstr "Détails de contact" -#: templates/alsijil/print/full_register.html:174 +#: templates/alsijil/print/full_register.html:249 msgid "Statistics on remarks" msgstr "" -#: templates/alsijil/print/full_register.html:179 +#: templates/alsijil/print/full_register.html:254 msgid "Count" -msgstr "" +msgstr "Compter" -#: templates/alsijil/print/full_register.html:196 +#: templates/alsijil/print/full_register.html:271 msgid "Absences and tardiness" +msgstr "Absences et retards" + +#: templates/alsijil/print/full_register.html:274 +msgid "Absences" +msgstr "Absences" + +#: templates/alsijil/print/full_register.html:279 +msgid "thereof" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:297 msgid "Relevant personal notes" -msgstr "" +msgstr "Notes personnelles importantes" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:301 msgid "Date" -msgstr "" +msgstr "Date" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:302 +#: templates/alsijil/print/full_register.html:355 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:303 +#: templates/alsijil/print/full_register.html:356 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:304 +#: templates/alsijil/print/full_register.html:360 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:306 +msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:242 -#: templates/alsijil/print/full_register.html:314 -#: templates/alsijil/print/full_register.html:324 -msgid "e" -msgstr "" +#: templates/alsijil/print/full_register.html:322 +msgid "Yes" +msgstr "Oui" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" -msgstr "" +#: templates/alsijil/print/full_register.html:327 +#: templates/alsijil/print/full_register.html:409 +#: templates/alsijil/print/full_register.html:424 +msgid "e" +msgstr "e" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." -msgstr "" +#: templates/alsijil/print/full_register.html:349 +#, 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:273 +#: templates/alsijil/print/full_register.html:359 msgid "Notes" -msgstr "" +msgstr "Notes" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" +#: views.py:66 +msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: templates/alsijil/register_absence.html:5 -#: templates/alsijil/register_absence.html:6 -msgid "Manage absence" +#: views.py:80 +msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: templates/alsijil/week_view.html:6 -msgid "Week view" -msgstr "" - -#: templates/alsijil/week_view.html:21 -msgid "Select" -msgstr "" - -#: templates/alsijil/week_view.html:47 -msgid "Period" -msgstr "" +#: views.py:106 +#, fuzzy +#| msgid "Lesson documentation for calendar week" +msgid "The lesson documentation has been saved." +msgstr "Documentation de cours pour la semaine calendrier" -#: templates/alsijil/week_view.html:49 -msgid "Teachers" +#: views.py:121 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:97 -msgid "unexcused" +#: views.py:303 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" +#: views.py:419 +msgid "The absence has been saved." msgstr "" -#: templates/alsijil/week_view.html:122 -msgid "No group selected" +#: views.py:459 +msgid "The filter has been saved" msgstr "" -#: templates/alsijil/week_view.html:125 -msgid "" -"\n" -" There are no lessons for the selected group, teacher, room or " -"time.\n" -" " +#: views.py:474 +msgid "The filter has been deleted." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:497 +msgid "The excuse type has been created." msgstr "" -#: views.py:68 -msgid "" -"You are not allowed to create a lesson documentation for a lesson in the " -"future." +#: views.py:508 +msgid "The excuse type has been saved." msgstr "" -#: views.py:306 -msgid "The absence has been saved." +#: views.py:518 +msgid "The excuse type has been deleted." msgstr "" -#: views.py:344 -msgid "The filter has been saved" -msgstr "" +#~ msgid "Room" +#~ msgstr "Salle" -#: views.py:360 -msgid "The filter has been deleted." -msgstr "" +#~ msgid "List of all personal note filters" +#~ msgstr "Liste de filtres de notes personnelles" diff --git a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po index 1b9dbace2c6602f12f716c93ba7b9853400790d4..02b275330dfb4e5882c0b211538134e445f05fa6 100644 --- a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po @@ -3,60 +3,70 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-01 13:20+0200\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" -"Language: \n" +"POT-Creation-Date: 2020-07-26 16:10+0200\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" +"Language: la\n" "MIME-Version: 1.0\n" "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.0.1\n" -#: forms.py:41 -msgid "Group" +#: forms.py:25 +msgid "Homework for the next lesson" msgstr "" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:50 templates/alsijil/print/full_register.html:181 +msgid "Group" +msgstr "Grex" + +#: forms.py:56 templates/alsijil/print/full_register.html:152 +#: templates/alsijil/print/full_register.html:183 msgid "Teacher" msgstr "" -#: forms.py:57 -msgid "Room" +#: forms.py:73 +msgid "You can't select a group and a teacher both." msgstr "" -#: forms.py:70 +#: forms.py:101 msgid "Start date" msgstr "" -#: forms.py:73 +#: forms.py:102 msgid "End date" msgstr "" -#: forms.py:75 +#: forms.py:103 msgid "From period" msgstr "" -#: forms.py:77 templates/alsijil/lesson.html:58 +#: forms.py:105 templates/alsijil/class_register/lesson.html:150 msgid "Person" -msgstr "" +msgstr "Persona" -#: forms.py:79 templates/alsijil/lesson.html:59 -#: templates/alsijil/print/full_register.html:223 -#: templates/alsijil/week_view.html:96 +#: forms.py:107 templates/alsijil/class_register/lesson.html:151 +#: templates/alsijil/class_register/week_view.html:93 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:305 msgid "Absent" msgstr "" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:153 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:280 msgid "Excused" msgstr "" -#: forms.py:81 templates/alsijil/lesson.html:62 -#: templates/alsijil/print/full_register.html:225 +#: forms.py:109 templates/alsijil/class_register/lesson.html:155 +#: templates/alsijil/class_register/lesson.html:195 +#: templates/alsijil/print/full_register.html:307 msgid "Remarks" msgstr "" @@ -76,306 +86,497 @@ msgstr "" msgid "Register absence" msgstr "" -#: menus.py:34 +#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8 msgid "Personal note filters" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" +msgstr "" + +#: models.py:18 +#, fuzzy +#| msgid "First name" +msgid "Short name" +msgstr "Primus nomen" + +#: models.py:20 +msgid "Name" +msgstr "" + +#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154 +#: templates/alsijil/class_register/lesson.html:187 +msgid "Excuse type" +msgstr "" + +#: models.py:70 +#, fuzzy +#| msgid "Person" +msgid "Personal note" +msgstr "Persona" + +#: models.py:71 templates/alsijil/class_register/lesson.html:143 +#: templates/alsijil/class_register/week_view.html:88 +msgid "Personal notes" +msgstr "" + +#: models.py:94 templates/alsijil/print/full_register.html:357 msgid "Lesson topic" msgstr "" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:95 templates/alsijil/print/full_register.html:358 msgid "Homework" msgstr "" -#: models.py:68 +#: models.py:96 +#, fuzzy +#| msgid "Group" +msgid "Group note" +msgstr "Grex" + +#: models.py:99 templates/alsijil/class_register/lesson.html:119 +msgid "Lesson documentation" +msgstr "" + +#: models.py:100 +msgid "Lesson documentations" +msgstr "" + +#: models.py:114 msgid "Identifier" msgstr "" -#: models.py:71 templates/alsijil/print/full_register.html:178 +#: models.py:120 templates/alsijil/print/full_register.html:253 msgid "Description" -msgstr "" +msgstr "Descriptio" -#: models.py:74 +#: models.py:124 msgid "Match expression" msgstr "" -#: tables.py:14 +#: models.py:128 +msgid "Personal note filter" +msgstr "" + +#: tables.py:17 tables.py:31 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 +#: tables.py:37 +msgid "Delete" +msgstr "" + +#: templates/alsijil/absences/register.html:5 +#: templates/alsijil/absences/register.html:6 +msgid "Manage absence" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:6 msgid "Lesson" msgstr "" -#: templates/alsijil/lesson.html:34 -msgid "Lesson documentation" +#: templates/alsijil/class_register/lesson.html:14 +#: templates/alsijil/class_register/lesson.html:71 +#, python-format +msgid "%(period)s. period" msgstr "" -#: templates/alsijil/lesson.html:43 -msgid "Change history" +#: templates/alsijil/class_register/lesson.html:38 +msgid "Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:70 +msgid "Overview: Previous lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:77 +msgid "Lesson topic of previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:84 +msgid "Homework for this lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:91 +msgid "Group notes for previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:98 +msgid "Absent persons:" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:105 +msgid "Late persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:130 +msgid "Change history" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:152 +#: templates/alsijil/print/full_register.html:292 msgid "Tardiness" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:5 -#: templates/alsijil/manage_personal_note_filter.html:6 -msgid "Manage personal note filter" +#: templates/alsijil/class_register/lesson.html:173 +msgid "Tardiness (in m)" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:11 -msgid "Delete filter" +#: templates/alsijil/class_register/week_view.html:6 +msgid "Week view" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:33 +#, python-format +msgid "CW %(week)s: %(instance)s" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:51 +#: templates/alsijil/print/full_register.html:151 +#: templates/alsijil/print/full_register.html:182 +msgid "Subject" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:52 +msgid "Teachers" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:94 +msgid "unexcused" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:97 +msgid "Summed up tardiness" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:121 +msgid "No lessons available" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:124 +msgid "" +"\n" +" There are no lessons for the selected group or teacher in this week.\n" +" " +msgstr "" + +#: templates/alsijil/excuse_type/create.html:6 +#: templates/alsijil/excuse_type/create.html:7 +#: templates/alsijil/excuse_type/list.html:16 +msgid "Create excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/edit.html:6 +#: templates/alsijil/excuse_type/edit.html:7 +msgid "Edit excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/warning.html:5 +msgid "" +"\n" +" This function should only be used to define alternatives to the default excuse which also will be counted extra.\n" +" Don't use this to create a default excuse or if you don't divide between different types of excuse.\n" +" " +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:114 +msgid "(e)" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:118 +msgid "(u)" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" msgstr "" -#: templates/alsijil/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" +#: templates/alsijil/partials/lesson_status_icon.html:12 +msgid "Missing data" msgstr "" -#: templates/alsijil/personal_note_filters.html:12 +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Pending" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +#: templates/alsijil/print/full_register.html:392 +msgid "Lesson cancelled" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:20 +msgid "Substitution" +msgstr "" + +#: templates/alsijil/personal_note_filter/list.html:7 +msgid "All personal note filters" +msgstr "" + +#: templates/alsijil/personal_note_filter/list.html:12 msgid "Add filter" msgstr "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/personal_note_filter/manage.html:7 +#: templates/alsijil/personal_note_filter/manage.html:14 +msgid "Update personal note filter" +msgstr "" + +#: templates/alsijil/personal_note_filter/manage.html:9 +#: templates/alsijil/personal_note_filter/manage.html:16 +msgid "Create personal note filter" +msgstr "" + +#: templates/alsijil/personal_note_filter/manage.html:29 +msgid "Delete filter" +msgstr "" + +#: templates/alsijil/print/full_register.html:6 +msgid "Class register:" msgstr "" #: templates/alsijil/print/full_register.html:26 +#: templates/alsijil/print/full_register.html:59 +msgid "Owners" +msgstr "" + +#: templates/alsijil/print/full_register.html:30 msgid "Printed on" msgstr "" -#: templates/alsijil/print/full_register.html:34 +#: templates/alsijil/print/full_register.html:38 msgid "" "\n" -" This printout is intended for archival purposes. The main copy " -"of\n" -" the class register is stored in the AlekSIS School Information\n" -" System.\n" -" " +" This printout is intended for archival purposes. The main copy of\n" +" the class register is stored in the AlekSIS School Information\n" +" System.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:41 +#: templates/alsijil/print/full_register.html:45 msgid "" "\n" -" Copies of the class register, both digital and as printout, " -"must\n" -" only be kept inside the school and/or on devices authorised by " -"the\n" -" school.\n" -" " +" Copies of the class register, both digital and as printout, must\n" +" only be kept inside the school and/or on devices authorised by the\n" +" school.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:48 +#: templates/alsijil/print/full_register.html:52 msgid "" "\n" -" The owner of the group and the headteacher confirm the above, " -"as\n" -" well as the correctness of this printout.\n" -" " +" The owner of the group and the headteacher confirm the above, as\n" +" well as the correctness of this printout.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:55 +#: templates/alsijil/print/full_register.html:62 msgid "Headteacher" msgstr "" -#: templates/alsijil/print/full_register.html:61 -msgid "Persons in group" +#: templates/alsijil/print/full_register.html:69 +msgid "Abbreviations" msgstr "" -#: templates/alsijil/print/full_register.html:66 -msgid "No." +#: templates/alsijil/print/full_register.html:71 +msgid "General" msgstr "" -#: templates/alsijil/print/full_register.html:67 -msgid "Last name" +#: templates/alsijil/print/full_register.html:78 +msgid "Late" msgstr "" -#: templates/alsijil/print/full_register.html:68 -msgid "First name" +#: templates/alsijil/print/full_register.html:81 +#: templates/alsijil/print/full_register.html:288 +msgid "Unexcused" msgstr "" -#: templates/alsijil/print/full_register.html:69 -msgid "Sex" +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" msgstr "" -#: templates/alsijil/print/full_register.html:70 -msgid "Date of birth" +#: templates/alsijil/print/full_register.html:103 +msgid "Persons in group" msgstr "" -#: templates/alsijil/print/full_register.html:71 -#: templates/alsijil/print/full_register.html:200 -msgid "Absences" +#: templates/alsijil/print/full_register.html:108 +msgid "No." msgstr "" -#: templates/alsijil/print/full_register.html:72 -#: templates/alsijil/print/full_register.html:201 -msgid "Unexcused" -msgstr "" +#: templates/alsijil/print/full_register.html:109 +msgid "Last name" +msgstr "Secondus nomen" -#: templates/alsijil/print/full_register.html:73 -#: templates/alsijil/print/full_register.html:224 -msgid "Tard." +#: templates/alsijil/print/full_register.html:110 +msgid "First name" +msgstr "Primus nomen" + +#: templates/alsijil/print/full_register.html:111 +msgid "Sex" +msgstr "Genus" + +#: templates/alsijil/print/full_register.html:112 +msgid "Date of birth" +msgstr "Dies natalis" + +#: templates/alsijil/print/full_register.html:113 +msgid "(a)" msgstr "" -#: templates/alsijil/print/full_register.html:95 -msgid "Teachers and lessons in group" +#: templates/alsijil/print/full_register.html:119 +msgid "(b)" msgstr "" -#: templates/alsijil/print/full_register.html:100 -#: templates/alsijil/week_view.html:48 -msgid "Subject" +#: templates/alsijil/print/full_register.html:146 +msgid "Teachers and lessons in group" msgstr "" -#: templates/alsijil/print/full_register.html:102 +#: templates/alsijil/print/full_register.html:153 +#: templates/alsijil/print/full_register.html:184 msgid "Lesson start" msgstr "" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:154 +#: templates/alsijil/print/full_register.html:185 msgid "Lesson end" msgstr "" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:155 +#: templates/alsijil/print/full_register.html:186 msgid "Per week" msgstr "" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:176 +msgid "Teachers and lessons in child groups" +msgstr "" + +#: templates/alsijil/print/full_register.html:209 msgid "Personal overview" msgstr "" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:211 msgid "Contact details" msgstr "" -#: templates/alsijil/print/full_register.html:174 +#: templates/alsijil/print/full_register.html:249 msgid "Statistics on remarks" msgstr "" -#: templates/alsijil/print/full_register.html:179 +#: templates/alsijil/print/full_register.html:254 msgid "Count" msgstr "" -#: templates/alsijil/print/full_register.html:196 +#: templates/alsijil/print/full_register.html:271 msgid "Absences and tardiness" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:274 +msgid "Absences" +msgstr "" + +#: templates/alsijil/print/full_register.html:279 +msgid "thereof" +msgstr "" + +#: templates/alsijil/print/full_register.html:297 msgid "Relevant personal notes" msgstr "" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:301 msgid "Date" -msgstr "" +msgstr "dies" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:302 +#: templates/alsijil/print/full_register.html:355 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:303 +#: templates/alsijil/print/full_register.html:356 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:304 +#: templates/alsijil/print/full_register.html:360 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:306 +msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:242 -#: templates/alsijil/print/full_register.html:314 -#: templates/alsijil/print/full_register.html:324 -msgid "e" +#: templates/alsijil/print/full_register.html:322 +msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" +#: templates/alsijil/print/full_register.html:327 +#: templates/alsijil/print/full_register.html:409 +#: templates/alsijil/print/full_register.html:424 +msgid "e" msgstr "" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." +#: templates/alsijil/print/full_register.html:349 +msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:359 msgid "Notes" msgstr "" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" -msgstr "" - -#: templates/alsijil/register_absence.html:5 -#: templates/alsijil/register_absence.html:6 -msgid "Manage absence" -msgstr "" - -#: templates/alsijil/week_view.html:6 -msgid "Week view" -msgstr "" - -#: templates/alsijil/week_view.html:21 -msgid "Select" -msgstr "" - -#: templates/alsijil/week_view.html:47 -msgid "Period" +#: views.py:66 +msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: templates/alsijil/week_view.html:49 -msgid "Teachers" +#: views.py:80 +msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: templates/alsijil/week_view.html:97 -msgid "unexcused" +#: views.py:106 +msgid "The lesson documentation has been saved." msgstr "" -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" +#: views.py:121 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:122 -msgid "No group selected" +#: views.py:303 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:125 -msgid "" -"\n" -" There are no lessons for the selected group, teacher, room or " -"time.\n" -" " +#: views.py:419 +msgid "The absence has been saved." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:459 +msgid "The filter has been saved" msgstr "" -#: views.py:68 -msgid "" -"You are not allowed to create a lesson documentation for a lesson in the " -"future." +#: views.py:474 +msgid "The filter has been deleted." msgstr "" -#: views.py:306 -msgid "The absence has been saved." +#: views.py:497 +msgid "The excuse type has been created." msgstr "" -#: views.py:344 -msgid "The filter has been saved" +#: views.py:508 +msgid "The excuse type has been saved." msgstr "" -#: views.py:360 -msgid "The filter has been deleted." +#: views.py:518 +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 1b9dbace2c6602f12f716c93ba7b9853400790d4..c6b337e73f6b33c3b537b7070f556dba6916bf52 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-04-01 13:20+0200\n" +"POT-Creation-Date: 2020-07-26 16:10+0200\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,46 +17,55 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: forms.py:41 +#: forms.py:25 +msgid "Homework for the next lesson" +msgstr "" + +#: forms.py:50 templates/alsijil/print/full_register.html:181 msgid "Group" msgstr "" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:56 templates/alsijil/print/full_register.html:152 +#: templates/alsijil/print/full_register.html:183 msgid "Teacher" msgstr "" -#: forms.py:57 -msgid "Room" +#: forms.py:73 +msgid "You can't select a group and a teacher both." msgstr "" -#: forms.py:70 +#: forms.py:101 msgid "Start date" msgstr "" -#: forms.py:73 +#: forms.py:102 msgid "End date" msgstr "" -#: forms.py:75 +#: forms.py:103 msgid "From period" msgstr "" -#: forms.py:77 templates/alsijil/lesson.html:58 +#: forms.py:105 templates/alsijil/class_register/lesson.html:150 msgid "Person" msgstr "" -#: forms.py:79 templates/alsijil/lesson.html:59 -#: templates/alsijil/print/full_register.html:223 -#: templates/alsijil/week_view.html:96 +#: forms.py:107 templates/alsijil/class_register/lesson.html:151 +#: templates/alsijil/class_register/week_view.html:93 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:305 msgid "Absent" msgstr "" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:153 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:280 msgid "Excused" msgstr "" -#: forms.py:81 templates/alsijil/lesson.html:62 -#: templates/alsijil/print/full_register.html:225 +#: forms.py:109 templates/alsijil/class_register/lesson.html:155 +#: templates/alsijil/class_register/lesson.html:195 +#: templates/alsijil/print/full_register.html:307 msgid "Remarks" msgstr "" @@ -76,306 +85,491 @@ msgstr "" msgid "Register absence" msgstr "" -#: menus.py:34 +#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8 msgid "Personal note filters" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" +msgstr "" + +#: models.py:18 +msgid "Short name" +msgstr "" + +#: models.py:20 +msgid "Name" +msgstr "" + +#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154 +#: templates/alsijil/class_register/lesson.html:187 +msgid "Excuse type" +msgstr "" + +#: models.py:70 +msgid "Personal note" +msgstr "" + +#: models.py:71 templates/alsijil/class_register/lesson.html:143 +#: templates/alsijil/class_register/week_view.html:88 +msgid "Personal notes" +msgstr "" + +#: models.py:94 templates/alsijil/print/full_register.html:357 msgid "Lesson topic" msgstr "" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:95 templates/alsijil/print/full_register.html:358 msgid "Homework" msgstr "" -#: models.py:68 +#: models.py:96 +msgid "Group note" +msgstr "" + +#: models.py:99 templates/alsijil/class_register/lesson.html:119 +msgid "Lesson documentation" +msgstr "" + +#: models.py:100 +msgid "Lesson documentations" +msgstr "" + +#: models.py:114 msgid "Identifier" msgstr "" -#: models.py:71 templates/alsijil/print/full_register.html:178 +#: models.py:120 templates/alsijil/print/full_register.html:253 msgid "Description" msgstr "" -#: models.py:74 +#: models.py:124 msgid "Match expression" msgstr "" -#: tables.py:14 +#: models.py:128 +msgid "Personal note filter" +msgstr "" + +#: tables.py:17 tables.py:31 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 +#: tables.py:37 +msgid "Delete" +msgstr "" + +#: templates/alsijil/absences/register.html:5 +#: templates/alsijil/absences/register.html:6 +msgid "Manage absence" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:6 msgid "Lesson" msgstr "" -#: templates/alsijil/lesson.html:34 -msgid "Lesson documentation" +#: templates/alsijil/class_register/lesson.html:14 +#: templates/alsijil/class_register/lesson.html:71 +#, python-format +msgid "%(period)s. period" msgstr "" -#: templates/alsijil/lesson.html:43 -msgid "Change history" +#: templates/alsijil/class_register/lesson.html:38 +msgid "Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:70 +msgid "Overview: Previous lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:77 +msgid "Lesson topic of previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:84 +msgid "Homework for this lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:91 +msgid "Group notes for previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:98 +msgid "Absent persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:105 +msgid "Late persons:" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:130 +msgid "Change history" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:152 +#: templates/alsijil/print/full_register.html:292 msgid "Tardiness" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:5 -#: templates/alsijil/manage_personal_note_filter.html:6 -msgid "Manage personal note filter" +#: templates/alsijil/class_register/lesson.html:173 +msgid "Tardiness (in m)" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:11 -msgid "Delete filter" +#: templates/alsijil/class_register/week_view.html:6 +msgid "Week view" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:33 +#, python-format +msgid "CW %(week)s: %(instance)s" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:51 +#: templates/alsijil/print/full_register.html:151 +#: templates/alsijil/print/full_register.html:182 +msgid "Subject" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:52 +msgid "Teachers" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:94 +msgid "unexcused" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:97 +msgid "Summed up tardiness" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:121 +msgid "No lessons available" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:124 +msgid "" +"\n" +" There are no lessons for the selected group or teacher in this week.\n" +" " +msgstr "" + +#: templates/alsijil/excuse_type/create.html:6 +#: templates/alsijil/excuse_type/create.html:7 +#: templates/alsijil/excuse_type/list.html:16 +msgid "Create excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/edit.html:6 +#: templates/alsijil/excuse_type/edit.html:7 +msgid "Edit excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/warning.html:5 +msgid "" +"\n" +" This function should only be used to define alternatives to the default excuse which also will be counted extra.\n" +" Don't use this to create a default excuse or if you don't divide between different types of excuse.\n" +" " +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:114 +msgid "(e)" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:118 +msgid "(u)" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" msgstr "" -#: templates/alsijil/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" +#: templates/alsijil/partials/lesson_status_icon.html:12 +msgid "Missing data" msgstr "" -#: templates/alsijil/personal_note_filters.html:12 +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Pending" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +#: templates/alsijil/print/full_register.html:392 +msgid "Lesson cancelled" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:20 +msgid "Substitution" +msgstr "" + +#: templates/alsijil/personal_note_filter/list.html:7 +msgid "All personal note filters" +msgstr "" + +#: templates/alsijil/personal_note_filter/list.html:12 msgid "Add filter" msgstr "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/personal_note_filter/manage.html:7 +#: templates/alsijil/personal_note_filter/manage.html:14 +msgid "Update personal note filter" +msgstr "" + +#: templates/alsijil/personal_note_filter/manage.html:9 +#: templates/alsijil/personal_note_filter/manage.html:16 +msgid "Create personal note filter" +msgstr "" + +#: templates/alsijil/personal_note_filter/manage.html:29 +msgid "Delete filter" +msgstr "" + +#: templates/alsijil/print/full_register.html:6 +msgid "Class register:" msgstr "" #: templates/alsijil/print/full_register.html:26 +#: templates/alsijil/print/full_register.html:59 +msgid "Owners" +msgstr "" + +#: templates/alsijil/print/full_register.html:30 msgid "Printed on" msgstr "" -#: templates/alsijil/print/full_register.html:34 +#: templates/alsijil/print/full_register.html:38 msgid "" "\n" -" This printout is intended for archival purposes. The main copy " -"of\n" -" the class register is stored in the AlekSIS School Information\n" -" System.\n" -" " +" This printout is intended for archival purposes. The main copy of\n" +" the class register is stored in the AlekSIS School Information\n" +" System.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:41 +#: templates/alsijil/print/full_register.html:45 msgid "" "\n" -" Copies of the class register, both digital and as printout, " -"must\n" -" only be kept inside the school and/or on devices authorised by " -"the\n" -" school.\n" -" " +" Copies of the class register, both digital and as printout, must\n" +" only be kept inside the school and/or on devices authorised by the\n" +" school.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:48 +#: templates/alsijil/print/full_register.html:52 msgid "" "\n" -" The owner of the group and the headteacher confirm the above, " -"as\n" -" well as the correctness of this printout.\n" -" " +" The owner of the group and the headteacher confirm the above, as\n" +" well as the correctness of this printout.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:55 +#: templates/alsijil/print/full_register.html:62 msgid "Headteacher" msgstr "" -#: templates/alsijil/print/full_register.html:61 +#: templates/alsijil/print/full_register.html:69 +msgid "Abbreviations" +msgstr "" + +#: templates/alsijil/print/full_register.html:71 +msgid "General" +msgstr "" + +#: templates/alsijil/print/full_register.html:78 +msgid "Late" +msgstr "" + +#: templates/alsijil/print/full_register.html:81 +#: templates/alsijil/print/full_register.html:288 +msgid "Unexcused" +msgstr "" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" +msgstr "" + +#: templates/alsijil/print/full_register.html:103 msgid "Persons in group" msgstr "" -#: templates/alsijil/print/full_register.html:66 +#: templates/alsijil/print/full_register.html:108 msgid "No." msgstr "" -#: templates/alsijil/print/full_register.html:67 +#: templates/alsijil/print/full_register.html:109 msgid "Last name" msgstr "" -#: templates/alsijil/print/full_register.html:68 +#: templates/alsijil/print/full_register.html:110 msgid "First name" msgstr "" -#: templates/alsijil/print/full_register.html:69 +#: templates/alsijil/print/full_register.html:111 msgid "Sex" msgstr "" -#: templates/alsijil/print/full_register.html:70 +#: templates/alsijil/print/full_register.html:112 msgid "Date of birth" msgstr "" -#: templates/alsijil/print/full_register.html:71 -#: templates/alsijil/print/full_register.html:200 -msgid "Absences" +#: templates/alsijil/print/full_register.html:113 +msgid "(a)" msgstr "" -#: templates/alsijil/print/full_register.html:72 -#: templates/alsijil/print/full_register.html:201 -msgid "Unexcused" +#: templates/alsijil/print/full_register.html:119 +msgid "(b)" msgstr "" -#: templates/alsijil/print/full_register.html:73 -#: templates/alsijil/print/full_register.html:224 -msgid "Tard." -msgstr "" - -#: templates/alsijil/print/full_register.html:95 +#: templates/alsijil/print/full_register.html:146 msgid "Teachers and lessons in group" msgstr "" -#: templates/alsijil/print/full_register.html:100 -#: templates/alsijil/week_view.html:48 -msgid "Subject" -msgstr "" - -#: templates/alsijil/print/full_register.html:102 +#: templates/alsijil/print/full_register.html:153 +#: templates/alsijil/print/full_register.html:184 msgid "Lesson start" msgstr "" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:154 +#: templates/alsijil/print/full_register.html:185 msgid "Lesson end" msgstr "" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:155 +#: templates/alsijil/print/full_register.html:186 msgid "Per week" msgstr "" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:176 +msgid "Teachers and lessons in child groups" +msgstr "" + +#: templates/alsijil/print/full_register.html:209 msgid "Personal overview" msgstr "" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:211 msgid "Contact details" msgstr "" -#: templates/alsijil/print/full_register.html:174 +#: templates/alsijil/print/full_register.html:249 msgid "Statistics on remarks" msgstr "" -#: templates/alsijil/print/full_register.html:179 +#: templates/alsijil/print/full_register.html:254 msgid "Count" msgstr "" -#: templates/alsijil/print/full_register.html:196 +#: templates/alsijil/print/full_register.html:271 msgid "Absences and tardiness" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:274 +msgid "Absences" +msgstr "" + +#: templates/alsijil/print/full_register.html:279 +msgid "thereof" +msgstr "" + +#: templates/alsijil/print/full_register.html:297 msgid "Relevant personal notes" msgstr "" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:301 msgid "Date" msgstr "" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:302 +#: templates/alsijil/print/full_register.html:355 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:303 +#: templates/alsijil/print/full_register.html:356 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:304 +#: templates/alsijil/print/full_register.html:360 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:306 +msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:242 -#: templates/alsijil/print/full_register.html:314 -#: templates/alsijil/print/full_register.html:324 -msgid "e" +#: templates/alsijil/print/full_register.html:322 +msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" +#: templates/alsijil/print/full_register.html:327 +#: templates/alsijil/print/full_register.html:409 +#: templates/alsijil/print/full_register.html:424 +msgid "e" msgstr "" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." +#: templates/alsijil/print/full_register.html:349 +msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:359 msgid "Notes" msgstr "" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" +#: views.py:66 +msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: templates/alsijil/register_absence.html:5 -#: templates/alsijil/register_absence.html:6 -msgid "Manage absence" +#: views.py:80 +msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: templates/alsijil/week_view.html:6 -msgid "Week view" +#: views.py:106 +msgid "The lesson documentation has been saved." msgstr "" -#: templates/alsijil/week_view.html:21 -msgid "Select" +#: views.py:121 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:47 -msgid "Period" +#: views.py:303 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:49 -msgid "Teachers" -msgstr "" - -#: templates/alsijil/week_view.html:97 -msgid "unexcused" -msgstr "" - -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" -msgstr "" - -#: templates/alsijil/week_view.html:122 -msgid "No group selected" -msgstr "" - -#: templates/alsijil/week_view.html:125 -msgid "" -"\n" -" There are no lessons for the selected group, teacher, room or " -"time.\n" -" " +#: views.py:419 +msgid "The absence has been saved." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:459 +msgid "The filter has been saved" msgstr "" -#: views.py:68 -msgid "" -"You are not allowed to create a lesson documentation for a lesson in the " -"future." +#: views.py:474 +msgid "The filter has been deleted." msgstr "" -#: views.py:306 -msgid "The absence has been saved." +#: views.py:497 +msgid "The excuse type has been created." msgstr "" -#: views.py:344 -msgid "The filter has been saved" +#: views.py:508 +msgid "The excuse type has been saved." msgstr "" -#: views.py:360 -msgid "The filter has been deleted." +#: views.py:518 +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 1b9dbace2c6602f12f716c93ba7b9853400790d4..c6b337e73f6b33c3b537b7070f556dba6916bf52 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-04-01 13:20+0200\n" +"POT-Creation-Date: 2020-07-26 16:10+0200\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,46 +17,55 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: forms.py:41 +#: forms.py:25 +msgid "Homework for the next lesson" +msgstr "" + +#: forms.py:50 templates/alsijil/print/full_register.html:181 msgid "Group" msgstr "" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:56 templates/alsijil/print/full_register.html:152 +#: templates/alsijil/print/full_register.html:183 msgid "Teacher" msgstr "" -#: forms.py:57 -msgid "Room" +#: forms.py:73 +msgid "You can't select a group and a teacher both." msgstr "" -#: forms.py:70 +#: forms.py:101 msgid "Start date" msgstr "" -#: forms.py:73 +#: forms.py:102 msgid "End date" msgstr "" -#: forms.py:75 +#: forms.py:103 msgid "From period" msgstr "" -#: forms.py:77 templates/alsijil/lesson.html:58 +#: forms.py:105 templates/alsijil/class_register/lesson.html:150 msgid "Person" msgstr "" -#: forms.py:79 templates/alsijil/lesson.html:59 -#: templates/alsijil/print/full_register.html:223 -#: templates/alsijil/week_view.html:96 +#: forms.py:107 templates/alsijil/class_register/lesson.html:151 +#: templates/alsijil/class_register/week_view.html:93 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:305 msgid "Absent" msgstr "" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:153 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:280 msgid "Excused" msgstr "" -#: forms.py:81 templates/alsijil/lesson.html:62 -#: templates/alsijil/print/full_register.html:225 +#: forms.py:109 templates/alsijil/class_register/lesson.html:155 +#: templates/alsijil/class_register/lesson.html:195 +#: templates/alsijil/print/full_register.html:307 msgid "Remarks" msgstr "" @@ -76,306 +85,491 @@ msgstr "" msgid "Register absence" msgstr "" -#: menus.py:34 +#: menus.py:34 models.py:129 templates/alsijil/personal_note_filter/list.html:8 msgid "Personal note filters" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: menus.py:40 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" +msgstr "" + +#: models.py:18 +msgid "Short name" +msgstr "" + +#: models.py:20 +msgid "Name" +msgstr "" + +#: models.py:31 models.py:59 templates/alsijil/class_register/lesson.html:154 +#: templates/alsijil/class_register/lesson.html:187 +msgid "Excuse type" +msgstr "" + +#: models.py:70 +msgid "Personal note" +msgstr "" + +#: models.py:71 templates/alsijil/class_register/lesson.html:143 +#: templates/alsijil/class_register/week_view.html:88 +msgid "Personal notes" +msgstr "" + +#: models.py:94 templates/alsijil/print/full_register.html:357 msgid "Lesson topic" msgstr "" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:95 templates/alsijil/print/full_register.html:358 msgid "Homework" msgstr "" -#: models.py:68 +#: models.py:96 +msgid "Group note" +msgstr "" + +#: models.py:99 templates/alsijil/class_register/lesson.html:119 +msgid "Lesson documentation" +msgstr "" + +#: models.py:100 +msgid "Lesson documentations" +msgstr "" + +#: models.py:114 msgid "Identifier" msgstr "" -#: models.py:71 templates/alsijil/print/full_register.html:178 +#: models.py:120 templates/alsijil/print/full_register.html:253 msgid "Description" msgstr "" -#: models.py:74 +#: models.py:124 msgid "Match expression" msgstr "" -#: tables.py:14 +#: models.py:128 +msgid "Personal note filter" +msgstr "" + +#: tables.py:17 tables.py:31 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 +#: tables.py:37 +msgid "Delete" +msgstr "" + +#: templates/alsijil/absences/register.html:5 +#: templates/alsijil/absences/register.html:6 +msgid "Manage absence" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:6 msgid "Lesson" msgstr "" -#: templates/alsijil/lesson.html:34 -msgid "Lesson documentation" +#: templates/alsijil/class_register/lesson.html:14 +#: templates/alsijil/class_register/lesson.html:71 +#, python-format +msgid "%(period)s. period" msgstr "" -#: templates/alsijil/lesson.html:43 -msgid "Change history" +#: templates/alsijil/class_register/lesson.html:38 +msgid "Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:70 +msgid "Overview: Previous lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:77 +msgid "Lesson topic of previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:84 +msgid "Homework for this lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:91 +msgid "Group notes for previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:98 +msgid "Absent persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:105 +msgid "Late persons:" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:130 +msgid "Change history" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:152 +#: templates/alsijil/print/full_register.html:292 msgid "Tardiness" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:5 -#: templates/alsijil/manage_personal_note_filter.html:6 -msgid "Manage personal note filter" +#: templates/alsijil/class_register/lesson.html:173 +msgid "Tardiness (in m)" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:11 -msgid "Delete filter" +#: templates/alsijil/class_register/week_view.html:6 +msgid "Week view" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:33 +#, python-format +msgid "CW %(week)s: %(instance)s" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:51 +#: templates/alsijil/print/full_register.html:151 +#: templates/alsijil/print/full_register.html:182 +msgid "Subject" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:52 +msgid "Teachers" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:94 +msgid "unexcused" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:97 +msgid "Summed up tardiness" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:121 +msgid "No lessons available" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:124 +msgid "" +"\n" +" There are no lessons for the selected group or teacher in this week.\n" +" " +msgstr "" + +#: templates/alsijil/excuse_type/create.html:6 +#: templates/alsijil/excuse_type/create.html:7 +#: templates/alsijil/excuse_type/list.html:16 +msgid "Create excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/edit.html:6 +#: templates/alsijil/excuse_type/edit.html:7 +msgid "Edit excuse type" +msgstr "" + +#: templates/alsijil/excuse_type/warning.html:5 +msgid "" +"\n" +" This function should only be used to define alternatives to the default excuse which also will be counted extra.\n" +" Don't use this to create a default excuse or if you don't divide between different types of excuse.\n" +" " +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:114 +msgid "(e)" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:118 +msgid "(u)" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" msgstr "" -#: templates/alsijil/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" +#: templates/alsijil/partials/lesson_status_icon.html:12 +msgid "Missing data" msgstr "" -#: templates/alsijil/personal_note_filters.html:12 +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Pending" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +#: templates/alsijil/print/full_register.html:392 +msgid "Lesson cancelled" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:20 +msgid "Substitution" +msgstr "" + +#: templates/alsijil/personal_note_filter/list.html:7 +msgid "All personal note filters" +msgstr "" + +#: templates/alsijil/personal_note_filter/list.html:12 msgid "Add filter" msgstr "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/personal_note_filter/manage.html:7 +#: templates/alsijil/personal_note_filter/manage.html:14 +msgid "Update personal note filter" +msgstr "" + +#: templates/alsijil/personal_note_filter/manage.html:9 +#: templates/alsijil/personal_note_filter/manage.html:16 +msgid "Create personal note filter" +msgstr "" + +#: templates/alsijil/personal_note_filter/manage.html:29 +msgid "Delete filter" +msgstr "" + +#: templates/alsijil/print/full_register.html:6 +msgid "Class register:" msgstr "" #: templates/alsijil/print/full_register.html:26 +#: templates/alsijil/print/full_register.html:59 +msgid "Owners" +msgstr "" + +#: templates/alsijil/print/full_register.html:30 msgid "Printed on" msgstr "" -#: templates/alsijil/print/full_register.html:34 +#: templates/alsijil/print/full_register.html:38 msgid "" "\n" -" This printout is intended for archival purposes. The main copy " -"of\n" -" the class register is stored in the AlekSIS School Information\n" -" System.\n" -" " +" This printout is intended for archival purposes. The main copy of\n" +" the class register is stored in the AlekSIS School Information\n" +" System.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:41 +#: templates/alsijil/print/full_register.html:45 msgid "" "\n" -" Copies of the class register, both digital and as printout, " -"must\n" -" only be kept inside the school and/or on devices authorised by " -"the\n" -" school.\n" -" " +" Copies of the class register, both digital and as printout, must\n" +" only be kept inside the school and/or on devices authorised by the\n" +" school.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:48 +#: templates/alsijil/print/full_register.html:52 msgid "" "\n" -" The owner of the group and the headteacher confirm the above, " -"as\n" -" well as the correctness of this printout.\n" -" " +" The owner of the group and the headteacher confirm the above, as\n" +" well as the correctness of this printout.\n" +" " msgstr "" -#: templates/alsijil/print/full_register.html:55 +#: templates/alsijil/print/full_register.html:62 msgid "Headteacher" msgstr "" -#: templates/alsijil/print/full_register.html:61 +#: templates/alsijil/print/full_register.html:69 +msgid "Abbreviations" +msgstr "" + +#: templates/alsijil/print/full_register.html:71 +msgid "General" +msgstr "" + +#: templates/alsijil/print/full_register.html:78 +msgid "Late" +msgstr "" + +#: templates/alsijil/print/full_register.html:81 +#: templates/alsijil/print/full_register.html:288 +msgid "Unexcused" +msgstr "" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" +msgstr "" + +#: templates/alsijil/print/full_register.html:103 msgid "Persons in group" msgstr "" -#: templates/alsijil/print/full_register.html:66 +#: templates/alsijil/print/full_register.html:108 msgid "No." msgstr "" -#: templates/alsijil/print/full_register.html:67 +#: templates/alsijil/print/full_register.html:109 msgid "Last name" msgstr "" -#: templates/alsijil/print/full_register.html:68 +#: templates/alsijil/print/full_register.html:110 msgid "First name" msgstr "" -#: templates/alsijil/print/full_register.html:69 +#: templates/alsijil/print/full_register.html:111 msgid "Sex" msgstr "" -#: templates/alsijil/print/full_register.html:70 +#: templates/alsijil/print/full_register.html:112 msgid "Date of birth" msgstr "" -#: templates/alsijil/print/full_register.html:71 -#: templates/alsijil/print/full_register.html:200 -msgid "Absences" +#: templates/alsijil/print/full_register.html:113 +msgid "(a)" msgstr "" -#: templates/alsijil/print/full_register.html:72 -#: templates/alsijil/print/full_register.html:201 -msgid "Unexcused" +#: templates/alsijil/print/full_register.html:119 +msgid "(b)" msgstr "" -#: templates/alsijil/print/full_register.html:73 -#: templates/alsijil/print/full_register.html:224 -msgid "Tard." -msgstr "" - -#: templates/alsijil/print/full_register.html:95 +#: templates/alsijil/print/full_register.html:146 msgid "Teachers and lessons in group" msgstr "" -#: templates/alsijil/print/full_register.html:100 -#: templates/alsijil/week_view.html:48 -msgid "Subject" -msgstr "" - -#: templates/alsijil/print/full_register.html:102 +#: templates/alsijil/print/full_register.html:153 +#: templates/alsijil/print/full_register.html:184 msgid "Lesson start" msgstr "" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:154 +#: templates/alsijil/print/full_register.html:185 msgid "Lesson end" msgstr "" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:155 +#: templates/alsijil/print/full_register.html:186 msgid "Per week" msgstr "" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:176 +msgid "Teachers and lessons in child groups" +msgstr "" + +#: templates/alsijil/print/full_register.html:209 msgid "Personal overview" msgstr "" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:211 msgid "Contact details" msgstr "" -#: templates/alsijil/print/full_register.html:174 +#: templates/alsijil/print/full_register.html:249 msgid "Statistics on remarks" msgstr "" -#: templates/alsijil/print/full_register.html:179 +#: templates/alsijil/print/full_register.html:254 msgid "Count" msgstr "" -#: templates/alsijil/print/full_register.html:196 +#: templates/alsijil/print/full_register.html:271 msgid "Absences and tardiness" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:274 +msgid "Absences" +msgstr "" + +#: templates/alsijil/print/full_register.html:279 +msgid "thereof" +msgstr "" + +#: templates/alsijil/print/full_register.html:297 msgid "Relevant personal notes" msgstr "" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:301 msgid "Date" msgstr "" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:302 +#: templates/alsijil/print/full_register.html:355 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:303 +#: templates/alsijil/print/full_register.html:356 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:304 +#: templates/alsijil/print/full_register.html:360 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:306 +msgid "Tard." msgstr "" -#: templates/alsijil/print/full_register.html:242 -#: templates/alsijil/print/full_register.html:314 -#: templates/alsijil/print/full_register.html:324 -msgid "e" +#: templates/alsijil/print/full_register.html:322 +msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" +#: templates/alsijil/print/full_register.html:327 +#: templates/alsijil/print/full_register.html:409 +#: templates/alsijil/print/full_register.html:424 +msgid "e" msgstr "" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." +#: templates/alsijil/print/full_register.html:349 +msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:359 msgid "Notes" msgstr "" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" +#: views.py:66 +msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgstr "" -#: templates/alsijil/register_absence.html:5 -#: templates/alsijil/register_absence.html:6 -msgid "Manage absence" +#: views.py:80 +msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgstr "" -#: templates/alsijil/week_view.html:6 -msgid "Week view" +#: views.py:106 +msgid "The lesson documentation has been saved." msgstr "" -#: templates/alsijil/week_view.html:21 -msgid "Select" +#: views.py:121 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:47 -msgid "Period" +#: views.py:303 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:49 -msgid "Teachers" -msgstr "" - -#: templates/alsijil/week_view.html:97 -msgid "unexcused" -msgstr "" - -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" -msgstr "" - -#: templates/alsijil/week_view.html:122 -msgid "No group selected" -msgstr "" - -#: templates/alsijil/week_view.html:125 -msgid "" -"\n" -" There are no lessons for the selected group, teacher, room or " -"time.\n" -" " +#: views.py:419 +msgid "The absence has been saved." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:459 +msgid "The filter has been saved" msgstr "" -#: views.py:68 -msgid "" -"You are not allowed to create a lesson documentation for a lesson in the " -"future." +#: views.py:474 +msgid "The filter has been deleted." msgstr "" -#: views.py:306 -msgid "The absence has been saved." +#: views.py:497 +msgid "The excuse type has been created." msgstr "" -#: views.py:344 -msgid "The filter has been saved" +#: views.py:508 +msgid "The excuse type has been saved." msgstr "" -#: views.py:360 -msgid "The filter has been deleted." +#: views.py:518 +msgid "The excuse type has been deleted." msgstr "" diff --git a/aleksis/apps/alsijil/menus.py b/aleksis/apps/alsijil/menus.py index c5fea59e3790fba0407d55d760434ac2e3dd0d3d..a3ec5e9cc443a951ca5ddf4803361bd29e0637f9 100644 --- a/aleksis/apps/alsijil/menus.py +++ b/aleksis/apps/alsijil/menus.py @@ -31,14 +31,14 @@ MENUS = { "validators": ["menu_generator.validators.is_superuser"], }, { - "name": _("Personal note filters"), - "url": "list_personal_note_filters", - "icon": "filter_list", + "name": _("Excuse types"), + "url": "excuse_types", + "icon": "label", "validators": ["menu_generator.validators.is_superuser"], }, { - "name": _("Excuse types"), - "url": "excuse_types", + "name": _("Extra marks"), + "url": "extra_marks", "icon": "label", "validators": ["menu_generator.validators.is_superuser"], }, diff --git a/aleksis/apps/alsijil/migrations/0003_extra_mark.py b/aleksis/apps/alsijil/migrations/0003_extra_mark.py new file mode 100644 index 0000000000000000000000000000000000000000..307d9168a296661c8b520b55a1b5cd400b5e6df3 --- /dev/null +++ b/aleksis/apps/alsijil/migrations/0003_extra_mark.py @@ -0,0 +1,72 @@ +# Generated by Django 3.0.8 on 2020-07-12 12:43 + +import django.contrib.postgres.fields.jsonb +import django.contrib.sites.managers +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("sites", "0002_alter_domain_unique"), + ("alsijil", "0002_excuse_type"), + ] + + operations = [ + migrations.CreateModel( + name="ExtraMark", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "extended_data", + django.contrib.postgres.fields.jsonb.JSONField( + default=dict, editable=False + ), + ), + ( + "short_name", + models.CharField( + max_length=255, unique=True, verbose_name="Short name" + ), + ), + ( + "name", + models.CharField(max_length=255, unique=True, verbose_name="Name"), + ), + ( + "site", + models.ForeignKey( + default=1, + editable=False, + on_delete=django.db.models.deletion.CASCADE, + to="sites.Site", + ), + ), + ], + options={ + "verbose_name": "Extra mark", + "verbose_name_plural": "Extra marks", + "ordering": ["short_name"], + }, + managers=[("objects", django.contrib.sites.managers.CurrentSiteManager()),], + ), + migrations.AddField( + model_name="personalnote", + name="extra_marks", + field=models.ManyToManyField( + blank=True, + null=True, + to="alsijil.ExtraMark", + verbose_name="Extra marks", + ), + ), + ] diff --git a/aleksis/apps/alsijil/migrations/0004_group_notes.py b/aleksis/apps/alsijil/migrations/0004_group_notes.py new file mode 100644 index 0000000000000000000000000000000000000000..dfe800654e5ce97879d6587c2d908cc14be13c6a --- /dev/null +++ b/aleksis/apps/alsijil/migrations/0004_group_notes.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.8 on 2020-07-10 16:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('alsijil', '0003_extra_mark'), + ] + + operations = [ + migrations.AddField( + model_name='lessondocumentation', + name='group_note', + field=models.CharField(blank=True, max_length=200, verbose_name='Group note'), + ), + ] diff --git a/aleksis/apps/alsijil/migrations/0005_groups_of_person.py b/aleksis/apps/alsijil/migrations/0005_groups_of_person.py new file mode 100644 index 0000000000000000000000000000000000000000..5f6a5ef1d74f2af102be9db597d55ae734d5d73d --- /dev/null +++ b/aleksis/apps/alsijil/migrations/0005_groups_of_person.py @@ -0,0 +1,33 @@ +# Generated by Django 3.0.8 on 2020-07-22 17:29 + +from django.db import migrations, models + + +def add_groups(apps, schema_editor): + PersonalNote = apps.get_model("alsijil", "PersonalNote") + + db_alias = schema_editor.connection.alias + + for personal_note in PersonalNote.objects.using(db_alias).all(): + groups = list(personal_note.person.member_of.using(db_alias).all()) + personal_note.groups_of_person.set(groups) + personal_note.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ("core", "0003_drop_image_cropping"), + ("alsijil", "0004_group_notes"), + ] + + operations = [ + migrations.AddField( + model_name="personalnote", + name="groups_of_person", + field=models.ManyToManyField( + related_name="_personalnote_groups_of_person_+", to="core.Group" + ), + ), + migrations.RunPython(add_groups), + ] diff --git a/aleksis/apps/alsijil/migrations/0006_delete_personal_notes_filter.py b/aleksis/apps/alsijil/migrations/0006_delete_personal_notes_filter.py new file mode 100644 index 0000000000000000000000000000000000000000..723dda8ec898e69d60e9b065d9bb157395ad5dff --- /dev/null +++ b/aleksis/apps/alsijil/migrations/0006_delete_personal_notes_filter.py @@ -0,0 +1,14 @@ +# Generated by Django 3.0.8 on 2020-07-18 15:23 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("alsijil", "0005_groups_of_person"), + ] + + operations = [ + migrations.DeleteModel(name="PersonalNoteFilter",), + ] diff --git a/aleksis/apps/alsijil/model_extensions.py b/aleksis/apps/alsijil/model_extensions.py index a09aa38c9be47c6a73e5d1e86caf6f375c9045e1..ecba9f773f54ba1343fbf86ab2cd2fc7003a760b 100644 --- a/aleksis/apps/alsijil/model_extensions.py +++ b/aleksis/apps/alsijil/model_extensions.py @@ -1,5 +1,5 @@ from datetime import date -from typing import Optional, Union +from typing import Dict, Optional, Union from django.db.models import Exists, OuterRef, QuerySet @@ -8,7 +8,7 @@ from calendarweek import CalendarWeek from aleksis.apps.chronos.models import LessonPeriod from aleksis.core.models import Group, Person -from .models import ExcuseType, LessonDocumentation, PersonalNote +from .models import ExcuseType, ExtraMark, LessonDocumentation, PersonalNote @Person.method @@ -151,3 +151,20 @@ def get_tardinesses(self, week: Optional[CalendarWeek] = None) -> QuerySet: if not week: week = self.week return self.personal_notes.filter(week=week.week, late__gt=0) + + +@LessonPeriod.method +def get_extra_marks( + self, week: Optional[CalendarWeek] = None +) -> Dict[ExtraMark, QuerySet]: + """Get all statistics on extra marks for this lesson.""" + if not week: + week = self.week + + stats = {} + for extra_mark in ExtraMark.objects.all(): + qs = self.personal_notes.filter(week=week.week, extra_marks=extra_mark) + if qs: + stats[extra_mark] = qs + + return stats diff --git a/aleksis/apps/alsijil/models.py b/aleksis/apps/alsijil/models.py index d10243b0deabba12b49d4b3d28211be925f80f79..04f868be69b32d3a35b80373fa900cae64b4b3a7 100644 --- a/aleksis/apps/alsijil/models.py +++ b/aleksis/apps/alsijil/models.py @@ -42,6 +42,7 @@ class PersonalNote(ExtensibleModel): person = models.ForeignKey( "core.Person", models.CASCADE, related_name="personal_notes" ) + groups_of_person = models.ManyToManyField("core.Group", related_name="+") week = models.IntegerField() lesson_period = models.ForeignKey( @@ -61,6 +62,10 @@ class PersonalNote(ExtensibleModel): remarks = models.CharField(max_length=200, blank=True) + extra_marks = models.ManyToManyField( + "ExtraMark", null=True, blank=True, verbose_name=_("Extra marks") + ) + def save(self, *args, **kwargs): if self.excuse_type: self.excused = True @@ -93,6 +98,7 @@ class LessonDocumentation(ExtensibleModel): topic = models.CharField(verbose_name=_("Lesson topic"), max_length=200, blank=True) homework = models.CharField(verbose_name=_("Homework"), max_length=200, blank=True) + group_note = models.CharField(verbose_name=_("Group note"), max_length=200, blank=True) class Meta: verbose_name = _("Lesson documentation") @@ -106,24 +112,25 @@ class LessonDocumentation(ExtensibleModel): ] -class PersonalNoteFilter(ExtensibleModel): - """A filter definition that can generate statistics on personal note texts.""" +class ExtraMark(ExtensibleModel): + """A model for extra marks. - identifier = models.CharField( - verbose_name=_("Identifier"), - max_length=30, - validators=[isidentifier], - unique=True, - ) - description = models.CharField( - verbose_name=_("Description"), max_length=60, blank=True, unique=True - ) + Can be used for lesson-based counting of things (like forgotten homework). + """ - regex = models.CharField( - verbose_name=_("Match expression"), max_length=100, unique=True + short_name = models.CharField( + max_length=255, unique=True, verbose_name=_("Short name") ) + name = models.CharField(max_length=255, unique=True, verbose_name=_("Name")) + + def __str__(self): + return f"{self.name}" + + @property + def count_label(self): + return f"{self.short_name}_count" class Meta: - verbose_name = _("Personal note filter") - verbose_name_plural = _("Personal note filters") - ordering = ["identifier"] + ordering = ["short_name"] + verbose_name = _("Extra mark") + verbose_name_plural = _("Extra marks") diff --git a/aleksis/apps/alsijil/static/css/alsijil/lesson.css b/aleksis/apps/alsijil/static/css/alsijil/lesson.css index 83b7db8e90d35891d0106f73ebf6176b36d32262..6d57c7e9910063dc8dfe359c643e65765cb6ad9c 100644 --- a/aleksis/apps/alsijil/static/css/alsijil/lesson.css +++ b/aleksis/apps/alsijil/static/css/alsijil/lesson.css @@ -1,3 +1,11 @@ +.alsijil-check-box { + margin-right: 10px; +} + +.alsijil-check-box [type="checkbox"] { + padding-left: 30px; +} + .alsijil-lesson-cancelled { text-decoration: line-through; } diff --git a/aleksis/apps/alsijil/tables.py b/aleksis/apps/alsijil/tables.py index 3a6762c3744ead9d02e9917aa975b530b5e448f0..bd6b47a73f34c5e4343138993ee70162cd19b847 100644 --- a/aleksis/apps/alsijil/tables.py +++ b/aleksis/apps/alsijil/tables.py @@ -4,18 +4,23 @@ import django_tables2 as tables from django_tables2.utils import A -class PersonalNoteFilterTable(tables.Table): +class ExtraMarkTable(tables.Table): class Meta: attrs = {"class": "highlight"} - identifier = tables.Column() - description = tables.Column() - regex = tables.Column() - edit_filter = tables.LinkColumn( - "edit_personal_note_filter", + name = tables.LinkColumn("edit_extra_mark", args=[A("id")]) + short_name = tables.Column() + edit = tables.LinkColumn( + "edit_extra_mark", args=[A("id")], text=_("Edit"), - attrs={"a": {"class": "btn-flat waves-effect waves-orange"}}, + attrs={"a": {"class": "btn-flat waves-effect waves-orange orange-text"}}, + ) + delete = tables.LinkColumn( + "delete_extra_mark", + args=[A("id")], + text=_("Delete"), + attrs={"a": {"class": "btn-flat waves-effect waves-red red-text"}}, ) diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html index 9b2338a81005dd0f56668fe81fb819cf9e43ec56..6c3fe8815a34397c7158d6a7bc340693ef4a9883 100644 --- a/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html +++ b/aleksis/apps/alsijil/templates/alsijil/class_register/lesson.html @@ -1,6 +1,6 @@ {# -*- engine:django -*- #} {% extends "core/base.html" %} -{% load week_helpers %} +{% load week_helpers material_form_internal %} {% load material_form i18n static %} {% block browser_title %}{% blocktrans %}Lesson{% endblocktrans %}{% endblock %} @@ -50,17 +50,29 @@ </div> <form method="post"> + <p>{% include "core/partials/save_button.html" %}</p> + {% csrf_token %} + <div class="row"> <div class="col s12"> - {% include "core/partials/save_button.html" %} + <ul class="tabs"> + <li class="tab"> + <a href="#lesson-documentation">{% trans "Lesson documentation" %}</a> + </li> + {% if not lesson_period.get_substitution.cancelled %} + <li class="tab"> + <a href="#personal-notes">{% trans "Personal notes" %}</a> + </li> + {% endif %} + <li class="tab"> + <a href="#version-history">{% trans "Change history" %}</a> + </li> + </ul> </div> - </div> - {% csrf_token %} - <div class="row"> - <div class="col s12 m12 l6 xl8"> + <div class="col s12" id="lesson-documentation"> {% with prev_lesson=lesson_period.prev prev_doc=prev_lesson.get_lesson_documentation %} - {% with prev_doc=prev_lesson.get_lesson_documentation absences=prev_lesson.get_absences tardinesses=prev_lesson.get_tardinesses %} + {% with prev_doc=prev_lesson.get_lesson_documentation absences=prev_lesson.get_absences tardinesses=prev_lesson.get_tardinesses extra_marks=prev_lesson.get_extra_marks %} {% if prev_doc %} {% weekday_to_date prev_lesson.week prev_lesson.period.weekday as prev_date %} @@ -86,6 +98,13 @@ </tr> {% endif %} + {% if prev_doc.group_note %} + <tr> + <th class="collection-item">{% trans "Group notes for previous lesson:" %}</th> + <td>{{ prev_doc.group_note }}</td> + </tr> + {% endif %} + {% if absences %} <tr> <th>{% trans "Absent persons:" %}</th> @@ -99,6 +118,18 @@ <td>{% include "alsijil/partials/tardinesses.html" with notes=tardinesses %}</td> </tr> {% endif %} + + {% for extra_mark, notes in extra_marks.items %} + <tr> + <th>{{ extra_mark.name }}</th> + <td> + {% for note in notes %} + <span>{{ note.person }}{% if not forloop.last %},{% endif %}</span> + {% endfor %} + </td> + </tr> + {% endfor %} + </table> </div> </div> @@ -116,21 +147,9 @@ </div> </div> </div> - <div class="col s12 m12 l6 xl4"> - <div class="card"> - <div class="card-content"> - <span class="card-title"> - {% blocktrans %}Change history{% endblocktrans %} - </span> - {% include 'core/partials/crud_events.html' with obj=lesson_documentation %} - </div> - </div> - </div> - </div> - {% if not lesson_period.get_substitution.cancelled %} - <div class="row"> - <div class="col s12"> + {% if not lesson_period.get_substitution.cancelled %} + <div class="col s12" id="personal-notes"> <div class="card"> <div class="card-content"> <span class="card-title"> @@ -146,6 +165,8 @@ <th>{% blocktrans %}Tardiness{% endblocktrans %}</th> <th>{% blocktrans %}Excused{% endblocktrans %}</th> <th>{% blocktrans %}Excuse type{% endblocktrans %}</th> + <th>{% blocktrans %}Extra marks{% endblocktrans %}</th> + <th>{% blocktrans %}Remarks{% endblocktrans %}</th> </tr> </thead> @@ -182,6 +203,27 @@ </label> </div> </td> + <td> + {% for group, items in form.extra_marks|select_options %} + {% for choice, value, selected in items %} + <label class="{% if selected %} active{% endif %} alsijil-check-box"> + <input type="checkbox" + {% if value == None or value == '' %}disabled{% else %}value="{{ value }}"{% endif %} + {% if selected %} checked="checked"{% endif %} + name="{{ form.extra_marks.html_name }}"> + <span>{{ choice }}</span> + </label> + {% endfor %} + {% endfor %} + </td> + <td> + <div class="input-field"> + {{ form.remarks }} + <label for="{{ form.absent.id_for_label }}"> + {% trans "Remarks" %} + </label> + </div> + </td> <td> <div class="input-field"> {{ form.remarks }} @@ -197,13 +239,21 @@ </div> </div> </div> - </div> - {% endif %} - <div class="row"> - <div class="col s12"> - {% include "core/partials/save_button.html" %} + {% endif %} + + <div class="col s12" id="version-history"> + <div class="card"> + <div class="card-content"> + <span class="card-title"> + {% blocktrans %}Change history{% endblocktrans %} + </span> + {% include 'core/partials/crud_events.html' with obj=lesson_documentation %} + </div> + </div> </div> </div> + + <p>{% include "core/partials/save_button.html" %}</p> </form> {% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html index f1b94d845db471586524254cc582df7d3cebd2f0..e23e103fca8d7496e7faec521a05645b3b098764 100644 --- a/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html +++ b/aleksis/apps/alsijil/templates/alsijil/class_register/week_view.html @@ -1,7 +1,7 @@ {# -*- engine:django -*- #} {% extends "core/base.html" %} -{% load material_form i18n week_helpers static %} +{% load material_form i18n week_helpers static data_helpers %} {% block browser_title %}{% blocktrans %}Week view{% endblocktrans %}{% endblock %} @@ -48,8 +48,12 @@ <tr> <th></th> <th>{% blocktrans %}Period{% endblocktrans %}</th> + {% if not group %} + <th>{% blocktrans %}Groups{% endblocktrans %}</th> + {% endif %} <th>{% blocktrans %}Subject{% endblocktrans %}</th> <th>{% blocktrans %}Teachers{% endblocktrans %}</th> + <th>{% blocktrans %}Lesson topic{% endblocktrans %}</th> </tr> </thead> <tbody> @@ -63,6 +67,13 @@ {{ period.period.period }}. </a> </td> + {% if not group %} + <td> + <a class="tr-link" href="{% url 'lesson_by_week_and_period' week.year week.week period.id %}"> + {{ period.lesson.group_names }} + </a> + </td> + {% endif %} <td> <a class="tr-link" href="{% url 'lesson_by_week_and_period' week.year week.week period.id %}"> {{ period.get_subject.name }} @@ -73,6 +84,11 @@ {{ period.get_teacher_names }} </a> </td> + <td> + <a class="tr-link" href="{% url 'lesson_by_week_and_period' week.year week.week period.id %}"> + {{ period.get_lesson_documentation.topic }} + </a> + </td> </tr> {% endfor %} </tbody> @@ -96,6 +112,11 @@ <p class="card-text"> {% trans "Summed up tardiness" %}: {{ person.person.tardiness_sum }}' </p> + {% for extra_mark in extra_marks %} + <p class="card-text"> + {{ extra_mark.name }}: {{ person.person|get_dict:extra_mark.count_label }} + </p> + {% endfor %} {% for note in person.personal_notes %} {% if note.remarks %} <blockquote> diff --git a/aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html b/aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html new file mode 100644 index 0000000000000000000000000000000000000000..d0ee3a9055561df1f468692f79d794404a60c1d1 --- /dev/null +++ b/aleksis/apps/alsijil/templates/alsijil/extra_mark/create.html @@ -0,0 +1,17 @@ + {# -*- engine:django -*- #} + + {% extends "core/base.html" %} + {% load material_form i18n %} + + {% block browser_title %}{% blocktrans %}Create extra mark{% endblocktrans %}{% endblock %} + {% block page_title %}{% blocktrans %}Create extra mark{% endblocktrans %}{% endblock %} + + {% block content %} + + <form method="post"> + {% csrf_token %} + {% form form=form %}{% endform %} + {% include "core/partials/save_button.html" %} + </form> + + {% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html b/aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html new file mode 100644 index 0000000000000000000000000000000000000000..7adee30a1cfd30256d70b2a823827384de331e05 --- /dev/null +++ b/aleksis/apps/alsijil/templates/alsijil/extra_mark/edit.html @@ -0,0 +1,17 @@ +{# -*- engine:django -*- #} + +{% extends "core/base.html" %} +{% load material_form i18n %} + +{% block browser_title %}{% blocktrans %}Edit extra mark{% endblocktrans %}{% endblock %} +{% block page_title %}{% blocktrans %}Edit extra mark{% endblocktrans %}{% endblock %} + +{% block content %} + + <form method="post"> + {% csrf_token %} + {% form form=form %}{% endform %} + {% include "core/partials/save_button.html" %} + </form> + +{% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html b/aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html new file mode 100644 index 0000000000000000000000000000000000000000..a1a12b38096de60bae34d61425a1da9c688ab9d6 --- /dev/null +++ b/aleksis/apps/alsijil/templates/alsijil/extra_mark/list.html @@ -0,0 +1,18 @@ +{# -*- engine:django -*- #} + +{% extends "core/base.html" %} + +{% load i18n %} +{% load render_table from django_tables2 %} + +{% block browser_title %}{% blocktrans %}Extra marks{% endblocktrans %}{% endblock %} +{% block page_title %}{% blocktrans %}Extra marks{% endblocktrans %}{% endblock %} + +{% block content %} + <a class="btn green waves-effect waves-light" href="{% url 'create_extra_mark' %}"> + <i class="material-icons left">add</i> + {% trans "Create extra mark" %} + </a> + + {% render_table table %} +{% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/personal_note_filter/list.html b/aleksis/apps/alsijil/templates/alsijil/personal_note_filter/list.html deleted file mode 100644 index 3673e60abb2395a368d6721320dbf654d139d953..0000000000000000000000000000000000000000 --- a/aleksis/apps/alsijil/templates/alsijil/personal_note_filter/list.html +++ /dev/null @@ -1,16 +0,0 @@ -{# -*- engine:django -*- #} - -{% extends "core/base.html" %} -{% load i18n %} -{% load render_table from django_tables2 %} - -{% block browser_title %}{% blocktrans %}All personal note filters{% endblocktrans %}{% endblock %} -{% block page_title %}{% blocktrans %}Personal note filters{% endblocktrans %}{% endblock %} - -{% block content %} - <a href="{% url 'create_personal_note_filter' %}" class="waves-effect waves-light green btn"> - <i class="material-icons left">add</i>{% blocktrans %}Add filter{% endblocktrans %} - </a> - - {% render_table personal_note_filters_table %} -{% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/personal_note_filter/manage.html b/aleksis/apps/alsijil/templates/alsijil/personal_note_filter/manage.html deleted file mode 100644 index 427777439d73975a0cf3434bd507d27077cb9a2a..0000000000000000000000000000000000000000 --- a/aleksis/apps/alsijil/templates/alsijil/personal_note_filter/manage.html +++ /dev/null @@ -1,34 +0,0 @@ -{# -*- engine:django -*- #} -{% extends "core/base.html" %} -{% load material_form i18n static %} - -{% block browser_title %} - {% if personal_note_filter %} - {% trans "Update personal note filter" %} - {% else %} - {% trans "Create personal note filter" %} - {% endif %} -{% endblock %} -{% block page_title %} - {% if personal_note_filter %} - {% trans "Update personal note filter" %} - {% else %} - {% trans "Create personal note filter" %} - {% endif %} -{% endblock %} - - -{% block content %} - <form method="post"> - {% csrf_token %} - {% form form=personal_note_filter_form %}{% endform %} - {% include "core/partials/save_button.html" %} - {% if personal_note_filter %} - <a href="{% url 'delete_personal_note_filter' personal_note_filter.id %}" - class="waves-effect waves-light btn red"> - <i class="material-icons left">delete</i>{% blocktrans %}Delete filter{% endblocktrans %} - </a> - {% endif %} - </form> - -{% endblock %} diff --git a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html index 8cd9938b62e4bd39c0feead34b46fe4360987ec0..373ae6a88f6f42953dfa0b4ffeceb8a26716104b 100644 --- a/aleksis/apps/alsijil/templates/alsijil/print/full_register.html +++ b/aleksis/apps/alsijil/templates/alsijil/print/full_register.html @@ -97,6 +97,18 @@ </ul> {% endif %} + {% if extra_marks %} + <h5>{% trans "Available extra marks" %}</h5> + + <ul class="collection"> + {% for extra_mark in extra_marks %} + <li class="collection-item"> + <strong>{{ extra_mark.short_name }}</strong> {{ extra_mark.name }} + </li> + {% endfor %} + </ul> + {% endif %} + <div class="page-break"> </div> @@ -117,6 +129,9 @@ {% endfor %} <th>{% trans '(u)' %}</th> <th>{% trans '(b)' %}</th> + {% for extra_mark in extra_marks %} + <th>{{ extra_mark.short_name }}</th> + {% endfor %} </tr> </thead> @@ -135,6 +150,9 @@ {% endfor %} <td>{{ person.unexcused }}</td> <td>{{ person.tardiness }}'</td> + {% for extra_mark in extra_marks %} + <td>{{ person|get_dict:extra_mark.count_label }}</td> + {% endfor %} </tr> {% endfor %} </tbody> @@ -245,29 +263,6 @@ </tr> </table> - {% if personal_note_filters %} - <h5>{% trans 'Statistics on remarks' %}</h5> - <table> - <thead> - <tr> - <th>{% trans 'Description' %}</th> - <th>{% trans 'Count' %}</th> - </tr> - </thead> - - <tbody> - {% for note_filter in personal_note_filters %} - <tr> - <td>{{ note_filter.description }}</td> - {% with "_personal_notes_with_"|add:note_filter.identifier as identifier %} - <td>{{ person|get_dict:identifier }}</td> - {% endwith %} - </tr> - {% endfor %} - </tbody> - </table> - {% endif %} - <h5>{% trans 'Absences and tardiness' %}</h5> <table> <tr> @@ -294,6 +289,18 @@ </tr> </table> + {% if extra_marks %} + <h5>{% trans 'Extra marks' %}</h5> + <table> + {% for extra_mark in extra_marks %} + <tr> + <th>{{ extra_mark.name }}</th> + <td>{{ person|get_dict:extra_mark.count_label }}</td> + </tr> + {% endfor %} + </table> + {% endif %} + <h5>{% trans 'Relevant personal notes' %}</h5> <table class="small-print"> <thead> @@ -304,38 +311,45 @@ <th>{% trans 'Te.' %}</th> <th>{% trans 'Absent' %}</th> <th>{% trans 'Tard.' %}</th> - <th>{% trans 'Remarks' %}</th> + <th colspan="2">{% trans 'Remarks' %}</th> </tr> </thead> <tbody> {% for note in person.personal_notes.all %} - {% if note.absent or note.late or note.remarks %} - {% period_to_date note.week note.lesson_period.period 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' %}) + {% if note.lesson_period in lesson_periods %} + {% if note.absent or note.late or note.remarks or note.extra_marks.all %} + {% period_to_date note.week note.lesson_period.period 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 %} {% endif %} - {% endif %} - </td> - <td> - {% if note.late %} - {{ note.late }}' - {% endif %} - </td> - <td>{{ note.remarks }}</td> - </tr> + </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 %} {% endfor %} </tbody> @@ -396,36 +410,45 @@ </td> <td class="lesson-homework">{{ documentations.0.homework }}</td> <td class="lesson-notes"> + {{ documentations.0.group_note }} {% for note in notes %} - {% if note.absent %} - <span class="lesson-note-absent"> - {{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}. - {% if note.excused %} - <span class="lesson-note-excused"> - {% if note.excuse_type %} - ({{ note.excuse_type.short_name }}) - {% else %} - ({% trans 'e' %}) - {% endif %} - </span> - {% endif %} + {% if group in note.groups_of_person.all %} + {% if note.absent %} + <span class="lesson-note-absent"> + {{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}. + {% if note.excused %} + <span class="lesson-note-excused"> + {% if note.excuse_type %} + ({{ note.excuse_type.short_name }}) + {% else %} + ({% trans 'e' %}) + {% endif %} + </span> + {% endif %} </span> - {% endif %} - {% if note.late %} - <span class="lesson-note-late"> - {{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}. - ({{ note.late }}′) - {% if note.excused %} - <span class="lesson-note-excused"> - {% if note.excuse_type %} - ({{ note.excuse_type.short_name }}) - {% else %} - ({% trans 'e' %}) - {% endif %} - </span> - {% endif %} + {% endif %} + {% if note.late %} + <span class="lesson-note-late"> + {{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}. + ({{ note.late }}′) + {% if note.excused %} + <span class="lesson-note-excused"> + {% if note.excuse_type %} + ({{ note.excuse_type.short_name }}) + {% else %} + ({% trans 'e' %}) + {% endif %} + </span> + {% endif %} </span> + {% endif %} {% endif %} + {% for extra_mark in note.extra_marks.all %} + <span> + {{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}. + ({{ extra_mark.short_name }}) + </span> + {% endfor %} {% endfor %} </td> <td class="lesson-te"> diff --git a/aleksis/apps/alsijil/urls.py b/aleksis/apps/alsijil/urls.py index 89ab0ffe5f47c8cfebb015a6f76e597af4dd11dd..3f68362598ec4c8e624f0d5df42e3d028de7ceb9 100644 --- a/aleksis/apps/alsijil/urls.py +++ b/aleksis/apps/alsijil/urls.py @@ -21,25 +21,21 @@ urlpatterns = [ "print/group/<int:id_>", views.full_register_group, name="full_register_group" ), path("absence/new", views.register_absence, name="register_absence"), + path("extra_marks/", views.ExtraMarkListView.as_view(), name="extra_marks"), path( - "filters/list", - views.list_personal_note_filters, - name="list_personal_note_filters", + "extra_marks/create/", + views.ExtraMarkCreateView.as_view(), + name="create_extra_mark", ), path( - "filters/create", - views.edit_personal_note_filter, - name="create_personal_note_filter", + "extra_marks/<int:pk>/edit/", + views.ExtraMarkEditView.as_view(), + name="edit_extra_mark", ), path( - "filters/edit/<int:id_>", - views.edit_personal_note_filter, - name="edit_personal_note_filter", - ), - path( - "filters/delete/<int:id_>", - views.delete_personal_note_filter, - name="delete_personal_note_filter", + "extra_marks/<int:pk>/delete/", + views.ExtraMarkDeleteView.as_view(), + name="delete_extra_mark", ), path("excuse_types/", views.ExcuseTypeListView.as_view(), name="excuse_types"), path( diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index 1ca4b4cabeec1ea0cd5edbfb1588f9255ee2f55a..8bcd3da417c3c3935f83d86b5bc718e4134728c6 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -16,20 +16,21 @@ from rules.contrib.views import PermissionRequiredMixin from aleksis.apps.chronos.managers import TimetableType from aleksis.apps.chronos.models import LessonPeriod, LessonSubstitution from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk +from aleksis.apps.chronos.util.date import week_weekday_to_date from aleksis.core.mixins import AdvancedCreateView, AdvancedDeleteView, AdvancedEditView from aleksis.core.models import Group, Person, SchoolTerm from aleksis.core.util import messages from .forms import ( ExcuseTypeForm, + ExtraMarkForm, LessonDocumentationForm, - PersonalNoteFilterForm, PersonalNoteFormSet, RegisterAbsenceForm, SelectForm, ) -from .models import ExcuseType, LessonDocumentation, PersonalNoteFilter -from .tables import ExcuseTypeTable, PersonalNoteFilterTable +from .models import ExcuseType, ExtraMark, LessonDocumentation +from .tables import ExcuseTypeTable, ExtraMarkTable def lesson( @@ -46,6 +47,14 @@ def lesson( lesson_period = LessonPeriod.objects.annotate_week(wanted_week).get( pk=period_id ) + + date_of_lesson = week_weekday_to_date(wanted_week, lesson_period.period.weekday) + + if ( + date_of_lesson < lesson_period.lesson.validity.date_start + or date_of_lesson > lesson_period.lesson.validity.date_end + ): + return HttpResponseNotFound() else: # Determine current lesson by current date and time lesson_period = ( @@ -248,6 +257,21 @@ def week_view( ) ) + for extra_mark in ExtraMark.objects.all(): + persons_qs = persons_qs.annotate( + **{ + extra_mark.count_label: Count( + "personal_notes", + filter=Q( + personal_notes__lesson_period__in=lesson_periods_pk, + personal_notes__week=wanted_week.week, + personal_notes__extra_marks=extra_mark, + ), + distinct=True, + ) + } + ) + persons = [] for person in persons_qs: persons.append( @@ -266,6 +290,7 @@ def week_view( lesson_periods, key=lambda x: (x.period.weekday, x.period.period) ) + context["extra_marks"] = ExtraMark.objects.all() context["week"] = wanted_week context["lesson_periods"] = lesson_periods context["persons"] = persons @@ -292,18 +317,19 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: group = get_object_or_404(Group, pk=id_) + current_school_term = SchoolTerm.current + + if not current_school_term: + return HttpResponseNotFound(_("There is no current school term.")) + # Get all lesson periods for the selected group lesson_periods = ( LessonPeriod.objects.filter_group(group) + .filter(lesson__validity__school_term=current_school_term) .distinct() .prefetch_related("documentations", "personal_notes") ) - current_school_term = SchoolTerm.current - - if not current_school_term: - return HttpResponseNotFound(_("There is no current school term.")) - weeks = CalendarWeek.weeks_within( current_school_term.date_start, current_school_term.date_end, ) @@ -336,10 +362,16 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: (lesson_period, documentations, notes, substitution) ) - persons = group.members.annotate( + persons = Person.objects.filter( + personal_notes__groups_of_person=group, + personal_notes__lesson_period__lesson__validity__school_term=current_school_term, + ).annotate( absences_count=Count( "personal_notes__absent", - filter=Q(personal_notes__absent=True) + filter=Q( + personal_notes__absent=True, + personal_notes__lesson_period__lesson__validity__school_term=current_school_term, + ) & ~Q( personal_notes__lesson_period__substitutions=Subquery( LessonSubstitution.objects.filter( @@ -356,38 +388,42 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: personal_notes__absent=True, personal_notes__excused=True, personal_notes__excuse_type__isnull=True, + personal_notes__lesson_period__lesson__validity__school_term=current_school_term, ), ), unexcused=Count( "personal_notes__absent", - filter=Q(personal_notes__absent=True, personal_notes__excused=False), + filter=Q( + personal_notes__absent=True, + personal_notes__excused=False, + personal_notes__lesson_period__lesson__validity__school_term=current_school_term, + ), ), tardiness=Sum("personal_notes__late"), ) - for excuse_type in ExcuseType.objects.all(): + for extra_mark in ExtraMark.objects.all(): persons = persons.annotate( **{ - excuse_type.count_label: Count( - "personal_notes__absent", + extra_mark.count_label: Count( + "personal_notes", filter=Q( - personal_notes__absent=True, - personal_notes__excuse_type=excuse_type, + personal_notes__extra_marks=extra_mark, + personal_notes__lesson_period__lesson__validity__school_term=current_school_term, ), ) } ) - # FIXME Move to manager - personal_note_filters = PersonalNoteFilter.objects.all() - for personal_note_filter in personal_note_filters: + for excuse_type in ExcuseType.objects.all(): persons = persons.annotate( **{ - "_personal_notes_with_%s" - % personal_note_filter.identifier: Count( - "personal_notes__remarks", + excuse_type.count_label: Count( + "personal_notes__absent", filter=Q( - personal_notes__remarks__iregex=personal_note_filter.regex + personal_notes__absent=True, + personal_notes__excuse_type=excuse_type, + personal_notes__lesson_period__lesson__validity__school_term=current_school_term, ), ) } @@ -395,11 +431,12 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: context["school_term"] = current_school_term context["persons"] = persons - context["personal_note_filters"] = personal_note_filters context["excuse_types"] = ExcuseType.objects.all() + context["extra_marks"] = ExtraMark.objects.all() context["group"] = group context["weeks"] = weeks context["periods_by_day"] = periods_by_day + context["lesson_periods"] = lesson_periods context["today"] = date.today() return render(request, "alsijil/print/full_register.html", context) @@ -436,57 +473,45 @@ def register_absence(request: HttpRequest) -> HttpResponse: return render(request, "alsijil/absences/register.html", context) -def list_personal_note_filters(request: HttpRequest) -> HttpResponse: - context = {} +class ExtraMarkListView(SingleTableView, PermissionRequiredMixin): + """Table of all extra marks.""" - personal_note_filters = PersonalNoteFilter.objects.all() + model = ExtraMark + table_class = ExtraMarkTable + permission_required = "core.view_extramark" + template_name = "alsijil/extra_mark/list.html" - # Prepare table - personal_note_filters_table = PersonalNoteFilterTable(personal_note_filters) - RequestConfig(request).configure(personal_note_filters_table) - context["personal_note_filters_table"] = personal_note_filters_table +class ExtraMarkCreateView(AdvancedCreateView, PermissionRequiredMixin): + """Create view for extra marks.""" - return render(request, "alsijil/personal_note_filter/list.html", context) + model = ExtraMark + form_class = ExtraMarkForm + permission_required = "core.create_extramark" + template_name = "alsijil/extra_mark/create.html" + success_url = reverse_lazy("extra_marks") + success_message = _("The extra mark has been created.") -def edit_personal_note_filter( - request: HttpRequest, id_: Optional["int"] = None -) -> HttpResponse: - context = {} +class ExtraMarkEditView(AdvancedEditView, PermissionRequiredMixin): + """Edit view for extra marks.""" - if id_: - personal_note_filter = PersonalNoteFilter.objects.get(id=id_) - context["personal_note_filter"] = personal_note_filter - personal_note_filter_form = PersonalNoteFilterForm( - request.POST or None, instance=personal_note_filter - ) - else: - personal_note_filter_form = PersonalNoteFilterForm(request.POST or None) - - if request.method == "POST": - if personal_note_filter_form.is_valid(): - personal_note_filter_form.save(commit=True) - - messages.success(request, _("The filter has been saved")) - return redirect("list_personal_note_filters") - - context["personal_note_filter_form"] = personal_note_filter_form + model = ExtraMark + form_class = ExtraMarkForm + permission_required = "core.edit_extramark" + template_name = "alsijil/extra_mark/edit.html" + success_url = reverse_lazy("extra_marks") + success_message = _("The extra mark has been saved.") - return render(request, "alsijil/personal_note_filter/manage.html", context) +class ExtraMarkDeleteView(AdvancedDeleteView, PermissionRequiredMixin, RevisionMixin): + """Delete view for extra marks""" -def delete_personal_note_filter(request: HttpRequest, id_: int) -> HttpResponse: - context = {} - - personal_note_filter = get_object_or_404(PersonalNoteFilter, pk=id_) - - PersonalNoteFilter.objects.filter(pk=id_).delete() - - messages.success(request, _("The filter has been deleted.")) - - context["personal_note_filter"] = personal_note_filter - return redirect("list_personal_note_filters") + model = ExtraMark + permission_required = "core.delete_extramark" + template_name = "core/pages/delete.html" + success_url = reverse_lazy("extra_marks") + success_message = _("The extra mark has been deleted.") class ExcuseTypeListView(SingleTableView, PermissionRequiredMixin):