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 1ed20e8ef9295c73da7bce6aef38be6583d976f5..167a73dbc378e01b1189db08508a4d1828fc6ca2 100644 --- a/aleksis/apps/alsijil/forms.py +++ b/aleksis/apps/alsijil/forms.py @@ -11,7 +11,7 @@ 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): @@ -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..47031832edd1744334295f9182a01b121c9153c3 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-08-03 20:03+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,53 +16,62 @@ 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:199 msgid "Group" msgstr "" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:56 templates/alsijil/print/full_register.html:170 +#: templates/alsijil/print/full_register.html:201 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:163 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:164 +#: templates/alsijil/class_register/week_view.html:109 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:275 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:170 +#: templates/alsijil/class_register/lesson.html:223 +#: templates/alsijil/class_register/lesson.html:231 +#: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "" -#: menus.py:6 templates/alsijil/print/full_register.html:16 +#: menus.py:6 preferences.py:8 templates/alsijil/print/full_register.html:16 msgid "Class register" msgstr "" @@ -78,306 +87,484 @@ msgstr "" msgid "Register absence" msgstr "" -#: menus.py:34 -msgid "Personal note filters" +#: menus.py:34 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" +msgstr "" + +#: menus.py:40 models.py:66 models.py:138 +#: templates/alsijil/class_register/lesson.html:168 +#: templates/alsijil/extra_mark/list.html:8 +#: templates/alsijil/extra_mark/list.html:9 +#: templates/alsijil/print/full_register.html:293 +msgid "Extra marks" +msgstr "" + +#: models.py:18 models.py:124 +msgid "Short name" +msgstr "" + +#: models.py:20 models.py:126 +msgid "Name" +msgstr "" + +#: models.py:31 models.py:60 templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:202 +msgid "Excuse type" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: models.py:75 +msgid "Personal note" +msgstr "" + +#: models.py:76 templates/alsijil/class_register/lesson.html:64 +#: templates/alsijil/class_register/lesson.html:156 +#: templates/alsijil/class_register/week_view.html:104 +msgid "Personal notes" +msgstr "" + +#: models.py:99 templates/alsijil/class_register/week_view.html:56 +#: templates/alsijil/print/full_register.html:371 msgid "Lesson topic" msgstr "" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:100 templates/alsijil/print/full_register.html:372 msgid "Homework" msgstr "" -#: models.py:68 -msgid "Identifier" +#: models.py:102 +msgid "Group note" +msgstr "" + +#: models.py:106 templates/alsijil/class_register/lesson.html:60 +#: templates/alsijil/class_register/lesson.html:143 +msgid "Lesson documentation" +msgstr "" + +#: models.py:107 +msgid "Lesson documentations" msgstr "" -#: models.py:71 templates/alsijil/print/full_register.html:178 -msgid "Description" +#: models.py:137 +msgid "Extra mark" msgstr "" -#: models.py:74 -msgid "Match expression" +#: preferences.py:16 +msgid "Block adding personal notes for cancelled lessons" msgstr "" -#: tables.py:14 +#: tables.py:16 tables.py:36 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 +#: tables.py:22 tables.py:42 +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:83 +#, python-format +msgid "%(period)s. period" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:38 +msgid "Previous lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" msgstr "" -#: templates/alsijil/lesson.html:43 +#: templates/alsijil/class_register/lesson.html:68 +#: templates/alsijil/class_register/lesson.html:249 msgid "Change history" msgstr "" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:82 +msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:89 +msgid "Lesson topic of previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:96 +msgid "Homework for this lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:103 +msgid "Group notes for previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:110 +msgid "Absent persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:117 +msgid "Late persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:165 +#: templates/alsijil/print/full_register.html:287 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:188 +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/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" msgstr "" -#: 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 "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:52 +msgid "Groups" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:54 +#: templates/alsijil/print/full_register.html:169 +#: templates/alsijil/print/full_register.html:200 +msgid "Subject" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:55 +msgid "Teachers" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:110 +msgid "unexcused" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:113 +msgid "Summed up tardiness" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:142 +msgid "No lessons available" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:145 +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/extra_mark/create.html:6 +#: templates/alsijil/extra_mark/create.html:7 +#: templates/alsijil/extra_mark/list.html:14 +msgid "Create extra mark" +msgstr "" + +#: templates/alsijil/extra_mark/edit.html:6 +#: templates/alsijil/extra_mark/edit.html:7 +msgid "Edit extra mark" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:126 +msgid "(e)" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:130 +msgid "(u)" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:12 +#: templates/alsijil/print/full_register.html:406 +msgid "Lesson cancelled" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Missing data" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:16 +msgid "Pending" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +msgid "Substitution" +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:283 +msgid "Unexcused" +msgstr "" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" +msgstr "" + +#: templates/alsijil/print/full_register.html:101 +msgid "Available extra marks" +msgstr "" + +#: templates/alsijil/print/full_register.html:115 msgid "Persons in group" msgstr "" -#: templates/alsijil/print/full_register.html:66 +#: templates/alsijil/print/full_register.html:120 msgid "No." msgstr "" -#: templates/alsijil/print/full_register.html:67 +#: templates/alsijil/print/full_register.html:121 msgid "Last name" msgstr "" -#: templates/alsijil/print/full_register.html:68 +#: templates/alsijil/print/full_register.html:122 msgid "First name" msgstr "" -#: templates/alsijil/print/full_register.html:69 +#: templates/alsijil/print/full_register.html:123 msgid "Sex" msgstr "" -#: templates/alsijil/print/full_register.html:70 +#: templates/alsijil/print/full_register.html:124 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:125 +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:131 +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:164 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:171 +#: templates/alsijil/print/full_register.html:202 msgid "Lesson start" msgstr "" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:172 +#: templates/alsijil/print/full_register.html:203 msgid "Lesson end" msgstr "" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:173 +#: templates/alsijil/print/full_register.html:204 msgid "Per week" msgstr "" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:194 +msgid "Teachers and lessons in child groups" +msgstr "" + +#: templates/alsijil/print/full_register.html:227 msgid "Personal overview" msgstr "" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:229 msgid "Contact details" msgstr "" -#: templates/alsijil/print/full_register.html:174 -msgid "Statistics on remarks" +#: templates/alsijil/print/full_register.html:266 +msgid "Absences and tardiness" msgstr "" -#: templates/alsijil/print/full_register.html:179 -msgid "Count" +#: templates/alsijil/print/full_register.html:269 +msgid "Absences" msgstr "" -#: templates/alsijil/print/full_register.html:196 -msgid "Absences and tardiness" +#: templates/alsijil/print/full_register.html:274 +msgid "thereof" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:304 msgid "Relevant personal notes" msgstr "" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:308 msgid "Date" msgstr "" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:309 +#: templates/alsijil/print/full_register.html:369 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:310 +#: templates/alsijil/print/full_register.html:370 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:311 +#: templates/alsijil/print/full_register.html:374 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:313 +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:330 +msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" +#: templates/alsijil/print/full_register.html:335 +#: templates/alsijil/print/full_register.html:424 +#: templates/alsijil/print/full_register.html:439 +msgid "e" msgstr "" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." +#: templates/alsijil/print/full_register.html:363 +msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:373 msgid "Notes" msgstr "" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" +#: views.py:76 +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:90 +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:116 +msgid "The lesson documentation has been saved." msgstr "" -#: templates/alsijil/week_view.html:21 -msgid "Select" +#: views.py:136 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:47 -msgid "Period" -msgstr "" - -#: templates/alsijil/week_view.html:49 -msgid "Teachers" -msgstr "" - -#: templates/alsijil/week_view.html:97 -msgid "unexcused" +#: views.py:327 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" -msgstr "" - -#: templates/alsijil/week_view.html:122 -msgid "No group selected" +#: views.py:463 +msgid "The absence 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:488 +msgid "The extra mark has been created." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:499 +msgid "The extra mark 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:509 +msgid "The extra mark has been deleted." msgstr "" -#: views.py:306 -msgid "The absence has been saved." +#: views.py:529 +msgid "The excuse type has been created." msgstr "" -#: views.py:344 -msgid "The filter has been saved" +#: views.py:540 +msgid "The excuse type has been saved." msgstr "" -#: views.py:360 -msgid "The filter has been deleted." +#: views.py:550 +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..a300bb6d6672106860d862c639afcaf6e254b753 100644 --- a/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/de_DE/LC_MESSAGES/django.po @@ -7,62 +7,72 @@ 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-08-03 20:03+0200\n" +"PO-Revision-Date: 2020-08-03 18:41+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:199 msgid "Group" msgstr "Gruppe" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:56 templates/alsijil/print/full_register.html:170 +#: templates/alsijil/print/full_register.html:201 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:163 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:164 +#: templates/alsijil/class_register/week_view.html:109 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "Abwesend" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:275 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:170 +#: templates/alsijil/class_register/lesson.html:223 +#: templates/alsijil/class_register/lesson.html:231 +#: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "Bemerkungen" -#: menus.py:6 templates/alsijil/print/full_register.html:16 +#: menus.py:6 preferences.py:8 templates/alsijil/print/full_register.html:16 msgid "Class register" msgstr "Klassenbuch" @@ -78,341 +88,558 @@ msgstr "Aktuelle Woche" msgid "Register absence" msgstr "Abwesenheit eintragen" -#: menus.py:34 -msgid "Personal note filters" -msgstr "Filter für persönliche Notizen" +#: menus.py:34 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" +msgstr "Entschuldigungsarten" + +#: menus.py:40 models.py:66 models.py:138 +#: templates/alsijil/class_register/lesson.html:168 +#: templates/alsijil/extra_mark/list.html:8 +#: templates/alsijil/extra_mark/list.html:9 +#: templates/alsijil/print/full_register.html:293 +msgid "Extra marks" +msgstr "Zusätzliche Markierungen" + +#: models.py:18 models.py:124 +msgid "Short name" +msgstr "Kurzname" + +#: models.py:20 models.py:126 +msgid "Name" +msgstr "Name" + +#: models.py:31 models.py:60 templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:202 +msgid "Excuse type" +msgstr "Entschuldigungsart" + +#: models.py:75 +msgid "Personal note" +msgstr "Persönliche Notiz" + +#: models.py:76 templates/alsijil/class_register/lesson.html:64 +#: templates/alsijil/class_register/lesson.html:156 +#: templates/alsijil/class_register/week_view.html:104 +msgid "Personal notes" +msgstr "Persönliche Notizen" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: models.py:99 templates/alsijil/class_register/week_view.html:56 +#: templates/alsijil/print/full_register.html:371 msgid "Lesson topic" msgstr "Stundenthema" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:100 templates/alsijil/print/full_register.html:372 msgid "Homework" msgstr "Hausaufgaben" -#: models.py:68 -msgid "Identifier" -msgstr "Kennung" +#: models.py:102 +msgid "Group note" +msgstr "Gruppennotiz" + +#: models.py:106 templates/alsijil/class_register/lesson.html:60 +#: templates/alsijil/class_register/lesson.html:143 +msgid "Lesson documentation" +msgstr "Stunden-Dokumentation" + +#: models.py:107 +msgid "Lesson documentations" +msgstr "Stunden-Dokumentationen" -#: models.py:71 templates/alsijil/print/full_register.html:178 -msgid "Description" -msgstr "Beschreibung" +#: models.py:137 +msgid "Extra mark" +msgstr "Zusätzliche Markierung" -#: models.py:74 -msgid "Match expression" -msgstr "Suchausdruck" +#: preferences.py:16 +msgid "Block adding personal notes for cancelled lessons" +msgstr "" +"Blockiere das Hinzufügen von persönlichen Notizen für ausgefallene Stunden" -#: tables.py:14 +#: tables.py:16 tables.py:36 msgid "Edit" msgstr "Bearbeiten" -#: templates/alsijil/lesson.html:5 -#, fuzzy -#| msgid "Lessons" +#: tables.py:22 tables.py:42 +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:83 +#, 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/lesson.html:43 +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" +msgstr "Nächste Unterrichtsstunde" + +#: templates/alsijil/class_register/lesson.html:68 +#: templates/alsijil/class_register/lesson.html:249 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/class_register/lesson.html:82 +msgid "Overview: Previous lesson" +msgstr "Übersicht: Vorherige Stunde" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:89 +msgid "Lesson topic of previous lesson:" +msgstr "Stundenthema der vorherigen Stunde:" + +#: templates/alsijil/class_register/lesson.html:96 +msgid "Homework for this lesson:" +msgstr "Hausaufgaben zu dieser Stunde:" + +#: templates/alsijil/class_register/lesson.html:103 +msgid "Group notes for previous lesson:" +msgstr "Gruppennotizen für die vorherige Stunde:" + +#: templates/alsijil/class_register/lesson.html:110 +msgid "Absent persons:" +msgstr "Abwesende Personen:" + +#: templates/alsijil/class_register/lesson.html:117 +msgid "Late persons:" +msgstr "Verspätete Personen:" + +#: templates/alsijil/class_register/lesson.html:165 +#: templates/alsijil/print/full_register.html:287 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:188 +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/class_register/week_view.html:27 +msgid "Select" +msgstr "Auswählen" + +#: 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:52 +msgid "Groups" +msgstr "Gruppen" + +#: templates/alsijil/class_register/week_view.html:54 +#: templates/alsijil/print/full_register.html:169 +#: templates/alsijil/print/full_register.html:200 +msgid "Subject" +msgstr "Fach" -#: 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:55 +msgid "Teachers" +msgstr "Lehrkräfte" + +#: templates/alsijil/class_register/week_view.html:110 +msgid "unexcused" +msgstr "unentschuldigt" + +#: templates/alsijil/class_register/week_view.html:113 +msgid "Summed up tardiness" +msgstr "Summierte Verspätung" + +#: templates/alsijil/class_register/week_view.html:142 +msgid "No lessons available" +msgstr "Keine Stunden verfügbar" + +#: templates/alsijil/class_register/week_view.html:145 +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/personal_note_filters.html:12 -msgid "Add filter" +#: 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/extra_mark/create.html:6 +#: templates/alsijil/extra_mark/create.html:7 +#: templates/alsijil/extra_mark/list.html:14 +msgid "Create extra mark" +msgstr "Zusätzliche Markierung erstellen" + +#: templates/alsijil/extra_mark/edit.html:6 +#: templates/alsijil/extra_mark/edit.html:7 +msgid "Edit extra mark" +msgstr "Zusätzliche Markierung bearbeiten" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:126 +msgid "(e)" +msgstr "(e)" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:130 +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 +#: templates/alsijil/print/full_register.html:406 +msgid "Lesson cancelled" +msgstr "Stunde ist ausgefallen" + +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Missing data" +msgstr "Fehlende Daten" + +#: templates/alsijil/partials/lesson_status_icon.html:16 +msgid "Pending" +msgstr "Findet gerade statt" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +msgid "Substitution" +msgstr "Vertretung" + +#: 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 " -"gespeichert.\n" -" " +" 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 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, " -"dürfen\n" -" ausschließlich in der Schule und/oder auf vonder Schule " -"autorisierten Geräten\n" +" Kopien des Klassenbuches, sowohl digital als auch als Ausdruck, dürfen\n" +" ausschließlich in der Schule und/oder auf von der 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:283 +msgid "Unexcused" +msgstr "Unentschuldigt" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" +msgstr "Benutzerdefinierte Entschuldigunsarten" + +#: templates/alsijil/print/full_register.html:101 +msgid "Available extra marks" +msgstr "Verfügbare zusätzliche Markierungen" + +#: templates/alsijil/print/full_register.html:115 msgid "Persons in group" msgstr "Personen in der Gruppe" -#: templates/alsijil/print/full_register.html:66 +#: templates/alsijil/print/full_register.html:120 msgid "No." msgstr "Nr." -#: templates/alsijil/print/full_register.html:67 +#: templates/alsijil/print/full_register.html:121 msgid "Last name" msgstr "Nachname" -#: templates/alsijil/print/full_register.html:68 +#: templates/alsijil/print/full_register.html:122 msgid "First name" msgstr "Vorname" -#: templates/alsijil/print/full_register.html:69 +#: templates/alsijil/print/full_register.html:123 msgid "Sex" msgstr "Geschlecht" -#: templates/alsijil/print/full_register.html:70 +#: templates/alsijil/print/full_register.html:124 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:125 +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:131 +msgid "(b)" +msgstr "(b)" -#: templates/alsijil/print/full_register.html:95 +#: templates/alsijil/print/full_register.html:164 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:171 +#: templates/alsijil/print/full_register.html:202 msgid "Lesson start" msgstr "Unterrichtsbeginn" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:172 +#: templates/alsijil/print/full_register.html:203 msgid "Lesson end" msgstr "Unterrichtsende" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:173 +#: templates/alsijil/print/full_register.html:204 msgid "Per week" msgstr "Pro Woche" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:194 +msgid "Teachers and lessons in child groups" +msgstr "Lehrkräfte und Fächer von Untergruppen" + +#: templates/alsijil/print/full_register.html:227 msgid "Personal overview" msgstr "Persönliche Übersicht" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:229 msgid "Contact details" msgstr "Kontaktdetails" -#: templates/alsijil/print/full_register.html:174 -msgid "Statistics on remarks" -msgstr "Statistiken zu Bemerkungen" - -#: templates/alsijil/print/full_register.html:179 -msgid "Count" -msgstr "Anzahl" - -#: templates/alsijil/print/full_register.html:196 +#: templates/alsijil/print/full_register.html:266 msgid "Absences and tardiness" msgstr "Abwesenheiten und Verspätungen" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:269 +msgid "Absences" +msgstr "Absenzen" + +#: templates/alsijil/print/full_register.html:274 +msgid "thereof" +msgstr "davon" + +#: templates/alsijil/print/full_register.html:304 msgid "Relevant personal notes" msgstr "Relevante persönliche Notizen" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:308 msgid "Date" msgstr "Datum" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:309 +#: templates/alsijil/print/full_register.html:369 msgid "Pe." msgstr "Std." -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:310 +#: templates/alsijil/print/full_register.html:370 msgid "Subj." msgstr "Fa." -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:311 +#: templates/alsijil/print/full_register.html:374 msgid "Te." msgstr "Lk." -#: templates/alsijil/print/full_register.html:240 +#: templates/alsijil/print/full_register.html:313 +msgid "Tard." +msgstr "Verspät." + +#: templates/alsijil/print/full_register.html:330 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:335 +#: templates/alsijil/print/full_register.html:424 +#: templates/alsijil/print/full_register.html:439 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:363 +msgid "Lesson documentation for week" +msgstr "Unterrichtsdokumentation für Woche" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:373 msgid "Notes" msgstr "Notizen" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" -msgstr "Stunde ist ausgefallen" +#: views.py:76 +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:90 +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:116 +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:136 +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:327 +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:463 +msgid "The absence has been saved." +msgstr "Die Abwesenheit wurde gespeichert." -#: templates/alsijil/week_view.html:97 -msgid "unexcused" -msgstr "unentschuldigt" +#: views.py:488 +msgid "The extra mark has been created." +msgstr "Die zusätzliche Markierung wurde erstellt." -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" -msgstr "Summierte Verspätung" +#: views.py:499 +msgid "The extra mark has been saved." +msgstr "Die zusätzliche Markierung wurde gespeichert." -#: templates/alsijil/week_view.html:122 -msgid "No group selected" -msgstr "Keine Gruppe ausgewählt" +#: views.py:509 +msgid "The extra mark has been deleted." +msgstr "Die zusätzliche Markierung wurde gelöscht." -#: 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:529 +msgid "The excuse type has been created." +msgstr "Die Entschuldigungsart wurde erstellt." -#: 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:540 +msgid "The excuse type has been saved." +msgstr "Die Entschuldigunsart wurde gespeichert." -#: 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." +#: views.py:550 +msgid "The excuse type has been deleted." +msgstr "Die Entschuldigungsart wurde gelöscht." -#: views.py:306 -msgid "The absence has been saved." -msgstr "Die Abwesenheit wurde gespeichert." +#~ msgid "Personal note filters" +#~ msgstr "Filter für persönliche Notizen" + +#~ msgid "Identifier" +#~ msgstr "Kennung" + +#~ msgid "Description" +#~ msgstr "Beschreibung" + +#~ msgid "Match expression" +#~ msgstr "Suchausdruck" + +#~ msgid "Personal note filter" +#~ msgstr "Filter für persönliche Notizen" + +#~ msgid "All personal note filters" +#~ msgstr "Alle Filter für persönliche Notizen" + +#~ msgid "Add filter" +#~ msgstr "Filter hinzufügen" + +#~ msgid "Update personal note filter" +#~ msgstr "Filter für persönliche Notizen aktualisieren" + +#~ msgid "Create personal note filter" +#~ msgstr "Filter für persönliche Notizen erstellen" + +#~ msgid "Delete filter" +#~ msgstr "Filter löschen" + +#~ msgid "Statistics on remarks" +#~ msgstr "Statistiken zu Bemerkungen" + +#~ msgid "Count" +#~ msgstr "Anzahl" + +#~ msgid "Room" +#~ msgstr "Raum" + +#~ 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..fa8b44b705f77e077073e91f7c27d6deb92aee7f 100644 --- a/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/fr/LC_MESSAGES/django.po @@ -3,380 +3,649 @@ # 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-08-03 20:03+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:199 +msgid "Group" +msgstr "Groupe" + +#: forms.py:56 templates/alsijil/print/full_register.html:170 +#: templates/alsijil/print/full_register.html:201 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:163 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:164 +#: templates/alsijil/class_register/week_view.html:109 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:312 msgid "Absent" -msgstr "" +msgstr "Absent(e)" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:275 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:170 +#: templates/alsijil/class_register/lesson.html:223 +#: templates/alsijil/class_register/lesson.html:231 +#: templates/alsijil/print/full_register.html:314 msgid "Remarks" -msgstr "" +msgstr "Remarque" -#: menus.py:6 templates/alsijil/print/full_register.html:16 +#: menus.py:6 preferences.py:8 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 "Registre de Absence" + +#: menus.py:34 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é" + +#: menus.py:40 models.py:66 models.py:138 +#: templates/alsijil/class_register/lesson.html:168 +#: templates/alsijil/extra_mark/list.html:8 +#: templates/alsijil/extra_mark/list.html:9 +#: templates/alsijil/print/full_register.html:293 +msgid "Extra marks" msgstr "" -#: menus.py:34 -msgid "Personal note filters" +#: models.py:18 models.py:124 +#, fuzzy +#| msgid "First name" +msgid "Short name" +msgstr "Prénom" + +#: models.py:20 models.py:126 +msgid "Name" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: models.py:31 models.py:60 templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:202 +#, fuzzy +#| msgid "Excused" +msgid "Excuse type" +msgstr "Excusé" + +#: models.py:75 +#, fuzzy +#| msgid "Personal notes" +msgid "Personal note" +msgstr "Notes personnelles" + +#: models.py:76 templates/alsijil/class_register/lesson.html:64 +#: templates/alsijil/class_register/lesson.html:156 +#: templates/alsijil/class_register/week_view.html:104 +msgid "Personal notes" +msgstr "Notes personnelles" + +#: models.py:99 templates/alsijil/class_register/week_view.html:56 +#: templates/alsijil/print/full_register.html:371 msgid "Lesson topic" -msgstr "" +msgstr "Sujet de cours" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:100 templates/alsijil/print/full_register.html:372 msgid "Homework" -msgstr "" +msgstr "Devoirs" -#: models.py:68 -msgid "Identifier" -msgstr "" +#: models.py:102 +#, fuzzy +#| msgid "Group" +msgid "Group note" +msgstr "Groupe" -#: models.py:71 templates/alsijil/print/full_register.html:178 -msgid "Description" +#: models.py:106 templates/alsijil/class_register/lesson.html:60 +#: templates/alsijil/class_register/lesson.html:143 +msgid "Lesson documentation" +msgstr "Documentation de cours" + +#: models.py:107 +#, fuzzy +#| msgid "Lesson documentation" +msgid "Lesson documentations" +msgstr "Documentation de cours" + +#: models.py:137 +msgid "Extra mark" msgstr "" -#: models.py:74 -msgid "Match expression" +#: preferences.py:16 +msgid "Block adding personal notes for cancelled lessons" msgstr "" -#: tables.py:14 +#: tables.py:16 tables.py:36 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 -msgid "Lesson" +#: tables.py:22 tables.py:42 +msgid "Delete" msgstr "" -#: templates/alsijil/lesson.html:34 -msgid "Lesson documentation" +#: templates/alsijil/absences/register.html:5 +#: templates/alsijil/absences/register.html:6 +msgid "Manage absence" msgstr "" -#: templates/alsijil/lesson.html:43 +#: templates/alsijil/class_register/lesson.html:6 +msgid "Lesson" +msgstr "Cours" + +#: templates/alsijil/class_register/lesson.html:14 +#: templates/alsijil/class_register/lesson.html:83 +#, 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:68 +#: templates/alsijil/class_register/lesson.html:249 msgid "Change history" -msgstr "" +msgstr "Changement d' histoire" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:82 +msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 -msgid "Tardiness" +#: templates/alsijil/class_register/lesson.html:89 +msgid "Lesson topic of previous lesson:" 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:96 +msgid "Homework for this lesson:" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:11 -msgid "Delete filter" +#: templates/alsijil/class_register/lesson.html:103 +msgid "Group notes for previous lesson:" msgstr "" -#: templates/alsijil/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" -msgstr "" +#: templates/alsijil/class_register/lesson.html:110 +#, fuzzy +#| msgid "Absences" +msgid "Absent persons:" +msgstr "Absences" -#: templates/alsijil/personal_note_filters.html:12 -msgid "Add filter" +#: templates/alsijil/class_register/lesson.html:117 +msgid "Late persons:" msgstr "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/class_register/lesson.html:165 +#: templates/alsijil/print/full_register.html:287 +msgid "Tardiness" +msgstr "Retard" + +#: templates/alsijil/class_register/lesson.html:188 +#, 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/print/full_register.html:26 -msgid "Printed on" +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "Période" + +#: templates/alsijil/class_register/week_view.html:52 +#, fuzzy +#| msgid "Group" +msgid "Groups" +msgstr "Groupe" + +#: templates/alsijil/class_register/week_view.html:54 +#: templates/alsijil/print/full_register.html:169 +#: templates/alsijil/print/full_register.html:200 +msgid "Subject" +msgstr "Sujet" + +#: templates/alsijil/class_register/week_view.html:55 +msgid "Teachers" +msgstr "Profs" + +#: templates/alsijil/class_register/week_view.html:110 +msgid "unexcused" +msgstr "Injustifié(e)" + +#: templates/alsijil/class_register/week_view.html:113 +msgid "Summed up tardiness" +msgstr "Résumé des retards" + +#: templates/alsijil/class_register/week_view.html:142 +msgid "No lessons available" msgstr "" -#: templates/alsijil/print/full_register.html:34 +#: templates/alsijil/class_register/week_view.html:145 +#, fuzzy +#| msgid "" +#| "\n" +#| " There are no lessons for the selected group, teacher, room or time.\n" +#| " " 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" +" There are no lessons for the selected group or teacher in this week.\n" " " msgstr "" - -#: templates/alsijil/print/full_register.html:41 -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" +" Il n' y a pas des cours pour le groupe sélectionné, les profs, le salle ou le temps.\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 "" + +#: templates/alsijil/excuse_type/edit.html:6 +#: templates/alsijil/excuse_type/edit.html:7 +msgid "Edit excuse type" msgstr "" -#: templates/alsijil/print/full_register.html:48 +#: templates/alsijil/excuse_type/warning.html:5 msgid "" "\n" -" The owner of the group and the headteacher confirm the above, " -"as\n" -" well as the correctness of this printout.\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/print/full_register.html:55 -msgid "Headteacher" +#: templates/alsijil/extra_mark/create.html:6 +#: templates/alsijil/extra_mark/create.html:7 +#: templates/alsijil/extra_mark/list.html:14 +msgid "Create extra mark" msgstr "" -#: templates/alsijil/print/full_register.html:61 -msgid "Persons in group" +#: templates/alsijil/extra_mark/edit.html:6 +#: templates/alsijil/extra_mark/edit.html:7 +msgid "Edit extra mark" msgstr "" -#: templates/alsijil/print/full_register.html:66 -msgid "No." +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:126 +msgid "(e)" msgstr "" -#: templates/alsijil/print/full_register.html:67 -msgid "Last name" +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:130 +msgid "(u)" msgstr "" -#: templates/alsijil/print/full_register.html:68 -msgid "First name" +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" msgstr "" -#: templates/alsijil/print/full_register.html:69 -msgid "Sex" -msgstr "" +#: templates/alsijil/partials/lesson_status_icon.html:12 +#: templates/alsijil/print/full_register.html:406 +msgid "Lesson cancelled" +msgstr "Cours annulés" -#: templates/alsijil/print/full_register.html:70 -msgid "Date of birth" +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Missing data" msgstr "" -#: templates/alsijil/print/full_register.html:71 -#: templates/alsijil/print/full_register.html:200 -msgid "Absences" +#: templates/alsijil/partials/lesson_status_icon.html:16 +msgid "Pending" msgstr "" -#: templates/alsijil/print/full_register.html:72 -#: templates/alsijil/print/full_register.html:201 -msgid "Unexcused" +#: templates/alsijil/partials/lesson_status_icon.html:18 +msgid "Substitution" msgstr "" -#: templates/alsijil/print/full_register.html:73 -#: templates/alsijil/print/full_register.html:224 -msgid "Tard." +#: 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 "Imprimé sur" + +#: 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" +" " msgstr "" -#: templates/alsijil/print/full_register.html:95 -msgid "Teachers and lessons in group" +#: 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" +" " msgstr "" -#: templates/alsijil/print/full_register.html:100 -#: templates/alsijil/week_view.html:48 -msgid "Subject" +#: 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" +" " msgstr "" -#: templates/alsijil/print/full_register.html:102 -msgid "Lesson start" +#: 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:103 -msgid "Lesson end" +#: templates/alsijil/print/full_register.html:71 +msgid "General" msgstr "" -#: templates/alsijil/print/full_register.html:104 -msgid "Per week" +#: templates/alsijil/print/full_register.html:78 +msgid "Late" msgstr "" -#: templates/alsijil/print/full_register.html:124 -msgid "Personal overview" +#: templates/alsijil/print/full_register.html:81 +#: templates/alsijil/print/full_register.html:283 +msgid "Unexcused" +msgstr "injustifié(e)" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" msgstr "" -#: templates/alsijil/print/full_register.html:126 -msgid "Contact details" +#: templates/alsijil/print/full_register.html:101 +msgid "Available extra marks" msgstr "" -#: templates/alsijil/print/full_register.html:174 -msgid "Statistics on remarks" +#: templates/alsijil/print/full_register.html:115 +msgid "Persons in group" +msgstr "Personnes en groupe" + +#: templates/alsijil/print/full_register.html:120 +msgid "No." +msgstr "Non." + +#: templates/alsijil/print/full_register.html:121 +msgid "Last name" +msgstr "Nom de famille" + +#: templates/alsijil/print/full_register.html:122 +msgid "First name" +msgstr "Prénom" + +#: templates/alsijil/print/full_register.html:123 +msgid "Sex" +msgstr "Sexe" + +#: templates/alsijil/print/full_register.html:124 +msgid "Date of birth" +msgstr "Date d'anniversaire" + +#: templates/alsijil/print/full_register.html:125 +msgid "(a)" msgstr "" -#: templates/alsijil/print/full_register.html:179 -msgid "Count" +#: templates/alsijil/print/full_register.html:131 +msgid "(b)" msgstr "" -#: templates/alsijil/print/full_register.html:196 +#: templates/alsijil/print/full_register.html:164 +msgid "Teachers and lessons in group" +msgstr "Profs et cours en groupe" + +#: templates/alsijil/print/full_register.html:171 +#: templates/alsijil/print/full_register.html:202 +msgid "Lesson start" +msgstr "Début de cours" + +#: templates/alsijil/print/full_register.html:172 +#: templates/alsijil/print/full_register.html:203 +msgid "Lesson end" +msgstr "Fin de cours" + +#: templates/alsijil/print/full_register.html:173 +#: templates/alsijil/print/full_register.html:204 +msgid "Per week" +msgstr "Par semaine" + +#: templates/alsijil/print/full_register.html:194 +#, 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:227 +msgid "Personal overview" +msgstr "Vue d'ensemble personnelle" + +#: templates/alsijil/print/full_register.html:229 +msgid "Contact details" +msgstr "Détails de contact" + +#: templates/alsijil/print/full_register.html:266 msgid "Absences and tardiness" +msgstr "Absences et retards" + +#: templates/alsijil/print/full_register.html:269 +msgid "Absences" +msgstr "Absences" + +#: templates/alsijil/print/full_register.html:274 +msgid "thereof" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:304 msgid "Relevant personal notes" -msgstr "" +msgstr "Notes personnelles importantes" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:308 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:309 +#: templates/alsijil/print/full_register.html:369 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:310 +#: templates/alsijil/print/full_register.html:370 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:311 +#: templates/alsijil/print/full_register.html:374 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:313 +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:330 +msgid "Yes" +msgstr "Oui" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" -msgstr "" +#: templates/alsijil/print/full_register.html:335 +#: templates/alsijil/print/full_register.html:424 +#: templates/alsijil/print/full_register.html:439 +msgid "e" +msgstr "e" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." -msgstr "" +#: templates/alsijil/print/full_register.html:363 +#, 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:373 msgid "Notes" -msgstr "" +msgstr "Notes" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" +#: views.py:76 +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:90 +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 "" +#: views.py:116 +#, 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:21 -msgid "Select" +#: views.py:136 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:47 -msgid "Period" +#: views.py:327 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:49 -msgid "Teachers" +#: views.py:463 +msgid "The absence has been saved." msgstr "" -#: templates/alsijil/week_view.html:97 -msgid "unexcused" -msgstr "" +#: views.py:488 +#, fuzzy +#| msgid "Lesson documentation for calendar week" +msgid "The extra mark has been created." +msgstr "Documentation de cours pour la semaine calendrier" -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" -msgstr "" +#: views.py:499 +#, fuzzy +#| msgid "Lesson documentation for calendar week" +msgid "The extra mark has been saved." +msgstr "Documentation de cours pour la semaine calendrier" -#: templates/alsijil/week_view.html:122 -msgid "No group selected" +#: views.py:509 +msgid "The extra mark has been deleted." msgstr "" -#: templates/alsijil/week_view.html:125 -msgid "" -"\n" -" There are no lessons for the selected group, teacher, room or " -"time.\n" -" " +#: views.py:529 +msgid "The excuse type has been created." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:540 +msgid "The excuse type 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:550 +msgid "The excuse type has been deleted." msgstr "" -#: views.py:306 -msgid "The absence has been saved." -msgstr "" +#~ msgid "Personal note filters" +#~ msgstr "Filtres de notes personnelles" -#: views.py:344 -msgid "The filter has been saved" -msgstr "" +#~ msgid "Identifier" +#~ msgstr "Identificateur" -#: views.py:360 -msgid "The filter has been deleted." -msgstr "" +#~ msgid "Description" +#~ msgstr "Description" + +#, fuzzy +#~| msgid "Personal note filters" +#~ msgid "Personal note filter" +#~ msgstr "Filtres de notes personnelles" + +#, fuzzy +#~| msgid "Personal note filters" +#~ msgid "All personal note filters" +#~ msgstr "Filtres de notes personnelles" + +#, fuzzy +#~| msgid "Personal note filters" +#~ msgid "Update personal note filter" +#~ msgstr "Filtres de notes personnelles" + +#, fuzzy +#~| msgid "Personal note filters" +#~ msgid "Create personal note filter" +#~ msgstr "Filtres de notes personnelles" + +#~ msgid "Count" +#~ msgstr "Compter" + +#~ msgid "Room" +#~ msgstr "Salle" + +#~ 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..8d23b91ba87783c3e16698f4626b6949de23f1f1 100644 --- a/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po +++ b/aleksis/apps/alsijil/locale/la/LC_MESSAGES/django.po @@ -3,64 +3,75 @@ # 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-08-03 20:03+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:199 +msgid "Group" +msgstr "Grex" + +#: forms.py:56 templates/alsijil/print/full_register.html:170 +#: templates/alsijil/print/full_register.html:201 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:163 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:164 +#: templates/alsijil/class_register/week_view.html:109 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:275 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:170 +#: templates/alsijil/class_register/lesson.html:223 +#: templates/alsijil/class_register/lesson.html:231 +#: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "" -#: menus.py:6 templates/alsijil/print/full_register.html:16 +#: menus.py:6 preferences.py:8 templates/alsijil/print/full_register.html:16 msgid "Class register" msgstr "" @@ -76,306 +87,495 @@ msgstr "" msgid "Register absence" msgstr "" -#: menus.py:34 -msgid "Personal note filters" +#: menus.py:34 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: menus.py:40 models.py:66 models.py:138 +#: templates/alsijil/class_register/lesson.html:168 +#: templates/alsijil/extra_mark/list.html:8 +#: templates/alsijil/extra_mark/list.html:9 +#: templates/alsijil/print/full_register.html:293 +msgid "Extra marks" +msgstr "" + +#: models.py:18 models.py:124 +#, fuzzy +#| msgid "First name" +msgid "Short name" +msgstr "Primus nomen" + +#: models.py:20 models.py:126 +msgid "Name" +msgstr "" + +#: models.py:31 models.py:60 templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:202 +msgid "Excuse type" +msgstr "" + +#: models.py:75 +#, fuzzy +#| msgid "Person" +msgid "Personal note" +msgstr "Persona" + +#: models.py:76 templates/alsijil/class_register/lesson.html:64 +#: templates/alsijil/class_register/lesson.html:156 +#: templates/alsijil/class_register/week_view.html:104 +msgid "Personal notes" +msgstr "" + +#: models.py:99 templates/alsijil/class_register/week_view.html:56 +#: templates/alsijil/print/full_register.html:371 msgid "Lesson topic" msgstr "" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:100 templates/alsijil/print/full_register.html:372 msgid "Homework" msgstr "" -#: models.py:68 -msgid "Identifier" +#: models.py:102 +#, fuzzy +#| msgid "Group" +msgid "Group note" +msgstr "Grex" + +#: models.py:106 templates/alsijil/class_register/lesson.html:60 +#: templates/alsijil/class_register/lesson.html:143 +msgid "Lesson documentation" +msgstr "" + +#: models.py:107 +msgid "Lesson documentations" msgstr "" -#: models.py:71 templates/alsijil/print/full_register.html:178 -msgid "Description" +#: models.py:137 +msgid "Extra mark" msgstr "" -#: models.py:74 -msgid "Match expression" +#: preferences.py:16 +msgid "Block adding personal notes for cancelled lessons" msgstr "" -#: tables.py:14 +#: tables.py:16 tables.py:36 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 +#: tables.py:22 tables.py:42 +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:83 +#, python-format +msgid "%(period)s. period" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:38 +msgid "Previous lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" msgstr "" -#: templates/alsijil/lesson.html:43 +#: templates/alsijil/class_register/lesson.html:68 +#: templates/alsijil/class_register/lesson.html:249 msgid "Change history" msgstr "" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:82 +msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:89 +msgid "Lesson topic of previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:96 +msgid "Homework for this lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:103 +msgid "Group notes for previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:110 +msgid "Absent persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:117 +msgid "Late persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:165 +#: templates/alsijil/print/full_register.html:287 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:188 +msgid "Tardiness (in m)" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:6 +msgid "Week view" msgstr "" -#: templates/alsijil/manage_personal_note_filter.html:11 -msgid "Delete filter" +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" msgstr "" -#: templates/alsijil/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" +#: templates/alsijil/class_register/week_view.html:33 +#, python-format +msgid "CW %(week)s: %(instance)s" msgstr "" -#: templates/alsijil/personal_note_filters.html:12 -msgid "Add filter" +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" msgstr "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/class_register/week_view.html:52 +#, fuzzy +#| msgid "Group" +msgid "Groups" +msgstr "Grex" + +#: templates/alsijil/class_register/week_view.html:54 +#: templates/alsijil/print/full_register.html:169 +#: templates/alsijil/print/full_register.html:200 +msgid "Subject" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:55 +msgid "Teachers" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:110 +msgid "unexcused" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:113 +msgid "Summed up tardiness" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:142 +msgid "No lessons available" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:145 +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/extra_mark/create.html:6 +#: templates/alsijil/extra_mark/create.html:7 +#: templates/alsijil/extra_mark/list.html:14 +msgid "Create extra mark" +msgstr "" + +#: templates/alsijil/extra_mark/edit.html:6 +#: templates/alsijil/extra_mark/edit.html:7 +msgid "Edit extra mark" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:126 +msgid "(e)" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:130 +msgid "(u)" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:12 +#: templates/alsijil/print/full_register.html:406 +msgid "Lesson cancelled" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Missing data" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:16 +msgid "Pending" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +msgid "Substitution" +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:283 +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:101 +msgid "Available extra marks" msgstr "" -#: templates/alsijil/print/full_register.html:71 -#: templates/alsijil/print/full_register.html:200 -msgid "Absences" +#: templates/alsijil/print/full_register.html:115 +msgid "Persons in group" msgstr "" -#: templates/alsijil/print/full_register.html:72 -#: templates/alsijil/print/full_register.html:201 -msgid "Unexcused" +#: templates/alsijil/print/full_register.html:120 +msgid "No." msgstr "" -#: templates/alsijil/print/full_register.html:73 -#: templates/alsijil/print/full_register.html:224 -msgid "Tard." +#: templates/alsijil/print/full_register.html:121 +msgid "Last name" +msgstr "Secondus nomen" + +#: templates/alsijil/print/full_register.html:122 +msgid "First name" +msgstr "Primus nomen" + +#: templates/alsijil/print/full_register.html:123 +msgid "Sex" +msgstr "Genus" + +#: templates/alsijil/print/full_register.html:124 +msgid "Date of birth" +msgstr "Dies natalis" + +#: templates/alsijil/print/full_register.html:125 +msgid "(a)" msgstr "" -#: templates/alsijil/print/full_register.html:95 -msgid "Teachers and lessons in group" +#: templates/alsijil/print/full_register.html:131 +msgid "(b)" msgstr "" -#: templates/alsijil/print/full_register.html:100 -#: templates/alsijil/week_view.html:48 -msgid "Subject" +#: templates/alsijil/print/full_register.html:164 +msgid "Teachers and lessons in group" msgstr "" -#: templates/alsijil/print/full_register.html:102 +#: templates/alsijil/print/full_register.html:171 +#: templates/alsijil/print/full_register.html:202 msgid "Lesson start" msgstr "" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:172 +#: templates/alsijil/print/full_register.html:203 msgid "Lesson end" msgstr "" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:173 +#: templates/alsijil/print/full_register.html:204 msgid "Per week" msgstr "" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:194 +msgid "Teachers and lessons in child groups" +msgstr "" + +#: templates/alsijil/print/full_register.html:227 msgid "Personal overview" msgstr "" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:229 msgid "Contact details" msgstr "" -#: templates/alsijil/print/full_register.html:174 -msgid "Statistics on remarks" +#: templates/alsijil/print/full_register.html:266 +msgid "Absences and tardiness" msgstr "" -#: templates/alsijil/print/full_register.html:179 -msgid "Count" +#: templates/alsijil/print/full_register.html:269 +msgid "Absences" msgstr "" -#: templates/alsijil/print/full_register.html:196 -msgid "Absences and tardiness" +#: templates/alsijil/print/full_register.html:274 +msgid "thereof" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:304 msgid "Relevant personal notes" msgstr "" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:308 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:309 +#: templates/alsijil/print/full_register.html:369 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:310 +#: templates/alsijil/print/full_register.html:370 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:311 +#: templates/alsijil/print/full_register.html:374 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:313 +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:330 +msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" +#: templates/alsijil/print/full_register.html:335 +#: templates/alsijil/print/full_register.html:424 +#: templates/alsijil/print/full_register.html:439 +msgid "e" msgstr "" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." +#: templates/alsijil/print/full_register.html:363 +msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:373 msgid "Notes" msgstr "" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" +#: views.py:76 +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:90 +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" +#: views.py:116 +msgid "The lesson documentation has been saved." msgstr "" -#: templates/alsijil/week_view.html:49 -msgid "Teachers" +#: views.py:136 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:97 -msgid "unexcused" +#: views.py:327 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" +#: views.py:463 +msgid "The absence has been saved." msgstr "" -#: templates/alsijil/week_view.html:122 -msgid "No group selected" +#: views.py:488 +msgid "The extra mark has been created." msgstr "" -#: templates/alsijil/week_view.html:125 -msgid "" -"\n" -" There are no lessons for the selected group, teacher, room or " -"time.\n" -" " +#: views.py:499 +msgid "The extra mark has been saved." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:509 +msgid "The extra mark has been deleted." msgstr "" -#: views.py:68 -msgid "" -"You are not allowed to create a lesson documentation for a lesson in the " -"future." +#: views.py:529 +msgid "The excuse type has been created." msgstr "" -#: views.py:306 -msgid "The absence has been saved." +#: views.py:540 +msgid "The excuse type has been saved." msgstr "" -#: views.py:344 -msgid "The filter has been saved" +#: views.py:550 +msgid "The excuse type has been deleted." msgstr "" -#: views.py:360 -msgid "The filter has been deleted." -msgstr "" +#~ msgid "Description" +#~ msgstr "Descriptio" 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..6c135ee070af949f1a52f1eef843fdf53d28047c 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-08-03 20:03+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,50 +17,60 @@ 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:199 msgid "Group" msgstr "" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:56 templates/alsijil/print/full_register.html:170 +#: templates/alsijil/print/full_register.html:201 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:163 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:164 +#: templates/alsijil/class_register/week_view.html:109 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:275 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:170 +#: templates/alsijil/class_register/lesson.html:223 +#: templates/alsijil/class_register/lesson.html:231 +#: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "" -#: menus.py:6 templates/alsijil/print/full_register.html:16 +#: menus.py:6 preferences.py:8 templates/alsijil/print/full_register.html:16 msgid "Class register" msgstr "" @@ -76,306 +86,484 @@ msgstr "" msgid "Register absence" msgstr "" -#: menus.py:34 -msgid "Personal note filters" +#: menus.py:34 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" +msgstr "" + +#: menus.py:40 models.py:66 models.py:138 +#: templates/alsijil/class_register/lesson.html:168 +#: templates/alsijil/extra_mark/list.html:8 +#: templates/alsijil/extra_mark/list.html:9 +#: templates/alsijil/print/full_register.html:293 +msgid "Extra marks" +msgstr "" + +#: models.py:18 models.py:124 +msgid "Short name" +msgstr "" + +#: models.py:20 models.py:126 +msgid "Name" +msgstr "" + +#: models.py:31 models.py:60 templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:202 +msgid "Excuse type" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: models.py:75 +msgid "Personal note" +msgstr "" + +#: models.py:76 templates/alsijil/class_register/lesson.html:64 +#: templates/alsijil/class_register/lesson.html:156 +#: templates/alsijil/class_register/week_view.html:104 +msgid "Personal notes" +msgstr "" + +#: models.py:99 templates/alsijil/class_register/week_view.html:56 +#: templates/alsijil/print/full_register.html:371 msgid "Lesson topic" msgstr "" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:100 templates/alsijil/print/full_register.html:372 msgid "Homework" msgstr "" -#: models.py:68 -msgid "Identifier" +#: models.py:102 +msgid "Group note" +msgstr "" + +#: models.py:106 templates/alsijil/class_register/lesson.html:60 +#: templates/alsijil/class_register/lesson.html:143 +msgid "Lesson documentation" +msgstr "" + +#: models.py:107 +msgid "Lesson documentations" msgstr "" -#: models.py:71 templates/alsijil/print/full_register.html:178 -msgid "Description" +#: models.py:137 +msgid "Extra mark" msgstr "" -#: models.py:74 -msgid "Match expression" +#: preferences.py:16 +msgid "Block adding personal notes for cancelled lessons" msgstr "" -#: tables.py:14 +#: tables.py:16 tables.py:36 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 +#: tables.py:22 tables.py:42 +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:83 +#, python-format +msgid "%(period)s. period" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:38 +msgid "Previous lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" msgstr "" -#: templates/alsijil/lesson.html:43 +#: templates/alsijil/class_register/lesson.html:68 +#: templates/alsijil/class_register/lesson.html:249 msgid "Change history" msgstr "" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:82 +msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:89 +msgid "Lesson topic of previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:96 +msgid "Homework for this lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:103 +msgid "Group notes for previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:110 +msgid "Absent persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:117 +msgid "Late persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:165 +#: templates/alsijil/print/full_register.html:287 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:188 +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/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" msgstr "" -#: 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 "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:52 +msgid "Groups" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:54 +#: templates/alsijil/print/full_register.html:169 +#: templates/alsijil/print/full_register.html:200 +msgid "Subject" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:55 +msgid "Teachers" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:110 +msgid "unexcused" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:113 +msgid "Summed up tardiness" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:142 +msgid "No lessons available" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:145 +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/extra_mark/create.html:6 +#: templates/alsijil/extra_mark/create.html:7 +#: templates/alsijil/extra_mark/list.html:14 +msgid "Create extra mark" +msgstr "" + +#: templates/alsijil/extra_mark/edit.html:6 +#: templates/alsijil/extra_mark/edit.html:7 +msgid "Edit extra mark" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:126 +msgid "(e)" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:130 +msgid "(u)" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:12 +#: templates/alsijil/print/full_register.html:406 +msgid "Lesson cancelled" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Missing data" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:16 +msgid "Pending" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +msgid "Substitution" +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:283 +msgid "Unexcused" +msgstr "" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" +msgstr "" + +#: templates/alsijil/print/full_register.html:101 +msgid "Available extra marks" +msgstr "" + +#: templates/alsijil/print/full_register.html:115 msgid "Persons in group" msgstr "" -#: templates/alsijil/print/full_register.html:66 +#: templates/alsijil/print/full_register.html:120 msgid "No." msgstr "" -#: templates/alsijil/print/full_register.html:67 +#: templates/alsijil/print/full_register.html:121 msgid "Last name" msgstr "" -#: templates/alsijil/print/full_register.html:68 +#: templates/alsijil/print/full_register.html:122 msgid "First name" msgstr "" -#: templates/alsijil/print/full_register.html:69 +#: templates/alsijil/print/full_register.html:123 msgid "Sex" msgstr "" -#: templates/alsijil/print/full_register.html:70 +#: templates/alsijil/print/full_register.html:124 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:125 +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:131 +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:164 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:171 +#: templates/alsijil/print/full_register.html:202 msgid "Lesson start" msgstr "" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:172 +#: templates/alsijil/print/full_register.html:203 msgid "Lesson end" msgstr "" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:173 +#: templates/alsijil/print/full_register.html:204 msgid "Per week" msgstr "" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:194 +msgid "Teachers and lessons in child groups" +msgstr "" + +#: templates/alsijil/print/full_register.html:227 msgid "Personal overview" msgstr "" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:229 msgid "Contact details" msgstr "" -#: templates/alsijil/print/full_register.html:174 -msgid "Statistics on remarks" +#: templates/alsijil/print/full_register.html:266 +msgid "Absences and tardiness" msgstr "" -#: templates/alsijil/print/full_register.html:179 -msgid "Count" +#: templates/alsijil/print/full_register.html:269 +msgid "Absences" msgstr "" -#: templates/alsijil/print/full_register.html:196 -msgid "Absences and tardiness" +#: templates/alsijil/print/full_register.html:274 +msgid "thereof" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:304 msgid "Relevant personal notes" msgstr "" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:308 msgid "Date" msgstr "" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:309 +#: templates/alsijil/print/full_register.html:369 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:310 +#: templates/alsijil/print/full_register.html:370 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:311 +#: templates/alsijil/print/full_register.html:374 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:313 +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:330 +msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" +#: templates/alsijil/print/full_register.html:335 +#: templates/alsijil/print/full_register.html:424 +#: templates/alsijil/print/full_register.html:439 +msgid "e" msgstr "" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." +#: templates/alsijil/print/full_register.html:363 +msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:373 msgid "Notes" msgstr "" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" +#: views.py:76 +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:90 +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:116 +msgid "The lesson documentation has been saved." msgstr "" -#: templates/alsijil/week_view.html:21 -msgid "Select" +#: views.py:136 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:47 -msgid "Period" -msgstr "" - -#: templates/alsijil/week_view.html:49 -msgid "Teachers" -msgstr "" - -#: templates/alsijil/week_view.html:97 -msgid "unexcused" +#: views.py:327 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" -msgstr "" - -#: templates/alsijil/week_view.html:122 -msgid "No group selected" +#: views.py:463 +msgid "The absence 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:488 +msgid "The extra mark has been created." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:499 +msgid "The extra mark 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:509 +msgid "The extra mark has been deleted." msgstr "" -#: views.py:306 -msgid "The absence has been saved." +#: views.py:529 +msgid "The excuse type has been created." msgstr "" -#: views.py:344 -msgid "The filter has been saved" +#: views.py:540 +msgid "The excuse type has been saved." msgstr "" -#: views.py:360 -msgid "The filter has been deleted." +#: views.py:550 +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..6c135ee070af949f1a52f1eef843fdf53d28047c 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-08-03 20:03+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,50 +17,60 @@ 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:199 msgid "Group" msgstr "" -#: forms.py:49 templates/alsijil/print/full_register.html:101 +#: forms.py:56 templates/alsijil/print/full_register.html:170 +#: templates/alsijil/print/full_register.html:201 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:163 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:164 +#: templates/alsijil/class_register/week_view.html:109 +#: templates/alsijil/print/full_register.html:75 +#: templates/alsijil/print/full_register.html:312 msgid "Absent" msgstr "" -#: forms.py:80 templates/alsijil/lesson.html:61 +#: forms.py:108 templates/alsijil/class_register/lesson.html:166 +#: templates/alsijil/print/full_register.html:84 +#: templates/alsijil/print/full_register.html:275 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:170 +#: templates/alsijil/class_register/lesson.html:223 +#: templates/alsijil/class_register/lesson.html:231 +#: templates/alsijil/print/full_register.html:314 msgid "Remarks" msgstr "" -#: menus.py:6 templates/alsijil/print/full_register.html:16 +#: menus.py:6 preferences.py:8 templates/alsijil/print/full_register.html:16 msgid "Class register" msgstr "" @@ -76,306 +86,484 @@ msgstr "" msgid "Register absence" msgstr "" -#: menus.py:34 -msgid "Personal note filters" +#: menus.py:34 models.py:32 templates/alsijil/excuse_type/list.html:8 +#: templates/alsijil/excuse_type/list.html:9 +msgid "Excuse types" +msgstr "" + +#: menus.py:40 models.py:66 models.py:138 +#: templates/alsijil/class_register/lesson.html:168 +#: templates/alsijil/extra_mark/list.html:8 +#: templates/alsijil/extra_mark/list.html:9 +#: templates/alsijil/print/full_register.html:293 +msgid "Extra marks" +msgstr "" + +#: models.py:18 models.py:124 +msgid "Short name" +msgstr "" + +#: models.py:20 models.py:126 +msgid "Name" +msgstr "" + +#: models.py:31 models.py:60 templates/alsijil/class_register/lesson.html:167 +#: templates/alsijil/class_register/lesson.html:202 +msgid "Excuse type" msgstr "" -#: models.py:51 templates/alsijil/print/full_register.html:271 +#: models.py:75 +msgid "Personal note" +msgstr "" + +#: models.py:76 templates/alsijil/class_register/lesson.html:64 +#: templates/alsijil/class_register/lesson.html:156 +#: templates/alsijil/class_register/week_view.html:104 +msgid "Personal notes" +msgstr "" + +#: models.py:99 templates/alsijil/class_register/week_view.html:56 +#: templates/alsijil/print/full_register.html:371 msgid "Lesson topic" msgstr "" -#: models.py:52 templates/alsijil/print/full_register.html:272 +#: models.py:100 templates/alsijil/print/full_register.html:372 msgid "Homework" msgstr "" -#: models.py:68 -msgid "Identifier" +#: models.py:102 +msgid "Group note" +msgstr "" + +#: models.py:106 templates/alsijil/class_register/lesson.html:60 +#: templates/alsijil/class_register/lesson.html:143 +msgid "Lesson documentation" +msgstr "" + +#: models.py:107 +msgid "Lesson documentations" msgstr "" -#: models.py:71 templates/alsijil/print/full_register.html:178 -msgid "Description" +#: models.py:137 +msgid "Extra mark" msgstr "" -#: models.py:74 -msgid "Match expression" +#: preferences.py:16 +msgid "Block adding personal notes for cancelled lessons" msgstr "" -#: tables.py:14 +#: tables.py:16 tables.py:36 msgid "Edit" msgstr "" -#: templates/alsijil/lesson.html:5 +#: tables.py:22 tables.py:42 +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:83 +#, python-format +msgid "%(period)s. period" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:38 +msgid "Previous lesson" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:46 +msgid "Next lesson" msgstr "" -#: templates/alsijil/lesson.html:43 +#: templates/alsijil/class_register/lesson.html:68 +#: templates/alsijil/class_register/lesson.html:249 msgid "Change history" msgstr "" -#: templates/alsijil/lesson.html:52 templates/alsijil/week_view.html:91 -msgid "Personal notes" +#: templates/alsijil/class_register/lesson.html:82 +msgid "Overview: Previous lesson" msgstr "" -#: templates/alsijil/lesson.html:60 -#: templates/alsijil/print/full_register.html:202 +#: templates/alsijil/class_register/lesson.html:89 +msgid "Lesson topic of previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:96 +msgid "Homework for this lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:103 +msgid "Group notes for previous lesson:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:110 +msgid "Absent persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:117 +msgid "Late persons:" +msgstr "" + +#: templates/alsijil/class_register/lesson.html:165 +#: templates/alsijil/print/full_register.html:287 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:188 +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/personal_note_filters.html:7 -#: templates/alsijil/personal_note_filters.html:8 -msgid "List of all personal note filters" +#: templates/alsijil/class_register/week_view.html:27 +msgid "Select" msgstr "" -#: 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 "" -#: templates/alsijil/print/full_register.html:22 -#: templates/alsijil/print/full_register.html:54 -msgid "Owners" +#: templates/alsijil/class_register/week_view.html:50 +msgid "Period" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:52 +msgid "Groups" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:54 +#: templates/alsijil/print/full_register.html:169 +#: templates/alsijil/print/full_register.html:200 +msgid "Subject" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:55 +msgid "Teachers" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:110 +msgid "unexcused" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:113 +msgid "Summed up tardiness" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:142 +msgid "No lessons available" +msgstr "" + +#: templates/alsijil/class_register/week_view.html:145 +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/extra_mark/create.html:6 +#: templates/alsijil/extra_mark/create.html:7 +#: templates/alsijil/extra_mark/list.html:14 +msgid "Create extra mark" +msgstr "" + +#: templates/alsijil/extra_mark/edit.html:6 +#: templates/alsijil/extra_mark/edit.html:7 +msgid "Edit extra mark" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:126 +msgid "(e)" +msgstr "" + +#: templates/alsijil/partials/absences.html:4 +#: templates/alsijil/print/full_register.html:130 +msgid "(u)" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:6 +msgid "Data complete" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:12 +#: templates/alsijil/print/full_register.html:406 +msgid "Lesson cancelled" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:14 +msgid "Missing data" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:16 +msgid "Pending" +msgstr "" + +#: templates/alsijil/partials/lesson_status_icon.html:18 +msgid "Substitution" +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:283 +msgid "Unexcused" +msgstr "" + +#: templates/alsijil/print/full_register.html:89 +msgid "Custom excuse types" +msgstr "" + +#: templates/alsijil/print/full_register.html:101 +msgid "Available extra marks" +msgstr "" + +#: templates/alsijil/print/full_register.html:115 msgid "Persons in group" msgstr "" -#: templates/alsijil/print/full_register.html:66 +#: templates/alsijil/print/full_register.html:120 msgid "No." msgstr "" -#: templates/alsijil/print/full_register.html:67 +#: templates/alsijil/print/full_register.html:121 msgid "Last name" msgstr "" -#: templates/alsijil/print/full_register.html:68 +#: templates/alsijil/print/full_register.html:122 msgid "First name" msgstr "" -#: templates/alsijil/print/full_register.html:69 +#: templates/alsijil/print/full_register.html:123 msgid "Sex" msgstr "" -#: templates/alsijil/print/full_register.html:70 +#: templates/alsijil/print/full_register.html:124 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:125 +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:131 +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:164 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:171 +#: templates/alsijil/print/full_register.html:202 msgid "Lesson start" msgstr "" -#: templates/alsijil/print/full_register.html:103 +#: templates/alsijil/print/full_register.html:172 +#: templates/alsijil/print/full_register.html:203 msgid "Lesson end" msgstr "" -#: templates/alsijil/print/full_register.html:104 +#: templates/alsijil/print/full_register.html:173 +#: templates/alsijil/print/full_register.html:204 msgid "Per week" msgstr "" -#: templates/alsijil/print/full_register.html:124 +#: templates/alsijil/print/full_register.html:194 +msgid "Teachers and lessons in child groups" +msgstr "" + +#: templates/alsijil/print/full_register.html:227 msgid "Personal overview" msgstr "" -#: templates/alsijil/print/full_register.html:126 +#: templates/alsijil/print/full_register.html:229 msgid "Contact details" msgstr "" -#: templates/alsijil/print/full_register.html:174 -msgid "Statistics on remarks" +#: templates/alsijil/print/full_register.html:266 +msgid "Absences and tardiness" msgstr "" -#: templates/alsijil/print/full_register.html:179 -msgid "Count" +#: templates/alsijil/print/full_register.html:269 +msgid "Absences" msgstr "" -#: templates/alsijil/print/full_register.html:196 -msgid "Absences and tardiness" +#: templates/alsijil/print/full_register.html:274 +msgid "thereof" msgstr "" -#: templates/alsijil/print/full_register.html:215 +#: templates/alsijil/print/full_register.html:304 msgid "Relevant personal notes" msgstr "" -#: templates/alsijil/print/full_register.html:219 +#: templates/alsijil/print/full_register.html:308 msgid "Date" msgstr "" -#: templates/alsijil/print/full_register.html:220 -#: templates/alsijil/print/full_register.html:268 +#: templates/alsijil/print/full_register.html:309 +#: templates/alsijil/print/full_register.html:369 msgid "Pe." msgstr "" -#: templates/alsijil/print/full_register.html:221 -#: templates/alsijil/print/full_register.html:269 +#: templates/alsijil/print/full_register.html:310 +#: templates/alsijil/print/full_register.html:370 msgid "Subj." msgstr "" -#: templates/alsijil/print/full_register.html:222 -#: templates/alsijil/print/full_register.html:274 +#: templates/alsijil/print/full_register.html:311 +#: templates/alsijil/print/full_register.html:374 msgid "Te." msgstr "" -#: templates/alsijil/print/full_register.html:240 -msgid "Yes" +#: templates/alsijil/print/full_register.html:313 +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:330 +msgid "Yes" msgstr "" -#: templates/alsijil/print/full_register.html:262 -msgid "Lesson documentation for calendar week" +#: templates/alsijil/print/full_register.html:335 +#: templates/alsijil/print/full_register.html:424 +#: templates/alsijil/print/full_register.html:439 +msgid "e" msgstr "" -#: templates/alsijil/print/full_register.html:270 -msgid "Subs." +#: templates/alsijil/print/full_register.html:363 +msgid "Lesson documentation for week" msgstr "" -#: templates/alsijil/print/full_register.html:273 +#: templates/alsijil/print/full_register.html:373 msgid "Notes" msgstr "" -#: templates/alsijil/print/full_register.html:301 -msgid "Lesson cancelled" +#: views.py:76 +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:90 +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:116 +msgid "The lesson documentation has been saved." msgstr "" -#: templates/alsijil/week_view.html:21 -msgid "Select" +#: views.py:136 +msgid "The personal notes have been saved." msgstr "" -#: templates/alsijil/week_view.html:47 -msgid "Period" -msgstr "" - -#: templates/alsijil/week_view.html:49 -msgid "Teachers" -msgstr "" - -#: templates/alsijil/week_view.html:97 -msgid "unexcused" +#: views.py:327 +msgid "There is no current school term." msgstr "" -#: templates/alsijil/week_view.html:100 -msgid "Summed up tardiness" -msgstr "" - -#: templates/alsijil/week_view.html:122 -msgid "No group selected" +#: views.py:463 +msgid "The absence 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:488 +msgid "The extra mark has been created." msgstr "" -#: views.py:56 -msgid "" -"You either selected an invalid lesson or there is currently no lesson in " -"progress." +#: views.py:499 +msgid "The extra mark 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:509 +msgid "The extra mark has been deleted." msgstr "" -#: views.py:306 -msgid "The absence has been saved." +#: views.py:529 +msgid "The excuse type has been created." msgstr "" -#: views.py:344 -msgid "The filter has been saved" +#: views.py:540 +msgid "The excuse type has been saved." msgstr "" -#: views.py:360 -msgid "The filter has been deleted." +#: views.py:550 +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/0003_group_notes.py b/aleksis/apps/alsijil/migrations/0003_group_notes.py deleted file mode 100644 index 312eab9f68fa2070e44319ba96eeca4888f463f1..0000000000000000000000000000000000000000 --- a/aleksis/apps/alsijil/migrations/0003_group_notes.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 3.0.8 on 2020-07-10 16:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('alsijil', '0002_excuse_type'), - ] - - 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/0004_group_notes.py b/aleksis/apps/alsijil/migrations/0004_group_notes.py new file mode 100644 index 0000000000000000000000000000000000000000..dbbb2edc3770e0edc573d47afbf26c5cd439eb0b --- /dev/null +++ b/aleksis/apps/alsijil/migrations/0004_group_notes.py @@ -0,0 +1,20 @@ +# 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 b8491bf6dcd3def3c8bb399fbc4e9721171db274..0f0e72bb864590684c8eab5e90eed5eb5f444546 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,7 +98,9 @@ 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) + group_note = models.CharField( + verbose_name=_("Group note"), max_length=200, blank=True + ) class Meta: verbose_name = _("Lesson documentation") @@ -107,24 +114,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/preferences.py b/aleksis/apps/alsijil/preferences.py new file mode 100644 index 0000000000000000000000000000000000000000..e2a55de885f3e415d9b4e461ab3192f899af2398 --- /dev/null +++ b/aleksis/apps/alsijil/preferences.py @@ -0,0 +1,16 @@ +from django.utils.translation import gettext as _ + +from dynamic_preferences.preferences import Section +from dynamic_preferences.types import BooleanPreference + +from aleksis.core.registries import site_preferences_registry + +alsijil = Section("alsijil", verbose_name=_("Class register")) + + +@site_preferences_registry.register +class BlockPersonalNotesForCancelled(BooleanPreference): + section = alsijil + name = "block_personal_notes_for_cancelled" + default = True + verbose_name = _("Block adding personal notes for cancelled lessons") 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 b2914f2bf5f841875d7d6a413af75d4d7a8d4866..9fca5de56fc8bd6316a4db3728ae449cd3882cbb 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 or not request.site.preferences.alsijil__block_personal_notes_for_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 %} @@ -106,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> @@ -123,92 +147,113 @@ </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> - <div class="row"> - <div class="col s12"> - <div class="card"> - <div class="card-content"> + {% if not lesson_period.get_substitution.cancelled or not request.site.preferences.alsijil__block_personal_notes_for_cancelled %} + <div class="col s12" id="personal-notes"> + <div class="card"> + <div class="card-content"> <span class="card-title"> {% blocktrans %}Personal notes{% endblocktrans %} </span> - {% form form=personal_note_formset.management_form %}{% endform %} - - <table class="striped responsive-table alsijil-table"> - <thead> - <tr> - <th>{% blocktrans %}Person{% endblocktrans %}</th> - <th>{% blocktrans %}Absent{% endblocktrans %}</th> - <th>{% blocktrans %}Tardiness{% endblocktrans %}</th> - <th>{% blocktrans %}Excused{% endblocktrans %}</th> - <th>{% blocktrans %}Excuse type{% endblocktrans %}</th> - <th>{% blocktrans %}Remarks{% endblocktrans %}</th> - </tr> - </thead> - <tbody> - {% for form in personal_note_formset %} + {% form form=personal_note_formset.management_form %}{% endform %} + + <table class="striped responsive-table alsijil-table"> + <thead> <tr> - {{ form.id }} - <td>{{ form.person_name }}{{ form.person_name.value }}</td> - <td class="center-align"> - <label> - {{ form.absent }} - <span></span> - </label> - </td> - <td> - <div class="input-field"> - {{ form.late }} - <label for="{{ form.absent.id_for_label }}"> - {% trans "Tardiness (in m)" %} - </label> - </div> - </td> - <td class="center-align"> - <label> - {{ form.excused }} - <span></span> - </label> - </td> - <td> - <div class="input-field"> - {{ form.excuse_type }} - <label for="{{ form.excuse_type.id_for_label }}"> - {% trans "Excuse type" %} + <th>{% blocktrans %}Person{% endblocktrans %}</th> + <th>{% blocktrans %}Absent{% endblocktrans %}</th> + <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> + <tbody> + {% for form in personal_note_formset %} + <tr> + {{ form.id }} + <td>{{ form.person_name }}{{ form.person_name.value }}</td> + <td class="center-align"> + <label> + {{ form.absent }} + <span></span> </label> - </div> - </td> - <td> - <div class="input-field"> - {{ form.remarks }} - <label for="{{ form.absent.id_for_label }}"> - {% trans "Remarks" %} + </td> + <td> + <div class="input-field"> + {{ form.late }} + <label for="{{ form.absent.id_for_label }}"> + {% trans "Tardiness (in m)" %} + </label> + </div> + </td> + <td class="center-align"> + <label> + {{ form.excused }} + <span></span> </label> - </div> - </td> - </tr> - {% endfor %} - </tbody> - </table> + </td> + <td> + <div class="input-field"> + {{ form.excuse_type }} + <label for="{{ form.excuse_type.id_for_label }}"> + {% trans "Excuse type" %} + </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 }} + <label for="{{ form.absent.id_for_label }}"> + {% trans "Remarks" %} + </label> + </div> + </td> + </tr> + {% endfor %} + </tbody> + </table> + </div> </div> </div> - </div> - </div> - <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 82584e53de8b53eefdf513b05f6dc09adddc54d7..d0761f8102f60e1ea899a8b1ba1d11c1e2402535 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 %} @@ -55,8 +55,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> @@ -70,6 +74,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 }} @@ -80,6 +91,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> @@ -103,6 +119,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/partials/lesson_status_icon.html b/aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html index 08746b5c9791b1b3f118387b3835dd4cbc4eec03..57b71b661994baf0f2b37a71678098d564cc88ed 100644 --- a/aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html +++ b/aleksis/apps/alsijil/templates/alsijil/partials/lesson_status_icon.html @@ -8,17 +8,13 @@ {% period_to_time_start week period.period as time_start %} {% period_to_time_end week period.period as time_end %} - {% if now_dt > time_end %} + {% if period.get_substitution.cancelled %} + <i class="material-icons red-text tooltipped {{ css_class }}" data-position="bottom" data-tooltip="{% trans "Lesson cancelled" %}" title="{% trans "Lesson cancelled" %}">cancel</i> + {% elif now_dt > time_end %} <i class="material-icons red-text tooltipped {{ css_class }}" data-position="bottom" data-tooltip="{% trans "Missing data" %}" title="{% trans "Missing data" %}">history</i> {% elif now_dt > time_start and now_dt < time_end %} <i class="material-icons orange-text tooltipped {{ css_class }}" data-position="bottom" data-tooltip="{% trans "Pending" %}" title="{% trans "Pending" %}">more_horiz</i> - {% else %} - {% if period.get_substitution %} - {% if period.get_substitution.cancelled %} - <i class="material-icons red-text tooltipped {{ css_class }}" data-position="bottom" data-tooltip="{% trans "Lesson cancelled" %}" title="{% trans "Lesson cancelled" %}">cancel</i> - {% else %} - <i class="material-icons orange-text tooltipped {{ css_class }}" data-position="bottom" data-tooltip="{% trans "Substitution" %}" title="{% trans "Substitution" %}">update</i> - {% endif %} - {% endif %} + {% elif period.get_substitution %} + <i class="material-icons orange-text tooltipped {{ css_class }}" data-position="bottom" data-tooltip="{% trans "Substitution" %}" title="{% trans "Substitution" %}">update</i> {% endif %} {% endif %} 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 432f8e655a3026a3faa8518e472eeb9152a94d8f..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> @@ -398,35 +412,43 @@ <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 3e33dda9f967909fed36c7208e2af5c00d796316..49ccfd90cbac2799fa1dd46af975c935bcfd8beb 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 9e0167c31c415e7eb4fbcfa3ab25f5c848e18845..96a620785de88ba4b7a0b00aa65d65a466eb4487 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -14,23 +14,25 @@ from reversion.views import RevisionMixin from rules.contrib.views import PermissionRequiredMixin from aleksis.apps.chronos.managers import TimetableType -from aleksis.apps.chronos.models import LessonPeriod +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.apps.chronos.util.date import get_weeks_for_year from aleksis.core.mixins import AdvancedCreateView, AdvancedDeleteView, AdvancedEditView from aleksis.core.models import Group, Person, SchoolTerm from aleksis.core.util import messages +from aleksis.core.util.core_helpers import get_site_preferences 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( @@ -47,6 +49,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 = ( @@ -106,18 +116,23 @@ def lesson( messages.success(request, _("The lesson documentation has been saved.")) - if personal_note_formset.is_valid(): - instances = personal_note_formset.save() - - # Iterate over personal notes and carry changed absences to following lessons - for instance in instances: - instance.person.mark_absent( - wanted_week[lesson_period.period.weekday], - lesson_period.period.period + 1, - instance.absent, - instance.excused, - instance.excuse_type, - ) + substitution = lesson_period.get_substitution() + if ( + not getattr(substitution, "cancelled", False) + or not get_site_preferences()["alsijil__block_personal_notes_for_cancelled"] + ): + if personal_note_formset.is_valid(): + instances = personal_note_formset.save() + + # Iterate over personal notes and carry changed absences to following lessons + for instance in instances: + instance.person.mark_absent( + wanted_week[lesson_period.period.weekday], + lesson_period.period.period + 1, + instance.absent, + instance.excused, + instance.excuse_type, + ) messages.success(request, _("The personal notes have been saved.")) @@ -247,6 +262,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( @@ -270,6 +300,7 @@ def week_view( for a in args: iterable.append(a) + context["extra_marks"] = ExtraMark.objects.all() context["week"] = wanted_week context["weeks"] = get_weeks_for_year(year=wanted_week.year) context["lesson_periods"] = lesson_periods @@ -307,18 +338,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, ) @@ -351,9 +383,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) + "personal_notes__absent", + filter=Q( + personal_notes__absent=True, + personal_notes__lesson_period__lesson__validity__school_term=current_school_term, + ), ), excused=Count( "personal_notes__absent", @@ -361,38 +400,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, ), ) } @@ -400,11 +443,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) @@ -441,57 +485,45 @@ def register_absence(request: HttpRequest) -> HttpResponse: return render(request, "alsijil/absences/register.html", context) -def list_personal_note_filters(request: HttpRequest) -> HttpResponse: - context = {} - - personal_note_filters = PersonalNoteFilter.objects.all() - - # Prepare table - personal_note_filters_table = PersonalNoteFilterTable(personal_note_filters) - RequestConfig(request).configure(personal_note_filters_table) +class ExtraMarkListView(SingleTableView, PermissionRequiredMixin): + """Table of all extra marks.""" - context["personal_note_filters_table"] = personal_note_filters_table + model = ExtraMark + table_class = ExtraMarkTable + permission_required = "core.view_extramark" + template_name = "alsijil/extra_mark/list.html" - return render(request, "alsijil/personal_note_filter/list.html", context) +class ExtraMarkCreateView(AdvancedCreateView, PermissionRequiredMixin): + """Create view for extra marks.""" -def edit_personal_note_filter( - request: HttpRequest, id_: Optional["int"] = None -) -> HttpResponse: - 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.") - 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") +class ExtraMarkEditView(AdvancedEditView, PermissionRequiredMixin): + """Edit view for extra marks.""" - 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): diff --git a/poetry.lock b/poetry.lock index d0ecccb2126253bc14e4e9b40f71c0371e045768..978de725f9360d5c85e23b370ac282a33a793243 100644 --- a/poetry.lock +++ b/poetry.lock @@ -68,11 +68,11 @@ extras = ["phonenumbers"] version = ">=3.0,<4.0" [package.dependencies.django-two-factor-auth] -extras = ["sms", "phonenumbers", "call", "yubikey"] +extras = ["phonenumbers", "sms", "call", "yubikey"] version = ">=1.11.0,<2.0.0" [package.dependencies.dynaconf] -extras = ["yaml", "toml", "ini"] +extras = ["toml", "yaml", "ini"] version = ">=2.0,<3.0" [package.extras] @@ -287,7 +287,7 @@ description = "Code coverage measurement for Python" name = "coverage" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" -version = "5.1" +version = "5.2.1" [package.extras] toml = ["toml"] @@ -390,7 +390,7 @@ description = "simple color field for your models with a nice color-picker in th name = "django-colorfield" optional = false python-versions = "*" -version = "0.3.1" +version = "0.3.2" [[package]] category = "main" @@ -436,7 +436,7 @@ description = "Yet another Django audit log app, hopefully the simplest one." name = "django-easy-audit" optional = false python-versions = "*" -version = "1.2.3" +version = "1.3.0a3" [package.dependencies] beautifulsoup4 = "*" @@ -628,12 +628,11 @@ description = "A django-otp plugin that verifies YubiKey OTP tokens." name = "django-otp-yubikey" optional = false python-versions = "*" -version = "0.5.2" +version = "0.6.0" [package.dependencies] YubiOTP = ">=0.2.2" django-otp = ">=0.5.0" -six = ">=1.10.0" [[package]] category = "main" @@ -678,11 +677,11 @@ category = "main" description = "Render a particular block from a template to a string." name = "django-render-block" optional = false -python-versions = "*" -version = "0.6" +python-versions = ">=3.5" +version = "0.7" [package.dependencies] -django = ">=1.11" +django = ">=2.2" [[package]] category = "main" @@ -775,10 +774,10 @@ description = "Complete Two-Factor Authentication for Django" name = "django-two-factor-auth" optional = false python-versions = "*" -version = "1.11.0" +version = "1.12.1" [package.dependencies] -Django = ">=1.11" +Django = ">=2.2" django-formtools = "*" django-otp = ">=0.6.0,<0.99" django-phonenumber-field = ">=1.1.0,<3.99" @@ -939,7 +938,7 @@ description = "flake8 plugin to call black as a code style validator" name = "flake8-black" optional = false python-versions = "*" -version = "0.2.0" +version = "0.2.1" [package.dependencies] black = "*" @@ -1062,7 +1061,7 @@ description = "Python Git Library" name = "gitpython" optional = false python-versions = ">=3.4" -version = "3.1.3" +version = "3.1.7" [package.dependencies] gitdb = ">=4.0.1,<5" @@ -1113,9 +1112,10 @@ description = "A Python utility / library to sort Python imports." name = "isort" optional = false python-versions = ">=3.6,<4.0" -version = "5.0.3" +version = "5.2.2" [package.extras] +colors = ["colorama (>=0.4.3,<0.5.0)"] pipfile_deprecated_finder = ["pipreqs", "requirementslib", "tomlkit (>=0.5.3)"] requirements_deprecated_finder = ["pipreqs", "pip-api"] @@ -1245,7 +1245,7 @@ description = "PostgreSQL interface library" name = "pg8000" optional = false python-versions = ">=3.5" -version = "1.15.3" +version = "1.16.3" [package.dependencies] scramp = "1.2.0" @@ -1256,7 +1256,7 @@ description = "Python version of Google's common library for parsing, formatting name = "phonenumbers" optional = false python-versions = "*" -version = "8.12.6" +version = "8.12.7" [[package]] category = "main" @@ -1436,7 +1436,7 @@ description = "pytest-sugar is a plugin for pytest that changes the default look name = "pytest-sugar" optional = false python-versions = "*" -version = "0.9.3" +version = "0.9.4" [package.dependencies] packaging = ">=14.1" @@ -1527,7 +1527,7 @@ description = "Alternative regular expression module, to replace re." name = "regex" optional = false python-versions = "*" -version = "2020.6.8" +version = "2020.7.14" [[package]] category = "main" @@ -1780,11 +1780,15 @@ description = "Manage dynamic plugins for Python applications" name = "stevedore" optional = false python-versions = ">=3.6" -version = "2.0.1" +version = "3.2.0" [package.dependencies] pbr = ">=2.0.0,<2.1.0 || >2.1.0" +[package.dependencies.importlib-metadata] +python = "<3.8" +version = ">=1.7.0" + [[package]] category = "dev" description = "ANSII Color formatting for output in terminal." @@ -1854,7 +1858,7 @@ description = "Fast, Extensible Progress Meter" name = "tqdm" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*" -version = "4.47.0" +version = "4.48.0" [package.extras] dev = ["py-make (>=0.1.0)", "twine", "argopt", "pydoc-markdown"] @@ -1865,7 +1869,7 @@ description = "Twilio API client and TwiML generator" name = "twilio" optional = false python-versions = "*" -version = "6.43.0" +version = "6.44.1" [package.dependencies] PyJWT = ">=1.4.2" @@ -1898,7 +1902,7 @@ description = "HTTP library with thread-safe connection pooling, file post, and name = "urllib3" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" -version = "1.25.9" +version = "1.25.10" [package.extras] brotli = ["brotlipy (>=0.6.0)"] @@ -2032,37 +2036,40 @@ configobj = [ {file = "configobj-5.0.6.tar.gz", hash = "sha256:a2f5650770e1c87fb335af19a9b7eb73fc05ccf22144eb68db7d00cd2bcb0902"}, ] coverage = [ - {file = "coverage-5.1-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:0cb4be7e784dcdc050fc58ef05b71aa8e89b7e6636b99967fadbdba694cf2b65"}, - {file = "coverage-5.1-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:c317eaf5ff46a34305b202e73404f55f7389ef834b8dbf4da09b9b9b37f76dd2"}, - {file = "coverage-5.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:b83835506dfc185a319031cf853fa4bb1b3974b1f913f5bb1a0f3d98bdcded04"}, - {file = "coverage-5.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5f2294dbf7875b991c381e3d5af2bcc3494d836affa52b809c91697449d0eda6"}, - {file = "coverage-5.1-cp27-cp27m-win32.whl", hash = "sha256:de807ae933cfb7f0c7d9d981a053772452217df2bf38e7e6267c9cbf9545a796"}, - {file = "coverage-5.1-cp27-cp27m-win_amd64.whl", hash = "sha256:bf9cb9a9fd8891e7efd2d44deb24b86d647394b9705b744ff6f8261e6f29a730"}, - {file = "coverage-5.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:acf3763ed01af8410fc36afea23707d4ea58ba7e86a8ee915dfb9ceff9ef69d0"}, - {file = "coverage-5.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:dec5202bfe6f672d4511086e125db035a52b00f1648d6407cc8e526912c0353a"}, - {file = "coverage-5.1-cp35-cp35m-macosx_10_12_x86_64.whl", hash = "sha256:7a5bdad4edec57b5fb8dae7d3ee58622d626fd3a0be0dfceda162a7035885ecf"}, - {file = "coverage-5.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:1601e480b9b99697a570cea7ef749e88123c04b92d84cedaa01e117436b4a0a9"}, - {file = "coverage-5.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:dbe8c6ae7534b5b024296464f387d57c13caa942f6d8e6e0346f27e509f0f768"}, - {file = "coverage-5.1-cp35-cp35m-win32.whl", hash = "sha256:a027ef0492ede1e03a8054e3c37b8def89a1e3c471482e9f046906ba4f2aafd2"}, - {file = "coverage-5.1-cp35-cp35m-win_amd64.whl", hash = "sha256:0e61d9803d5851849c24f78227939c701ced6704f337cad0a91e0972c51c1ee7"}, - {file = "coverage-5.1-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:2d27a3f742c98e5c6b461ee6ef7287400a1956c11421eb574d843d9ec1f772f0"}, - {file = "coverage-5.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:66460ab1599d3cf894bb6baee8c684788819b71a5dc1e8fa2ecc152e5d752019"}, - {file = "coverage-5.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5c542d1e62eece33c306d66fe0a5c4f7f7b3c08fecc46ead86d7916684b36d6c"}, - {file = "coverage-5.1-cp36-cp36m-win32.whl", hash = "sha256:2742c7515b9eb368718cd091bad1a1b44135cc72468c731302b3d641895b83d1"}, - {file = "coverage-5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:dead2ddede4c7ba6cb3a721870f5141c97dc7d85a079edb4bd8d88c3ad5b20c7"}, - {file = "coverage-5.1-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:01333e1bd22c59713ba8a79f088b3955946e293114479bbfc2e37d522be03355"}, - {file = "coverage-5.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:e1ea316102ea1e1770724db01998d1603ed921c54a86a2efcb03428d5417e489"}, - {file = "coverage-5.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:adeb4c5b608574a3d647011af36f7586811a2c1197c861aedb548dd2453b41cd"}, - {file = "coverage-5.1-cp37-cp37m-win32.whl", hash = "sha256:782caea581a6e9ff75eccda79287daefd1d2631cc09d642b6ee2d6da21fc0a4e"}, - {file = "coverage-5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:00f1d23f4336efc3b311ed0d807feb45098fc86dee1ca13b3d6768cdab187c8a"}, - {file = "coverage-5.1-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:402e1744733df483b93abbf209283898e9f0d67470707e3c7516d84f48524f55"}, - {file = "coverage-5.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:a3f3654d5734a3ece152636aad89f58afc9213c6520062db3978239db122f03c"}, - {file = "coverage-5.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6402bd2fdedabbdb63a316308142597534ea8e1895f4e7d8bf7476c5e8751fef"}, - {file = "coverage-5.1-cp38-cp38-win32.whl", hash = "sha256:8fa0cbc7ecad630e5b0f4f35b0f6ad419246b02bc750de7ac66db92667996d24"}, - {file = "coverage-5.1-cp38-cp38-win_amd64.whl", hash = "sha256:79a3cfd6346ce6c13145731d39db47b7a7b859c0272f02cdb89a3bdcbae233a0"}, - {file = "coverage-5.1-cp39-cp39-win32.whl", hash = "sha256:a82b92b04a23d3c8a581fc049228bafde988abacba397d57ce95fe95e0338ab4"}, - {file = "coverage-5.1-cp39-cp39-win_amd64.whl", hash = "sha256:bb28a7245de68bf29f6fb199545d072d1036a1917dca17a1e75bbb919e14ee8e"}, - {file = "coverage-5.1.tar.gz", hash = "sha256:f90bfc4ad18450c80b024036eaf91e4a246ae287701aaa88eaebebf150868052"}, + {file = "coverage-5.2.1-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:40f70f81be4d34f8d491e55936904db5c527b0711b2a46513641a5729783c2e4"}, + {file = "coverage-5.2.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:675192fca634f0df69af3493a48224f211f8db4e84452b08d5fcebb9167adb01"}, + {file = "coverage-5.2.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2fcc8b58953d74d199a1a4d633df8146f0ac36c4e720b4a1997e9b6327af43a8"}, + {file = "coverage-5.2.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:64c4f340338c68c463f1b56e3f2f0423f7b17ba6c3febae80b81f0e093077f59"}, + {file = "coverage-5.2.1-cp27-cp27m-win32.whl", hash = "sha256:52f185ffd3291196dc1aae506b42e178a592b0b60a8610b108e6ad892cfc1bb3"}, + {file = "coverage-5.2.1-cp27-cp27m-win_amd64.whl", hash = "sha256:30bc103587e0d3df9e52cd9da1dd915265a22fad0b72afe54daf840c984b564f"}, + {file = "coverage-5.2.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:9ea749fd447ce7fb1ac71f7616371f04054d969d412d37611716721931e36efd"}, + {file = "coverage-5.2.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ce7866f29d3025b5b34c2e944e66ebef0d92e4a4f2463f7266daa03a1332a651"}, + {file = "coverage-5.2.1-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:4869ab1c1ed33953bb2433ce7b894a28d724b7aa76c19b11e2878034a4e4680b"}, + {file = "coverage-5.2.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:a3ee9c793ffefe2944d3a2bd928a0e436cd0ac2d9e3723152d6fd5398838ce7d"}, + {file = "coverage-5.2.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:28f42dc5172ebdc32622a2c3f7ead1b836cdbf253569ae5673f499e35db0bac3"}, + {file = "coverage-5.2.1-cp35-cp35m-win32.whl", hash = "sha256:e26c993bd4b220429d4ec8c1468eca445a4064a61c74ca08da7429af9bc53bb0"}, + {file = "coverage-5.2.1-cp35-cp35m-win_amd64.whl", hash = "sha256:4186fc95c9febeab5681bc3248553d5ec8c2999b8424d4fc3a39c9cba5796962"}, + {file = "coverage-5.2.1-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:b360d8fd88d2bad01cb953d81fd2edd4be539df7bfec41e8753fe9f4456a5082"}, + {file = "coverage-5.2.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:1adb6be0dcef0cf9434619d3b892772fdb48e793300f9d762e480e043bd8e716"}, + {file = "coverage-5.2.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:098a703d913be6fbd146a8c50cc76513d726b022d170e5e98dc56d958fd592fb"}, + {file = "coverage-5.2.1-cp36-cp36m-win32.whl", hash = "sha256:962c44070c281d86398aeb8f64e1bf37816a4dfc6f4c0f114756b14fc575621d"}, + {file = "coverage-5.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1ed2bdb27b4c9fc87058a1cb751c4df8752002143ed393899edb82b131e0546"}, + {file = "coverage-5.2.1-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:c890728a93fffd0407d7d37c1e6083ff3f9f211c83b4316fae3778417eab9811"}, + {file = "coverage-5.2.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:538f2fd5eb64366f37c97fdb3077d665fa946d2b6d95447622292f38407f9258"}, + {file = "coverage-5.2.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:27ca5a2bc04d68f0776f2cdcb8bbd508bbe430a7bf9c02315cd05fb1d86d0034"}, + {file = "coverage-5.2.1-cp37-cp37m-win32.whl", hash = "sha256:aab75d99f3f2874733946a7648ce87a50019eb90baef931698f96b76b6769a46"}, + {file = "coverage-5.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:c2ff24df02a125b7b346c4c9078c8936da06964cc2d276292c357d64378158f8"}, + {file = "coverage-5.2.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:304fbe451698373dc6653772c72c5d5e883a4aadaf20343592a7abb2e643dae0"}, + {file = "coverage-5.2.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:c96472b8ca5dc135fb0aa62f79b033f02aa434fb03a8b190600a5ae4102df1fd"}, + {file = "coverage-5.2.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8505e614c983834239f865da2dd336dcf9d72776b951d5dfa5ac36b987726e1b"}, + {file = "coverage-5.2.1-cp38-cp38-win32.whl", hash = "sha256:700997b77cfab016533b3e7dbc03b71d33ee4df1d79f2463a318ca0263fc29dd"}, + {file = "coverage-5.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:46794c815e56f1431c66d81943fa90721bb858375fb36e5903697d5eef88627d"}, + {file = "coverage-5.2.1-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:16042dc7f8e632e0dcd5206a5095ebd18cb1d005f4c89694f7f8aafd96dd43a3"}, + {file = "coverage-5.2.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:c1bbb628ed5192124889b51204de27c575b3ffc05a5a91307e7640eff1d48da4"}, + {file = "coverage-5.2.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:4f6428b55d2916a69f8d6453e48a505c07b2245653b0aa9f0dee38785939f5e4"}, + {file = "coverage-5.2.1-cp39-cp39-win32.whl", hash = "sha256:9e536783a5acee79a9b308be97d3952b662748c4037b6a24cbb339dc7ed8eb89"}, + {file = "coverage-5.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:b8f58c7db64d8f27078cbf2a4391af6aa4e4767cc08b37555c4ae064b8558d9b"}, + {file = "coverage-5.2.1.tar.gz", hash = "sha256:a34cb28e0747ea15e82d13e14de606747e9e484fb28d63c999483f5d5188e89b"}, ] dj-database-url = [ {file = "dj-database-url-0.5.0.tar.gz", hash = "sha256:4aeaeb1f573c74835b0686a2b46b85990571159ffc21aa57ecd4d1e1cb334163"}, @@ -2096,8 +2103,8 @@ django-ckeditor = [ {file = "django_ckeditor-5.9.0-py2.py3-none-any.whl", hash = "sha256:71c3c7bb46b0cbfb9712ef64af0d2a406eab233f44ecd7c42c24bdfa39ae3bde"}, ] django-colorfield = [ - {file = "django-colorfield-0.3.1.tar.gz", hash = "sha256:5e3a720fd8dd46878b62d8d06b9ec81927d5ba8d2bc828ebaba49e7775f8393f"}, - {file = "django_colorfield-0.3.1-py2-none-any.whl", hash = "sha256:5830fcc4b1ab3111e2e6c8a2d75e25c09e404cea80d9f50002b09f068c8854df"}, + {file = "django-colorfield-0.3.2.tar.gz", hash = "sha256:f5dde281f4db8871eb5845aee614b4f1a47e7fd5b20476238793f519cd7bdf41"}, + {file = "django_colorfield-0.3.2-py2-none-any.whl", hash = "sha256:e435ec31712f5e8b955cc7633aef1e49cc3b409c21dfcefeb2f6ef0e1cb69533"}, ] django-dbbackup = [ {file = "django-dbbackup-3.3.0.tar.gz", hash = "sha256:bb109735cae98b64ad084e5b461b7aca2d7b39992f10c9ed9435e3ebb6fb76c8"}, @@ -2111,8 +2118,8 @@ django-dynamic-preferences = [ {file = "django_dynamic_preferences-1.10-py2.py3-none-any.whl", hash = "sha256:d5852c720c1989a67d87669035e11f6c033e7a507de6ec9bd28941cba24a2dc4"}, ] django-easy-audit = [ - {file = "django-easy-audit-1.2.3.tar.gz", hash = "sha256:9e0baae1cc06a9b7766bc6743695ff5e199129577649ce8f6e7c7c8904943a30"}, - {file = "django_easy_audit-1.2.3-py3-none-any.whl", hash = "sha256:425d4e9c03a48916e309675d520639ff9ce9c5c4d561eabd595b2b42f1a97a89"}, + {file = "django-easy-audit-1.3.0a3.tar.gz", hash = "sha256:80e9ed3f11d8927ecd5fa7e03e3aeebd87729d6feba60f9b26b554237dbe3508"}, + {file = "django_easy_audit-1.3.0a3-py3-none-any.whl", hash = "sha256:2b3d067d81392bb18d2b6bb09e67ce4367e73f767d3f4e067af010d496dc657c"}, ] django-favicon-plus-reloaded = [ {file = "django-favicon-plus-reloaded-1.0.4.tar.gz", hash = "sha256:90c761c636a338e6e9fb1d086649d82095085f92cff816c9cf074607f28c85a5"}, @@ -2178,8 +2185,8 @@ django-otp = [ {file = "django_otp-0.9.0-py3-none-any.whl", hash = "sha256:334e2a0ece7e5d9de3263e17bd3b6aee2809d1f8d70555408d5bf8f0c33b13fb"}, ] django-otp-yubikey = [ - {file = "django-otp-yubikey-0.5.2.tar.gz", hash = "sha256:f0b1881562fb42ee9f12c28d284cbdb90d1f0383f2d53a595373b080a19bc261"}, - {file = "django_otp_yubikey-0.5.2-py2.py3-none-any.whl", hash = "sha256:26b12c763b37e99b95b8b8a54d06d8d54c3774eb26133a452f54558033de732b"}, + {file = "django-otp-yubikey-0.6.0.tar.gz", hash = "sha256:6961f16cfec1dddfa3f3c794ec5967cbb4d412f488de1d7d14441df462ba9843"}, + {file = "django_otp_yubikey-0.6.0-py2.py3-none-any.whl", hash = "sha256:0dd73c2145afc66f43d537d2789a7068a99bc05b5ffa33d2ad73a49e4c4c7dcb"}, ] django-phonenumber-field = [ {file = "django-phonenumber-field-3.0.1.tar.gz", hash = "sha256:794ebbc3068a7af75aa72a80cb0cec67e714ff8409a965968040f1fd210b2d97"}, @@ -2194,7 +2201,7 @@ django-pwa = [ {file = "django_pwa-1.0.10-py3-none-any.whl", hash = "sha256:b1a2057b1e72c40c3a14beb90b958482da185f1d40a141fcae3d76580984b930"}, ] django-render-block = [ - {file = "django_render_block-0.6-py2.py3-none-any.whl", hash = "sha256:95c7dc9610378a10e0c4a10d8364ec7307210889afccd6a67a6aaa0fd599bd4d"}, + {file = "django_render_block-0.7-py3-none-any.whl", hash = "sha256:3e5963a2332727ca0db2bb8ca031404fba3ac9024702446eed5b7fb02209f7f3"}, ] django-reversion = [ {file = "django-reversion-3.0.7.tar.gz", hash = "sha256:72fc53580a6b538f0cfff10f27f42333f67d79c406399289c94ec5a193cfb3e1"}, @@ -2222,8 +2229,8 @@ django-templated-email = [ {file = "django-templated-email-2.3.0.tar.gz", hash = "sha256:536c4e5ae099eabfb9aab36087d4d7799948c654e73da55a744213d086d5bb33"}, ] django-two-factor-auth = [ - {file = "django-two-factor-auth-1.11.0.tar.gz", hash = "sha256:637bd96e76907d044206c3b038bf4b5eb4769e9e3a4718da755fafc97db38b26"}, - {file = "django_two_factor_auth-1.11.0-py2.py3-none-any.whl", hash = "sha256:f1835e5368448d1b3d826ce7a36c590b3e39cd536523d372cfc5f9fbdc9731f4"}, + {file = "django-two-factor-auth-1.12.1.tar.gz", hash = "sha256:8e698d548a5a7c02c7ba343bc5376a7bbdc4e59c20ef13223743fe42fa4a1281"}, + {file = "django_two_factor_auth-1.12.1-py2.py3-none-any.whl", hash = "sha256:612adb0dd6e9ed3b4ecd6763f2e3f56358d7b5afb843a3a49994d1d3bc91ffc2"}, ] django-widget-tweaks = [ {file = "django-widget-tweaks-1.4.8.tar.gz", hash = "sha256:9f91ca4217199b7671971d3c1f323a2bec71a0c27dec6260b3c006fa541bc489"}, @@ -2259,7 +2266,7 @@ flake8-bandit = [ {file = "flake8_bandit-2.1.2.tar.gz", hash = "sha256:687fc8da2e4a239b206af2e54a90093572a60d0954f3054e23690739b0b0de3b"}, ] flake8-black = [ - {file = "flake8-black-0.2.0.tar.gz", hash = "sha256:10e7ff9f81f637a9471684e5624d6a32b11cba362b38df4e20fc8f761184440b"}, + {file = "flake8-black-0.2.1.tar.gz", hash = "sha256:f26651bc10db786c03f4093414f7c9ea982ed8a244cec323c984feeffdf4c118"}, ] flake8-builtins = [ {file = "flake8-builtins-1.5.3.tar.gz", hash = "sha256:09998853b2405e98e61d2ff3027c47033adbdc17f9fe44ca58443d876eb00f3b"}, @@ -2297,8 +2304,8 @@ gitdb = [ {file = "gitdb-4.0.5.tar.gz", hash = "sha256:c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9"}, ] gitpython = [ - {file = "GitPython-3.1.3-py3-none-any.whl", hash = "sha256:ef1d60b01b5ce0040ad3ec20bc64f783362d41fa0822a2742d3586e1f49bb8ac"}, - {file = "GitPython-3.1.3.tar.gz", hash = "sha256:e107af4d873daed64648b4f4beb89f89f0cfbe3ef558fc7821ed2331c2f8da1a"}, + {file = "GitPython-3.1.7-py3-none-any.whl", hash = "sha256:fa3b92da728a457dd75d62bb5f3eb2816d99a7fe6c67398e260637a40e3fafb5"}, + {file = "GitPython-3.1.7.tar.gz", hash = "sha256:2db287d71a284e22e5c2846042d0602465c7434d910406990d5b74df4afb0858"}, ] html2text = [ {file = "html2text-2020.1.16-py3-none-any.whl", hash = "sha256:c7c629882da0cf377d66f073329ccf34a12ed2adf0169b9285ae4e63ef54c82b"}, @@ -2317,8 +2324,8 @@ importlib-metadata = [ {file = "importlib_metadata-1.7.0.tar.gz", hash = "sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83"}, ] isort = [ - {file = "isort-5.0.3-py3-none-any.whl", hash = "sha256:3fbfad425b0a08a2969c5e1821d88785c210a08656c029c28931a1620f2d0f12"}, - {file = "isort-5.0.3.tar.gz", hash = "sha256:4c48d4cd773a6226baaaa176839e6f7ff82ef7c7842f6c54374fe2b14df4024b"}, + {file = "isort-5.2.2-py3-none-any.whl", hash = "sha256:aea484023188ef1c38256dd24afa96e914adafe3a911a1786800a74e433006d1"}, + {file = "isort-5.2.2.tar.gz", hash = "sha256:96b27045e3187b9bdde001143b79f9b10a462f372bff7062302818013b6c86f3"}, ] jinja2 = [ {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"}, @@ -2422,12 +2429,12 @@ persisting-theory = [ {file = "persisting-theory-0.2.1.tar.gz", hash = "sha256:00ff7dcc8f481ff75c770ca5797d968e8725b6df1f77fe0cf7d20fa1e5790c0a"}, ] pg8000 = [ - {file = "pg8000-1.15.3-py3-none-any.whl", hash = "sha256:79d2e761343e582dec6698cf7c06d49c33255cbafba29ff298dd4690fffb7d80"}, - {file = "pg8000-1.15.3.tar.gz", hash = "sha256:af97353076b8e5d271d91c64c8ca806e2157d11b7862c90ff6f0e23be0fc217d"}, + {file = "pg8000-1.16.3-py3-none-any.whl", hash = "sha256:cac9e40c4c978034f09dfc3bc7e8bd3df40215c9207affe1991a0310a14bc71b"}, + {file = "pg8000-1.16.3.tar.gz", hash = "sha256:91b1584f25c84c2d0fe408bd44466cc16e1db9b9e95f454ff7c334edf3fe650c"}, ] phonenumbers = [ - {file = "phonenumbers-8.12.6-py2.py3-none-any.whl", hash = "sha256:e49b8e21c557f0dafee966ddd55fb2bd3d6db155451999b75fb1b012e8d2016c"}, - {file = "phonenumbers-8.12.6.tar.gz", hash = "sha256:d332078fe71c6153b5a263ac87283618b2afe514a248a14f06a0d39ce1f5ce0b"}, + {file = "phonenumbers-8.12.7-py2.py3-none-any.whl", hash = "sha256:772d69e620f85bb089d27c4e2bbf718c49ad327459accf9463ac65dbab67695c"}, + {file = "phonenumbers-8.12.7.tar.gz", hash = "sha256:652c418f8e97c8438f227a524ddf8d7d325c4a47e4924ce865b827c24ec3194d"}, ] pillow = [ {file = "Pillow-7.2.0-cp35-cp35m-macosx_10_10_intel.whl", hash = "sha256:1ca594126d3c4def54babee699c055a913efb01e106c309fa6b04405d474d5ae"}, @@ -2553,7 +2560,7 @@ pytest-django-testing-postgresql = [ {file = "pytest_django_testing_postgresql-0.1.post0-py3-none-any.whl", hash = "sha256:78e52e3d1b0ef5f906d5d69247dd6ac7dfb10d840bd81abab92f3f8c30872cd3"}, ] pytest-sugar = [ - {file = "pytest-sugar-0.9.3.tar.gz", hash = "sha256:1630b5b7ea3624919b73fde37cffb87965c5087a4afab8a43074ff44e0d810c4"}, + {file = "pytest-sugar-0.9.4.tar.gz", hash = "sha256:b1b2186b0a72aada6859bea2a5764145e3aaa2c1cfbb23c3a19b5f7b697563d3"}, ] python-box = [ {file = "python-box-3.4.6.tar.gz", hash = "sha256:694a7555e3ff9fbbce734bbaef3aad92b8e4ed0659d3ed04d56b6a0a0eff26a9"}, @@ -2593,27 +2600,26 @@ qrcode = [ {file = "qrcode-6.1.tar.gz", hash = "sha256:505253854f607f2abf4d16092c61d4e9d511a3b4392e60bff957a68592b04369"}, ] regex = [ - {file = "regex-2020.6.8-cp27-cp27m-win32.whl", hash = "sha256:fbff901c54c22425a5b809b914a3bfaf4b9570eee0e5ce8186ac71eb2025191c"}, - {file = "regex-2020.6.8-cp27-cp27m-win_amd64.whl", hash = "sha256:112e34adf95e45158c597feea65d06a8124898bdeac975c9087fe71b572bd938"}, - {file = "regex-2020.6.8-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:92d8a043a4241a710c1cf7593f5577fbb832cf6c3a00ff3fc1ff2052aff5dd89"}, - {file = "regex-2020.6.8-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:bae83f2a56ab30d5353b47f9b2a33e4aac4de9401fb582b55c42b132a8ac3868"}, - {file = "regex-2020.6.8-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:b2ba0f78b3ef375114856cbdaa30559914d081c416b431f2437f83ce4f8b7f2f"}, - {file = "regex-2020.6.8-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:95fa7726d073c87141f7bbfb04c284901f8328e2d430eeb71b8ffdd5742a5ded"}, - {file = "regex-2020.6.8-cp36-cp36m-win32.whl", hash = "sha256:e3cdc9423808f7e1bb9c2e0bdb1c9dc37b0607b30d646ff6faf0d4e41ee8fee3"}, - {file = "regex-2020.6.8-cp36-cp36m-win_amd64.whl", hash = "sha256:c78e66a922de1c95a208e4ec02e2e5cf0bb83a36ceececc10a72841e53fbf2bd"}, - {file = "regex-2020.6.8-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:08997a37b221a3e27d68ffb601e45abfb0093d39ee770e4257bd2f5115e8cb0a"}, - {file = "regex-2020.6.8-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2f6f211633ee8d3f7706953e9d3edc7ce63a1d6aad0be5dcee1ece127eea13ae"}, - {file = "regex-2020.6.8-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:55b4c25cbb3b29f8d5e63aeed27b49fa0f8476b0d4e1b3171d85db891938cc3a"}, - {file = "regex-2020.6.8-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:89cda1a5d3e33ec9e231ece7307afc101b5217523d55ef4dc7fb2abd6de71ba3"}, - {file = "regex-2020.6.8-cp37-cp37m-win32.whl", hash = "sha256:690f858d9a94d903cf5cada62ce069b5d93b313d7d05456dbcd99420856562d9"}, - {file = "regex-2020.6.8-cp37-cp37m-win_amd64.whl", hash = "sha256:1700419d8a18c26ff396b3b06ace315b5f2a6e780dad387e4c48717a12a22c29"}, - {file = "regex-2020.6.8-cp38-cp38-manylinux1_i686.whl", hash = "sha256:654cb773b2792e50151f0e22be0f2b6e1c3a04c5328ff1d9d59c0398d37ef610"}, - {file = "regex-2020.6.8-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:52e1b4bef02f4040b2fd547357a170fc1146e60ab310cdbdd098db86e929b387"}, - {file = "regex-2020.6.8-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:cf59bbf282b627130f5ba68b7fa3abdb96372b24b66bdf72a4920e8153fc7910"}, - {file = "regex-2020.6.8-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:5aaa5928b039ae440d775acea11d01e42ff26e1561c0ffcd3d805750973c6baf"}, - {file = "regex-2020.6.8-cp38-cp38-win32.whl", hash = "sha256:97712e0d0af05febd8ab63d2ef0ab2d0cd9deddf4476f7aa153f76feef4b2754"}, - {file = "regex-2020.6.8-cp38-cp38-win_amd64.whl", hash = "sha256:6ad8663c17db4c5ef438141f99e291c4d4edfeaacc0ce28b5bba2b0bf273d9b5"}, - {file = "regex-2020.6.8.tar.gz", hash = "sha256:e9b64e609d37438f7d6e68c2546d2cb8062f3adb27e6336bc129b51be20773ac"}, + {file = "regex-2020.7.14-cp27-cp27m-win32.whl", hash = "sha256:e46d13f38cfcbb79bfdb2964b0fe12561fe633caf964a77a5f8d4e45fe5d2ef7"}, + {file = "regex-2020.7.14-cp27-cp27m-win_amd64.whl", hash = "sha256:6961548bba529cac7c07af2fd4d527c5b91bb8fe18995fed6044ac22b3d14644"}, + {file = "regex-2020.7.14-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c50a724d136ec10d920661f1442e4a8b010a4fe5aebd65e0c2241ea41dbe93dc"}, + {file = "regex-2020.7.14-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8a51f2c6d1f884e98846a0a9021ff6861bdb98457879f412fdc2b42d14494067"}, + {file = "regex-2020.7.14-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:9c568495e35599625f7b999774e29e8d6b01a6fb684d77dee1f56d41b11b40cd"}, + {file = "regex-2020.7.14-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:51178c738d559a2d1071ce0b0f56e57eb315bcf8f7d4cf127674b533e3101f88"}, + {file = "regex-2020.7.14-cp36-cp36m-win32.whl", hash = "sha256:9eddaafb3c48e0900690c1727fba226c4804b8e6127ea409689c3bb492d06de4"}, + {file = "regex-2020.7.14-cp36-cp36m-win_amd64.whl", hash = "sha256:14a53646369157baa0499513f96091eb70382eb50b2c82393d17d7ec81b7b85f"}, + {file = "regex-2020.7.14-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:1269fef3167bb52631ad4fa7dd27bf635d5a0790b8e6222065d42e91bede4162"}, + {file = "regex-2020.7.14-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d0a5095d52b90ff38592bbdc2644f17c6d495762edf47d876049cfd2968fbccf"}, + {file = "regex-2020.7.14-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:4c037fd14c5f4e308b8370b447b469ca10e69427966527edcab07f52d88388f7"}, + {file = "regex-2020.7.14-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:bc3d98f621898b4a9bc7fecc00513eec8f40b5b83913d74ccb445f037d58cd89"}, + {file = "regex-2020.7.14-cp37-cp37m-win32.whl", hash = "sha256:46bac5ca10fb748d6c55843a931855e2727a7a22584f302dd9bb1506e69f83f6"}, + {file = "regex-2020.7.14-cp37-cp37m-win_amd64.whl", hash = "sha256:0dc64ee3f33cd7899f79a8d788abfbec168410be356ed9bd30bbd3f0a23a7204"}, + {file = "regex-2020.7.14-cp38-cp38-manylinux1_i686.whl", hash = "sha256:5ea81ea3dbd6767873c611687141ec7b06ed8bab43f68fad5b7be184a920dc99"}, + {file = "regex-2020.7.14-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bbb332d45b32df41200380fff14712cb6093b61bd142272a10b16778c418e98e"}, + {file = "regex-2020.7.14-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:c11d6033115dc4887c456565303f540c44197f4fc1a2bfb192224a301534888e"}, + {file = "regex-2020.7.14-cp38-cp38-win32.whl", hash = "sha256:d6cff2276e502b86a25fd10c2a96973fdb45c7a977dca2138d661417f3728341"}, + {file = "regex-2020.7.14-cp38-cp38-win_amd64.whl", hash = "sha256:7a2dd66d2d4df34fa82c9dc85657c5e019b87932019947faece7983f2089a840"}, + {file = "regex-2020.7.14.tar.gz", hash = "sha256:3a3af27a8d23143c49a3420efe5b3f8cf1a48c6fc8bc6856b03f638abc1833bb"}, ] requests = [ {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"}, @@ -2698,8 +2704,8 @@ sqlparse = [ {file = "sqlparse-0.3.1.tar.gz", hash = "sha256:e162203737712307dfe78860cc56c8da8a852ab2ee33750e33aeadf38d12c548"}, ] stevedore = [ - {file = "stevedore-2.0.1-py3-none-any.whl", hash = "sha256:c4724f8d7b8f6be42130663855d01a9c2414d6046055b5a65ab58a0e38637688"}, - {file = "stevedore-2.0.1.tar.gz", hash = "sha256:609912b87df5ad338ff8e44d13eaad4f4170a65b79ae9cb0aa5632598994a1b7"}, + {file = "stevedore-3.2.0-py3-none-any.whl", hash = "sha256:c8f4f0ebbc394e52ddf49de8bcc3cf8ad2b4425ebac494106bbc5e3661ac7633"}, + {file = "stevedore-3.2.0.tar.gz", hash = "sha256:38791aa5bed922b0a844513c5f9ed37774b68edc609e5ab8ab8d8fe0ce4315e5"}, ] termcolor = [ {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"}, @@ -2725,11 +2731,11 @@ toml = [ {file = "toml-0.10.1.tar.gz", hash = "sha256:926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f"}, ] tqdm = [ - {file = "tqdm-4.47.0-py2.py3-none-any.whl", hash = "sha256:7810e627bcf9d983a99d9ff8a0c09674400fd2927eddabeadf153c14a2ec8656"}, - {file = "tqdm-4.47.0.tar.gz", hash = "sha256:63ef7a6d3eb39f80d6b36e4867566b3d8e5f1fe3d6cb50c5e9ede2b3198ba7b7"}, + {file = "tqdm-4.48.0-py2.py3-none-any.whl", hash = "sha256:fcb7cb5b729b60a27f300b15c1ffd4744f080fb483b88f31dc8654b082cc8ea5"}, + {file = "tqdm-4.48.0.tar.gz", hash = "sha256:6baa75a88582b1db6d34ce4690da5501d2a1cb65c34664840a456b2c9f794d29"}, ] twilio = [ - {file = "twilio-6.43.0.tar.gz", hash = "sha256:1ff3b66992ebb59411794f669eab7f11bcfaacc5549eec1afb47af1c755872ac"}, + {file = "twilio-6.44.1.tar.gz", hash = "sha256:a84b6a4e8f6c739cf3fa429033ad522d07c78e3788800e68fe5195d83db4f03a"}, ] typed-ast = [ {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3"}, @@ -2760,8 +2766,8 @@ typing-extensions = [ {file = "typing_extensions-3.7.4.2.tar.gz", hash = "sha256:79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae"}, ] urllib3 = [ - {file = "urllib3-1.25.9-py2.py3-none-any.whl", hash = "sha256:88206b0eb87e6d677d424843ac5209e3fb9d0190d0ee169599165ec25e9d9115"}, - {file = "urllib3-1.25.9.tar.gz", hash = "sha256:3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527"}, + {file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"}, + {file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"}, ] wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},