Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • AlekSIS/official/AlekSIS-App-Alsijil
  • sunweaver/AlekSIS-App-Alsijil
  • 8tincsoVluke/AlekSIS-App-Alsijil
  • perfreicpo/AlekSIS-App-Alsijil
  • noifobarep/AlekSIS-App-Alsijil
  • 7ingannisdo/AlekSIS-App-Alsijil
  • unmruntartpa/AlekSIS-App-Alsijil
  • balrorebta/AlekSIS-App-Alsijil
  • comliFdifwa/AlekSIS-App-Alsijil
  • 3ranaadza/AlekSIS-App-Alsijil
10 results
Show changes
Commits on Source (195)
Showing
with 3102 additions and 1115 deletions
...@@ -2,15 +2,18 @@ from datetime import datetime ...@@ -2,15 +2,18 @@ from datetime import datetime
from django import forms from django import forms
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.db.models import Count from django.db.models import Count, Q
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from django_global_request.middleware import get_request
from django_select2.forms import Select2Widget from django_select2.forms import Select2Widget
from guardian.shortcuts import get_objects_for_user
from material import Fieldset, Layout, Row from material import Fieldset, Layout, Row
from aleksis.apps.chronos.managers import TimetableType from aleksis.apps.chronos.managers import TimetableType
from aleksis.apps.chronos.models import TimePeriod from aleksis.apps.chronos.models import TimePeriod
from aleksis.core.models import Group, Person from aleksis.core.models import Group, Person
from aleksis.core.util.predicates import check_global_permission
from .models import ExcuseType, ExtraMark, LessonDocumentation, PersonalNote from .models import ExcuseType, ExtraMark, LessonDocumentation, PersonalNote
...@@ -51,12 +54,7 @@ class SelectForm(forms.Form): ...@@ -51,12 +54,7 @@ class SelectForm(forms.Form):
queryset=None, label=_("Group"), required=False, widget=Select2Widget, queryset=None, label=_("Group"), required=False, widget=Select2Widget,
) )
teacher = forms.ModelChoiceField( teacher = forms.ModelChoiceField(
queryset=Person.objects.annotate( queryset=None, label=_("Teacher"), required=False, widget=Select2Widget,
lessons_count=Count("lessons_as_teacher")
).filter(lessons_count__gt=0),
label=_("Teacher"),
required=False,
widget=Select2Widget,
) )
def clean(self) -> dict: def clean(self) -> dict:
...@@ -78,13 +76,41 @@ class SelectForm(forms.Form): ...@@ -78,13 +76,41 @@ class SelectForm(forms.Form):
return data return data
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.request = get_request()
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields["group"].queryset = (
Group.objects.for_current_school_term_or_all() person = self.request.user.person
.annotate(lessons_count=Count("lessons"))
.filter(lessons_count__gt=0) group_qs = Group.get_groups_with_lessons()
# Filter selectable groups by permissions
if not check_global_permission(self.request.user, "alsijil.view_week"):
# 1) All groups the user is allowed to see the week view by object permissions
# 2) All groups the user is a member of an owner of
group_qs = (
group_qs.filter(
pk__in=get_objects_for_user(
self.request.user, "core.view_week_class_register_group", Group
).values_list("pk", flat=True)
)
).union(group_qs.filter(Q(members=person) | Q(owners=person)))
# Flatten query by filtering groups by pk
self.fields["group"].queryset = Group.objects.filter(
pk__in=list(group_qs.values_list("pk", flat=True))
) )
teacher_qs = Person.objects.annotate(
lessons_count=Count("lessons_as_teacher")
).filter(lessons_count__gt=0)
# Filter selectable teachers by permissions
if not check_global_permission(self.request.user, "alsijil.view_week"):
# If the user hasn't the global permission, the user is only allowed to see his own person
teacher_qs = teacher_qs.filter(pk=person.pk)
self.fields["teacher"].queryset = teacher_qs
PersonalNoteFormSet = forms.modelformset_factory( PersonalNoteFormSet = forms.modelformset_factory(
PersonalNote, form=PersonalNoteForm, max_num=0, extra=0 PersonalNote, form=PersonalNoteForm, max_num=0, extra=0
...@@ -93,7 +119,6 @@ PersonalNoteFormSet = forms.modelformset_factory( ...@@ -93,7 +119,6 @@ PersonalNoteFormSet = forms.modelformset_factory(
class RegisterAbsenceForm(forms.Form): class RegisterAbsenceForm(forms.Form):
layout = Layout( layout = Layout(
Fieldset("", "person"),
Fieldset("", Row("date_start", "date_end"), Row("from_period", "to_period")), Fieldset("", Row("date_start", "date_end"), Row("from_period", "to_period")),
Fieldset("", Row("absent", "excused"), Row("excuse_type"), Row("remarks")), Fieldset("", Row("absent", "excused"), Row("excuse_type"), Row("remarks")),
) )
...@@ -101,9 +126,6 @@ class RegisterAbsenceForm(forms.Form): ...@@ -101,9 +126,6 @@ class RegisterAbsenceForm(forms.Form):
date_end = forms.DateField(label=_("End date"), initial=datetime.today) date_end = forms.DateField(label=_("End date"), initial=datetime.today)
from_period = forms.ChoiceField(label=_("Start period")) from_period = forms.ChoiceField(label=_("Start period"))
to_period = forms.ChoiceField(label=_("End period")) to_period = forms.ChoiceField(label=_("End period"))
person = forms.ModelChoiceField(
label=_("Person"), queryset=Person.objects.all(), widget=Select2Widget
)
absent = forms.BooleanField(label=_("Absent"), initial=True, required=False) absent = forms.BooleanField(label=_("Absent"), initial=True, required=False)
excused = forms.BooleanField(label=_("Excused"), initial=True, required=False) excused = forms.BooleanField(label=_("Excused"), initial=True, required=False)
excuse_type = forms.ModelChoiceField( excuse_type = forms.ModelChoiceField(
...@@ -115,6 +137,7 @@ class RegisterAbsenceForm(forms.Form): ...@@ -115,6 +137,7 @@ class RegisterAbsenceForm(forms.Form):
remarks = forms.CharField(label=_("Remarks"), max_length=30, required=False) remarks = forms.CharField(label=_("Remarks"), max_length=30, required=False)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.request = get_request()
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
period_choices = TimePeriod.period_choices period_choices = TimePeriod.period_choices
......
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-09-11 11:08+0200\n" "POT-Creation-Date: 2020-11-14 12:23+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -18,11 +18,12 @@ msgstr "" ...@@ -18,11 +18,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\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:26 #: forms.py:29
msgid "Homework for the next lesson" msgid "Homework for the next lesson"
msgstr "" msgstr ""
#: forms.py:51 templates/alsijil/print/full_register.html:199 #: forms.py:54 templates/alsijil/class_register/week_view.html:168
#: templates/alsijil/print/full_register.html:199
msgid "Group" msgid "Group"
msgstr "" msgstr ""
...@@ -31,57 +32,53 @@ msgstr "" ...@@ -31,57 +32,53 @@ msgstr ""
msgid "Teacher" msgid "Teacher"
msgstr "" msgstr ""
#: forms.py:74 #: forms.py:72
msgid "You can't select a group and a teacher both." msgid "You can't select a group and a teacher both."
msgstr "" msgstr ""
#: forms.py:100 #: forms.py:125
msgid "Start date" msgid "Start date"
msgstr "" msgstr ""
#: forms.py:101 #: forms.py:126
msgid "End date" msgid "End date"
msgstr "" msgstr ""
#: forms.py:102 #: forms.py:127
msgid "Start period" msgid "Start period"
msgstr "" msgstr ""
#: forms.py:103 #: forms.py:128
msgid "End period" msgid "End period"
msgstr "" msgstr ""
#: forms.py:105 templates/alsijil/class_register/lesson.html:163 #: forms.py:129 templates/alsijil/class_register/lesson.html:243
msgid "Person" #: templates/alsijil/class_register/person.html:207
msgstr "" #: templates/alsijil/class_register/week_view.html:261
#: forms.py:107 templates/alsijil/class_register/lesson.html:164
#: templates/alsijil/class_register/person.html:172
#: templates/alsijil/class_register/week_view.html:119
#: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:75
#: templates/alsijil/print/full_register.html:312 #: templates/alsijil/print/full_register.html:312
msgid "Absent" msgid "Absent"
msgstr "" msgstr ""
#: forms.py:108 templates/alsijil/class_register/lesson.html:166 #: forms.py:130 templates/alsijil/class_register/lesson.html:245
#: templates/alsijil/class_register/person.html:74 #: templates/alsijil/class_register/person.html:98
#: templates/alsijil/class_register/person.html:180 #: templates/alsijil/class_register/person.html:215
#: templates/alsijil/partials/mark_as_buttons.html:2 #: templates/alsijil/partials/mark_as_buttons.html:2
#: templates/alsijil/partials/mark_as_buttons.html:3 #: templates/alsijil/partials/mark_as_buttons.html:3
#: templates/alsijil/partials/persons_with_stats.html:74
#: templates/alsijil/print/full_register.html:84 #: templates/alsijil/print/full_register.html:84
#: templates/alsijil/print/full_register.html:275 #: templates/alsijil/print/full_register.html:275
msgid "Excused" msgid "Excused"
msgstr "" msgstr ""
#: forms.py:110 models.py:38 models.py:69 #: forms.py:132 models.py:41 models.py:74
#: templates/alsijil/class_register/lesson.html:167 #: templates/alsijil/class_register/lesson.html:246
#: templates/alsijil/class_register/lesson.html:202 #: templates/alsijil/class_register/lesson.html:281
msgid "Excuse type" msgid "Excuse type"
msgstr "" msgstr ""
#: forms.py:115 templates/alsijil/class_register/lesson.html:170 #: forms.py:137 templates/alsijil/class_register/lesson.html:248
#: templates/alsijil/class_register/lesson.html:223 #: templates/alsijil/class_register/lesson.html:302
#: templates/alsijil/class_register/lesson.html:231
#: templates/alsijil/print/full_register.html:314 #: templates/alsijil/print/full_register.html:314
msgid "Remarks" msgid "Remarks"
msgstr "" msgstr ""
...@@ -94,107 +91,173 @@ msgstr "" ...@@ -94,107 +91,173 @@ msgstr ""
msgid "Current lesson" msgid "Current lesson"
msgstr "" msgstr ""
#: menus.py:22 #: menus.py:27
msgid "Current week" msgid "Current week"
msgstr "" msgstr ""
#: menus.py:28 templates/alsijil/class_register/groups.html:5 #: menus.py:38 templates/alsijil/class_register/groups.html:5
#: templates/alsijil/class_register/groups.html:9 #: templates/alsijil/class_register/groups.html:8
msgid "My groups" msgid "My groups"
msgstr "" msgstr ""
#: menus.py:34 #: menus.py:49
msgid "My overview" msgid "My overview"
msgstr "" msgstr ""
#: menus.py:40 templates/alsijil/class_register/persons.html:7 #: menus.py:60 templates/alsijil/class_register/persons.html:5
#: templates/alsijil/class_register/persons.html:11 #: templates/alsijil/class_register/persons.html:9
msgid "My students" msgid "My students"
msgstr "" msgstr ""
#: menus.py:46 templates/alsijil/absences/register.html:5 #: menus.py:71 models.py:42 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/absences/register.html:6
msgid "Register absence"
msgstr ""
#: menus.py:52 models.py:39 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/excuse_type/list.html:9
#: templates/alsijil/partials/legend.html:26
msgid "Excuse types" msgid "Excuse types"
msgstr "" msgstr ""
#: menus.py:58 models.py:75 models.py:210 #: menus.py:82 models.py:80 models.py:215
#: templates/alsijil/class_register/lesson.html:168 #: templates/alsijil/class_register/lesson.html:247
#: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:8
#: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/extra_mark/list.html:9
#: templates/alsijil/partials/legend.html:41
#: templates/alsijil/partials/persons_with_stats.html:19
#: templates/alsijil/print/full_register.html:293 #: templates/alsijil/print/full_register.html:293
msgid "Extra marks" msgid "Extra marks"
msgstr "" msgstr ""
#: models.py:25 models.py:196 #: model_extensions.py:145
msgid "Can view week overview of group class register"
msgstr ""
#: model_extensions.py:149
msgid "Can view lesson overview of group class register"
msgstr ""
#: model_extensions.py:152
msgid "Can view all personal notes of a group"
msgstr ""
#: model_extensions.py:155
msgid "Can edit all personal notes of a group"
msgstr ""
#: model_extensions.py:158
msgid "Can view all lesson documentation of a group"
msgstr ""
#: model_extensions.py:161
msgid "Can edit all lesson documentation of a group"
msgstr ""
#: model_extensions.py:163
msgid "Can view full register of a group"
msgstr ""
#: model_extensions.py:165
msgid "Can register an absence for all members of a group"
msgstr ""
#: model_extensions.py:168
msgid "Can register an absence for a person"
msgstr ""
#: models.py:28 models.py:201
msgid "Short name" msgid "Short name"
msgstr "" msgstr ""
#: models.py:27 models.py:198 #: models.py:30 models.py:203 templates/alsijil/class_register/groups.html:20
#: templates/alsijil/partials/persons_with_stats.html:14
#: templates/alsijil/partials/persons_with_stats.html:24
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: models.py:55 models.py:126 #: models.py:60 models.py:131
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: models.py:106 #: models.py:111
msgid "Personal note" msgid "Personal note"
msgstr "" msgstr ""
#: models.py:107 templates/alsijil/class_register/lesson.html:64 #: models.py:112 templates/alsijil/class_register/lesson.html:101
#: templates/alsijil/class_register/lesson.html:156 #: templates/alsijil/class_register/lesson.html:233
#: templates/alsijil/class_register/week_view.html:112 #: templates/alsijil/class_register/week_view.html:68
#: templates/alsijil/class_register/week_view.html:242
msgid "Personal notes" msgid "Personal notes"
msgstr "" msgstr ""
#: models.py:132 templates/alsijil/class_register/week_view.html:64 #: models.py:137 templates/alsijil/class_register/lesson.html:129
#: templates/alsijil/class_register/week_view.html:90
#: templates/alsijil/class_register/week_view.html:177
#: templates/alsijil/print/full_register.html:371 #: templates/alsijil/print/full_register.html:371
msgid "Lesson topic" msgid "Lesson topic"
msgstr "" msgstr ""
#: models.py:133 templates/alsijil/print/full_register.html:372 #: models.py:138 templates/alsijil/class_register/lesson.html:137
#: templates/alsijil/class_register/week_view.html:91
#: templates/alsijil/class_register/week_view.html:183
#: templates/alsijil/class_register/week_view.html:216
#: templates/alsijil/print/full_register.html:372
msgid "Homework" msgid "Homework"
msgstr "" msgstr ""
#: models.py:135 #: models.py:140 templates/alsijil/class_register/lesson.html:145
#: templates/alsijil/class_register/week_view.html:92
#: templates/alsijil/class_register/week_view.html:189
#: templates/alsijil/class_register/week_view.html:222
msgid "Group note" msgid "Group note"
msgstr "" msgstr ""
#: models.py:178 templates/alsijil/class_register/lesson.html:60 #: models.py:183 templates/alsijil/class_register/lesson.html:97
#: templates/alsijil/class_register/lesson.html:143 #: templates/alsijil/class_register/lesson.html:120
msgid "Lesson documentation" msgid "Lesson documentation"
msgstr "" msgstr ""
#: models.py:179 #: models.py:184 templates/alsijil/class_register/week_view.html:67
msgid "Lesson documentations" msgid "Lesson documentations"
msgstr "" msgstr ""
#: models.py:209 #: models.py:214
msgid "Extra mark" msgid "Extra mark"
msgstr "" msgstr ""
#: models.py:222
msgid "Can view week overview"
msgstr ""
#: models.py:223
msgid "Can register absence"
msgstr ""
#: models.py:224
msgid "Can list all personal note filters"
msgstr ""
#: preferences.py:16 #: preferences.py:16
msgid "Block adding personal notes for cancelled lessons" msgid "Block adding personal notes for cancelled lessons"
msgstr "" msgstr ""
#: preferences.py:25 #: preferences.py:24
msgid "Allow users to view their own personal notes"
msgstr ""
#: preferences.py:33
msgid "Allow primary group owners to register future absences for students in their groups"
msgstr ""
#: preferences.py:43
msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods" msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods"
msgstr "" msgstr ""
#: preferences.py:28 #: preferences.py:46
msgid "This will carry over data only if the data in the following periods are empty." msgid "This will carry over data only if the data in the following periods are empty."
msgstr "" msgstr ""
#: preferences.py:38 #: preferences.py:56
msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period" msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period"
msgstr "" msgstr ""
#: preferences.py:41 #: preferences.py:59
msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgid "Lessons in the past are not affected by this setting, you can open them whenever you want."
msgstr "" msgstr ""
...@@ -202,76 +265,160 @@ msgstr "" ...@@ -202,76 +265,160 @@ msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: tables.py:22 tables.py:42 #: tables.py:22 tables.py:42 templates/alsijil/class_register/person.html:249
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: templates/alsijil/class_register/groups.html:20 #: templates/alsijil/absences/register.html:5
#: templates/alsijil/absences/register.html:6
#: templates/alsijil/class_register/person.html:30
#: templates/alsijil/class_register/week_view.html:256
#: templates/alsijil/partials/persons_with_stats.html:115
msgid "Register absence"
msgstr ""
#: templates/alsijil/absences/register.html:9
#: templates/alsijil/class_register/lesson.html:242
msgid "Person"
msgstr ""
#: templates/alsijil/class_register/groups.html:21
msgid "Students"
msgstr ""
#: templates/alsijil/class_register/groups.html:35
#: templates/alsijil/class_register/groups.html:69
#: templates/alsijil/class_register/week_view.html:40
#: templates/alsijil/class_register/week_view.html:51
msgid "Students list"
msgstr ""
#: templates/alsijil/class_register/groups.html:39
#: templates/alsijil/class_register/groups.html:75
#: templates/alsijil/class_register/persons.html:27
#: templates/alsijil/class_register/persons.html:43
#: templates/alsijil/class_register/students_list.html:16
#: templates/alsijil/class_register/students_list.html:35
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr ""
#: templates/alsijil/class_register/groups.html:44
#: templates/alsijil/class_register/groups.html:82
#: templates/alsijil/class_register/persons.html:31
#: templates/alsijil/class_register/persons.html:50
#: templates/alsijil/class_register/students_list.html:20
#: templates/alsijil/class_register/students_list.html:42
#: templates/alsijil/class_register/week_view.html:44
#: templates/alsijil/class_register/week_view.html:58
msgid "Generate printout"
msgstr ""
#: templates/alsijil/class_register/groups.html:52
#: templates/alsijil/class_register/groups.html:88
msgid "No groups available." msgid "No groups available."
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:6 #: templates/alsijil/class_register/groups.html:64
msgid "students"
msgstr ""
#: templates/alsijil/class_register/lesson.html:5
msgid "Lesson" msgid "Lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:14 #: templates/alsijil/class_register/lesson.html:20
#: templates/alsijil/class_register/lesson.html:83 msgid "Back to week view"
#, python-format msgstr ""
msgid "%(period)s. period"
#: templates/alsijil/class_register/lesson.html:29
msgid "My previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:38 #: templates/alsijil/class_register/lesson.html:38
msgid "Previous lesson" msgid "My next lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:46 #: templates/alsijil/class_register/lesson.html:46
msgid "Next lesson" #: templates/alsijil/class_register/lesson.html:167
#, python-format
msgid "%(period)s. period"
msgstr ""
#: templates/alsijil/class_register/lesson.html:77
#: templates/alsijil/class_register/lesson.html:359
#, python-format
msgid ""
"\n"
" Previous %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:85
#: templates/alsijil/class_register/lesson.html:367
#, python-format
msgid ""
"\n"
" Next %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:107
msgid "Previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:68 #: templates/alsijil/class_register/lesson.html:111
#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/lesson.html:342
msgid "Change history" msgid "Change history"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:82 #: templates/alsijil/class_register/lesson.html:166
msgid "Overview: Previous lesson" msgid "Overview: Previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:89 #: templates/alsijil/class_register/lesson.html:173
msgid "Lesson topic of previous lesson:" msgid "Lesson topic of previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:96 #: templates/alsijil/class_register/lesson.html:180
msgid "Homework for this lesson:" msgid "Homework for this lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:103 #: templates/alsijil/class_register/lesson.html:187
msgid "Group notes for previous lesson:" msgid "Group notes for previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:110 #: templates/alsijil/class_register/lesson.html:194
msgid "Absent persons:" msgid "Absent persons:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:117 #: templates/alsijil/class_register/lesson.html:201
msgid "Late persons:" msgid "Late persons:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:165 #: templates/alsijil/class_register/lesson.html:244
#: templates/alsijil/class_register/person.html:86 #: templates/alsijil/class_register/person.html:110
#: templates/alsijil/partials/persons_with_stats.html:17
#: templates/alsijil/partials/persons_with_stats.html:34
#: templates/alsijil/partials/persons_with_stats.html:91
#: templates/alsijil/print/full_register.html:287 #: templates/alsijil/print/full_register.html:287
msgid "Tardiness" msgid "Tardiness"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:188 #: templates/alsijil/class_register/lesson.html:267
msgid "Tardiness (in m)" msgid "Tardiness (in m)"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:7 #: templates/alsijil/class_register/person.html:8
msgid "Class register: person" msgid "Class register: person"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:11 #: templates/alsijil/class_register/person.html:16
#: templates/alsijil/class_register/students_list.html:10
msgid "Back"
msgstr ""
#: templates/alsijil/class_register/person.html:19
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
...@@ -279,118 +426,131 @@ msgid "" ...@@ -279,118 +426,131 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:19 #: templates/alsijil/class_register/person.html:36
#: templates/alsijil/partials/legend.html:14
msgid "Unexcused absences" msgid "Unexcused absences"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:27 #: templates/alsijil/class_register/person.html:46
#: templates/alsijil/class_register/person.html:44 #: templates/alsijil/class_register/person.html:65
#: templates/alsijil/class_register/person.html:160 #: templates/alsijil/class_register/person.html:190
#: templates/alsijil/class_register/person.html:202 #: templates/alsijil/class_register/person.html:237
msgid "Mark as" msgid "Mark as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:30 #: templates/alsijil/class_register/person.html:49
#: templates/alsijil/class_register/person.html:47 #: templates/alsijil/class_register/person.html:68
#: templates/alsijil/class_register/person.html:163 #: templates/alsijil/class_register/person.html:193
#: templates/alsijil/class_register/person.html:205 #: templates/alsijil/class_register/person.html:199
#: templates/alsijil/class_register/person.html:240
#: templates/alsijil/class_register/person.html:246
msgid "Delete note" msgid "Delete note"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:55 #: templates/alsijil/class_register/person.html:78
msgid "There are unexcused lessons." msgid "There are no unexcused lessons."
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:59 #: templates/alsijil/class_register/person.html:83
msgid "Statistics on absences, tardiness and remarks" msgid "Statistics on absences, tardiness and remarks"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:68 #: templates/alsijil/class_register/person.html:92
#: templates/alsijil/partials/legend.html:10
#: templates/alsijil/partials/persons_with_stats.html:16
#: templates/alsijil/partials/persons_with_stats.html:26
#: templates/alsijil/partials/persons_with_stats.html:69
#: templates/alsijil/print/full_register.html:269 #: templates/alsijil/print/full_register.html:269
msgid "Absences" msgid "Absences"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:72 #: templates/alsijil/class_register/person.html:96
#: templates/alsijil/print/full_register.html:274 #: templates/alsijil/print/full_register.html:274
msgid "thereof" msgid "thereof"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:82 #: templates/alsijil/class_register/person.html:106
#: templates/alsijil/partials/persons_with_stats.html:86
#: templates/alsijil/print/full_register.html:81 #: templates/alsijil/print/full_register.html:81
#: templates/alsijil/print/full_register.html:283 #: templates/alsijil/print/full_register.html:283
msgid "Unexcused" msgid "Unexcused"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:102 #: templates/alsijil/class_register/person.html:127
#: templates/alsijil/print/full_register.html:304 #: templates/alsijil/print/full_register.html:304
msgid "Relevant personal notes" msgid "Relevant personal notes"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:118 #: templates/alsijil/class_register/person.html:143
#, python-format #, python-format
msgid "Week %(week)s" msgid "Week %(week)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:126 #: templates/alsijil/class_register/person.html:152
#: templates/alsijil/class_register/person.html:135 #: templates/alsijil/class_register/person.html:163
msgid "Mark all as" msgid "Mark all as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:187 #: templates/alsijil/class_register/person.html:222
#, python-format #, python-format
msgid "%(late)s' late" msgid "%(late)s' late"
msgstr "" msgstr ""
#: templates/alsijil/class_register/persons.html:22 #: templates/alsijil/class_register/students_list.html:5
msgid "No students available." #: templates/alsijil/class_register/students_list.html:12
msgstr "" #, python-format
msgid "Students list: %(group)s"
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:30 #: templates/alsijil/class_register/week_view.html:23
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:38 #: templates/alsijil/class_register/week_view.html:31
#, python-format #, python-format
msgid "" msgid ""
"CW %(week)s:\n" "CW %(week)s:\n"
" %(instance)s" " %(instance)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:58 #: templates/alsijil/class_register/week_view.html:84
msgid "Period" msgid "Period"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:60 #: templates/alsijil/class_register/week_view.html:86
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:62 #: templates/alsijil/class_register/week_view.html:88
#: templates/alsijil/class_register/week_view.html:163
#: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:169
#: templates/alsijil/print/full_register.html:200 #: templates/alsijil/print/full_register.html:200
msgid "Subject" msgid "Subject"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:63 #: templates/alsijil/class_register/week_view.html:89
#: templates/alsijil/class_register/week_view.html:173
msgid "Teachers" msgid "Teachers"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:120 #: templates/alsijil/class_register/week_view.html:262
msgid "unexcused" msgid "unexcused"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:123 #: templates/alsijil/class_register/week_view.html:265
msgid "Summed up tardiness" msgid "Summed up tardiness"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:152 #: templates/alsijil/class_register/week_view.html:268
#: templates/alsijil/partials/persons_with_stats.html:94
msgid "Count of tardiness"
msgstr ""
#: templates/alsijil/class_register/week_view.html:297
msgid "No lessons available" msgid "No lessons available"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:155 #: templates/alsijil/class_register/week_view.html:300
msgid "" msgid ""
"\n" "\n"
" There are no lessons for the selected group or teacher in this week.\n" " There are no lessons for the selected group or teacher in this week.\n"
...@@ -399,7 +559,7 @@ msgstr "" ...@@ -399,7 +559,7 @@ msgstr ""
#: templates/alsijil/excuse_type/create.html:6 #: templates/alsijil/excuse_type/create.html:6
#: templates/alsijil/excuse_type/create.html:7 #: templates/alsijil/excuse_type/create.html:7
#: templates/alsijil/excuse_type/list.html:16 #: templates/alsijil/excuse_type/list.html:18
msgid "Create excuse type" msgid "Create excuse type"
msgstr "" msgstr ""
...@@ -427,16 +587,33 @@ msgstr "" ...@@ -427,16 +587,33 @@ msgstr ""
msgid "Edit extra mark" msgid "Edit extra mark"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:27
#: templates/alsijil/partials/persons_with_stats.html:44
#: templates/alsijil/print/full_register.html:126 #: templates/alsijil/print/full_register.html:126
msgid "(e)" msgid "(e)"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:33
#: templates/alsijil/partials/persons_with_stats.html:50
#: templates/alsijil/print/full_register.html:130 #: templates/alsijil/print/full_register.html:130
msgid "(u)" msgid "(u)"
msgstr "" msgstr ""
#: templates/alsijil/partials/legend.html:4
msgid "Legend"
msgstr ""
#: templates/alsijil/partials/legend.html:7
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/partials/legend.html:18
msgid "Excused absences"
msgstr ""
#: templates/alsijil/partials/lesson_status_icon.html:6 #: templates/alsijil/partials/lesson_status_icon.html:6
msgid "Data complete" msgid "Data complete"
msgstr "" msgstr ""
...@@ -465,6 +642,27 @@ msgstr "" ...@@ -465,6 +642,27 @@ msgstr ""
msgid "e" msgid "e"
msgstr "" msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:7
msgid "No students available."
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:15
#: templates/alsijil/partials/persons_with_stats.html:25
msgid "Primary group"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:43
msgid "Sum"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:107
msgid "Show more details"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:108
msgid "Details"
msgstr ""
#: templates/alsijil/print/full_register.html:6 #: templates/alsijil/print/full_register.html:6
msgid "Class register:" msgid "Class register:"
msgstr "" msgstr ""
...@@ -512,10 +710,6 @@ msgstr "" ...@@ -512,10 +710,6 @@ msgstr ""
msgid "Abbreviations" msgid "Abbreviations"
msgstr "" msgstr ""
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/print/full_register.html:78 #: templates/alsijil/print/full_register.html:78
msgid "Late" msgid "Late"
msgstr "" msgstr ""
...@@ -630,62 +824,58 @@ msgstr "" ...@@ -630,62 +824,58 @@ msgstr ""
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: views.py:78 #: views.py:69
msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgid "You either selected an invalid lesson or there is currently no lesson in progress."
msgstr "" msgstr ""
#: views.py:96 #: views.py:95
msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgid "You are not allowed to create a lesson documentation for a lesson in the future."
msgstr "" msgstr ""
#: views.py:122 #: views.py:133
msgid "The lesson documentation has been saved." msgid "The lesson documentation has been saved."
msgstr "" msgstr ""
#: views.py:143 #: views.py:156
msgid "The personal notes have been saved." msgid "The personal notes have been saved."
msgstr "" msgstr ""
#: views.py:351 #: views.py:587
msgid "There is no current school term."
msgstr ""
#: views.py:532
msgid "The absences have been marked as excused." msgid "The absences have been marked as excused."
msgstr "" msgstr ""
#: views.py:548 #: views.py:605
msgid "The absence has been marked as excused." msgid "The absence has been marked as excused."
msgstr "" msgstr ""
#: views.py:653 #: views.py:735
msgid "The absence has been saved." msgid "The absence has been saved."
msgstr "" msgstr ""
#: views.py:670 #: views.py:754
msgid "The personal note has been deleted." msgid "The personal note has been deleted."
msgstr "" msgstr ""
#: views.py:691 #: views.py:775
msgid "The extra mark has been created." msgid "The extra mark has been created."
msgstr "" msgstr ""
#: views.py:702 #: views.py:786
msgid "The extra mark has been saved." msgid "The extra mark has been saved."
msgstr "" msgstr ""
#: views.py:712 #: views.py:796
msgid "The extra mark has been deleted." msgid "The extra mark has been deleted."
msgstr "" msgstr ""
#: views.py:732 #: views.py:816
msgid "The excuse type has been created." msgid "The excuse type has been created."
msgstr "" msgstr ""
#: views.py:743 #: views.py:827
msgid "The excuse type has been saved." msgid "The excuse type has been saved."
msgstr "" msgstr ""
#: views.py:753 #: views.py:837
msgid "The excuse type has been deleted." msgid "The excuse type has been deleted."
msgstr "" msgstr ""
...@@ -7,10 +7,11 @@ msgid "" ...@@ -7,10 +7,11 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-09-11 11:08+0200\n" "POT-Creation-Date: 2020-11-14 12:23+0100\n"
"PO-Revision-Date: 2020-09-06 17:48+0000\n" "PO-Revision-Date: 2020-11-14 11:29+0000\n"
"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n" "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
"Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/de/>\n" "Language-Team: German <https://translate.edugit.org/projects/aleksis/"
"aleksis-app-alsijil/de/>\n"
"Language: de_DE\n" "Language: de_DE\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
...@@ -18,11 +19,12 @@ msgstr "" ...@@ -18,11 +19,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.1.1\n" "X-Generator: Weblate 4.1.1\n"
#: forms.py:26 #: forms.py:29
msgid "Homework for the next lesson" msgid "Homework for the next lesson"
msgstr "Hausaufgabe zur nächsten Stunde" msgstr "Hausaufgabe zur nächsten Stunde"
#: forms.py:51 templates/alsijil/print/full_register.html:199 #: forms.py:54 templates/alsijil/class_register/week_view.html:168
#: templates/alsijil/print/full_register.html:199
msgid "Group" msgid "Group"
msgstr "Gruppe" msgstr "Gruppe"
...@@ -31,57 +33,53 @@ msgstr "Gruppe" ...@@ -31,57 +33,53 @@ msgstr "Gruppe"
msgid "Teacher" msgid "Teacher"
msgstr "Lehrkraft" msgstr "Lehrkraft"
#: forms.py:74 #: forms.py:72
msgid "You can't select a group and a teacher both." msgid "You can't select a group and a teacher both."
msgstr "Es kann nur entweder eine Gruppe oder eine Lehrkraft ausgewählt werden." msgstr "Es kann nur entweder eine Gruppe oder eine Lehrkraft ausgewählt werden."
#: forms.py:100 #: forms.py:125
msgid "Start date" msgid "Start date"
msgstr "Startdatum" msgstr "Startdatum"
#: forms.py:101 #: forms.py:126
msgid "End date" msgid "End date"
msgstr "Enddatum" msgstr "Enddatum"
#: forms.py:102 #: forms.py:127
msgid "Start period" msgid "Start period"
msgstr "Startstunde" msgstr "Startstunde"
#: forms.py:103 #: forms.py:128
msgid "End period" msgid "End period"
msgstr "Endstunde" msgstr "Endstunde"
#: forms.py:105 templates/alsijil/class_register/lesson.html:163 #: forms.py:129 templates/alsijil/class_register/lesson.html:243
msgid "Person" #: templates/alsijil/class_register/person.html:207
msgstr "Person" #: templates/alsijil/class_register/week_view.html:261
#: forms.py:107 templates/alsijil/class_register/lesson.html:164
#: templates/alsijil/class_register/person.html:172
#: templates/alsijil/class_register/week_view.html:119
#: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:75
#: templates/alsijil/print/full_register.html:312 #: templates/alsijil/print/full_register.html:312
msgid "Absent" msgid "Absent"
msgstr "Abwesend" msgstr "Abwesend"
#: forms.py:108 templates/alsijil/class_register/lesson.html:166 #: forms.py:130 templates/alsijil/class_register/lesson.html:245
#: templates/alsijil/class_register/person.html:74 #: templates/alsijil/class_register/person.html:98
#: templates/alsijil/class_register/person.html:180 #: templates/alsijil/class_register/person.html:215
#: templates/alsijil/partials/mark_as_buttons.html:2 #: templates/alsijil/partials/mark_as_buttons.html:2
#: templates/alsijil/partials/mark_as_buttons.html:3 #: templates/alsijil/partials/mark_as_buttons.html:3
#: templates/alsijil/partials/persons_with_stats.html:74
#: templates/alsijil/print/full_register.html:84 #: templates/alsijil/print/full_register.html:84
#: templates/alsijil/print/full_register.html:275 #: templates/alsijil/print/full_register.html:275
msgid "Excused" msgid "Excused"
msgstr "Entschuldigt" msgstr "Entschuldigt"
#: forms.py:110 models.py:38 models.py:69 #: forms.py:132 models.py:41 models.py:74
#: templates/alsijil/class_register/lesson.html:167 #: templates/alsijil/class_register/lesson.html:246
#: templates/alsijil/class_register/lesson.html:202 #: templates/alsijil/class_register/lesson.html:281
msgid "Excuse type" msgid "Excuse type"
msgstr "Entschuldigungsart" msgstr "Entschuldigungsart"
#: forms.py:115 templates/alsijil/class_register/lesson.html:170 #: forms.py:137 templates/alsijil/class_register/lesson.html:248
#: templates/alsijil/class_register/lesson.html:223 #: templates/alsijil/class_register/lesson.html:302
#: templates/alsijil/class_register/lesson.html:231
#: templates/alsijil/print/full_register.html:314 #: templates/alsijil/print/full_register.html:314
msgid "Remarks" msgid "Remarks"
msgstr "Bemerkungen" msgstr "Bemerkungen"
...@@ -94,109 +92,173 @@ msgstr "Klassenbuch" ...@@ -94,109 +92,173 @@ msgstr "Klassenbuch"
msgid "Current lesson" msgid "Current lesson"
msgstr "Aktuelle Unterrichtsstunde" msgstr "Aktuelle Unterrichtsstunde"
#: menus.py:22 #: menus.py:27
msgid "Current week" msgid "Current week"
msgstr "Aktuelle Woche" msgstr "Aktuelle Woche"
#: menus.py:28 templates/alsijil/class_register/groups.html:5 #: menus.py:38 templates/alsijil/class_register/groups.html:5
#: templates/alsijil/class_register/groups.html:9 #: templates/alsijil/class_register/groups.html:8
#, fuzzy
#| msgid "Groups"
msgid "My groups" msgid "My groups"
msgstr "Gruppen" msgstr "Meine Gruppen"
#: menus.py:34 #: menus.py:49
msgid "My overview" msgid "My overview"
msgstr "Meine Übersicht" msgstr "Meine Übersicht"
#: menus.py:40 templates/alsijil/class_register/persons.html:7 #: menus.py:60 templates/alsijil/class_register/persons.html:5
#: templates/alsijil/class_register/persons.html:11 #: templates/alsijil/class_register/persons.html:9
msgid "My students" msgid "My students"
msgstr "Meine Schüler*innen" msgstr "Meine Schüler*innen"
#: menus.py:46 templates/alsijil/absences/register.html:5 #: menus.py:71 models.py:42 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/absences/register.html:6
msgid "Register absence"
msgstr "Abwesenheit eintragen"
#: menus.py:52 models.py:39 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/excuse_type/list.html:9
#: templates/alsijil/partials/legend.html:26
msgid "Excuse types" msgid "Excuse types"
msgstr "Entschuldigungsarten" msgstr "Entschuldigungsarten"
#: menus.py:58 models.py:75 models.py:210 #: menus.py:82 models.py:80 models.py:215
#: templates/alsijil/class_register/lesson.html:168 #: templates/alsijil/class_register/lesson.html:247
#: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:8
#: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/extra_mark/list.html:9
#: templates/alsijil/partials/legend.html:41
#: templates/alsijil/partials/persons_with_stats.html:19
#: templates/alsijil/print/full_register.html:293 #: templates/alsijil/print/full_register.html:293
msgid "Extra marks" msgid "Extra marks"
msgstr "Zusätzliche Markierungen" msgstr "Zusätzliche Markierungen"
#: models.py:25 models.py:196 #: model_extensions.py:145
msgid "Can view week overview of group class register"
msgstr "Kann Wochenübersicht des Gruppenklassenbuches sehen"
#: model_extensions.py:149
msgid "Can view lesson overview of group class register"
msgstr "Kann Stundenübersicht des Gruppenklassenbuches sehen"
#: model_extensions.py:152
msgid "Can view all personal notes of a group"
msgstr "Kann alle persönlichen Notizen einer Gruppe sehen"
#: model_extensions.py:155
msgid "Can edit all personal notes of a group"
msgstr "Kann alle persönlichen Notizen einer Gruppe bearbeiten"
#: model_extensions.py:158
msgid "Can view all lesson documentation of a group"
msgstr "Kann alle Unterrichtsdokumentationen für eine Gruppe sehen"
#: model_extensions.py:161
msgid "Can edit all lesson documentation of a group"
msgstr "Kann alle Unterrichtsdokumentationen für eine Gruppe bearbeiten"
#: model_extensions.py:163
msgid "Can view full register of a group"
msgstr "Kann komplettes Klassenbuch einer Gruppe sehen"
#: model_extensions.py:165
msgid "Can register an absence for all members of a group"
msgstr "Kann eine Absenz für alle Mitglieder eine Gruppe registrieren"
#: model_extensions.py:168
msgid "Can register an absence for a person"
msgstr "Kann eine Absenz für eine Person registrieren"
#: models.py:28 models.py:201
msgid "Short name" msgid "Short name"
msgstr "Kurzname" msgstr "Kurzname"
#: models.py:27 models.py:198 #: models.py:30 models.py:203 templates/alsijil/class_register/groups.html:20
#: templates/alsijil/partials/persons_with_stats.html:14
#: templates/alsijil/partials/persons_with_stats.html:24
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
#: models.py:55 models.py:126 #: models.py:60 models.py:131
msgid "Year" msgid "Year"
msgstr "Jahr" msgstr "Jahr"
#: models.py:106 #: models.py:111
msgid "Personal note" msgid "Personal note"
msgstr "Persönliche Notiz" msgstr "Persönliche Notiz"
#: models.py:107 templates/alsijil/class_register/lesson.html:64 #: models.py:112 templates/alsijil/class_register/lesson.html:101
#: templates/alsijil/class_register/lesson.html:156 #: templates/alsijil/class_register/lesson.html:233
#: templates/alsijil/class_register/week_view.html:112 #: templates/alsijil/class_register/week_view.html:68
#: templates/alsijil/class_register/week_view.html:242
msgid "Personal notes" msgid "Personal notes"
msgstr "Persönliche Notizen" msgstr "Persönliche Notizen"
#: models.py:132 templates/alsijil/class_register/week_view.html:64 #: models.py:137 templates/alsijil/class_register/lesson.html:129
#: templates/alsijil/class_register/week_view.html:90
#: templates/alsijil/class_register/week_view.html:177
#: templates/alsijil/print/full_register.html:371 #: templates/alsijil/print/full_register.html:371
msgid "Lesson topic" msgid "Lesson topic"
msgstr "Stundenthema" msgstr "Stundenthema"
#: models.py:133 templates/alsijil/print/full_register.html:372 #: models.py:138 templates/alsijil/class_register/lesson.html:137
#: templates/alsijil/class_register/week_view.html:91
#: templates/alsijil/class_register/week_view.html:183
#: templates/alsijil/class_register/week_view.html:216
#: templates/alsijil/print/full_register.html:372
msgid "Homework" msgid "Homework"
msgstr "Hausaufgaben" msgstr "Hausaufgaben"
#: models.py:135 #: models.py:140 templates/alsijil/class_register/lesson.html:145
#: templates/alsijil/class_register/week_view.html:92
#: templates/alsijil/class_register/week_view.html:189
#: templates/alsijil/class_register/week_view.html:222
msgid "Group note" msgid "Group note"
msgstr "Gruppennotiz" msgstr "Gruppennotiz"
#: models.py:178 templates/alsijil/class_register/lesson.html:60 #: models.py:183 templates/alsijil/class_register/lesson.html:97
#: templates/alsijil/class_register/lesson.html:143 #: templates/alsijil/class_register/lesson.html:120
msgid "Lesson documentation" msgid "Lesson documentation"
msgstr "Stunden-Dokumentation" msgstr "Stunden-Dokumentation"
#: models.py:179 #: models.py:184 templates/alsijil/class_register/week_view.html:67
msgid "Lesson documentations" msgid "Lesson documentations"
msgstr "Stunden-Dokumentationen" msgstr "Stunden-Dokumentationen"
#: models.py:209 #: models.py:214
msgid "Extra mark" msgid "Extra mark"
msgstr "Zusätzliche Markierung" msgstr "Zusätzliche Markierung"
#: models.py:222
msgid "Can view week overview"
msgstr "Kann die Wochenübersicht sehen"
#: models.py:223
msgid "Can register absence"
msgstr "Kann eine Absenz registrieren"
#: models.py:224
msgid "Can list all personal note filters"
msgstr "Kann alle Filter für persönliche Notizen anzeigen"
#: preferences.py:16 #: preferences.py:16
msgid "Block adding personal notes for cancelled lessons" msgid "Block adding personal notes for cancelled lessons"
msgstr "Blockiere das Hinzufügen von persönlichen Notizen für ausgefallene Stunden" msgstr "Blockiere das Hinzufügen von persönlichen Notizen für ausgefallene Stunden"
#: preferences.py:25 #: preferences.py:24
msgid "Allow users to view their own personal notes"
msgstr "Erlaube Nutzern, ihre eigenen persönlichen Notizen zu sehen"
#: preferences.py:33
msgid "Allow primary group owners to register future absences for students in their groups"
msgstr "Erlaube Primärgruppeninhabern Absenzen in der Zukunft für Mitglieder ihrer Gruppen zu registrieren"
#: preferences.py:43
msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods" msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods"
msgstr "Daten von der ersten Stunde zu weiteren folgenden Stunden übernehmen" msgstr "Daten von der ersten Stunde zu weiteren folgenden Stunden übernehmen"
#: preferences.py:28 #: preferences.py:46
msgid "This will carry over data only if the data in the following periods are empty." msgid "This will carry over data only if the data in the following periods are empty."
msgstr "Dies wird die Daten nur übernehmen, wenn die Daten in den Folgestunden leer sind." msgstr "Dies wird die Daten nur übernehmen, wenn die Daten in den Folgestunden leer sind."
#: preferences.py:38 #: preferences.py:56
msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period" msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period"
msgstr "Erlaube Lehrkräften, Unterrichtsstunden bereits am gleichen Tag und nicht erst zu Beginn der Stunde zu öffnen" msgstr "Erlaube Lehrkräften, Unterrichtsstunden bereits am gleichen Tag und nicht erst zu Beginn der Stunde zu öffnen"
#: preferences.py:41 #: preferences.py:59
msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgid "Lessons in the past are not affected by this setting, you can open them whenever you want."
msgstr "Unterrichtsstunden in der Vergangenheit werden nicht durch diese Einstellung beeinflusst, sie können immer geöffnet werden." msgstr "Unterrichtsstunden in der Vergangenheit werden nicht durch diese Einstellung beeinflusst, sie können immer geöffnet werden."
...@@ -204,78 +266,166 @@ msgstr "Unterrichtsstunden in der Vergangenheit werden nicht durch diese Einstel ...@@ -204,78 +266,166 @@ msgstr "Unterrichtsstunden in der Vergangenheit werden nicht durch diese Einstel
msgid "Edit" msgid "Edit"
msgstr "Bearbeiten" msgstr "Bearbeiten"
#: tables.py:22 tables.py:42 #: tables.py:22 tables.py:42 templates/alsijil/class_register/person.html:249
msgid "Delete" msgid "Delete"
msgstr "Löschen" msgstr "Löschen"
#: templates/alsijil/class_register/groups.html:20 #: templates/alsijil/absences/register.html:5
#, fuzzy #: templates/alsijil/absences/register.html:6
#| msgid "No students available." #: templates/alsijil/class_register/person.html:30
#: templates/alsijil/class_register/week_view.html:256
#: templates/alsijil/partials/persons_with_stats.html:115
msgid "Register absence"
msgstr "Abwesenheit eintragen"
#: templates/alsijil/absences/register.html:9
#: templates/alsijil/class_register/lesson.html:242
msgid "Person"
msgstr "Person"
#: templates/alsijil/class_register/groups.html:21
msgid "Students"
msgstr "Schüler*innen"
#: templates/alsijil/class_register/groups.html:35
#: templates/alsijil/class_register/groups.html:69
#: templates/alsijil/class_register/week_view.html:40
#: templates/alsijil/class_register/week_view.html:51
msgid "Students list"
msgstr "Schüler*innenliste"
#: templates/alsijil/class_register/groups.html:39
#: templates/alsijil/class_register/groups.html:75
#: templates/alsijil/class_register/persons.html:27
#: templates/alsijil/class_register/persons.html:43
#: templates/alsijil/class_register/students_list.html:16
#: templates/alsijil/class_register/students_list.html:35
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr "Wochenansicht"
#: templates/alsijil/class_register/groups.html:44
#: templates/alsijil/class_register/groups.html:82
#: templates/alsijil/class_register/persons.html:31
#: templates/alsijil/class_register/persons.html:50
#: templates/alsijil/class_register/students_list.html:20
#: templates/alsijil/class_register/students_list.html:42
#: templates/alsijil/class_register/week_view.html:44
#: templates/alsijil/class_register/week_view.html:58
msgid "Generate printout"
msgstr "Ausdruck generieren"
#: templates/alsijil/class_register/groups.html:52
#: templates/alsijil/class_register/groups.html:88
msgid "No groups available." msgid "No groups available."
msgstr "Keine Schüler*innen verfügbar." msgstr "Keine Gruppen verfügbar."
#: templates/alsijil/class_register/groups.html:64
msgid "students"
msgstr "Schüler*innen"
#: templates/alsijil/class_register/lesson.html:6 #: templates/alsijil/class_register/lesson.html:5
msgid "Lesson" msgid "Lesson"
msgstr "Unterrichtsstunde" msgstr "Unterrichtsstunde"
#: templates/alsijil/class_register/lesson.html:14 #: templates/alsijil/class_register/lesson.html:20
#: templates/alsijil/class_register/lesson.html:83 msgid "Back to week view"
msgstr "Zurück zur Wochenübersicht"
#: templates/alsijil/class_register/lesson.html:29
msgid "My previous lesson"
msgstr "Meine vorherige Stunde"
#: templates/alsijil/class_register/lesson.html:38
msgid "My next lesson"
msgstr "Meine nächste Stunde"
#: templates/alsijil/class_register/lesson.html:46
#: templates/alsijil/class_register/lesson.html:167
#, python-format #, python-format
msgid "%(period)s. period" msgid "%(period)s. period"
msgstr "%(period)s. Stunde" msgstr "%(period)s. Stunde"
#: templates/alsijil/class_register/lesson.html:38 #: templates/alsijil/class_register/lesson.html:77
#: templates/alsijil/class_register/lesson.html:359
#, python-format
msgid ""
"\n"
" Previous %(subject)s lesson\n"
" "
msgstr ""
"\n"
" Vorherige %(subject)s Stunde\n"
" "
#: templates/alsijil/class_register/lesson.html:85
#: templates/alsijil/class_register/lesson.html:367
#, python-format
msgid ""
"\n"
" Next %(subject)s lesson\n"
" "
msgstr ""
"\n"
" Nächste %(subject)s Stunde\n"
" "
#: templates/alsijil/class_register/lesson.html:107
msgid "Previous lesson" msgid "Previous lesson"
msgstr "Vorherige Unterrichtsstunde" msgstr "Vorherige Unterrichtsstunde"
#: templates/alsijil/class_register/lesson.html:46 #: templates/alsijil/class_register/lesson.html:111
msgid "Next lesson" #: templates/alsijil/class_register/lesson.html:342
msgstr "Nächste Unterrichtsstunde"
#: templates/alsijil/class_register/lesson.html:68
#: templates/alsijil/class_register/lesson.html:249
msgid "Change history" msgid "Change history"
msgstr "Veränderungen" msgstr "Veränderungen"
#: templates/alsijil/class_register/lesson.html:82 #: templates/alsijil/class_register/lesson.html:166
msgid "Overview: Previous lesson" msgid "Overview: Previous lesson"
msgstr "Übersicht: Vorherige Stunde" msgstr "Übersicht: Vorherige Stunde"
#: templates/alsijil/class_register/lesson.html:89 #: templates/alsijil/class_register/lesson.html:173
msgid "Lesson topic of previous lesson:" msgid "Lesson topic of previous lesson:"
msgstr "Stundenthema der vorherigen Stunde:" msgstr "Stundenthema der vorherigen Stunde:"
#: templates/alsijil/class_register/lesson.html:96 #: templates/alsijil/class_register/lesson.html:180
msgid "Homework for this lesson:" msgid "Homework for this lesson:"
msgstr "Hausaufgaben zu dieser Stunde:" msgstr "Hausaufgaben zu dieser Stunde:"
#: templates/alsijil/class_register/lesson.html:103 #: templates/alsijil/class_register/lesson.html:187
msgid "Group notes for previous lesson:" msgid "Group notes for previous lesson:"
msgstr "Gruppennotizen für die vorherige Stunde:" msgstr "Gruppennotizen für die vorherige Stunde:"
#: templates/alsijil/class_register/lesson.html:110 #: templates/alsijil/class_register/lesson.html:194
msgid "Absent persons:" msgid "Absent persons:"
msgstr "Abwesende Personen:" msgstr "Abwesende Personen:"
#: templates/alsijil/class_register/lesson.html:117 #: templates/alsijil/class_register/lesson.html:201
msgid "Late persons:" msgid "Late persons:"
msgstr "Verspätete Personen:" msgstr "Verspätete Personen:"
#: templates/alsijil/class_register/lesson.html:165 #: templates/alsijil/class_register/lesson.html:244
#: templates/alsijil/class_register/person.html:86 #: templates/alsijil/class_register/person.html:110
#: templates/alsijil/partials/persons_with_stats.html:17
#: templates/alsijil/partials/persons_with_stats.html:34
#: templates/alsijil/partials/persons_with_stats.html:91
#: templates/alsijil/print/full_register.html:287 #: templates/alsijil/print/full_register.html:287
msgid "Tardiness" msgid "Tardiness"
msgstr "Verspätung" msgstr "Verspätung"
#: templates/alsijil/class_register/lesson.html:188 #: templates/alsijil/class_register/lesson.html:267
msgid "Tardiness (in m)" msgid "Tardiness (in m)"
msgstr "Verspätung (in m)" msgstr "Verspätung (in m)"
#: templates/alsijil/class_register/person.html:7 #: templates/alsijil/class_register/person.html:8
msgid "Class register: person" msgid "Class register: person"
msgstr "Klassenbuch: Person" msgstr "Klassenbuch: Person"
#: templates/alsijil/class_register/person.html:11 #: templates/alsijil/class_register/person.html:16
#: templates/alsijil/class_register/students_list.html:10
msgid "Back"
msgstr "Zurück"
#: templates/alsijil/class_register/person.html:19
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
...@@ -286,120 +436,131 @@ msgstr "" ...@@ -286,120 +436,131 @@ msgstr ""
" Klassenbuchübersicht für %(person)s\n" " Klassenbuchübersicht für %(person)s\n"
" " " "
#: templates/alsijil/class_register/person.html:19 #: templates/alsijil/class_register/person.html:36
#: templates/alsijil/partials/legend.html:14
msgid "Unexcused absences" msgid "Unexcused absences"
msgstr "Unentschuldigte Fehlzeiten" msgstr "Unentschuldigte Fehlzeiten"
#: templates/alsijil/class_register/person.html:27 #: templates/alsijil/class_register/person.html:46
#: templates/alsijil/class_register/person.html:44 #: templates/alsijil/class_register/person.html:65
#: templates/alsijil/class_register/person.html:160 #: templates/alsijil/class_register/person.html:190
#: templates/alsijil/class_register/person.html:202 #: templates/alsijil/class_register/person.html:237
msgid "Mark as" msgid "Mark as"
msgstr "Markiere als" msgstr "Markiere als"
#: templates/alsijil/class_register/person.html:30 #: templates/alsijil/class_register/person.html:49
#: templates/alsijil/class_register/person.html:47 #: templates/alsijil/class_register/person.html:68
#: templates/alsijil/class_register/person.html:163 #: templates/alsijil/class_register/person.html:193
#: templates/alsijil/class_register/person.html:205 #: templates/alsijil/class_register/person.html:199
#, fuzzy #: templates/alsijil/class_register/person.html:240
#| msgid "Delete filter" #: templates/alsijil/class_register/person.html:246
msgid "Delete note" msgid "Delete note"
msgstr "Filter löschen" msgstr "Notiz löschen"
#: templates/alsijil/class_register/person.html:55 #: templates/alsijil/class_register/person.html:78
msgid "There are unexcused lessons." msgid "There are no unexcused lessons."
msgstr "Es gibt keine unentschuldigten Unterrichtsstunden." msgstr "Es gibt keine unentschuldigten Unterrichtsstunden."
#: templates/alsijil/class_register/person.html:59 #: templates/alsijil/class_register/person.html:83
msgid "Statistics on absences, tardiness and remarks" msgid "Statistics on absences, tardiness and remarks"
msgstr "Statistiken zu Fehlzeiten, Verspätungen und Bemerkungen" msgstr "Statistiken zu Fehlzeiten, Verspätungen und Bemerkungen"
#: templates/alsijil/class_register/person.html:68 #: templates/alsijil/class_register/person.html:92
#: templates/alsijil/partials/legend.html:10
#: templates/alsijil/partials/persons_with_stats.html:16
#: templates/alsijil/partials/persons_with_stats.html:26
#: templates/alsijil/partials/persons_with_stats.html:69
#: templates/alsijil/print/full_register.html:269 #: templates/alsijil/print/full_register.html:269
msgid "Absences" msgid "Absences"
msgstr "Fehlstunden" msgstr "Fehlstunden"
#: templates/alsijil/class_register/person.html:72 #: templates/alsijil/class_register/person.html:96
#: templates/alsijil/print/full_register.html:274 #: templates/alsijil/print/full_register.html:274
msgid "thereof" msgid "thereof"
msgstr "davon" msgstr "davon"
#: templates/alsijil/class_register/person.html:82 #: templates/alsijil/class_register/person.html:106
#: templates/alsijil/partials/persons_with_stats.html:86
#: templates/alsijil/print/full_register.html:81 #: templates/alsijil/print/full_register.html:81
#: templates/alsijil/print/full_register.html:283 #: templates/alsijil/print/full_register.html:283
msgid "Unexcused" msgid "Unexcused"
msgstr "Unentschuldigt" msgstr "Unentschuldigt"
#: templates/alsijil/class_register/person.html:102 #: templates/alsijil/class_register/person.html:127
#: templates/alsijil/print/full_register.html:304 #: templates/alsijil/print/full_register.html:304
msgid "Relevant personal notes" msgid "Relevant personal notes"
msgstr "Relevante persönliche Notizen" msgstr "Relevante persönliche Notizen"
#: templates/alsijil/class_register/person.html:118 #: templates/alsijil/class_register/person.html:143
#, python-format #, python-format
msgid "Week %(week)s" msgid "Week %(week)s"
msgstr "Woche %(week)s" msgstr "Woche %(week)s"
#: templates/alsijil/class_register/person.html:126 #: templates/alsijil/class_register/person.html:152
#: templates/alsijil/class_register/person.html:135 #: templates/alsijil/class_register/person.html:163
msgid "Mark all as" msgid "Mark all as"
msgstr "Alle als markieren" msgstr "Alle als markieren"
#: templates/alsijil/class_register/person.html:187 #: templates/alsijil/class_register/person.html:222
#, python-format #, python-format
msgid "%(late)s' late" msgid "%(late)s' late"
msgstr "%(late)s' verspätet" msgstr "%(late)s' verspätet"
#: templates/alsijil/class_register/persons.html:22 #: templates/alsijil/class_register/students_list.html:5
msgid "No students available." #: templates/alsijil/class_register/students_list.html:12
msgstr "Keine Schüler*innen verfügbar." #, python-format
msgid "Students list: %(group)s"
#: templates/alsijil/class_register/week_view.html:6 msgstr "Schüler*innenliste: %(group)s"
msgid "Week view"
msgstr "Wochenansicht"
#: templates/alsijil/class_register/week_view.html:30 #: templates/alsijil/class_register/week_view.html:23
msgid "Select" msgid "Select"
msgstr "Auswählen" msgstr "Auswählen"
#: templates/alsijil/class_register/week_view.html:38 #: templates/alsijil/class_register/week_view.html:31
#, python-format #, python-format
msgid "" msgid ""
"CW %(week)s:\n" "CW %(week)s:\n"
" %(instance)s" " %(instance)s"
msgstr "KW %(week)s: %(instance)s" msgstr "KW %(week)s: %(instance)s"
#: templates/alsijil/class_register/week_view.html:58 #: templates/alsijil/class_register/week_view.html:84
msgid "Period" msgid "Period"
msgstr "Stunde" msgstr "Stunde"
#: templates/alsijil/class_register/week_view.html:60 #: templates/alsijil/class_register/week_view.html:86
msgid "Groups" msgid "Groups"
msgstr "Gruppen" msgstr "Gruppen"
#: templates/alsijil/class_register/week_view.html:62 #: templates/alsijil/class_register/week_view.html:88
#: templates/alsijil/class_register/week_view.html:163
#: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:169
#: templates/alsijil/print/full_register.html:200 #: templates/alsijil/print/full_register.html:200
msgid "Subject" msgid "Subject"
msgstr "Fach" msgstr "Fach"
#: templates/alsijil/class_register/week_view.html:63 #: templates/alsijil/class_register/week_view.html:89
#: templates/alsijil/class_register/week_view.html:173
msgid "Teachers" msgid "Teachers"
msgstr "Lehrkräfte" msgstr "Lehrkräfte"
#: templates/alsijil/class_register/week_view.html:120 #: templates/alsijil/class_register/week_view.html:262
msgid "unexcused" msgid "unexcused"
msgstr "unentschuldigt" msgstr "unentschuldigt"
#: templates/alsijil/class_register/week_view.html:123 #: templates/alsijil/class_register/week_view.html:265
msgid "Summed up tardiness" msgid "Summed up tardiness"
msgstr "Summierte Verspätung" msgstr "Summierte Verspätung"
#: templates/alsijil/class_register/week_view.html:152 #: templates/alsijil/class_register/week_view.html:268
#: templates/alsijil/partials/persons_with_stats.html:94
msgid "Count of tardiness"
msgstr "Anzahl der Verspätungen"
#: templates/alsijil/class_register/week_view.html:297
msgid "No lessons available" msgid "No lessons available"
msgstr "Keine Stunden verfügbar" msgstr "Keine Stunden verfügbar"
#: templates/alsijil/class_register/week_view.html:155 #: templates/alsijil/class_register/week_view.html:300
msgid "" msgid ""
"\n" "\n"
" There are no lessons for the selected group or teacher in this week.\n" " There are no lessons for the selected group or teacher in this week.\n"
...@@ -411,7 +572,7 @@ msgstr "" ...@@ -411,7 +572,7 @@ msgstr ""
#: templates/alsijil/excuse_type/create.html:6 #: templates/alsijil/excuse_type/create.html:6
#: templates/alsijil/excuse_type/create.html:7 #: templates/alsijil/excuse_type/create.html:7
#: templates/alsijil/excuse_type/list.html:16 #: templates/alsijil/excuse_type/list.html:18
msgid "Create excuse type" msgid "Create excuse type"
msgstr "Entschuldigungsart erstellen" msgstr "Entschuldigungsart erstellen"
...@@ -443,16 +604,33 @@ msgstr "Zusätzliche Markierung erstellen" ...@@ -443,16 +604,33 @@ msgstr "Zusätzliche Markierung erstellen"
msgid "Edit extra mark" msgid "Edit extra mark"
msgstr "Zusätzliche Markierung bearbeiten" msgstr "Zusätzliche Markierung bearbeiten"
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:27
#: templates/alsijil/partials/persons_with_stats.html:44
#: templates/alsijil/print/full_register.html:126 #: templates/alsijil/print/full_register.html:126
msgid "(e)" msgid "(e)"
msgstr "(e)" msgstr "(e)"
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:33
#: templates/alsijil/partials/persons_with_stats.html:50
#: templates/alsijil/print/full_register.html:130 #: templates/alsijil/print/full_register.html:130
msgid "(u)" msgid "(u)"
msgstr "(u)" msgstr "(u)"
#: templates/alsijil/partials/legend.html:4
msgid "Legend"
msgstr "Legende"
#: templates/alsijil/partials/legend.html:7
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr "Allgemein"
#: templates/alsijil/partials/legend.html:18
msgid "Excused absences"
msgstr "Entschuldigte Fehlzeiten"
#: templates/alsijil/partials/lesson_status_icon.html:6 #: templates/alsijil/partials/lesson_status_icon.html:6
msgid "Data complete" msgid "Data complete"
msgstr "Daten vollständig" msgstr "Daten vollständig"
...@@ -481,6 +659,27 @@ msgstr "Vertretung" ...@@ -481,6 +659,27 @@ msgstr "Vertretung"
msgid "e" msgid "e"
msgstr "e" msgstr "e"
#: templates/alsijil/partials/persons_with_stats.html:7
msgid "No students available."
msgstr "Keine Schüler*innen verfügbar."
#: templates/alsijil/partials/persons_with_stats.html:15
#: templates/alsijil/partials/persons_with_stats.html:25
msgid "Primary group"
msgstr "Primärgruppe"
#: templates/alsijil/partials/persons_with_stats.html:43
msgid "Sum"
msgstr "Summe"
#: templates/alsijil/partials/persons_with_stats.html:107
msgid "Show more details"
msgstr "Mehr Details anzeigen"
#: templates/alsijil/partials/persons_with_stats.html:108
msgid "Details"
msgstr "Details"
#: templates/alsijil/print/full_register.html:6 #: templates/alsijil/print/full_register.html:6
msgid "Class register:" msgid "Class register:"
msgstr "Klassenbuch:" msgstr "Klassenbuch:"
...@@ -541,17 +740,13 @@ msgstr "Schulleitung" ...@@ -541,17 +740,13 @@ msgstr "Schulleitung"
msgid "Abbreviations" msgid "Abbreviations"
msgstr "Abkürzungen" msgstr "Abkürzungen"
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr "Allgemein"
#: templates/alsijil/print/full_register.html:78 #: templates/alsijil/print/full_register.html:78
msgid "Late" msgid "Late"
msgstr "Verspätet" msgstr "Verspätet"
#: templates/alsijil/print/full_register.html:89 #: templates/alsijil/print/full_register.html:89
msgid "Custom excuse types" msgid "Custom excuse types"
msgstr "Benutzerdefinierte Entschuldigunsarten" msgstr "Benutzerdefinierte Entschuldigungsarten"
#: templates/alsijil/print/full_register.html:101 #: templates/alsijil/print/full_register.html:101
msgid "Available extra marks" msgid "Available extra marks"
...@@ -659,70 +854,67 @@ msgstr "Unterrichtsdokumentation für Woche" ...@@ -659,70 +854,67 @@ msgstr "Unterrichtsdokumentation für Woche"
msgid "Notes" msgid "Notes"
msgstr "Notizen" msgstr "Notizen"
#: views.py:78 #: views.py:69
msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgid "You either selected an invalid lesson or there is currently no lesson in progress."
msgstr "" msgstr ""
"Sie haben eine ungültige Stunde ausgewählt oder es\n" "Sie haben eine ungültige Stunde ausgewählt oder es\n"
" läuft momentan keine Stunde." " läuft momentan keine Stunde."
#: views.py:96 #: views.py:95
msgid "You are not allowed to create a lesson documentation for a lesson in the future." 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." msgstr "Ihnen ist es nicht erlaubt, eine Eintragung für eine Unterrichtsstunde in der Zukunft vorzunehmen."
#: views.py:122 #: views.py:133
msgid "The lesson documentation has been saved." msgid "The lesson documentation has been saved."
msgstr "Die Stunden-Dokumentation wurde gespeichert." msgstr "Die Stunden-Dokumentation wurde gespeichert."
#: views.py:143 #: views.py:156
msgid "The personal notes have been saved." msgid "The personal notes have been saved."
msgstr "Die persönlichen Notizen wurden gespeichert." msgstr "Die persönlichen Notizen wurden gespeichert."
#: views.py:351 #: views.py:587
msgid "There is no current school term."
msgstr "Es gibt aktuell kein Schuljahr."
#: views.py:532
msgid "The absences have been marked as excused." msgid "The absences have been marked as excused."
msgstr "Die Fehlzeiten wurden als entschuldigt markiert." msgstr "Die Fehlzeiten wurden als entschuldigt markiert."
#: views.py:548 #: views.py:605
msgid "The absence has been marked as excused." msgid "The absence has been marked as excused."
msgstr "Die Fehlzeit wurde als entschuldigt markiert." msgstr "Die Fehlzeit wurde als entschuldigt markiert."
#: views.py:653 #: views.py:735
msgid "The absence has been saved." msgid "The absence has been saved."
msgstr "Die Abwesenheit wurde gespeichert." msgstr "Die Abwesenheit wurde gespeichert."
#: views.py:670 #: views.py:754
#, fuzzy
#| msgid "The personal notes have been saved."
msgid "The personal note has been deleted." msgid "The personal note has been deleted."
msgstr "Die persönlichen Notizen wurden gespeichert." msgstr "Die persönliche Notiz wurde gelöscht."
#: views.py:691 #: views.py:775
msgid "The extra mark has been created." msgid "The extra mark has been created."
msgstr "Die zusätzliche Markierung wurde erstellt." msgstr "Die zusätzliche Markierung wurde erstellt."
#: views.py:702 #: views.py:786
msgid "The extra mark has been saved." msgid "The extra mark has been saved."
msgstr "Die zusätzliche Markierung wurde gespeichert." msgstr "Die zusätzliche Markierung wurde gespeichert."
#: views.py:712 #: views.py:796
msgid "The extra mark has been deleted." msgid "The extra mark has been deleted."
msgstr "Die zusätzliche Markierung wurde gelöscht." msgstr "Die zusätzliche Markierung wurde gelöscht."
#: views.py:732 #: views.py:816
msgid "The excuse type has been created." msgid "The excuse type has been created."
msgstr "Die Entschuldigungsart wurde erstellt." msgstr "Die Entschuldigungsart wurde erstellt."
#: views.py:743 #: views.py:827
msgid "The excuse type has been saved." msgid "The excuse type has been saved."
msgstr "Die Entschuldigunsart wurde gespeichert." msgstr "Die Entschuldigunsart wurde gespeichert."
#: views.py:753 #: views.py:837
msgid "The excuse type has been deleted." msgid "The excuse type has been deleted."
msgstr "Die Entschuldigungsart wurde gelöscht." msgstr "Die Entschuldigungsart wurde gelöscht."
#~ msgid "There is no current school term."
#~ msgstr "Es gibt aktuell kein Schuljahr."
#~ msgid "Manage absence" #~ msgid "Manage absence"
#~ msgstr "Abwesenheiten verwalten" #~ msgstr "Abwesenheiten verwalten"
...@@ -759,9 +951,6 @@ msgstr "Die Entschuldigungsart wurde gelöscht." ...@@ -759,9 +951,6 @@ msgstr "Die Entschuldigungsart wurde gelöscht."
#~ msgid "Room" #~ msgid "Room"
#~ msgstr "Raum" #~ msgstr "Raum"
#~ msgid "List of all personal note filters"
#~ msgstr "Liste aller Filter für persönliche Notizen"
#~ msgid "Subs." #~ msgid "Subs."
#~ msgstr "Vertr." #~ msgstr "Vertr."
......
...@@ -7,7 +7,7 @@ msgid "" ...@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-09-11 11:08+0200\n" "POT-Creation-Date: 2020-11-14 12:23+0100\n"
"PO-Revision-Date: 2020-07-26 14:08+0000\n" "PO-Revision-Date: 2020-07-26 14:08+0000\n"
"Last-Translator: Marlene Grundey <grundema@katharineum.de>\n" "Last-Translator: Marlene Grundey <grundema@katharineum.de>\n"
"Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/fr/>\n" "Language-Team: French <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/fr/>\n"
...@@ -18,11 +18,12 @@ msgstr "" ...@@ -18,11 +18,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.0.1\n" "X-Generator: Weblate 4.0.1\n"
#: forms.py:26 #: forms.py:29
msgid "Homework for the next lesson" msgid "Homework for the next lesson"
msgstr "" msgstr ""
#: forms.py:51 templates/alsijil/print/full_register.html:199 #: forms.py:54 templates/alsijil/class_register/week_view.html:168
#: templates/alsijil/print/full_register.html:199
msgid "Group" msgid "Group"
msgstr "Groupe" msgstr "Groupe"
...@@ -31,63 +32,59 @@ msgstr "Groupe" ...@@ -31,63 +32,59 @@ msgstr "Groupe"
msgid "Teacher" msgid "Teacher"
msgstr "Profs" msgstr "Profs"
#: forms.py:74 #: forms.py:72
msgid "You can't select a group and a teacher both." msgid "You can't select a group and a teacher both."
msgstr "" msgstr ""
#: forms.py:100 #: forms.py:125
msgid "Start date" msgid "Start date"
msgstr "Date de début" msgstr "Date de début"
#: forms.py:101 #: forms.py:126
msgid "End date" msgid "End date"
msgstr "Date de fin" msgstr "Date de fin"
#: forms.py:102 #: forms.py:127
#, fuzzy #, fuzzy
#| msgid "From period" #| msgid "From period"
msgid "Start period" msgid "Start period"
msgstr "De la période" msgstr "De la période"
#: forms.py:103 #: forms.py:128
#, fuzzy #, fuzzy
#| msgid "From period" #| msgid "From period"
msgid "End period" msgid "End period"
msgstr "De la période" msgstr "De la période"
#: forms.py:105 templates/alsijil/class_register/lesson.html:163 #: forms.py:129 templates/alsijil/class_register/lesson.html:243
msgid "Person" #: templates/alsijil/class_register/person.html:207
msgstr "Personne" #: templates/alsijil/class_register/week_view.html:261
#: forms.py:107 templates/alsijil/class_register/lesson.html:164
#: templates/alsijil/class_register/person.html:172
#: templates/alsijil/class_register/week_view.html:119
#: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:75
#: templates/alsijil/print/full_register.html:312 #: templates/alsijil/print/full_register.html:312
msgid "Absent" msgid "Absent"
msgstr "Absent(e)" msgstr "Absent(e)"
#: forms.py:108 templates/alsijil/class_register/lesson.html:166 #: forms.py:130 templates/alsijil/class_register/lesson.html:245
#: templates/alsijil/class_register/person.html:74 #: templates/alsijil/class_register/person.html:98
#: templates/alsijil/class_register/person.html:180 #: templates/alsijil/class_register/person.html:215
#: templates/alsijil/partials/mark_as_buttons.html:2 #: templates/alsijil/partials/mark_as_buttons.html:2
#: templates/alsijil/partials/mark_as_buttons.html:3 #: templates/alsijil/partials/mark_as_buttons.html:3
#: templates/alsijil/partials/persons_with_stats.html:74
#: templates/alsijil/print/full_register.html:84 #: templates/alsijil/print/full_register.html:84
#: templates/alsijil/print/full_register.html:275 #: templates/alsijil/print/full_register.html:275
msgid "Excused" msgid "Excused"
msgstr "Excusé" msgstr "Excusé"
#: forms.py:110 models.py:38 models.py:69 #: forms.py:132 models.py:41 models.py:74
#: templates/alsijil/class_register/lesson.html:167 #: templates/alsijil/class_register/lesson.html:246
#: templates/alsijil/class_register/lesson.html:202 #: templates/alsijil/class_register/lesson.html:281
#, fuzzy #, fuzzy
#| msgid "Excused" #| msgid "Excused"
msgid "Excuse type" msgid "Excuse type"
msgstr "Excusé" msgstr "Excusé"
#: forms.py:115 templates/alsijil/class_register/lesson.html:170 #: forms.py:137 templates/alsijil/class_register/lesson.html:248
#: templates/alsijil/class_register/lesson.html:223 #: templates/alsijil/class_register/lesson.html:302
#: templates/alsijil/class_register/lesson.html:231
#: templates/alsijil/print/full_register.html:314 #: templates/alsijil/print/full_register.html:314
msgid "Remarks" msgid "Remarks"
msgstr "Remarque" msgstr "Remarque"
...@@ -100,121 +97,201 @@ msgstr "Registre de la classe" ...@@ -100,121 +97,201 @@ msgstr "Registre de la classe"
msgid "Current lesson" msgid "Current lesson"
msgstr "Lecon actuelle" msgstr "Lecon actuelle"
#: menus.py:22 #: menus.py:27
msgid "Current week" msgid "Current week"
msgstr "Semaine actuelle" msgstr "Semaine actuelle"
#: menus.py:28 templates/alsijil/class_register/groups.html:5 #: menus.py:38 templates/alsijil/class_register/groups.html:5
#: templates/alsijil/class_register/groups.html:9 #: templates/alsijil/class_register/groups.html:8
#, fuzzy #, fuzzy
#| msgid "Group" #| msgid "Group"
msgid "My groups" msgid "My groups"
msgstr "Groupe" msgstr "Groupe"
#: menus.py:34 #: menus.py:49
#, fuzzy #, fuzzy
#| msgid "Personal overview" #| msgid "Personal overview"
msgid "My overview" msgid "My overview"
msgstr "Vue d'ensemble personnelle" msgstr "Vue d'ensemble personnelle"
#: menus.py:40 templates/alsijil/class_register/persons.html:7 #: menus.py:60 templates/alsijil/class_register/persons.html:5
#: templates/alsijil/class_register/persons.html:11 #: templates/alsijil/class_register/persons.html:9
msgid "My students" msgid "My students"
msgstr "" msgstr ""
#: menus.py:46 templates/alsijil/absences/register.html:5 #: menus.py:71 models.py:42 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/absences/register.html:6
msgid "Register absence"
msgstr "Registre de Absence"
#: menus.py:52 models.py:39 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/excuse_type/list.html:9
#: templates/alsijil/partials/legend.html:26
#, fuzzy #, fuzzy
#| msgid "Excused" #| msgid "Excused"
msgid "Excuse types" msgid "Excuse types"
msgstr "Excusé" msgstr "Excusé"
#: menus.py:58 models.py:75 models.py:210 #: menus.py:82 models.py:80 models.py:215
#: templates/alsijil/class_register/lesson.html:168 #: templates/alsijil/class_register/lesson.html:247
#: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:8
#: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/extra_mark/list.html:9
#: templates/alsijil/partials/legend.html:41
#: templates/alsijil/partials/persons_with_stats.html:19
#: templates/alsijil/print/full_register.html:293 #: templates/alsijil/print/full_register.html:293
msgid "Extra marks" msgid "Extra marks"
msgstr "" msgstr ""
#: models.py:25 models.py:196 #: model_extensions.py:145
msgid "Can view week overview of group class register"
msgstr ""
#: model_extensions.py:149
msgid "Can view lesson overview of group class register"
msgstr ""
#: model_extensions.py:152
#, fuzzy
#| msgid "List of all personal note filters"
msgid "Can view all personal notes of a group"
msgstr "Liste de filtres de notes personnelles"
#: model_extensions.py:155
#, fuzzy
#| msgid "List of all personal note filters"
msgid "Can edit all personal notes of a group"
msgstr "Liste de filtres de notes personnelles"
#: model_extensions.py:158
#, fuzzy
#| msgid "Lesson documentation for calendar week"
msgid "Can view all lesson documentation of a group"
msgstr "Documentation de cours pour la semaine calendrier"
#: model_extensions.py:161
#, fuzzy
#| msgid "Lesson documentation for calendar week"
msgid "Can edit all lesson documentation of a group"
msgstr "Documentation de cours pour la semaine calendrier"
#: model_extensions.py:163
msgid "Can view full register of a group"
msgstr ""
#: model_extensions.py:165
msgid "Can register an absence for all members of a group"
msgstr ""
#: model_extensions.py:168
#, fuzzy
#| msgid "Class register"
msgid "Can register an absence for a person"
msgstr "Registre de la classe"
#: models.py:28 models.py:201
#, fuzzy #, fuzzy
#| msgid "First name" #| msgid "First name"
msgid "Short name" msgid "Short name"
msgstr "Prénom" msgstr "Prénom"
#: models.py:27 models.py:198 #: models.py:30 models.py:203 templates/alsijil/class_register/groups.html:20
#: templates/alsijil/partials/persons_with_stats.html:14
#: templates/alsijil/partials/persons_with_stats.html:24
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: models.py:55 models.py:126 #: models.py:60 models.py:131
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: models.py:106 #: models.py:111
#, fuzzy #, fuzzy
#| msgid "Personal notes" #| msgid "Personal notes"
msgid "Personal note" msgid "Personal note"
msgstr "Notes personnelles" msgstr "Notes personnelles"
#: models.py:107 templates/alsijil/class_register/lesson.html:64 #: models.py:112 templates/alsijil/class_register/lesson.html:101
#: templates/alsijil/class_register/lesson.html:156 #: templates/alsijil/class_register/lesson.html:233
#: templates/alsijil/class_register/week_view.html:112 #: templates/alsijil/class_register/week_view.html:68
#: templates/alsijil/class_register/week_view.html:242
msgid "Personal notes" msgid "Personal notes"
msgstr "Notes personnelles" msgstr "Notes personnelles"
#: models.py:132 templates/alsijil/class_register/week_view.html:64 #: models.py:137 templates/alsijil/class_register/lesson.html:129
#: templates/alsijil/class_register/week_view.html:90
#: templates/alsijil/class_register/week_view.html:177
#: templates/alsijil/print/full_register.html:371 #: templates/alsijil/print/full_register.html:371
msgid "Lesson topic" msgid "Lesson topic"
msgstr "Sujet de cours" msgstr "Sujet de cours"
#: models.py:133 templates/alsijil/print/full_register.html:372 #: models.py:138 templates/alsijil/class_register/lesson.html:137
#: templates/alsijil/class_register/week_view.html:91
#: templates/alsijil/class_register/week_view.html:183
#: templates/alsijil/class_register/week_view.html:216
#: templates/alsijil/print/full_register.html:372
msgid "Homework" msgid "Homework"
msgstr "Devoirs" msgstr "Devoirs"
#: models.py:135 #: models.py:140 templates/alsijil/class_register/lesson.html:145
#: templates/alsijil/class_register/week_view.html:92
#: templates/alsijil/class_register/week_view.html:189
#: templates/alsijil/class_register/week_view.html:222
#, fuzzy #, fuzzy
#| msgid "Group" #| msgid "Group"
msgid "Group note" msgid "Group note"
msgstr "Groupe" msgstr "Groupe"
#: models.py:178 templates/alsijil/class_register/lesson.html:60 #: models.py:183 templates/alsijil/class_register/lesson.html:97
#: templates/alsijil/class_register/lesson.html:143 #: templates/alsijil/class_register/lesson.html:120
msgid "Lesson documentation" msgid "Lesson documentation"
msgstr "Documentation de cours" msgstr "Documentation de cours"
#: models.py:179 #: models.py:184 templates/alsijil/class_register/week_view.html:67
#, fuzzy #, fuzzy
#| msgid "Lesson documentation" #| msgid "Lesson documentation"
msgid "Lesson documentations" msgid "Lesson documentations"
msgstr "Documentation de cours" msgstr "Documentation de cours"
#: models.py:209 #: models.py:214
msgid "Extra mark" msgid "Extra mark"
msgstr "" msgstr ""
#: models.py:222
msgid "Can view week overview"
msgstr ""
#: models.py:223
#, fuzzy
#| msgid "Register absence"
msgid "Can register absence"
msgstr "Registre de Absence"
#: models.py:224
#, fuzzy
#| msgid "List of all personal note filters"
msgid "Can list all personal note filters"
msgstr "Liste de filtres de notes personnelles"
#: preferences.py:16 #: preferences.py:16
msgid "Block adding personal notes for cancelled lessons" msgid "Block adding personal notes for cancelled lessons"
msgstr "" msgstr ""
#: preferences.py:25 #: preferences.py:24
msgid "Allow users to view their own personal notes"
msgstr ""
#: preferences.py:33
msgid "Allow primary group owners to register future absences for students in their groups"
msgstr ""
#: preferences.py:43
msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods" msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods"
msgstr "" msgstr ""
#: preferences.py:28 #: preferences.py:46
msgid "This will carry over data only if the data in the following periods are empty." msgid "This will carry over data only if the data in the following periods are empty."
msgstr "" msgstr ""
#: preferences.py:38 #: preferences.py:56
msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period" msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period"
msgstr "" msgstr ""
#: preferences.py:41 #: preferences.py:59
msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgid "Lessons in the past are not affected by this setting, you can open them whenever you want."
msgstr "" msgstr ""
...@@ -222,87 +299,175 @@ msgstr "" ...@@ -222,87 +299,175 @@ msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: tables.py:22 tables.py:42 #: tables.py:22 tables.py:42 templates/alsijil/class_register/person.html:249
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: templates/alsijil/class_register/groups.html:20 #: templates/alsijil/absences/register.html:5
#: templates/alsijil/absences/register.html:6
#: templates/alsijil/class_register/person.html:30
#: templates/alsijil/class_register/week_view.html:256
#: templates/alsijil/partials/persons_with_stats.html:115
msgid "Register absence"
msgstr "Registre de Absence"
#: templates/alsijil/absences/register.html:9
#: templates/alsijil/class_register/lesson.html:242
msgid "Person"
msgstr "Personne"
#: templates/alsijil/class_register/groups.html:21
msgid "Students"
msgstr ""
#: templates/alsijil/class_register/groups.html:35
#: templates/alsijil/class_register/groups.html:69
#: templates/alsijil/class_register/week_view.html:40
#: templates/alsijil/class_register/week_view.html:51
msgid "Students list"
msgstr ""
#: templates/alsijil/class_register/groups.html:39
#: templates/alsijil/class_register/groups.html:75
#: templates/alsijil/class_register/persons.html:27
#: templates/alsijil/class_register/persons.html:43
#: templates/alsijil/class_register/students_list.html:16
#: templates/alsijil/class_register/students_list.html:35
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr "Vue de semaine"
#: templates/alsijil/class_register/groups.html:44
#: templates/alsijil/class_register/groups.html:82
#: templates/alsijil/class_register/persons.html:31
#: templates/alsijil/class_register/persons.html:50
#: templates/alsijil/class_register/students_list.html:20
#: templates/alsijil/class_register/students_list.html:42
#: templates/alsijil/class_register/week_view.html:44
#: templates/alsijil/class_register/week_view.html:58
msgid "Generate printout"
msgstr ""
#: templates/alsijil/class_register/groups.html:52
#: templates/alsijil/class_register/groups.html:88
msgid "No groups available." msgid "No groups available."
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:6 #: templates/alsijil/class_register/groups.html:64
msgid "students"
msgstr ""
#: templates/alsijil/class_register/lesson.html:5
msgid "Lesson" msgid "Lesson"
msgstr "Cours" msgstr "Cours"
#: templates/alsijil/class_register/lesson.html:14 #: templates/alsijil/class_register/lesson.html:20
#: templates/alsijil/class_register/lesson.html:83 #, fuzzy
#, fuzzy, python-format #| msgid "Week view"
#| msgid "From period" msgid "Back to week view"
msgid "%(period)s. period" msgstr "Vue de semaine"
msgstr "De la période"
#: templates/alsijil/class_register/lesson.html:29
#, fuzzy
#| msgid "Current lesson"
msgid "My previous lesson"
msgstr "Lecon actuelle"
#: templates/alsijil/class_register/lesson.html:38 #: templates/alsijil/class_register/lesson.html:38
#, fuzzy #, fuzzy
#| msgid "Current lesson" #| msgid "Current lesson"
msgid "Previous lesson" msgid "My next lesson"
msgstr "Lecon actuelle" msgstr "Lecon actuelle"
#: templates/alsijil/class_register/lesson.html:46 #: templates/alsijil/class_register/lesson.html:46
#: templates/alsijil/class_register/lesson.html:167
#, fuzzy, python-format
#| msgid "From period"
msgid "%(period)s. period"
msgstr "De la période"
#: templates/alsijil/class_register/lesson.html:77
#: templates/alsijil/class_register/lesson.html:359
#, python-format
msgid ""
"\n"
" Previous %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:85
#: templates/alsijil/class_register/lesson.html:367
#, python-format
msgid ""
"\n"
" Next %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:107
#, fuzzy #, fuzzy
#| msgid "Current lesson" #| msgid "Current lesson"
msgid "Next lesson" msgid "Previous lesson"
msgstr "Lecon actuelle" msgstr "Lecon actuelle"
#: templates/alsijil/class_register/lesson.html:68 #: templates/alsijil/class_register/lesson.html:111
#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/lesson.html:342
msgid "Change history" msgid "Change history"
msgstr "Changement d' histoire" msgstr "Changement d' histoire"
#: templates/alsijil/class_register/lesson.html:82 #: templates/alsijil/class_register/lesson.html:166
msgid "Overview: Previous lesson" msgid "Overview: Previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:89 #: templates/alsijil/class_register/lesson.html:173
msgid "Lesson topic of previous lesson:" msgid "Lesson topic of previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:96 #: templates/alsijil/class_register/lesson.html:180
msgid "Homework for this lesson:" msgid "Homework for this lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:103 #: templates/alsijil/class_register/lesson.html:187
msgid "Group notes for previous lesson:" msgid "Group notes for previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:110 #: templates/alsijil/class_register/lesson.html:194
#, fuzzy #, fuzzy
#| msgid "Absences" #| msgid "Absences"
msgid "Absent persons:" msgid "Absent persons:"
msgstr "Absences" msgstr "Absences"
#: templates/alsijil/class_register/lesson.html:117 #: templates/alsijil/class_register/lesson.html:201
msgid "Late persons:" msgid "Late persons:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:165 #: templates/alsijil/class_register/lesson.html:244
#: templates/alsijil/class_register/person.html:86 #: templates/alsijil/class_register/person.html:110
#: templates/alsijil/partials/persons_with_stats.html:17
#: templates/alsijil/partials/persons_with_stats.html:34
#: templates/alsijil/partials/persons_with_stats.html:91
#: templates/alsijil/print/full_register.html:287 #: templates/alsijil/print/full_register.html:287
msgid "Tardiness" msgid "Tardiness"
msgstr "Retard" msgstr "Retard"
#: templates/alsijil/class_register/lesson.html:188 #: templates/alsijil/class_register/lesson.html:267
#, fuzzy #, fuzzy
#| msgid "Tardiness" #| msgid "Tardiness"
msgid "Tardiness (in m)" msgid "Tardiness (in m)"
msgstr "Retard" msgstr "Retard"
#: templates/alsijil/class_register/person.html:7 #: templates/alsijil/class_register/person.html:8
#, fuzzy #, fuzzy
#| msgid "Class register" #| msgid "Class register"
msgid "Class register: person" msgid "Class register: person"
msgstr "Registre de la classe" msgstr "Registre de la classe"
#: templates/alsijil/class_register/person.html:11 #: templates/alsijil/class_register/person.html:16
#: templates/alsijil/class_register/students_list.html:10
msgid "Back"
msgstr ""
#: templates/alsijil/class_register/person.html:19
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
...@@ -310,122 +475,137 @@ msgid "" ...@@ -310,122 +475,137 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:19 #: templates/alsijil/class_register/person.html:36
#: templates/alsijil/partials/legend.html:14
#, fuzzy #, fuzzy
#| msgid "Unexcused" #| msgid "Unexcused"
msgid "Unexcused absences" msgid "Unexcused absences"
msgstr "injustifié(e)" msgstr "injustifié(e)"
#: templates/alsijil/class_register/person.html:27 #: templates/alsijil/class_register/person.html:46
#: templates/alsijil/class_register/person.html:44 #: templates/alsijil/class_register/person.html:65
#: templates/alsijil/class_register/person.html:160 #: templates/alsijil/class_register/person.html:190
#: templates/alsijil/class_register/person.html:202 #: templates/alsijil/class_register/person.html:237
msgid "Mark as" msgid "Mark as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:30 #: templates/alsijil/class_register/person.html:49
#: templates/alsijil/class_register/person.html:47 #: templates/alsijil/class_register/person.html:68
#: templates/alsijil/class_register/person.html:163 #: templates/alsijil/class_register/person.html:193
#: templates/alsijil/class_register/person.html:205 #: templates/alsijil/class_register/person.html:199
#: templates/alsijil/class_register/person.html:240
#: templates/alsijil/class_register/person.html:246
msgid "Delete note" msgid "Delete note"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:55 #: templates/alsijil/class_register/person.html:78
msgid "There are unexcused lessons." msgid "There are no unexcused lessons."
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:59 #: templates/alsijil/class_register/person.html:83
msgid "Statistics on absences, tardiness and remarks" msgid "Statistics on absences, tardiness and remarks"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:68 #: templates/alsijil/class_register/person.html:92
#: templates/alsijil/partials/legend.html:10
#: templates/alsijil/partials/persons_with_stats.html:16
#: templates/alsijil/partials/persons_with_stats.html:26
#: templates/alsijil/partials/persons_with_stats.html:69
#: templates/alsijil/print/full_register.html:269 #: templates/alsijil/print/full_register.html:269
msgid "Absences" msgid "Absences"
msgstr "Absences" msgstr "Absences"
#: templates/alsijil/class_register/person.html:72 #: templates/alsijil/class_register/person.html:96
#: templates/alsijil/print/full_register.html:274 #: templates/alsijil/print/full_register.html:274
msgid "thereof" msgid "thereof"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:82 #: templates/alsijil/class_register/person.html:106
#: templates/alsijil/partials/persons_with_stats.html:86
#: templates/alsijil/print/full_register.html:81 #: templates/alsijil/print/full_register.html:81
#: templates/alsijil/print/full_register.html:283 #: templates/alsijil/print/full_register.html:283
msgid "Unexcused" msgid "Unexcused"
msgstr "injustifié(e)" msgstr "injustifié(e)"
#: templates/alsijil/class_register/person.html:102 #: templates/alsijil/class_register/person.html:127
#: templates/alsijil/print/full_register.html:304 #: templates/alsijil/print/full_register.html:304
msgid "Relevant personal notes" msgid "Relevant personal notes"
msgstr "Notes personnelles importantes" msgstr "Notes personnelles importantes"
#: templates/alsijil/class_register/person.html:118 #: templates/alsijil/class_register/person.html:143
#, python-format #, python-format
msgid "Week %(week)s" msgid "Week %(week)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:126 #: templates/alsijil/class_register/person.html:152
#: templates/alsijil/class_register/person.html:135 #: templates/alsijil/class_register/person.html:163
msgid "Mark all as" msgid "Mark all as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:187 #: templates/alsijil/class_register/person.html:222
#, python-format #, python-format
msgid "%(late)s' late" msgid "%(late)s' late"
msgstr "" msgstr ""
#: templates/alsijil/class_register/persons.html:22 #: templates/alsijil/class_register/students_list.html:5
msgid "No students available." #: templates/alsijil/class_register/students_list.html:12
#, python-format
msgid "Students list: %(group)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:6 #: templates/alsijil/class_register/week_view.html:23
msgid "Week view"
msgstr "Vue de semaine"
#: templates/alsijil/class_register/week_view.html:30
msgid "Select" msgid "Select"
msgstr "Sélectionner" msgstr "Sélectionner"
#: templates/alsijil/class_register/week_view.html:38 #: templates/alsijil/class_register/week_view.html:31
#, python-format #, python-format
msgid "" msgid ""
"CW %(week)s:\n" "CW %(week)s:\n"
" %(instance)s" " %(instance)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:58 #: templates/alsijil/class_register/week_view.html:84
msgid "Period" msgid "Period"
msgstr "Période" msgstr "Période"
#: templates/alsijil/class_register/week_view.html:60 #: templates/alsijil/class_register/week_view.html:86
#, fuzzy #, fuzzy
#| msgid "Group" #| msgid "Group"
msgid "Groups" msgid "Groups"
msgstr "Groupe" msgstr "Groupe"
#: templates/alsijil/class_register/week_view.html:62 #: templates/alsijil/class_register/week_view.html:88
#: templates/alsijil/class_register/week_view.html:163
#: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:169
#: templates/alsijil/print/full_register.html:200 #: templates/alsijil/print/full_register.html:200
msgid "Subject" msgid "Subject"
msgstr "Sujet" msgstr "Sujet"
#: templates/alsijil/class_register/week_view.html:63 #: templates/alsijil/class_register/week_view.html:89
#: templates/alsijil/class_register/week_view.html:173
msgid "Teachers" msgid "Teachers"
msgstr "Profs" msgstr "Profs"
#: templates/alsijil/class_register/week_view.html:120 #: templates/alsijil/class_register/week_view.html:262
msgid "unexcused" msgid "unexcused"
msgstr "Injustifié(e)" msgstr "Injustifié(e)"
#: templates/alsijil/class_register/week_view.html:123 #: templates/alsijil/class_register/week_view.html:265
msgid "Summed up tardiness" msgid "Summed up tardiness"
msgstr "Résumé des retards" msgstr "Résumé des retards"
#: templates/alsijil/class_register/week_view.html:152 #: templates/alsijil/class_register/week_view.html:268
#: templates/alsijil/partials/persons_with_stats.html:94
#, fuzzy
#| msgid "Summed up tardiness"
msgid "Count of tardiness"
msgstr "Résumé des retards"
#: templates/alsijil/class_register/week_view.html:297
msgid "No lessons available" msgid "No lessons available"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:155 #: templates/alsijil/class_register/week_view.html:300
#, fuzzy #, fuzzy
#| msgid "" #| msgid ""
#| "\n" #| "\n"
...@@ -442,7 +622,7 @@ msgstr "" ...@@ -442,7 +622,7 @@ msgstr ""
#: templates/alsijil/excuse_type/create.html:6 #: templates/alsijil/excuse_type/create.html:6
#: templates/alsijil/excuse_type/create.html:7 #: templates/alsijil/excuse_type/create.html:7
#: templates/alsijil/excuse_type/list.html:16 #: templates/alsijil/excuse_type/list.html:18
msgid "Create excuse type" msgid "Create excuse type"
msgstr "" msgstr ""
...@@ -470,16 +650,35 @@ msgstr "" ...@@ -470,16 +650,35 @@ msgstr ""
msgid "Edit extra mark" msgid "Edit extra mark"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:27
#: templates/alsijil/partials/persons_with_stats.html:44
#: templates/alsijil/print/full_register.html:126 #: templates/alsijil/print/full_register.html:126
msgid "(e)" msgid "(e)"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:33
#: templates/alsijil/partials/persons_with_stats.html:50
#: templates/alsijil/print/full_register.html:130 #: templates/alsijil/print/full_register.html:130
msgid "(u)" msgid "(u)"
msgstr "" msgstr ""
#: templates/alsijil/partials/legend.html:4
msgid "Legend"
msgstr ""
#: templates/alsijil/partials/legend.html:7
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/partials/legend.html:18
#, fuzzy
#| msgid "Unexcused"
msgid "Excused absences"
msgstr "injustifié(e)"
#: templates/alsijil/partials/lesson_status_icon.html:6 #: templates/alsijil/partials/lesson_status_icon.html:6
msgid "Data complete" msgid "Data complete"
msgstr "" msgstr ""
...@@ -508,6 +707,29 @@ msgstr "" ...@@ -508,6 +707,29 @@ msgstr ""
msgid "e" msgid "e"
msgstr "e" msgstr "e"
#: templates/alsijil/partials/persons_with_stats.html:7
msgid "No students available."
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:15
#: templates/alsijil/partials/persons_with_stats.html:25
#, fuzzy
#| msgid "Group"
msgid "Primary group"
msgstr "Groupe"
#: templates/alsijil/partials/persons_with_stats.html:43
msgid "Sum"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:107
msgid "Show more details"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:108
msgid "Details"
msgstr ""
#: templates/alsijil/print/full_register.html:6 #: templates/alsijil/print/full_register.html:6
#, fuzzy #, fuzzy
#| msgid "Class register" #| msgid "Class register"
...@@ -557,10 +779,6 @@ msgstr "Prof principale" ...@@ -557,10 +779,6 @@ msgstr "Prof principale"
msgid "Abbreviations" msgid "Abbreviations"
msgstr "" msgstr ""
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/print/full_register.html:78 #: templates/alsijil/print/full_register.html:78
msgid "Late" msgid "Late"
msgstr "" msgstr ""
...@@ -679,71 +897,67 @@ msgstr "Documentation de cours pour la semaine calendrier" ...@@ -679,71 +897,67 @@ msgstr "Documentation de cours pour la semaine calendrier"
msgid "Notes" msgid "Notes"
msgstr "Notes" msgstr "Notes"
#: views.py:78 #: views.py:69
msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgid "You either selected an invalid lesson or there is currently no lesson in progress."
msgstr "" msgstr ""
#: views.py:96 #: views.py:95
msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgid "You are not allowed to create a lesson documentation for a lesson in the future."
msgstr "" msgstr ""
#: views.py:122 #: views.py:133
#, fuzzy #, fuzzy
#| msgid "Lesson documentation for calendar week" #| msgid "Lesson documentation for calendar week"
msgid "The lesson documentation has been saved." msgid "The lesson documentation has been saved."
msgstr "Documentation de cours pour la semaine calendrier" msgstr "Documentation de cours pour la semaine calendrier"
#: views.py:143 #: views.py:156
msgid "The personal notes have been saved." msgid "The personal notes have been saved."
msgstr "" msgstr ""
#: views.py:351 #: views.py:587
msgid "There is no current school term."
msgstr ""
#: views.py:532
msgid "The absences have been marked as excused." msgid "The absences have been marked as excused."
msgstr "" msgstr ""
#: views.py:548 #: views.py:605
msgid "The absence has been marked as excused." msgid "The absence has been marked as excused."
msgstr "" msgstr ""
#: views.py:653 #: views.py:735
msgid "The absence has been saved." msgid "The absence has been saved."
msgstr "" msgstr ""
#: views.py:670 #: views.py:754
#, fuzzy #, fuzzy
#| msgid "Lesson documentation for calendar week" #| msgid "Lesson documentation for calendar week"
msgid "The personal note has been deleted." msgid "The personal note has been deleted."
msgstr "Documentation de cours pour la semaine calendrier" msgstr "Documentation de cours pour la semaine calendrier"
#: views.py:691 #: views.py:775
#, fuzzy #, fuzzy
#| msgid "Lesson documentation for calendar week" #| msgid "Lesson documentation for calendar week"
msgid "The extra mark has been created." msgid "The extra mark has been created."
msgstr "Documentation de cours pour la semaine calendrier" msgstr "Documentation de cours pour la semaine calendrier"
#: views.py:702 #: views.py:786
#, fuzzy #, fuzzy
#| msgid "Lesson documentation for calendar week" #| msgid "Lesson documentation for calendar week"
msgid "The extra mark has been saved." msgid "The extra mark has been saved."
msgstr "Documentation de cours pour la semaine calendrier" msgstr "Documentation de cours pour la semaine calendrier"
#: views.py:712 #: views.py:796
msgid "The extra mark has been deleted." msgid "The extra mark has been deleted."
msgstr "" msgstr ""
#: views.py:732 #: views.py:816
msgid "The excuse type has been created." msgid "The excuse type has been created."
msgstr "" msgstr ""
#: views.py:743 #: views.py:827
msgid "The excuse type has been saved." msgid "The excuse type has been saved."
msgstr "" msgstr ""
#: views.py:753 #: views.py:837
msgid "The excuse type has been deleted." msgid "The excuse type has been deleted."
msgstr "" msgstr ""
...@@ -781,6 +995,3 @@ msgstr "" ...@@ -781,6 +995,3 @@ msgstr ""
#~ msgid "Room" #~ msgid "Room"
#~ msgstr "Salle" #~ msgstr "Salle"
#~ msgid "List of all personal note filters"
#~ msgstr "Liste de filtres de notes personnelles"
...@@ -7,7 +7,7 @@ msgid "" ...@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-09-11 11:08+0200\n" "POT-Creation-Date: 2020-11-14 12:23+0100\n"
"PO-Revision-Date: 2020-07-26 14:08+0000\n" "PO-Revision-Date: 2020-07-26 14:08+0000\n"
"Last-Translator: Julian <leuckerj@gmail.com>\n" "Last-Translator: Julian <leuckerj@gmail.com>\n"
"Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/la/>\n" "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-alsijil/la/>\n"
...@@ -18,11 +18,12 @@ msgstr "" ...@@ -18,11 +18,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.0.1\n" "X-Generator: Weblate 4.0.1\n"
#: forms.py:26 #: forms.py:29
msgid "Homework for the next lesson" msgid "Homework for the next lesson"
msgstr "" msgstr ""
#: forms.py:51 templates/alsijil/print/full_register.html:199 #: forms.py:54 templates/alsijil/class_register/week_view.html:168
#: templates/alsijil/print/full_register.html:199
msgid "Group" msgid "Group"
msgstr "Grex" msgstr "Grex"
...@@ -31,57 +32,53 @@ msgstr "Grex" ...@@ -31,57 +32,53 @@ msgstr "Grex"
msgid "Teacher" msgid "Teacher"
msgstr "" msgstr ""
#: forms.py:74 #: forms.py:72
msgid "You can't select a group and a teacher both." msgid "You can't select a group and a teacher both."
msgstr "" msgstr ""
#: forms.py:100 #: forms.py:125
msgid "Start date" msgid "Start date"
msgstr "" msgstr ""
#: forms.py:101 #: forms.py:126
msgid "End date" msgid "End date"
msgstr "" msgstr ""
#: forms.py:102 #: forms.py:127
msgid "Start period" msgid "Start period"
msgstr "" msgstr ""
#: forms.py:103 #: forms.py:128
msgid "End period" msgid "End period"
msgstr "" msgstr ""
#: forms.py:105 templates/alsijil/class_register/lesson.html:163 #: forms.py:129 templates/alsijil/class_register/lesson.html:243
msgid "Person" #: templates/alsijil/class_register/person.html:207
msgstr "Persona" #: templates/alsijil/class_register/week_view.html:261
#: forms.py:107 templates/alsijil/class_register/lesson.html:164
#: templates/alsijil/class_register/person.html:172
#: templates/alsijil/class_register/week_view.html:119
#: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:75
#: templates/alsijil/print/full_register.html:312 #: templates/alsijil/print/full_register.html:312
msgid "Absent" msgid "Absent"
msgstr "" msgstr ""
#: forms.py:108 templates/alsijil/class_register/lesson.html:166 #: forms.py:130 templates/alsijil/class_register/lesson.html:245
#: templates/alsijil/class_register/person.html:74 #: templates/alsijil/class_register/person.html:98
#: templates/alsijil/class_register/person.html:180 #: templates/alsijil/class_register/person.html:215
#: templates/alsijil/partials/mark_as_buttons.html:2 #: templates/alsijil/partials/mark_as_buttons.html:2
#: templates/alsijil/partials/mark_as_buttons.html:3 #: templates/alsijil/partials/mark_as_buttons.html:3
#: templates/alsijil/partials/persons_with_stats.html:74
#: templates/alsijil/print/full_register.html:84 #: templates/alsijil/print/full_register.html:84
#: templates/alsijil/print/full_register.html:275 #: templates/alsijil/print/full_register.html:275
msgid "Excused" msgid "Excused"
msgstr "" msgstr ""
#: forms.py:110 models.py:38 models.py:69 #: forms.py:132 models.py:41 models.py:74
#: templates/alsijil/class_register/lesson.html:167 #: templates/alsijil/class_register/lesson.html:246
#: templates/alsijil/class_register/lesson.html:202 #: templates/alsijil/class_register/lesson.html:281
msgid "Excuse type" msgid "Excuse type"
msgstr "" msgstr ""
#: forms.py:115 templates/alsijil/class_register/lesson.html:170 #: forms.py:137 templates/alsijil/class_register/lesson.html:248
#: templates/alsijil/class_register/lesson.html:223 #: templates/alsijil/class_register/lesson.html:302
#: templates/alsijil/class_register/lesson.html:231
#: templates/alsijil/print/full_register.html:314 #: templates/alsijil/print/full_register.html:314
msgid "Remarks" msgid "Remarks"
msgstr "" msgstr ""
...@@ -94,115 +91,181 @@ msgstr "" ...@@ -94,115 +91,181 @@ msgstr ""
msgid "Current lesson" msgid "Current lesson"
msgstr "" msgstr ""
#: menus.py:22 #: menus.py:27
msgid "Current week" msgid "Current week"
msgstr "" msgstr ""
#: menus.py:28 templates/alsijil/class_register/groups.html:5 #: menus.py:38 templates/alsijil/class_register/groups.html:5
#: templates/alsijil/class_register/groups.html:9 #: templates/alsijil/class_register/groups.html:8
#, fuzzy #, fuzzy
#| msgid "Group" #| msgid "Group"
msgid "My groups" msgid "My groups"
msgstr "Grex" msgstr "Grex"
#: menus.py:34 #: menus.py:49
msgid "My overview" msgid "My overview"
msgstr "" msgstr ""
#: menus.py:40 templates/alsijil/class_register/persons.html:7 #: menus.py:60 templates/alsijil/class_register/persons.html:5
#: templates/alsijil/class_register/persons.html:11 #: templates/alsijil/class_register/persons.html:9
msgid "My students" msgid "My students"
msgstr "" msgstr ""
#: menus.py:46 templates/alsijil/absences/register.html:5 #: menus.py:71 models.py:42 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/absences/register.html:6
msgid "Register absence"
msgstr ""
#: menus.py:52 models.py:39 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/excuse_type/list.html:9
#: templates/alsijil/partials/legend.html:26
msgid "Excuse types" msgid "Excuse types"
msgstr "" msgstr ""
#: menus.py:58 models.py:75 models.py:210 #: menus.py:82 models.py:80 models.py:215
#: templates/alsijil/class_register/lesson.html:168 #: templates/alsijil/class_register/lesson.html:247
#: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:8
#: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/extra_mark/list.html:9
#: templates/alsijil/partials/legend.html:41
#: templates/alsijil/partials/persons_with_stats.html:19
#: templates/alsijil/print/full_register.html:293 #: templates/alsijil/print/full_register.html:293
msgid "Extra marks" msgid "Extra marks"
msgstr "" msgstr ""
#: models.py:25 models.py:196 #: model_extensions.py:145
msgid "Can view week overview of group class register"
msgstr ""
#: model_extensions.py:149
msgid "Can view lesson overview of group class register"
msgstr ""
#: model_extensions.py:152
msgid "Can view all personal notes of a group"
msgstr ""
#: model_extensions.py:155
msgid "Can edit all personal notes of a group"
msgstr ""
#: model_extensions.py:158
msgid "Can view all lesson documentation of a group"
msgstr ""
#: model_extensions.py:161
msgid "Can edit all lesson documentation of a group"
msgstr ""
#: model_extensions.py:163
msgid "Can view full register of a group"
msgstr ""
#: model_extensions.py:165
msgid "Can register an absence for all members of a group"
msgstr ""
#: model_extensions.py:168
msgid "Can register an absence for a person"
msgstr ""
#: models.py:28 models.py:201
#, fuzzy #, fuzzy
#| msgid "First name" #| msgid "First name"
msgid "Short name" msgid "Short name"
msgstr "Primus nomen" msgstr "Primus nomen"
#: models.py:27 models.py:198 #: models.py:30 models.py:203 templates/alsijil/class_register/groups.html:20
#: templates/alsijil/partials/persons_with_stats.html:14
#: templates/alsijil/partials/persons_with_stats.html:24
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: models.py:55 models.py:126 #: models.py:60 models.py:131
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: models.py:106 #: models.py:111
#, fuzzy #, fuzzy
#| msgid "Person" #| msgid "Person"
msgid "Personal note" msgid "Personal note"
msgstr "Persona" msgstr "Persona"
#: models.py:107 templates/alsijil/class_register/lesson.html:64 #: models.py:112 templates/alsijil/class_register/lesson.html:101
#: templates/alsijil/class_register/lesson.html:156 #: templates/alsijil/class_register/lesson.html:233
#: templates/alsijil/class_register/week_view.html:112 #: templates/alsijil/class_register/week_view.html:68
#: templates/alsijil/class_register/week_view.html:242
msgid "Personal notes" msgid "Personal notes"
msgstr "" msgstr ""
#: models.py:132 templates/alsijil/class_register/week_view.html:64 #: models.py:137 templates/alsijil/class_register/lesson.html:129
#: templates/alsijil/class_register/week_view.html:90
#: templates/alsijil/class_register/week_view.html:177
#: templates/alsijil/print/full_register.html:371 #: templates/alsijil/print/full_register.html:371
msgid "Lesson topic" msgid "Lesson topic"
msgstr "" msgstr ""
#: models.py:133 templates/alsijil/print/full_register.html:372 #: models.py:138 templates/alsijil/class_register/lesson.html:137
#: templates/alsijil/class_register/week_view.html:91
#: templates/alsijil/class_register/week_view.html:183
#: templates/alsijil/class_register/week_view.html:216
#: templates/alsijil/print/full_register.html:372
msgid "Homework" msgid "Homework"
msgstr "" msgstr ""
#: models.py:135 #: models.py:140 templates/alsijil/class_register/lesson.html:145
#: templates/alsijil/class_register/week_view.html:92
#: templates/alsijil/class_register/week_view.html:189
#: templates/alsijil/class_register/week_view.html:222
#, fuzzy #, fuzzy
#| msgid "Group" #| msgid "Group"
msgid "Group note" msgid "Group note"
msgstr "Grex" msgstr "Grex"
#: models.py:178 templates/alsijil/class_register/lesson.html:60 #: models.py:183 templates/alsijil/class_register/lesson.html:97
#: templates/alsijil/class_register/lesson.html:143 #: templates/alsijil/class_register/lesson.html:120
msgid "Lesson documentation" msgid "Lesson documentation"
msgstr "" msgstr ""
#: models.py:179 #: models.py:184 templates/alsijil/class_register/week_view.html:67
msgid "Lesson documentations" msgid "Lesson documentations"
msgstr "" msgstr ""
#: models.py:209 #: models.py:214
msgid "Extra mark" msgid "Extra mark"
msgstr "" msgstr ""
#: models.py:222
msgid "Can view week overview"
msgstr ""
#: models.py:223
msgid "Can register absence"
msgstr ""
#: models.py:224
msgid "Can list all personal note filters"
msgstr ""
#: preferences.py:16 #: preferences.py:16
msgid "Block adding personal notes for cancelled lessons" msgid "Block adding personal notes for cancelled lessons"
msgstr "" msgstr ""
#: preferences.py:25 #: preferences.py:24
msgid "Allow users to view their own personal notes"
msgstr ""
#: preferences.py:33
msgid "Allow primary group owners to register future absences for students in their groups"
msgstr ""
#: preferences.py:43
msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods" msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods"
msgstr "" msgstr ""
#: preferences.py:28 #: preferences.py:46
msgid "This will carry over data only if the data in the following periods are empty." msgid "This will carry over data only if the data in the following periods are empty."
msgstr "" msgstr ""
#: preferences.py:38 #: preferences.py:56
msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period" msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period"
msgstr "" msgstr ""
#: preferences.py:41 #: preferences.py:59
msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgid "Lessons in the past are not affected by this setting, you can open them whenever you want."
msgstr "" msgstr ""
...@@ -210,76 +273,160 @@ msgstr "" ...@@ -210,76 +273,160 @@ msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: tables.py:22 tables.py:42 #: tables.py:22 tables.py:42 templates/alsijil/class_register/person.html:249
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: templates/alsijil/class_register/groups.html:20 #: templates/alsijil/absences/register.html:5
#: templates/alsijil/absences/register.html:6
#: templates/alsijil/class_register/person.html:30
#: templates/alsijil/class_register/week_view.html:256
#: templates/alsijil/partials/persons_with_stats.html:115
msgid "Register absence"
msgstr ""
#: templates/alsijil/absences/register.html:9
#: templates/alsijil/class_register/lesson.html:242
msgid "Person"
msgstr "Persona"
#: templates/alsijil/class_register/groups.html:21
msgid "Students"
msgstr ""
#: templates/alsijil/class_register/groups.html:35
#: templates/alsijil/class_register/groups.html:69
#: templates/alsijil/class_register/week_view.html:40
#: templates/alsijil/class_register/week_view.html:51
msgid "Students list"
msgstr ""
#: templates/alsijil/class_register/groups.html:39
#: templates/alsijil/class_register/groups.html:75
#: templates/alsijil/class_register/persons.html:27
#: templates/alsijil/class_register/persons.html:43
#: templates/alsijil/class_register/students_list.html:16
#: templates/alsijil/class_register/students_list.html:35
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr ""
#: templates/alsijil/class_register/groups.html:44
#: templates/alsijil/class_register/groups.html:82
#: templates/alsijil/class_register/persons.html:31
#: templates/alsijil/class_register/persons.html:50
#: templates/alsijil/class_register/students_list.html:20
#: templates/alsijil/class_register/students_list.html:42
#: templates/alsijil/class_register/week_view.html:44
#: templates/alsijil/class_register/week_view.html:58
msgid "Generate printout"
msgstr ""
#: templates/alsijil/class_register/groups.html:52
#: templates/alsijil/class_register/groups.html:88
msgid "No groups available." msgid "No groups available."
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:6 #: templates/alsijil/class_register/groups.html:64
msgid "students"
msgstr ""
#: templates/alsijil/class_register/lesson.html:5
msgid "Lesson" msgid "Lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:14 #: templates/alsijil/class_register/lesson.html:20
#: templates/alsijil/class_register/lesson.html:83 msgid "Back to week view"
#, python-format msgstr ""
msgid "%(period)s. period"
#: templates/alsijil/class_register/lesson.html:29
msgid "My previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:38 #: templates/alsijil/class_register/lesson.html:38
msgid "Previous lesson" msgid "My next lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:46 #: templates/alsijil/class_register/lesson.html:46
msgid "Next lesson" #: templates/alsijil/class_register/lesson.html:167
#, python-format
msgid "%(period)s. period"
msgstr ""
#: templates/alsijil/class_register/lesson.html:77
#: templates/alsijil/class_register/lesson.html:359
#, python-format
msgid ""
"\n"
" Previous %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:85
#: templates/alsijil/class_register/lesson.html:367
#, python-format
msgid ""
"\n"
" Next %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:107
msgid "Previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:68 #: templates/alsijil/class_register/lesson.html:111
#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/lesson.html:342
msgid "Change history" msgid "Change history"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:82 #: templates/alsijil/class_register/lesson.html:166
msgid "Overview: Previous lesson" msgid "Overview: Previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:89 #: templates/alsijil/class_register/lesson.html:173
msgid "Lesson topic of previous lesson:" msgid "Lesson topic of previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:96 #: templates/alsijil/class_register/lesson.html:180
msgid "Homework for this lesson:" msgid "Homework for this lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:103 #: templates/alsijil/class_register/lesson.html:187
msgid "Group notes for previous lesson:" msgid "Group notes for previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:110 #: templates/alsijil/class_register/lesson.html:194
msgid "Absent persons:" msgid "Absent persons:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:117 #: templates/alsijil/class_register/lesson.html:201
msgid "Late persons:" msgid "Late persons:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:165 #: templates/alsijil/class_register/lesson.html:244
#: templates/alsijil/class_register/person.html:86 #: templates/alsijil/class_register/person.html:110
#: templates/alsijil/partials/persons_with_stats.html:17
#: templates/alsijil/partials/persons_with_stats.html:34
#: templates/alsijil/partials/persons_with_stats.html:91
#: templates/alsijil/print/full_register.html:287 #: templates/alsijil/print/full_register.html:287
msgid "Tardiness" msgid "Tardiness"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:188 #: templates/alsijil/class_register/lesson.html:267
msgid "Tardiness (in m)" msgid "Tardiness (in m)"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:7 #: templates/alsijil/class_register/person.html:8
msgid "Class register: person" msgid "Class register: person"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:11 #: templates/alsijil/class_register/person.html:16
#: templates/alsijil/class_register/students_list.html:10
msgid "Back"
msgstr ""
#: templates/alsijil/class_register/person.html:19
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
...@@ -287,120 +434,133 @@ msgid "" ...@@ -287,120 +434,133 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:19 #: templates/alsijil/class_register/person.html:36
#: templates/alsijil/partials/legend.html:14
msgid "Unexcused absences" msgid "Unexcused absences"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:27 #: templates/alsijil/class_register/person.html:46
#: templates/alsijil/class_register/person.html:44 #: templates/alsijil/class_register/person.html:65
#: templates/alsijil/class_register/person.html:160 #: templates/alsijil/class_register/person.html:190
#: templates/alsijil/class_register/person.html:202 #: templates/alsijil/class_register/person.html:237
msgid "Mark as" msgid "Mark as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:30 #: templates/alsijil/class_register/person.html:49
#: templates/alsijil/class_register/person.html:47 #: templates/alsijil/class_register/person.html:68
#: templates/alsijil/class_register/person.html:163 #: templates/alsijil/class_register/person.html:193
#: templates/alsijil/class_register/person.html:205 #: templates/alsijil/class_register/person.html:199
#: templates/alsijil/class_register/person.html:240
#: templates/alsijil/class_register/person.html:246
msgid "Delete note" msgid "Delete note"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:55 #: templates/alsijil/class_register/person.html:78
msgid "There are unexcused lessons." msgid "There are no unexcused lessons."
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:59 #: templates/alsijil/class_register/person.html:83
msgid "Statistics on absences, tardiness and remarks" msgid "Statistics on absences, tardiness and remarks"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:68 #: templates/alsijil/class_register/person.html:92
#: templates/alsijil/partials/legend.html:10
#: templates/alsijil/partials/persons_with_stats.html:16
#: templates/alsijil/partials/persons_with_stats.html:26
#: templates/alsijil/partials/persons_with_stats.html:69
#: templates/alsijil/print/full_register.html:269 #: templates/alsijil/print/full_register.html:269
msgid "Absences" msgid "Absences"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:72 #: templates/alsijil/class_register/person.html:96
#: templates/alsijil/print/full_register.html:274 #: templates/alsijil/print/full_register.html:274
msgid "thereof" msgid "thereof"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:82 #: templates/alsijil/class_register/person.html:106
#: templates/alsijil/partials/persons_with_stats.html:86
#: templates/alsijil/print/full_register.html:81 #: templates/alsijil/print/full_register.html:81
#: templates/alsijil/print/full_register.html:283 #: templates/alsijil/print/full_register.html:283
msgid "Unexcused" msgid "Unexcused"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:102 #: templates/alsijil/class_register/person.html:127
#: templates/alsijil/print/full_register.html:304 #: templates/alsijil/print/full_register.html:304
msgid "Relevant personal notes" msgid "Relevant personal notes"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:118 #: templates/alsijil/class_register/person.html:143
#, python-format #, python-format
msgid "Week %(week)s" msgid "Week %(week)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:126 #: templates/alsijil/class_register/person.html:152
#: templates/alsijil/class_register/person.html:135 #: templates/alsijil/class_register/person.html:163
msgid "Mark all as" msgid "Mark all as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:187 #: templates/alsijil/class_register/person.html:222
#, python-format #, python-format
msgid "%(late)s' late" msgid "%(late)s' late"
msgstr "" msgstr ""
#: templates/alsijil/class_register/persons.html:22 #: templates/alsijil/class_register/students_list.html:5
msgid "No students available." #: templates/alsijil/class_register/students_list.html:12
msgstr "" #, python-format
msgid "Students list: %(group)s"
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:30 #: templates/alsijil/class_register/week_view.html:23
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:38 #: templates/alsijil/class_register/week_view.html:31
#, python-format #, python-format
msgid "" msgid ""
"CW %(week)s:\n" "CW %(week)s:\n"
" %(instance)s" " %(instance)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:58 #: templates/alsijil/class_register/week_view.html:84
msgid "Period" msgid "Period"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:60 #: templates/alsijil/class_register/week_view.html:86
#, fuzzy #, fuzzy
#| msgid "Group" #| msgid "Group"
msgid "Groups" msgid "Groups"
msgstr "Grex" msgstr "Grex"
#: templates/alsijil/class_register/week_view.html:62 #: templates/alsijil/class_register/week_view.html:88
#: templates/alsijil/class_register/week_view.html:163
#: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:169
#: templates/alsijil/print/full_register.html:200 #: templates/alsijil/print/full_register.html:200
msgid "Subject" msgid "Subject"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:63 #: templates/alsijil/class_register/week_view.html:89
#: templates/alsijil/class_register/week_view.html:173
msgid "Teachers" msgid "Teachers"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:120 #: templates/alsijil/class_register/week_view.html:262
msgid "unexcused" msgid "unexcused"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:123 #: templates/alsijil/class_register/week_view.html:265
msgid "Summed up tardiness" msgid "Summed up tardiness"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:152 #: templates/alsijil/class_register/week_view.html:268
#: templates/alsijil/partials/persons_with_stats.html:94
msgid "Count of tardiness"
msgstr ""
#: templates/alsijil/class_register/week_view.html:297
msgid "No lessons available" msgid "No lessons available"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:155 #: templates/alsijil/class_register/week_view.html:300
msgid "" msgid ""
"\n" "\n"
" There are no lessons for the selected group or teacher in this week.\n" " There are no lessons for the selected group or teacher in this week.\n"
...@@ -409,7 +569,7 @@ msgstr "" ...@@ -409,7 +569,7 @@ msgstr ""
#: templates/alsijil/excuse_type/create.html:6 #: templates/alsijil/excuse_type/create.html:6
#: templates/alsijil/excuse_type/create.html:7 #: templates/alsijil/excuse_type/create.html:7
#: templates/alsijil/excuse_type/list.html:16 #: templates/alsijil/excuse_type/list.html:18
msgid "Create excuse type" msgid "Create excuse type"
msgstr "" msgstr ""
...@@ -437,16 +597,33 @@ msgstr "" ...@@ -437,16 +597,33 @@ msgstr ""
msgid "Edit extra mark" msgid "Edit extra mark"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:27
#: templates/alsijil/partials/persons_with_stats.html:44
#: templates/alsijil/print/full_register.html:126 #: templates/alsijil/print/full_register.html:126
msgid "(e)" msgid "(e)"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:33
#: templates/alsijil/partials/persons_with_stats.html:50
#: templates/alsijil/print/full_register.html:130 #: templates/alsijil/print/full_register.html:130
msgid "(u)" msgid "(u)"
msgstr "" msgstr ""
#: templates/alsijil/partials/legend.html:4
msgid "Legend"
msgstr ""
#: templates/alsijil/partials/legend.html:7
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/partials/legend.html:18
msgid "Excused absences"
msgstr ""
#: templates/alsijil/partials/lesson_status_icon.html:6 #: templates/alsijil/partials/lesson_status_icon.html:6
msgid "Data complete" msgid "Data complete"
msgstr "" msgstr ""
...@@ -475,6 +652,29 @@ msgstr "" ...@@ -475,6 +652,29 @@ msgstr ""
msgid "e" msgid "e"
msgstr "" msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:7
msgid "No students available."
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:15
#: templates/alsijil/partials/persons_with_stats.html:25
#, fuzzy
#| msgid "Group"
msgid "Primary group"
msgstr "Grex"
#: templates/alsijil/partials/persons_with_stats.html:43
msgid "Sum"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:107
msgid "Show more details"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:108
msgid "Details"
msgstr ""
#: templates/alsijil/print/full_register.html:6 #: templates/alsijil/print/full_register.html:6
msgid "Class register:" msgid "Class register:"
msgstr "" msgstr ""
...@@ -522,10 +722,6 @@ msgstr "" ...@@ -522,10 +722,6 @@ msgstr ""
msgid "Abbreviations" msgid "Abbreviations"
msgstr "" msgstr ""
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/print/full_register.html:78 #: templates/alsijil/print/full_register.html:78
msgid "Late" msgid "Late"
msgstr "" msgstr ""
...@@ -640,63 +836,59 @@ msgstr "" ...@@ -640,63 +836,59 @@ msgstr ""
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: views.py:78 #: views.py:69
msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgid "You either selected an invalid lesson or there is currently no lesson in progress."
msgstr "" msgstr ""
#: views.py:96 #: views.py:95
msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgid "You are not allowed to create a lesson documentation for a lesson in the future."
msgstr "" msgstr ""
#: views.py:122 #: views.py:133
msgid "The lesson documentation has been saved." msgid "The lesson documentation has been saved."
msgstr "" msgstr ""
#: views.py:143 #: views.py:156
msgid "The personal notes have been saved." msgid "The personal notes have been saved."
msgstr "" msgstr ""
#: views.py:351 #: views.py:587
msgid "There is no current school term."
msgstr ""
#: views.py:532
msgid "The absences have been marked as excused." msgid "The absences have been marked as excused."
msgstr "" msgstr ""
#: views.py:548 #: views.py:605
msgid "The absence has been marked as excused." msgid "The absence has been marked as excused."
msgstr "" msgstr ""
#: views.py:653 #: views.py:735
msgid "The absence has been saved." msgid "The absence has been saved."
msgstr "" msgstr ""
#: views.py:670 #: views.py:754
msgid "The personal note has been deleted." msgid "The personal note has been deleted."
msgstr "" msgstr ""
#: views.py:691 #: views.py:775
msgid "The extra mark has been created." msgid "The extra mark has been created."
msgstr "" msgstr ""
#: views.py:702 #: views.py:786
msgid "The extra mark has been saved." msgid "The extra mark has been saved."
msgstr "" msgstr ""
#: views.py:712 #: views.py:796
msgid "The extra mark has been deleted." msgid "The extra mark has been deleted."
msgstr "" msgstr ""
#: views.py:732 #: views.py:816
msgid "The excuse type has been created." msgid "The excuse type has been created."
msgstr "" msgstr ""
#: views.py:743 #: views.py:827
msgid "The excuse type has been saved." msgid "The excuse type has been saved."
msgstr "" msgstr ""
#: views.py:753 #: views.py:837
msgid "The excuse type has been deleted." msgid "The excuse type has been deleted."
msgstr "" msgstr ""
......
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-09-11 11:08+0200\n" "POT-Creation-Date: 2020-11-14 12:23+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -17,11 +17,12 @@ msgstr "" ...@@ -17,11 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: forms.py:26 #: forms.py:29
msgid "Homework for the next lesson" msgid "Homework for the next lesson"
msgstr "" msgstr ""
#: forms.py:51 templates/alsijil/print/full_register.html:199 #: forms.py:54 templates/alsijil/class_register/week_view.html:168
#: templates/alsijil/print/full_register.html:199
msgid "Group" msgid "Group"
msgstr "" msgstr ""
...@@ -30,57 +31,53 @@ msgstr "" ...@@ -30,57 +31,53 @@ msgstr ""
msgid "Teacher" msgid "Teacher"
msgstr "" msgstr ""
#: forms.py:74 #: forms.py:72
msgid "You can't select a group and a teacher both." msgid "You can't select a group and a teacher both."
msgstr "" msgstr ""
#: forms.py:100 #: forms.py:125
msgid "Start date" msgid "Start date"
msgstr "" msgstr ""
#: forms.py:101 #: forms.py:126
msgid "End date" msgid "End date"
msgstr "" msgstr ""
#: forms.py:102 #: forms.py:127
msgid "Start period" msgid "Start period"
msgstr "" msgstr ""
#: forms.py:103 #: forms.py:128
msgid "End period" msgid "End period"
msgstr "" msgstr ""
#: forms.py:105 templates/alsijil/class_register/lesson.html:163 #: forms.py:129 templates/alsijil/class_register/lesson.html:243
msgid "Person" #: templates/alsijil/class_register/person.html:207
msgstr "" #: templates/alsijil/class_register/week_view.html:261
#: forms.py:107 templates/alsijil/class_register/lesson.html:164
#: templates/alsijil/class_register/person.html:172
#: templates/alsijil/class_register/week_view.html:119
#: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:75
#: templates/alsijil/print/full_register.html:312 #: templates/alsijil/print/full_register.html:312
msgid "Absent" msgid "Absent"
msgstr "" msgstr ""
#: forms.py:108 templates/alsijil/class_register/lesson.html:166 #: forms.py:130 templates/alsijil/class_register/lesson.html:245
#: templates/alsijil/class_register/person.html:74 #: templates/alsijil/class_register/person.html:98
#: templates/alsijil/class_register/person.html:180 #: templates/alsijil/class_register/person.html:215
#: templates/alsijil/partials/mark_as_buttons.html:2 #: templates/alsijil/partials/mark_as_buttons.html:2
#: templates/alsijil/partials/mark_as_buttons.html:3 #: templates/alsijil/partials/mark_as_buttons.html:3
#: templates/alsijil/partials/persons_with_stats.html:74
#: templates/alsijil/print/full_register.html:84 #: templates/alsijil/print/full_register.html:84
#: templates/alsijil/print/full_register.html:275 #: templates/alsijil/print/full_register.html:275
msgid "Excused" msgid "Excused"
msgstr "" msgstr ""
#: forms.py:110 models.py:38 models.py:69 #: forms.py:132 models.py:41 models.py:74
#: templates/alsijil/class_register/lesson.html:167 #: templates/alsijil/class_register/lesson.html:246
#: templates/alsijil/class_register/lesson.html:202 #: templates/alsijil/class_register/lesson.html:281
msgid "Excuse type" msgid "Excuse type"
msgstr "" msgstr ""
#: forms.py:115 templates/alsijil/class_register/lesson.html:170 #: forms.py:137 templates/alsijil/class_register/lesson.html:248
#: templates/alsijil/class_register/lesson.html:223 #: templates/alsijil/class_register/lesson.html:302
#: templates/alsijil/class_register/lesson.html:231
#: templates/alsijil/print/full_register.html:314 #: templates/alsijil/print/full_register.html:314
msgid "Remarks" msgid "Remarks"
msgstr "" msgstr ""
...@@ -93,107 +90,173 @@ msgstr "" ...@@ -93,107 +90,173 @@ msgstr ""
msgid "Current lesson" msgid "Current lesson"
msgstr "" msgstr ""
#: menus.py:22 #: menus.py:27
msgid "Current week" msgid "Current week"
msgstr "" msgstr ""
#: menus.py:28 templates/alsijil/class_register/groups.html:5 #: menus.py:38 templates/alsijil/class_register/groups.html:5
#: templates/alsijil/class_register/groups.html:9 #: templates/alsijil/class_register/groups.html:8
msgid "My groups" msgid "My groups"
msgstr "" msgstr ""
#: menus.py:34 #: menus.py:49
msgid "My overview" msgid "My overview"
msgstr "" msgstr ""
#: menus.py:40 templates/alsijil/class_register/persons.html:7 #: menus.py:60 templates/alsijil/class_register/persons.html:5
#: templates/alsijil/class_register/persons.html:11 #: templates/alsijil/class_register/persons.html:9
msgid "My students" msgid "My students"
msgstr "" msgstr ""
#: menus.py:46 templates/alsijil/absences/register.html:5 #: menus.py:71 models.py:42 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/absences/register.html:6
msgid "Register absence"
msgstr ""
#: menus.py:52 models.py:39 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/excuse_type/list.html:9
#: templates/alsijil/partials/legend.html:26
msgid "Excuse types" msgid "Excuse types"
msgstr "" msgstr ""
#: menus.py:58 models.py:75 models.py:210 #: menus.py:82 models.py:80 models.py:215
#: templates/alsijil/class_register/lesson.html:168 #: templates/alsijil/class_register/lesson.html:247
#: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:8
#: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/extra_mark/list.html:9
#: templates/alsijil/partials/legend.html:41
#: templates/alsijil/partials/persons_with_stats.html:19
#: templates/alsijil/print/full_register.html:293 #: templates/alsijil/print/full_register.html:293
msgid "Extra marks" msgid "Extra marks"
msgstr "" msgstr ""
#: models.py:25 models.py:196 #: model_extensions.py:145
msgid "Can view week overview of group class register"
msgstr ""
#: model_extensions.py:149
msgid "Can view lesson overview of group class register"
msgstr ""
#: model_extensions.py:152
msgid "Can view all personal notes of a group"
msgstr ""
#: model_extensions.py:155
msgid "Can edit all personal notes of a group"
msgstr ""
#: model_extensions.py:158
msgid "Can view all lesson documentation of a group"
msgstr ""
#: model_extensions.py:161
msgid "Can edit all lesson documentation of a group"
msgstr ""
#: model_extensions.py:163
msgid "Can view full register of a group"
msgstr ""
#: model_extensions.py:165
msgid "Can register an absence for all members of a group"
msgstr ""
#: model_extensions.py:168
msgid "Can register an absence for a person"
msgstr ""
#: models.py:28 models.py:201
msgid "Short name" msgid "Short name"
msgstr "" msgstr ""
#: models.py:27 models.py:198 #: models.py:30 models.py:203 templates/alsijil/class_register/groups.html:20
#: templates/alsijil/partials/persons_with_stats.html:14
#: templates/alsijil/partials/persons_with_stats.html:24
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: models.py:55 models.py:126 #: models.py:60 models.py:131
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: models.py:106 #: models.py:111
msgid "Personal note" msgid "Personal note"
msgstr "" msgstr ""
#: models.py:107 templates/alsijil/class_register/lesson.html:64 #: models.py:112 templates/alsijil/class_register/lesson.html:101
#: templates/alsijil/class_register/lesson.html:156 #: templates/alsijil/class_register/lesson.html:233
#: templates/alsijil/class_register/week_view.html:112 #: templates/alsijil/class_register/week_view.html:68
#: templates/alsijil/class_register/week_view.html:242
msgid "Personal notes" msgid "Personal notes"
msgstr "" msgstr ""
#: models.py:132 templates/alsijil/class_register/week_view.html:64 #: models.py:137 templates/alsijil/class_register/lesson.html:129
#: templates/alsijil/class_register/week_view.html:90
#: templates/alsijil/class_register/week_view.html:177
#: templates/alsijil/print/full_register.html:371 #: templates/alsijil/print/full_register.html:371
msgid "Lesson topic" msgid "Lesson topic"
msgstr "" msgstr ""
#: models.py:133 templates/alsijil/print/full_register.html:372 #: models.py:138 templates/alsijil/class_register/lesson.html:137
#: templates/alsijil/class_register/week_view.html:91
#: templates/alsijil/class_register/week_view.html:183
#: templates/alsijil/class_register/week_view.html:216
#: templates/alsijil/print/full_register.html:372
msgid "Homework" msgid "Homework"
msgstr "" msgstr ""
#: models.py:135 #: models.py:140 templates/alsijil/class_register/lesson.html:145
#: templates/alsijil/class_register/week_view.html:92
#: templates/alsijil/class_register/week_view.html:189
#: templates/alsijil/class_register/week_view.html:222
msgid "Group note" msgid "Group note"
msgstr "" msgstr ""
#: models.py:178 templates/alsijil/class_register/lesson.html:60 #: models.py:183 templates/alsijil/class_register/lesson.html:97
#: templates/alsijil/class_register/lesson.html:143 #: templates/alsijil/class_register/lesson.html:120
msgid "Lesson documentation" msgid "Lesson documentation"
msgstr "" msgstr ""
#: models.py:179 #: models.py:184 templates/alsijil/class_register/week_view.html:67
msgid "Lesson documentations" msgid "Lesson documentations"
msgstr "" msgstr ""
#: models.py:209 #: models.py:214
msgid "Extra mark" msgid "Extra mark"
msgstr "" msgstr ""
#: models.py:222
msgid "Can view week overview"
msgstr ""
#: models.py:223
msgid "Can register absence"
msgstr ""
#: models.py:224
msgid "Can list all personal note filters"
msgstr ""
#: preferences.py:16 #: preferences.py:16
msgid "Block adding personal notes for cancelled lessons" msgid "Block adding personal notes for cancelled lessons"
msgstr "" msgstr ""
#: preferences.py:25 #: preferences.py:24
msgid "Allow users to view their own personal notes"
msgstr ""
#: preferences.py:33
msgid "Allow primary group owners to register future absences for students in their groups"
msgstr ""
#: preferences.py:43
msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods" msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods"
msgstr "" msgstr ""
#: preferences.py:28 #: preferences.py:46
msgid "This will carry over data only if the data in the following periods are empty." msgid "This will carry over data only if the data in the following periods are empty."
msgstr "" msgstr ""
#: preferences.py:38 #: preferences.py:56
msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period" msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period"
msgstr "" msgstr ""
#: preferences.py:41 #: preferences.py:59
msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgid "Lessons in the past are not affected by this setting, you can open them whenever you want."
msgstr "" msgstr ""
...@@ -201,76 +264,160 @@ msgstr "" ...@@ -201,76 +264,160 @@ msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: tables.py:22 tables.py:42 #: tables.py:22 tables.py:42 templates/alsijil/class_register/person.html:249
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: templates/alsijil/class_register/groups.html:20 #: templates/alsijil/absences/register.html:5
#: templates/alsijil/absences/register.html:6
#: templates/alsijil/class_register/person.html:30
#: templates/alsijil/class_register/week_view.html:256
#: templates/alsijil/partials/persons_with_stats.html:115
msgid "Register absence"
msgstr ""
#: templates/alsijil/absences/register.html:9
#: templates/alsijil/class_register/lesson.html:242
msgid "Person"
msgstr ""
#: templates/alsijil/class_register/groups.html:21
msgid "Students"
msgstr ""
#: templates/alsijil/class_register/groups.html:35
#: templates/alsijil/class_register/groups.html:69
#: templates/alsijil/class_register/week_view.html:40
#: templates/alsijil/class_register/week_view.html:51
msgid "Students list"
msgstr ""
#: templates/alsijil/class_register/groups.html:39
#: templates/alsijil/class_register/groups.html:75
#: templates/alsijil/class_register/persons.html:27
#: templates/alsijil/class_register/persons.html:43
#: templates/alsijil/class_register/students_list.html:16
#: templates/alsijil/class_register/students_list.html:35
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr ""
#: templates/alsijil/class_register/groups.html:44
#: templates/alsijil/class_register/groups.html:82
#: templates/alsijil/class_register/persons.html:31
#: templates/alsijil/class_register/persons.html:50
#: templates/alsijil/class_register/students_list.html:20
#: templates/alsijil/class_register/students_list.html:42
#: templates/alsijil/class_register/week_view.html:44
#: templates/alsijil/class_register/week_view.html:58
msgid "Generate printout"
msgstr ""
#: templates/alsijil/class_register/groups.html:52
#: templates/alsijil/class_register/groups.html:88
msgid "No groups available." msgid "No groups available."
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:6 #: templates/alsijil/class_register/groups.html:64
msgid "students"
msgstr ""
#: templates/alsijil/class_register/lesson.html:5
msgid "Lesson" msgid "Lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:14 #: templates/alsijil/class_register/lesson.html:20
#: templates/alsijil/class_register/lesson.html:83 msgid "Back to week view"
#, python-format msgstr ""
msgid "%(period)s. period"
#: templates/alsijil/class_register/lesson.html:29
msgid "My previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:38 #: templates/alsijil/class_register/lesson.html:38
msgid "Previous lesson" msgid "My next lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:46 #: templates/alsijil/class_register/lesson.html:46
msgid "Next lesson" #: templates/alsijil/class_register/lesson.html:167
#, python-format
msgid "%(period)s. period"
msgstr ""
#: templates/alsijil/class_register/lesson.html:77
#: templates/alsijil/class_register/lesson.html:359
#, python-format
msgid ""
"\n"
" Previous %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:85
#: templates/alsijil/class_register/lesson.html:367
#, python-format
msgid ""
"\n"
" Next %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:107
msgid "Previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:68 #: templates/alsijil/class_register/lesson.html:111
#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/lesson.html:342
msgid "Change history" msgid "Change history"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:82 #: templates/alsijil/class_register/lesson.html:166
msgid "Overview: Previous lesson" msgid "Overview: Previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:89 #: templates/alsijil/class_register/lesson.html:173
msgid "Lesson topic of previous lesson:" msgid "Lesson topic of previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:96 #: templates/alsijil/class_register/lesson.html:180
msgid "Homework for this lesson:" msgid "Homework for this lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:103 #: templates/alsijil/class_register/lesson.html:187
msgid "Group notes for previous lesson:" msgid "Group notes for previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:110 #: templates/alsijil/class_register/lesson.html:194
msgid "Absent persons:" msgid "Absent persons:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:117 #: templates/alsijil/class_register/lesson.html:201
msgid "Late persons:" msgid "Late persons:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:165 #: templates/alsijil/class_register/lesson.html:244
#: templates/alsijil/class_register/person.html:86 #: templates/alsijil/class_register/person.html:110
#: templates/alsijil/partials/persons_with_stats.html:17
#: templates/alsijil/partials/persons_with_stats.html:34
#: templates/alsijil/partials/persons_with_stats.html:91
#: templates/alsijil/print/full_register.html:287 #: templates/alsijil/print/full_register.html:287
msgid "Tardiness" msgid "Tardiness"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:188 #: templates/alsijil/class_register/lesson.html:267
msgid "Tardiness (in m)" msgid "Tardiness (in m)"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:7 #: templates/alsijil/class_register/person.html:8
msgid "Class register: person" msgid "Class register: person"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:11 #: templates/alsijil/class_register/person.html:16
#: templates/alsijil/class_register/students_list.html:10
msgid "Back"
msgstr ""
#: templates/alsijil/class_register/person.html:19
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
...@@ -278,118 +425,131 @@ msgid "" ...@@ -278,118 +425,131 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:19 #: templates/alsijil/class_register/person.html:36
#: templates/alsijil/partials/legend.html:14
msgid "Unexcused absences" msgid "Unexcused absences"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:27 #: templates/alsijil/class_register/person.html:46
#: templates/alsijil/class_register/person.html:44 #: templates/alsijil/class_register/person.html:65
#: templates/alsijil/class_register/person.html:160 #: templates/alsijil/class_register/person.html:190
#: templates/alsijil/class_register/person.html:202 #: templates/alsijil/class_register/person.html:237
msgid "Mark as" msgid "Mark as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:30 #: templates/alsijil/class_register/person.html:49
#: templates/alsijil/class_register/person.html:47 #: templates/alsijil/class_register/person.html:68
#: templates/alsijil/class_register/person.html:163 #: templates/alsijil/class_register/person.html:193
#: templates/alsijil/class_register/person.html:205 #: templates/alsijil/class_register/person.html:199
#: templates/alsijil/class_register/person.html:240
#: templates/alsijil/class_register/person.html:246
msgid "Delete note" msgid "Delete note"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:55 #: templates/alsijil/class_register/person.html:78
msgid "There are unexcused lessons." msgid "There are no unexcused lessons."
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:59 #: templates/alsijil/class_register/person.html:83
msgid "Statistics on absences, tardiness and remarks" msgid "Statistics on absences, tardiness and remarks"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:68 #: templates/alsijil/class_register/person.html:92
#: templates/alsijil/partials/legend.html:10
#: templates/alsijil/partials/persons_with_stats.html:16
#: templates/alsijil/partials/persons_with_stats.html:26
#: templates/alsijil/partials/persons_with_stats.html:69
#: templates/alsijil/print/full_register.html:269 #: templates/alsijil/print/full_register.html:269
msgid "Absences" msgid "Absences"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:72 #: templates/alsijil/class_register/person.html:96
#: templates/alsijil/print/full_register.html:274 #: templates/alsijil/print/full_register.html:274
msgid "thereof" msgid "thereof"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:82 #: templates/alsijil/class_register/person.html:106
#: templates/alsijil/partials/persons_with_stats.html:86
#: templates/alsijil/print/full_register.html:81 #: templates/alsijil/print/full_register.html:81
#: templates/alsijil/print/full_register.html:283 #: templates/alsijil/print/full_register.html:283
msgid "Unexcused" msgid "Unexcused"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:102 #: templates/alsijil/class_register/person.html:127
#: templates/alsijil/print/full_register.html:304 #: templates/alsijil/print/full_register.html:304
msgid "Relevant personal notes" msgid "Relevant personal notes"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:118 #: templates/alsijil/class_register/person.html:143
#, python-format #, python-format
msgid "Week %(week)s" msgid "Week %(week)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:126 #: templates/alsijil/class_register/person.html:152
#: templates/alsijil/class_register/person.html:135 #: templates/alsijil/class_register/person.html:163
msgid "Mark all as" msgid "Mark all as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:187 #: templates/alsijil/class_register/person.html:222
#, python-format #, python-format
msgid "%(late)s' late" msgid "%(late)s' late"
msgstr "" msgstr ""
#: templates/alsijil/class_register/persons.html:22 #: templates/alsijil/class_register/students_list.html:5
msgid "No students available." #: templates/alsijil/class_register/students_list.html:12
msgstr "" #, python-format
msgid "Students list: %(group)s"
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:30 #: templates/alsijil/class_register/week_view.html:23
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:38 #: templates/alsijil/class_register/week_view.html:31
#, python-format #, python-format
msgid "" msgid ""
"CW %(week)s:\n" "CW %(week)s:\n"
" %(instance)s" " %(instance)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:58 #: templates/alsijil/class_register/week_view.html:84
msgid "Period" msgid "Period"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:60 #: templates/alsijil/class_register/week_view.html:86
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:62 #: templates/alsijil/class_register/week_view.html:88
#: templates/alsijil/class_register/week_view.html:163
#: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:169
#: templates/alsijil/print/full_register.html:200 #: templates/alsijil/print/full_register.html:200
msgid "Subject" msgid "Subject"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:63 #: templates/alsijil/class_register/week_view.html:89
#: templates/alsijil/class_register/week_view.html:173
msgid "Teachers" msgid "Teachers"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:120 #: templates/alsijil/class_register/week_view.html:262
msgid "unexcused" msgid "unexcused"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:123 #: templates/alsijil/class_register/week_view.html:265
msgid "Summed up tardiness" msgid "Summed up tardiness"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:152 #: templates/alsijil/class_register/week_view.html:268
#: templates/alsijil/partials/persons_with_stats.html:94
msgid "Count of tardiness"
msgstr ""
#: templates/alsijil/class_register/week_view.html:297
msgid "No lessons available" msgid "No lessons available"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:155 #: templates/alsijil/class_register/week_view.html:300
msgid "" msgid ""
"\n" "\n"
" There are no lessons for the selected group or teacher in this week.\n" " There are no lessons for the selected group or teacher in this week.\n"
...@@ -398,7 +558,7 @@ msgstr "" ...@@ -398,7 +558,7 @@ msgstr ""
#: templates/alsijil/excuse_type/create.html:6 #: templates/alsijil/excuse_type/create.html:6
#: templates/alsijil/excuse_type/create.html:7 #: templates/alsijil/excuse_type/create.html:7
#: templates/alsijil/excuse_type/list.html:16 #: templates/alsijil/excuse_type/list.html:18
msgid "Create excuse type" msgid "Create excuse type"
msgstr "" msgstr ""
...@@ -426,16 +586,33 @@ msgstr "" ...@@ -426,16 +586,33 @@ msgstr ""
msgid "Edit extra mark" msgid "Edit extra mark"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:27
#: templates/alsijil/partials/persons_with_stats.html:44
#: templates/alsijil/print/full_register.html:126 #: templates/alsijil/print/full_register.html:126
msgid "(e)" msgid "(e)"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:33
#: templates/alsijil/partials/persons_with_stats.html:50
#: templates/alsijil/print/full_register.html:130 #: templates/alsijil/print/full_register.html:130
msgid "(u)" msgid "(u)"
msgstr "" msgstr ""
#: templates/alsijil/partials/legend.html:4
msgid "Legend"
msgstr ""
#: templates/alsijil/partials/legend.html:7
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/partials/legend.html:18
msgid "Excused absences"
msgstr ""
#: templates/alsijil/partials/lesson_status_icon.html:6 #: templates/alsijil/partials/lesson_status_icon.html:6
msgid "Data complete" msgid "Data complete"
msgstr "" msgstr ""
...@@ -464,6 +641,27 @@ msgstr "" ...@@ -464,6 +641,27 @@ msgstr ""
msgid "e" msgid "e"
msgstr "" msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:7
msgid "No students available."
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:15
#: templates/alsijil/partials/persons_with_stats.html:25
msgid "Primary group"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:43
msgid "Sum"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:107
msgid "Show more details"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:108
msgid "Details"
msgstr ""
#: templates/alsijil/print/full_register.html:6 #: templates/alsijil/print/full_register.html:6
msgid "Class register:" msgid "Class register:"
msgstr "" msgstr ""
...@@ -511,10 +709,6 @@ msgstr "" ...@@ -511,10 +709,6 @@ msgstr ""
msgid "Abbreviations" msgid "Abbreviations"
msgstr "" msgstr ""
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/print/full_register.html:78 #: templates/alsijil/print/full_register.html:78
msgid "Late" msgid "Late"
msgstr "" msgstr ""
...@@ -629,62 +823,58 @@ msgstr "" ...@@ -629,62 +823,58 @@ msgstr ""
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: views.py:78 #: views.py:69
msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgid "You either selected an invalid lesson or there is currently no lesson in progress."
msgstr "" msgstr ""
#: views.py:96 #: views.py:95
msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgid "You are not allowed to create a lesson documentation for a lesson in the future."
msgstr "" msgstr ""
#: views.py:122 #: views.py:133
msgid "The lesson documentation has been saved." msgid "The lesson documentation has been saved."
msgstr "" msgstr ""
#: views.py:143 #: views.py:156
msgid "The personal notes have been saved." msgid "The personal notes have been saved."
msgstr "" msgstr ""
#: views.py:351 #: views.py:587
msgid "There is no current school term."
msgstr ""
#: views.py:532
msgid "The absences have been marked as excused." msgid "The absences have been marked as excused."
msgstr "" msgstr ""
#: views.py:548 #: views.py:605
msgid "The absence has been marked as excused." msgid "The absence has been marked as excused."
msgstr "" msgstr ""
#: views.py:653 #: views.py:735
msgid "The absence has been saved." msgid "The absence has been saved."
msgstr "" msgstr ""
#: views.py:670 #: views.py:754
msgid "The personal note has been deleted." msgid "The personal note has been deleted."
msgstr "" msgstr ""
#: views.py:691 #: views.py:775
msgid "The extra mark has been created." msgid "The extra mark has been created."
msgstr "" msgstr ""
#: views.py:702 #: views.py:786
msgid "The extra mark has been saved." msgid "The extra mark has been saved."
msgstr "" msgstr ""
#: views.py:712 #: views.py:796
msgid "The extra mark has been deleted." msgid "The extra mark has been deleted."
msgstr "" msgstr ""
#: views.py:732 #: views.py:816
msgid "The excuse type has been created." msgid "The excuse type has been created."
msgstr "" msgstr ""
#: views.py:743 #: views.py:827
msgid "The excuse type has been saved." msgid "The excuse type has been saved."
msgstr "" msgstr ""
#: views.py:753 #: views.py:837
msgid "The excuse type has been deleted." msgid "The excuse type has been deleted."
msgstr "" msgstr ""
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-09-11 11:08+0200\n" "POT-Creation-Date: 2020-11-14 12:23+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -17,11 +17,12 @@ msgstr "" ...@@ -17,11 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: forms.py:26 #: forms.py:29
msgid "Homework for the next lesson" msgid "Homework for the next lesson"
msgstr "" msgstr ""
#: forms.py:51 templates/alsijil/print/full_register.html:199 #: forms.py:54 templates/alsijil/class_register/week_view.html:168
#: templates/alsijil/print/full_register.html:199
msgid "Group" msgid "Group"
msgstr "" msgstr ""
...@@ -30,57 +31,53 @@ msgstr "" ...@@ -30,57 +31,53 @@ msgstr ""
msgid "Teacher" msgid "Teacher"
msgstr "" msgstr ""
#: forms.py:74 #: forms.py:72
msgid "You can't select a group and a teacher both." msgid "You can't select a group and a teacher both."
msgstr "" msgstr ""
#: forms.py:100 #: forms.py:125
msgid "Start date" msgid "Start date"
msgstr "" msgstr ""
#: forms.py:101 #: forms.py:126
msgid "End date" msgid "End date"
msgstr "" msgstr ""
#: forms.py:102 #: forms.py:127
msgid "Start period" msgid "Start period"
msgstr "" msgstr ""
#: forms.py:103 #: forms.py:128
msgid "End period" msgid "End period"
msgstr "" msgstr ""
#: forms.py:105 templates/alsijil/class_register/lesson.html:163 #: forms.py:129 templates/alsijil/class_register/lesson.html:243
msgid "Person" #: templates/alsijil/class_register/person.html:207
msgstr "" #: templates/alsijil/class_register/week_view.html:261
#: forms.py:107 templates/alsijil/class_register/lesson.html:164
#: templates/alsijil/class_register/person.html:172
#: templates/alsijil/class_register/week_view.html:119
#: templates/alsijil/print/full_register.html:75 #: templates/alsijil/print/full_register.html:75
#: templates/alsijil/print/full_register.html:312 #: templates/alsijil/print/full_register.html:312
msgid "Absent" msgid "Absent"
msgstr "" msgstr ""
#: forms.py:108 templates/alsijil/class_register/lesson.html:166 #: forms.py:130 templates/alsijil/class_register/lesson.html:245
#: templates/alsijil/class_register/person.html:74 #: templates/alsijil/class_register/person.html:98
#: templates/alsijil/class_register/person.html:180 #: templates/alsijil/class_register/person.html:215
#: templates/alsijil/partials/mark_as_buttons.html:2 #: templates/alsijil/partials/mark_as_buttons.html:2
#: templates/alsijil/partials/mark_as_buttons.html:3 #: templates/alsijil/partials/mark_as_buttons.html:3
#: templates/alsijil/partials/persons_with_stats.html:74
#: templates/alsijil/print/full_register.html:84 #: templates/alsijil/print/full_register.html:84
#: templates/alsijil/print/full_register.html:275 #: templates/alsijil/print/full_register.html:275
msgid "Excused" msgid "Excused"
msgstr "" msgstr ""
#: forms.py:110 models.py:38 models.py:69 #: forms.py:132 models.py:41 models.py:74
#: templates/alsijil/class_register/lesson.html:167 #: templates/alsijil/class_register/lesson.html:246
#: templates/alsijil/class_register/lesson.html:202 #: templates/alsijil/class_register/lesson.html:281
msgid "Excuse type" msgid "Excuse type"
msgstr "" msgstr ""
#: forms.py:115 templates/alsijil/class_register/lesson.html:170 #: forms.py:137 templates/alsijil/class_register/lesson.html:248
#: templates/alsijil/class_register/lesson.html:223 #: templates/alsijil/class_register/lesson.html:302
#: templates/alsijil/class_register/lesson.html:231
#: templates/alsijil/print/full_register.html:314 #: templates/alsijil/print/full_register.html:314
msgid "Remarks" msgid "Remarks"
msgstr "" msgstr ""
...@@ -93,107 +90,173 @@ msgstr "" ...@@ -93,107 +90,173 @@ msgstr ""
msgid "Current lesson" msgid "Current lesson"
msgstr "" msgstr ""
#: menus.py:22 #: menus.py:27
msgid "Current week" msgid "Current week"
msgstr "" msgstr ""
#: menus.py:28 templates/alsijil/class_register/groups.html:5 #: menus.py:38 templates/alsijil/class_register/groups.html:5
#: templates/alsijil/class_register/groups.html:9 #: templates/alsijil/class_register/groups.html:8
msgid "My groups" msgid "My groups"
msgstr "" msgstr ""
#: menus.py:34 #: menus.py:49
msgid "My overview" msgid "My overview"
msgstr "" msgstr ""
#: menus.py:40 templates/alsijil/class_register/persons.html:7 #: menus.py:60 templates/alsijil/class_register/persons.html:5
#: templates/alsijil/class_register/persons.html:11 #: templates/alsijil/class_register/persons.html:9
msgid "My students" msgid "My students"
msgstr "" msgstr ""
#: menus.py:46 templates/alsijil/absences/register.html:5 #: menus.py:71 models.py:42 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/absences/register.html:6
msgid "Register absence"
msgstr ""
#: menus.py:52 models.py:39 templates/alsijil/excuse_type/list.html:8
#: templates/alsijil/excuse_type/list.html:9 #: templates/alsijil/excuse_type/list.html:9
#: templates/alsijil/partials/legend.html:26
msgid "Excuse types" msgid "Excuse types"
msgstr "" msgstr ""
#: menus.py:58 models.py:75 models.py:210 #: menus.py:82 models.py:80 models.py:215
#: templates/alsijil/class_register/lesson.html:168 #: templates/alsijil/class_register/lesson.html:247
#: templates/alsijil/extra_mark/list.html:8 #: templates/alsijil/extra_mark/list.html:8
#: templates/alsijil/extra_mark/list.html:9 #: templates/alsijil/extra_mark/list.html:9
#: templates/alsijil/partials/legend.html:41
#: templates/alsijil/partials/persons_with_stats.html:19
#: templates/alsijil/print/full_register.html:293 #: templates/alsijil/print/full_register.html:293
msgid "Extra marks" msgid "Extra marks"
msgstr "" msgstr ""
#: models.py:25 models.py:196 #: model_extensions.py:145
msgid "Can view week overview of group class register"
msgstr ""
#: model_extensions.py:149
msgid "Can view lesson overview of group class register"
msgstr ""
#: model_extensions.py:152
msgid "Can view all personal notes of a group"
msgstr ""
#: model_extensions.py:155
msgid "Can edit all personal notes of a group"
msgstr ""
#: model_extensions.py:158
msgid "Can view all lesson documentation of a group"
msgstr ""
#: model_extensions.py:161
msgid "Can edit all lesson documentation of a group"
msgstr ""
#: model_extensions.py:163
msgid "Can view full register of a group"
msgstr ""
#: model_extensions.py:165
msgid "Can register an absence for all members of a group"
msgstr ""
#: model_extensions.py:168
msgid "Can register an absence for a person"
msgstr ""
#: models.py:28 models.py:201
msgid "Short name" msgid "Short name"
msgstr "" msgstr ""
#: models.py:27 models.py:198 #: models.py:30 models.py:203 templates/alsijil/class_register/groups.html:20
#: templates/alsijil/partials/persons_with_stats.html:14
#: templates/alsijil/partials/persons_with_stats.html:24
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: models.py:55 models.py:126 #: models.py:60 models.py:131
msgid "Year" msgid "Year"
msgstr "" msgstr ""
#: models.py:106 #: models.py:111
msgid "Personal note" msgid "Personal note"
msgstr "" msgstr ""
#: models.py:107 templates/alsijil/class_register/lesson.html:64 #: models.py:112 templates/alsijil/class_register/lesson.html:101
#: templates/alsijil/class_register/lesson.html:156 #: templates/alsijil/class_register/lesson.html:233
#: templates/alsijil/class_register/week_view.html:112 #: templates/alsijil/class_register/week_view.html:68
#: templates/alsijil/class_register/week_view.html:242
msgid "Personal notes" msgid "Personal notes"
msgstr "" msgstr ""
#: models.py:132 templates/alsijil/class_register/week_view.html:64 #: models.py:137 templates/alsijil/class_register/lesson.html:129
#: templates/alsijil/class_register/week_view.html:90
#: templates/alsijil/class_register/week_view.html:177
#: templates/alsijil/print/full_register.html:371 #: templates/alsijil/print/full_register.html:371
msgid "Lesson topic" msgid "Lesson topic"
msgstr "" msgstr ""
#: models.py:133 templates/alsijil/print/full_register.html:372 #: models.py:138 templates/alsijil/class_register/lesson.html:137
#: templates/alsijil/class_register/week_view.html:91
#: templates/alsijil/class_register/week_view.html:183
#: templates/alsijil/class_register/week_view.html:216
#: templates/alsijil/print/full_register.html:372
msgid "Homework" msgid "Homework"
msgstr "" msgstr ""
#: models.py:135 #: models.py:140 templates/alsijil/class_register/lesson.html:145
#: templates/alsijil/class_register/week_view.html:92
#: templates/alsijil/class_register/week_view.html:189
#: templates/alsijil/class_register/week_view.html:222
msgid "Group note" msgid "Group note"
msgstr "" msgstr ""
#: models.py:178 templates/alsijil/class_register/lesson.html:60 #: models.py:183 templates/alsijil/class_register/lesson.html:97
#: templates/alsijil/class_register/lesson.html:143 #: templates/alsijil/class_register/lesson.html:120
msgid "Lesson documentation" msgid "Lesson documentation"
msgstr "" msgstr ""
#: models.py:179 #: models.py:184 templates/alsijil/class_register/week_view.html:67
msgid "Lesson documentations" msgid "Lesson documentations"
msgstr "" msgstr ""
#: models.py:209 #: models.py:214
msgid "Extra mark" msgid "Extra mark"
msgstr "" msgstr ""
#: models.py:222
msgid "Can view week overview"
msgstr ""
#: models.py:223
msgid "Can register absence"
msgstr ""
#: models.py:224
msgid "Can list all personal note filters"
msgstr ""
#: preferences.py:16 #: preferences.py:16
msgid "Block adding personal notes for cancelled lessons" msgid "Block adding personal notes for cancelled lessons"
msgstr "" msgstr ""
#: preferences.py:25 #: preferences.py:24
msgid "Allow users to view their own personal notes"
msgstr ""
#: preferences.py:33
msgid "Allow primary group owners to register future absences for students in their groups"
msgstr ""
#: preferences.py:43
msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods" msgid "Carry over data from first lesson period to the following lesson periods in lessons over multiple periods"
msgstr "" msgstr ""
#: preferences.py:28 #: preferences.py:46
msgid "This will carry over data only if the data in the following periods are empty." msgid "This will carry over data only if the data in the following periods are empty."
msgstr "" msgstr ""
#: preferences.py:38 #: preferences.py:56
msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period" msgid "Allow teachers to open lesson periods on the same day and not just at the beginning of the period"
msgstr "" msgstr ""
#: preferences.py:41 #: preferences.py:59
msgid "Lessons in the past are not affected by this setting, you can open them whenever you want." msgid "Lessons in the past are not affected by this setting, you can open them whenever you want."
msgstr "" msgstr ""
...@@ -201,76 +264,160 @@ msgstr "" ...@@ -201,76 +264,160 @@ msgstr ""
msgid "Edit" msgid "Edit"
msgstr "" msgstr ""
#: tables.py:22 tables.py:42 #: tables.py:22 tables.py:42 templates/alsijil/class_register/person.html:249
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: templates/alsijil/class_register/groups.html:20 #: templates/alsijil/absences/register.html:5
#: templates/alsijil/absences/register.html:6
#: templates/alsijil/class_register/person.html:30
#: templates/alsijil/class_register/week_view.html:256
#: templates/alsijil/partials/persons_with_stats.html:115
msgid "Register absence"
msgstr ""
#: templates/alsijil/absences/register.html:9
#: templates/alsijil/class_register/lesson.html:242
msgid "Person"
msgstr ""
#: templates/alsijil/class_register/groups.html:21
msgid "Students"
msgstr ""
#: templates/alsijil/class_register/groups.html:35
#: templates/alsijil/class_register/groups.html:69
#: templates/alsijil/class_register/week_view.html:40
#: templates/alsijil/class_register/week_view.html:51
msgid "Students list"
msgstr ""
#: templates/alsijil/class_register/groups.html:39
#: templates/alsijil/class_register/groups.html:75
#: templates/alsijil/class_register/persons.html:27
#: templates/alsijil/class_register/persons.html:43
#: templates/alsijil/class_register/students_list.html:16
#: templates/alsijil/class_register/students_list.html:35
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr ""
#: templates/alsijil/class_register/groups.html:44
#: templates/alsijil/class_register/groups.html:82
#: templates/alsijil/class_register/persons.html:31
#: templates/alsijil/class_register/persons.html:50
#: templates/alsijil/class_register/students_list.html:20
#: templates/alsijil/class_register/students_list.html:42
#: templates/alsijil/class_register/week_view.html:44
#: templates/alsijil/class_register/week_view.html:58
msgid "Generate printout"
msgstr ""
#: templates/alsijil/class_register/groups.html:52
#: templates/alsijil/class_register/groups.html:88
msgid "No groups available." msgid "No groups available."
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:6 #: templates/alsijil/class_register/groups.html:64
msgid "students"
msgstr ""
#: templates/alsijil/class_register/lesson.html:5
msgid "Lesson" msgid "Lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:14 #: templates/alsijil/class_register/lesson.html:20
#: templates/alsijil/class_register/lesson.html:83 msgid "Back to week view"
#, python-format msgstr ""
msgid "%(period)s. period"
#: templates/alsijil/class_register/lesson.html:29
msgid "My previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:38 #: templates/alsijil/class_register/lesson.html:38
msgid "Previous lesson" msgid "My next lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:46 #: templates/alsijil/class_register/lesson.html:46
msgid "Next lesson" #: templates/alsijil/class_register/lesson.html:167
#, python-format
msgid "%(period)s. period"
msgstr ""
#: templates/alsijil/class_register/lesson.html:77
#: templates/alsijil/class_register/lesson.html:359
#, python-format
msgid ""
"\n"
" Previous %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:85
#: templates/alsijil/class_register/lesson.html:367
#, python-format
msgid ""
"\n"
" Next %(subject)s lesson\n"
" "
msgstr ""
#: templates/alsijil/class_register/lesson.html:107
msgid "Previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:68 #: templates/alsijil/class_register/lesson.html:111
#: templates/alsijil/class_register/lesson.html:249 #: templates/alsijil/class_register/lesson.html:342
msgid "Change history" msgid "Change history"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:82 #: templates/alsijil/class_register/lesson.html:166
msgid "Overview: Previous lesson" msgid "Overview: Previous lesson"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:89 #: templates/alsijil/class_register/lesson.html:173
msgid "Lesson topic of previous lesson:" msgid "Lesson topic of previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:96 #: templates/alsijil/class_register/lesson.html:180
msgid "Homework for this lesson:" msgid "Homework for this lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:103 #: templates/alsijil/class_register/lesson.html:187
msgid "Group notes for previous lesson:" msgid "Group notes for previous lesson:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:110 #: templates/alsijil/class_register/lesson.html:194
msgid "Absent persons:" msgid "Absent persons:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:117 #: templates/alsijil/class_register/lesson.html:201
msgid "Late persons:" msgid "Late persons:"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:165 #: templates/alsijil/class_register/lesson.html:244
#: templates/alsijil/class_register/person.html:86 #: templates/alsijil/class_register/person.html:110
#: templates/alsijil/partials/persons_with_stats.html:17
#: templates/alsijil/partials/persons_with_stats.html:34
#: templates/alsijil/partials/persons_with_stats.html:91
#: templates/alsijil/print/full_register.html:287 #: templates/alsijil/print/full_register.html:287
msgid "Tardiness" msgid "Tardiness"
msgstr "" msgstr ""
#: templates/alsijil/class_register/lesson.html:188 #: templates/alsijil/class_register/lesson.html:267
msgid "Tardiness (in m)" msgid "Tardiness (in m)"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:7 #: templates/alsijil/class_register/person.html:8
msgid "Class register: person" msgid "Class register: person"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:11 #: templates/alsijil/class_register/person.html:16
#: templates/alsijil/class_register/students_list.html:10
msgid "Back"
msgstr ""
#: templates/alsijil/class_register/person.html:19
#, python-format #, python-format
msgid "" msgid ""
"\n" "\n"
...@@ -278,118 +425,131 @@ msgid "" ...@@ -278,118 +425,131 @@ msgid ""
" " " "
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:19 #: templates/alsijil/class_register/person.html:36
#: templates/alsijil/partials/legend.html:14
msgid "Unexcused absences" msgid "Unexcused absences"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:27 #: templates/alsijil/class_register/person.html:46
#: templates/alsijil/class_register/person.html:44 #: templates/alsijil/class_register/person.html:65
#: templates/alsijil/class_register/person.html:160 #: templates/alsijil/class_register/person.html:190
#: templates/alsijil/class_register/person.html:202 #: templates/alsijil/class_register/person.html:237
msgid "Mark as" msgid "Mark as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:30 #: templates/alsijil/class_register/person.html:49
#: templates/alsijil/class_register/person.html:47 #: templates/alsijil/class_register/person.html:68
#: templates/alsijil/class_register/person.html:163 #: templates/alsijil/class_register/person.html:193
#: templates/alsijil/class_register/person.html:205 #: templates/alsijil/class_register/person.html:199
#: templates/alsijil/class_register/person.html:240
#: templates/alsijil/class_register/person.html:246
msgid "Delete note" msgid "Delete note"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:55 #: templates/alsijil/class_register/person.html:78
msgid "There are unexcused lessons." msgid "There are no unexcused lessons."
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:59 #: templates/alsijil/class_register/person.html:83
msgid "Statistics on absences, tardiness and remarks" msgid "Statistics on absences, tardiness and remarks"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:68 #: templates/alsijil/class_register/person.html:92
#: templates/alsijil/partials/legend.html:10
#: templates/alsijil/partials/persons_with_stats.html:16
#: templates/alsijil/partials/persons_with_stats.html:26
#: templates/alsijil/partials/persons_with_stats.html:69
#: templates/alsijil/print/full_register.html:269 #: templates/alsijil/print/full_register.html:269
msgid "Absences" msgid "Absences"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:72 #: templates/alsijil/class_register/person.html:96
#: templates/alsijil/print/full_register.html:274 #: templates/alsijil/print/full_register.html:274
msgid "thereof" msgid "thereof"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:82 #: templates/alsijil/class_register/person.html:106
#: templates/alsijil/partials/persons_with_stats.html:86
#: templates/alsijil/print/full_register.html:81 #: templates/alsijil/print/full_register.html:81
#: templates/alsijil/print/full_register.html:283 #: templates/alsijil/print/full_register.html:283
msgid "Unexcused" msgid "Unexcused"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:102 #: templates/alsijil/class_register/person.html:127
#: templates/alsijil/print/full_register.html:304 #: templates/alsijil/print/full_register.html:304
msgid "Relevant personal notes" msgid "Relevant personal notes"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:118 #: templates/alsijil/class_register/person.html:143
#, python-format #, python-format
msgid "Week %(week)s" msgid "Week %(week)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:126 #: templates/alsijil/class_register/person.html:152
#: templates/alsijil/class_register/person.html:135 #: templates/alsijil/class_register/person.html:163
msgid "Mark all as" msgid "Mark all as"
msgstr "" msgstr ""
#: templates/alsijil/class_register/person.html:187 #: templates/alsijil/class_register/person.html:222
#, python-format #, python-format
msgid "%(late)s' late" msgid "%(late)s' late"
msgstr "" msgstr ""
#: templates/alsijil/class_register/persons.html:22 #: templates/alsijil/class_register/students_list.html:5
msgid "No students available." #: templates/alsijil/class_register/students_list.html:12
msgstr "" #, python-format
msgid "Students list: %(group)s"
#: templates/alsijil/class_register/week_view.html:6
msgid "Week view"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:30 #: templates/alsijil/class_register/week_view.html:23
msgid "Select" msgid "Select"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:38 #: templates/alsijil/class_register/week_view.html:31
#, python-format #, python-format
msgid "" msgid ""
"CW %(week)s:\n" "CW %(week)s:\n"
" %(instance)s" " %(instance)s"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:58 #: templates/alsijil/class_register/week_view.html:84
msgid "Period" msgid "Period"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:60 #: templates/alsijil/class_register/week_view.html:86
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:62 #: templates/alsijil/class_register/week_view.html:88
#: templates/alsijil/class_register/week_view.html:163
#: templates/alsijil/print/full_register.html:169 #: templates/alsijil/print/full_register.html:169
#: templates/alsijil/print/full_register.html:200 #: templates/alsijil/print/full_register.html:200
msgid "Subject" msgid "Subject"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:63 #: templates/alsijil/class_register/week_view.html:89
#: templates/alsijil/class_register/week_view.html:173
msgid "Teachers" msgid "Teachers"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:120 #: templates/alsijil/class_register/week_view.html:262
msgid "unexcused" msgid "unexcused"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:123 #: templates/alsijil/class_register/week_view.html:265
msgid "Summed up tardiness" msgid "Summed up tardiness"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:152 #: templates/alsijil/class_register/week_view.html:268
#: templates/alsijil/partials/persons_with_stats.html:94
msgid "Count of tardiness"
msgstr ""
#: templates/alsijil/class_register/week_view.html:297
msgid "No lessons available" msgid "No lessons available"
msgstr "" msgstr ""
#: templates/alsijil/class_register/week_view.html:155 #: templates/alsijil/class_register/week_view.html:300
msgid "" msgid ""
"\n" "\n"
" There are no lessons for the selected group or teacher in this week.\n" " There are no lessons for the selected group or teacher in this week.\n"
...@@ -398,7 +558,7 @@ msgstr "" ...@@ -398,7 +558,7 @@ msgstr ""
#: templates/alsijil/excuse_type/create.html:6 #: templates/alsijil/excuse_type/create.html:6
#: templates/alsijil/excuse_type/create.html:7 #: templates/alsijil/excuse_type/create.html:7
#: templates/alsijil/excuse_type/list.html:16 #: templates/alsijil/excuse_type/list.html:18
msgid "Create excuse type" msgid "Create excuse type"
msgstr "" msgstr ""
...@@ -426,16 +586,33 @@ msgstr "" ...@@ -426,16 +586,33 @@ msgstr ""
msgid "Edit extra mark" msgid "Edit extra mark"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:27
#: templates/alsijil/partials/persons_with_stats.html:44
#: templates/alsijil/print/full_register.html:126 #: templates/alsijil/print/full_register.html:126
msgid "(e)" msgid "(e)"
msgstr "" msgstr ""
#: templates/alsijil/partials/absences.html:4 #: templates/alsijil/partials/absences.html:6
#: templates/alsijil/partials/persons_with_stats.html:33
#: templates/alsijil/partials/persons_with_stats.html:50
#: templates/alsijil/print/full_register.html:130 #: templates/alsijil/print/full_register.html:130
msgid "(u)" msgid "(u)"
msgstr "" msgstr ""
#: templates/alsijil/partials/legend.html:4
msgid "Legend"
msgstr ""
#: templates/alsijil/partials/legend.html:7
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/partials/legend.html:18
msgid "Excused absences"
msgstr ""
#: templates/alsijil/partials/lesson_status_icon.html:6 #: templates/alsijil/partials/lesson_status_icon.html:6
msgid "Data complete" msgid "Data complete"
msgstr "" msgstr ""
...@@ -464,6 +641,27 @@ msgstr "" ...@@ -464,6 +641,27 @@ msgstr ""
msgid "e" msgid "e"
msgstr "" msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:7
msgid "No students available."
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:15
#: templates/alsijil/partials/persons_with_stats.html:25
msgid "Primary group"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:43
msgid "Sum"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:107
msgid "Show more details"
msgstr ""
#: templates/alsijil/partials/persons_with_stats.html:108
msgid "Details"
msgstr ""
#: templates/alsijil/print/full_register.html:6 #: templates/alsijil/print/full_register.html:6
msgid "Class register:" msgid "Class register:"
msgstr "" msgstr ""
...@@ -511,10 +709,6 @@ msgstr "" ...@@ -511,10 +709,6 @@ msgstr ""
msgid "Abbreviations" msgid "Abbreviations"
msgstr "" msgstr ""
#: templates/alsijil/print/full_register.html:71
msgid "General"
msgstr ""
#: templates/alsijil/print/full_register.html:78 #: templates/alsijil/print/full_register.html:78
msgid "Late" msgid "Late"
msgstr "" msgstr ""
...@@ -629,62 +823,58 @@ msgstr "" ...@@ -629,62 +823,58 @@ msgstr ""
msgid "Notes" msgid "Notes"
msgstr "" msgstr ""
#: views.py:78 #: views.py:69
msgid "You either selected an invalid lesson or there is currently no lesson in progress." msgid "You either selected an invalid lesson or there is currently no lesson in progress."
msgstr "" msgstr ""
#: views.py:96 #: views.py:95
msgid "You are not allowed to create a lesson documentation for a lesson in the future." msgid "You are not allowed to create a lesson documentation for a lesson in the future."
msgstr "" msgstr ""
#: views.py:122 #: views.py:133
msgid "The lesson documentation has been saved." msgid "The lesson documentation has been saved."
msgstr "" msgstr ""
#: views.py:143 #: views.py:156
msgid "The personal notes have been saved." msgid "The personal notes have been saved."
msgstr "" msgstr ""
#: views.py:351 #: views.py:587
msgid "There is no current school term."
msgstr ""
#: views.py:532
msgid "The absences have been marked as excused." msgid "The absences have been marked as excused."
msgstr "" msgstr ""
#: views.py:548 #: views.py:605
msgid "The absence has been marked as excused." msgid "The absence has been marked as excused."
msgstr "" msgstr ""
#: views.py:653 #: views.py:735
msgid "The absence has been saved." msgid "The absence has been saved."
msgstr "" msgstr ""
#: views.py:670 #: views.py:754
msgid "The personal note has been deleted." msgid "The personal note has been deleted."
msgstr "" msgstr ""
#: views.py:691 #: views.py:775
msgid "The extra mark has been created." msgid "The extra mark has been created."
msgstr "" msgstr ""
#: views.py:702 #: views.py:786
msgid "The extra mark has been saved." msgid "The extra mark has been saved."
msgstr "" msgstr ""
#: views.py:712 #: views.py:796
msgid "The extra mark has been deleted." msgid "The extra mark has been deleted."
msgstr "" msgstr ""
#: views.py:732 #: views.py:816
msgid "The excuse type has been created." msgid "The excuse type has been created."
msgstr "" msgstr ""
#: views.py:743 #: views.py:827
msgid "The excuse type has been saved." msgid "The excuse type has been saved."
msgstr "" msgstr ""
#: views.py:753 #: views.py:837
msgid "The excuse type has been deleted." msgid "The excuse type has been deleted."
msgstr "" msgstr ""
from aleksis.core.managers import CurrentSiteManagerWithoutMigrations
class PersonalNoteManager(CurrentSiteManagerWithoutMigrations):
"""Manager adding specific methods to personal notes."""
def get_queryset(self):
"""Ensure all related lesson and person data are loaded as well."""
return (
super()
.get_queryset()
.select_related(
"person",
"excuse_type",
"lesson_period",
"lesson_period__lesson",
"lesson_period__lesson__subject",
"lesson_period__period",
"lesson_period__lesson__validity",
"lesson_period__lesson__validity__school_term",
)
.prefetch_related("extra_marks")
)
...@@ -16,49 +16,78 @@ MENUS = { ...@@ -16,49 +16,78 @@ MENUS = {
"name": _("Current lesson"), "name": _("Current lesson"),
"url": "lesson", "url": "lesson",
"icon": "alarm", "icon": "alarm",
"validators": ["menu_generator.validators.is_authenticated"], "validators": [
(
"aleksis.core.util.predicates.permission_validator",
"alsijil.view_lesson_menu",
),
],
}, },
{ {
"name": _("Current week"), "name": _("Current week"),
"url": "week_view", "url": "week_view",
"icon": "view_week", "icon": "view_week",
"validators": ["menu_generator.validators.is_authenticated"], "validators": [
(
"aleksis.core.util.predicates.permission_validator",
"alsijil.view_week_menu",
),
],
}, },
{ {
"name": _("My groups"), "name": _("My groups"),
"url": "my_groups", "url": "my_groups",
"icon": "people", "icon": "people",
"validators": ["menu_generator.validators.is_authenticated"], "validators": [
(
"aleksis.core.util.predicates.permission_validator",
"alsijil.view_my_groups",
),
],
}, },
{ {
"name": _("My overview"), "name": _("My overview"),
"url": "overview_me", "url": "overview_me",
"icon": "insert_chart", "icon": "insert_chart",
"validators": ["menu_generator.validators.is_authenticated"], "validators": [
(
"aleksis.core.util.predicates.permission_validator",
"alsijil.view_person_overview_menu",
),
],
}, },
{ {
"name": _("My students"), "name": _("My students"),
"url": "my_students", "url": "my_students",
"icon": "people", "icon": "people",
"validators": ["menu_generator.validators.is_authenticated"], "validators": [
}, (
{ "aleksis.core.util.predicates.permission_validator",
"name": _("Register absence"), "alsijil.view_my_students",
"url": "register_absence", ),
"icon": "rate_review", ],
"validators": ["menu_generator.validators.is_superuser"],
}, },
{ {
"name": _("Excuse types"), "name": _("Excuse types"),
"url": "excuse_types", "url": "excuse_types",
"icon": "label", "icon": "label",
"validators": ["menu_generator.validators.is_superuser"], "validators": [
(
"aleksis.core.util.predicates.permission_validator",
"alsijil.view_excusetypes",
),
],
}, },
{ {
"name": _("Extra marks"), "name": _("Extra marks"),
"url": "extra_marks", "url": "extra_marks",
"icon": "label", "icon": "label",
"validators": ["menu_generator.validators.is_superuser"], "validators": [
(
"aleksis.core.util.predicates.permission_validator",
"alsijil.view_extramarks",
),
],
}, },
], ],
} }
......
from datetime import date from datetime import date
from typing import Dict, Optional, Union from typing import Dict, Iterable, Iterator, Optional, Union
from django.db.models import Exists, OuterRef, QuerySet from django.db.models import Exists, OuterRef, Q, QuerySet
from django.db.models.aggregates import Count, Sum
from django.utils.translation import gettext as _
import reversion import reversion
from calendarweek import CalendarWeek from calendarweek import CalendarWeek
...@@ -53,16 +55,20 @@ def mark_absent( ...@@ -53,16 +55,20 @@ def mark_absent(
continue continue
with reversion.create_revision(): with reversion.create_revision():
personal_note, created = PersonalNote.objects.update_or_create( personal_note, created = (
person=self, PersonalNote.objects.select_related(None)
lesson_period=lesson_period, .prefetch_related(None)
week=wanted_week.week, .update_or_create(
year=wanted_week.year, person=self,
defaults={ lesson_period=lesson_period,
"absent": absent, week=wanted_week.week,
"excused": excused, year=wanted_week.year,
"excuse_type": excuse_type, defaults={
}, "absent": absent,
"excused": excused,
"excuse_type": excuse_type,
},
)
) )
personal_note.groups_of_person.set(self.member_of.all()) personal_note.groups_of_person.set(self.member_of.all())
...@@ -75,7 +81,7 @@ def mark_absent( ...@@ -75,7 +81,7 @@ def mark_absent(
@LessonPeriod.method @LessonPeriod.method
def get_personal_notes(self, wanted_week: CalendarWeek): def get_personal_notes(self, persons: QuerySet, wanted_week: CalendarWeek):
"""Get all personal notes for that lesson in a specified week. """Get all personal notes for that lesson in a specified week.
Returns all linked `PersonalNote` objects, filtered by the given weeek, Returns all linked `PersonalNote` objects, filtered by the given weeek,
...@@ -88,7 +94,7 @@ def get_personal_notes(self, wanted_week: CalendarWeek): ...@@ -88,7 +94,7 @@ def get_personal_notes(self, wanted_week: CalendarWeek):
- Dominik George <dominik.george@teckids.org> - Dominik George <dominik.george@teckids.org>
""" """
# Find all persons in the associated groups that do not yet have a personal note for this lesson # Find all persons in the associated groups that do not yet have a personal note for this lesson
missing_persons = Person.objects.annotate( missing_persons = persons.annotate(
no_personal_notes=~Exists( no_personal_notes=~Exists(
PersonalNote.objects.filter( PersonalNote.objects.filter(
week=wanted_week.week, week=wanted_week.week,
...@@ -118,11 +124,51 @@ def get_personal_notes(self, wanted_week: CalendarWeek): ...@@ -118,11 +124,51 @@ def get_personal_notes(self, wanted_week: CalendarWeek):
for personal_note in new_personal_notes: for personal_note in new_personal_notes:
personal_note.groups_of_person.set(personal_note.person.member_of.all()) personal_note.groups_of_person.set(personal_note.person.member_of.all())
return PersonalNote.objects.select_related("person").filter( return (
lesson_period=self, week=wanted_week.week, year=wanted_week.year PersonalNote.objects.filter(
lesson_period=self,
week=wanted_week.week,
year=wanted_week.year,
person__in=persons,
)
.select_related(None)
.prefetch_related(None)
.select_related("person", "excuse_type")
.prefetch_related("extra_marks")
) )
# Dynamically add extra permissions to Group and Person models in core
# Note: requires migrate afterwards
Group.add_permission(
"view_week_class_register_group",
_("Can view week overview of group class register"),
)
Group.add_permission(
"view_lesson_class_register_group",
_("Can view lesson overview of group class register"),
)
Group.add_permission(
"view_personalnote_group", _("Can view all personal notes of a group")
)
Group.add_permission(
"edit_personalnote_group", _("Can edit all personal notes of a group")
)
Group.add_permission(
"view_lessondocumentation_group", _("Can view all lesson documentation of a group")
)
Group.add_permission(
"edit_lessondocumentation_group", _("Can edit all lesson documentation of a group")
)
Group.add_permission("view_full_register_group", _("Can view full register of a group"))
Group.add_permission(
"register_absence_group", _("Can register an absence for all members of a group")
)
Person.add_permission(
"register_absence_person", _("Can register an absence for a person")
)
@LessonPeriod.method @LessonPeriod.method
def get_lesson_documentation( def get_lesson_documentation(
self, week: Optional[CalendarWeek] = None self, week: Optional[CalendarWeek] = None
...@@ -130,11 +176,14 @@ def get_lesson_documentation( ...@@ -130,11 +176,14 @@ def get_lesson_documentation(
"""Get lesson documentation object for this lesson.""" """Get lesson documentation object for this lesson."""
if not week: if not week:
week = self.week week = self.week
# Use all to make effect of prefetched data
doc_filter = filter(
lambda d: d.week == week.week and d.year == week.year,
self.documentations.all(),
)
try: try:
return LessonDocumentation.objects.get( return next(doc_filter)
lesson_period=self, week=week.week, year=week.year except StopIteration:
)
except LessonDocumentation.DoesNotExist:
return None return None
...@@ -152,11 +201,15 @@ def get_or_create_lesson_documentation( ...@@ -152,11 +201,15 @@ def get_or_create_lesson_documentation(
@LessonPeriod.method @LessonPeriod.method
def get_absences(self, week: Optional[CalendarWeek] = None) -> QuerySet: def get_absences(self, week: Optional[CalendarWeek] = None) -> Iterator:
"""Get all personal notes of absent persons for this lesson.""" """Get all personal notes of absent persons for this lesson."""
if not week: if not week:
week = self.week week = self.week
return self.personal_notes.filter(week=week.week, year=week.year, absent=True)
return filter(
lambda p: p.week == week.week and p.year == week.year and p.absent,
self.personal_notes.all(),
)
@LessonPeriod.method @LessonPeriod.method
...@@ -204,3 +257,136 @@ def get_extra_marks( ...@@ -204,3 +257,136 @@ def get_extra_marks(
stats[extra_mark] = qs stats[extra_mark] = qs
return stats return stats
@Group.class_method
def get_groups_with_lessons(cls: Group):
"""Get all groups which have related lessons or child groups with related lessons."""
group_pks = (
cls.objects.for_current_school_term_or_all()
.annotate(lessons_count=Count("lessons"))
.filter(lessons_count__gt=0)
.values_list("pk", flat=True)
)
groups = cls.objects.filter(
Q(child_groups__pk__in=group_pks) | Q(pk__in=group_pks)
).distinct()
return groups
@Person.method
def get_owner_groups_with_lessons(self: Person):
"""Get all groups the person is an owner of and which have related lessons.
Groups which have child groups with related lessons are also included.
"""
return Group.get_groups_with_lessons().filter(owners=self).distinct()
@Group.method
def generate_person_list_with_class_register_statistics(
self: Group, persons: Optional[Iterable] = None
) -> QuerySet:
"""Get with class register statistics annotated list of all members."""
persons = persons or self.members.all()
persons = persons.filter(
personal_notes__groups_of_person=self,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
).annotate(
absences_count=Count(
"personal_notes__absent",
filter=Q(
personal_notes__absent=True,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
excused=Count(
"personal_notes__absent",
filter=Q(
personal_notes__absent=True,
personal_notes__excused=True,
personal_notes__excuse_type__isnull=True,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
unexcused=Count(
"personal_notes__absent",
filter=Q(
personal_notes__absent=True,
personal_notes__excused=False,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
tardiness=Sum(
"personal_notes__late",
filter=(
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
tardiness_count=Count(
"personal_notes",
filter=~Q(personal_notes__late=0)
& Q(
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
),
),
)
for extra_mark in ExtraMark.objects.all():
persons = persons.annotate(
**{
extra_mark.count_label: Count(
"personal_notes",
filter=Q(
personal_notes__extra_marks=extra_mark,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(
personal_notes__lesson_period__lesson__groups__parent_groups=self
)
),
)
}
)
for excuse_type in ExcuseType.objects.all():
persons = persons.annotate(
**{
excuse_type.count_label: Count(
"personal_notes__absent",
filter=Q(
personal_notes__absent=True,
personal_notes__excuse_type=excuse_type,
personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
)
& (
Q(personal_notes__lesson_period__lesson__groups=self)
| Q(
personal_notes__lesson_period__lesson__groups__parent_groups=self
)
),
)
}
)
return persons
from django.db import models from django.db import models
from django.utils.formats import date_format from django.utils.formats import date_format
from django.utils.functional import classproperty
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from cache_memoize import cache_memoize
from calendarweek import CalendarWeek from calendarweek import CalendarWeek
from aleksis.apps.alsijil.managers import PersonalNoteManager
from aleksis.apps.chronos.mixins import WeekRelatedMixin from aleksis.apps.chronos.mixins import WeekRelatedMixin
from aleksis.apps.chronos.models import LessonPeriod from aleksis.apps.chronos.models import LessonPeriod
from aleksis.apps.chronos.util.date import get_current_year from aleksis.apps.chronos.util.date import get_current_year
...@@ -46,6 +49,8 @@ class PersonalNote(ExtensibleModel, WeekRelatedMixin): ...@@ -46,6 +49,8 @@ class PersonalNote(ExtensibleModel, WeekRelatedMixin):
and remarks about a student in a single lesson period. and remarks about a student in a single lesson period.
""" """
objects = PersonalNoteManager()
person = models.ForeignKey( person = models.ForeignKey(
"core.Person", models.CASCADE, related_name="personal_notes" "core.Person", models.CASCADE, related_name="personal_notes"
) )
...@@ -208,3 +213,13 @@ class ExtraMark(ExtensibleModel): ...@@ -208,3 +213,13 @@ class ExtraMark(ExtensibleModel):
ordering = ["short_name"] ordering = ["short_name"]
verbose_name = _("Extra mark") verbose_name = _("Extra mark")
verbose_name_plural = _("Extra marks") verbose_name_plural = _("Extra marks")
class AlsijilGlobalPermissions(ExtensibleModel):
class Meta:
managed = False
permissions = (
("view_week", _("Can view week overview")),
("register_absence", _("Can register absence")),
("list_personal_note_filters", _("Can list all personal note filters")),
)
...@@ -16,6 +16,24 @@ class BlockPersonalNotesForCancelled(BooleanPreference): ...@@ -16,6 +16,24 @@ class BlockPersonalNotesForCancelled(BooleanPreference):
verbose_name = _("Block adding personal notes for cancelled lessons") verbose_name = _("Block adding personal notes for cancelled lessons")
@site_preferences_registry.register
class ViewOwnPersonalNotes(BooleanPreference):
section = alsijil
name = "view_own_personal_notes"
default = True
verbose_name = _("Allow users to view their own personal notes")
@site_preferences_registry.register
class RegisterAbsenceAsPrimaryGroupOwner(BooleanPreference):
section = alsijil
name = "register_absence_as_primary_group_owner"
default = True
verbose_name = _(
"Allow primary group owners to register future absences for students in their groups"
)
@site_preferences_registry.register @site_preferences_registry.register
class CarryOverDataToNextPeriods(BooleanPreference): class CarryOverDataToNextPeriods(BooleanPreference):
section = alsijil section = alsijil
......
from rules import add_perm
from aleksis.core.util.predicates import (
has_global_perm,
has_object_perm,
has_person,
is_current_person,
is_site_preference_set,
)
from .util.predicates import (
has_any_object_absence,
has_lesson_group_object_perm,
has_person_group_object_perm,
has_personal_note_group_perm,
is_group_member,
is_group_owner,
is_lesson_parent_group_owner,
is_lesson_participant,
is_lesson_teacher,
is_none,
is_own_personal_note,
is_person_group_owner,
is_person_primary_group_owner,
is_personal_note_lesson_parent_group_owner,
is_personal_note_lesson_teacher,
is_teacher,
)
# View lesson
view_lesson_predicate = has_person & (
is_none # View is opened as "Current lesson"
| is_lesson_teacher
| is_lesson_participant
| is_lesson_parent_group_owner
| has_global_perm("alsijil.view_lesson")
| has_lesson_group_object_perm("core.view_week_class_register_group")
)
add_perm("alsijil.view_lesson", view_lesson_predicate)
# View lesson in menu
add_perm("alsijil.view_lesson_menu", has_person)
# View lesson personal notes
view_lesson_personal_notes_predicate = view_lesson_predicate & (
~is_lesson_participant
| is_lesson_teacher
| has_global_perm("alsijil.view_personalnote")
| has_lesson_group_object_perm("core.view_personalnote_group")
)
add_perm("alsijil.view_lesson_personalnote", view_lesson_personal_notes_predicate)
# Edit personal note
edit_lesson_personal_note_predicate = view_lesson_personal_notes_predicate & (
is_lesson_teacher
| has_global_perm("alsijil.change_personalnote")
| has_lesson_group_object_perm("core.edit_personalnote_group")
)
add_perm("alsijil.edit_lesson_personalnote", edit_lesson_personal_note_predicate)
# View personal note
view_personal_note_predicate = has_person & (
(
is_own_personal_note
& is_site_preference_set("alsijil", "view_own_personal_notes")
)
| is_personal_note_lesson_teacher
| is_personal_note_lesson_parent_group_owner
| has_global_perm("alsijil.view_personalnote")
| has_personal_note_group_perm("core.view_personalnote_group")
)
add_perm("alsijil.view_personalnote", view_personal_note_predicate)
# Edit personal note
edit_personal_note_predicate = view_personal_note_predicate & (
~is_own_personal_note
| has_global_perm("alsijil.view_personalnote")
| has_personal_note_group_perm("core.edit_personalnote_group")
)
add_perm("alsijil.edit_personalnote", edit_personal_note_predicate)
# View lesson documentation
view_lesson_documentation_predicate = view_lesson_predicate
add_perm("alsijil.view_lessondocumentation", view_lesson_documentation_predicate)
# Edit lesson documentation
edit_lesson_documentation_predicate = view_lesson_predicate & (
is_lesson_teacher
| has_global_perm("alsijil.change_lessondocumentation")
| has_lesson_group_object_perm("core.edit_lessondocumentation_group")
)
add_perm("alsijil.edit_lessondocumentation", edit_lesson_documentation_predicate)
# View week overview
view_week_predicate = has_person & (
is_current_person
| is_group_member
| is_group_owner
| has_global_perm("alsijil.view_week")
| has_object_perm("core.view_week_class_register_group")
)
add_perm("alsijil.view_week", view_week_predicate)
# View week overview in menu
add_perm("alsijil.view_week_menu", has_person)
# View week personal notes
view_week_personal_notes_predicate = has_person & (
(is_current_person & is_teacher)
| is_group_owner
| has_global_perm("alsijil.view_personalnote")
| has_object_perm("core.view_personalnote_group")
)
add_perm("alsijil.view_week_personalnote", view_week_personal_notes_predicate)
# Register absence
register_absence_predicate = has_person & (
(
is_person_primary_group_owner
& is_site_preference_set("alsijil", "register_absence_as_primary_group_owner")
)
| has_global_perm("alsijil.register_absence")
| has_object_perm("core.register_absence_person")
| has_person_group_object_perm("core.register_absence_group")
)
add_perm("alsijil.register_absence", register_absence_predicate)
# View full register for group
view_full_register_predicate = has_person & (
is_group_owner
| has_global_perm("alsijil.view_full_register")
| has_object_perm("core.view_full_register_group")
)
add_perm("alsijil.view_full_register", view_full_register_predicate)
# View students list
view_my_students_predicate = has_person & is_teacher
add_perm("alsijil.view_my_students", view_my_students_predicate)
# View groups list
view_my_groups_predicate = has_person & is_teacher
add_perm("alsijil.view_my_groups", view_my_groups_predicate)
# View students list
view_students_list_predicate = view_my_groups_predicate & (
is_group_owner
| has_global_perm("alsijil.view_personalnote")
| has_object_perm("core.view_personalnote_group")
)
add_perm("alsijil.view_students_list", view_students_list_predicate)
# View person overview
view_person_overview_predicate = has_person & (
(is_current_person & is_site_preference_set("alsijil", "view_own_personal_notes"))
| is_person_group_owner
)
add_perm("alsijil.view_person_overview", view_person_overview_predicate)
# View person overview
view_person_overview_menu_predicate = has_person
add_perm("alsijil.view_person_overview_menu", view_person_overview_menu_predicate)
# View person overview personal notes
view_person_overview_personal_notes_predicate = view_person_overview_predicate & (
(is_current_person & is_site_preference_set("alsijil", "view_own_personal_notes"))
| is_person_primary_group_owner
| has_global_perm("alsijil.view_personalnote")
| has_person_group_object_perm("core.view_personalnote_group")
)
add_perm(
"alsijil.view_person_overview_personalnote",
view_person_overview_personal_notes_predicate,
)
# Edit person overview personal notes
edit_person_overview_personal_notes_predicate = (
view_person_overview_personal_notes_predicate
& (
~is_current_person
| has_global_perm("alsijil.edit_personalnote")
| has_person_group_object_perm("core.edit_personalnote_group")
)
)
add_perm(
"alsijil.edit_person_overview_personalnote",
edit_person_overview_personal_notes_predicate,
)
# View person statistics on personal notes
view_person_statistics_personal_notes_predicate = (
view_person_overview_personal_notes_predicate
)
add_perm(
"alsijil.view_person_statistics_personalnote",
view_person_statistics_personal_notes_predicate,
)
# View excuse type list
view_excusetypes_predicate = has_person & has_global_perm("alsijil.view_excusetype")
add_perm("alsijil.view_excusetypes", view_excusetypes_predicate)
# Add excuse type
add_excusetype_predicate = view_excusetypes_predicate & has_global_perm(
"alsijil.add_excusetype"
)
add_perm("alsijil.add_excusetype", add_excusetype_predicate)
# Edit excuse type
edit_excusetype_predicate = view_excusetypes_predicate & has_global_perm(
"alsijil.change_excusetype"
)
add_perm("alsijil.edit_excusetype", edit_excusetype_predicate)
# Delete excuse type
delete_excusetype_predicate = view_excusetypes_predicate & has_global_perm(
"alsijil.delete_excusetype"
)
add_perm("alsijil.delete_excusetype", delete_excusetype_predicate)
# View extra mark list
view_extramarks_predicate = has_person & has_global_perm("alsijil.view_extramark")
add_perm("alsijil.view_extramarks", view_extramarks_predicate)
# Add extra mark
add_extramark_predicate = view_extramarks_predicate & has_global_perm(
"alsijil.add_extramark"
)
add_perm("alsijil.add_extramark", add_extramark_predicate)
# Edit extra mark
edit_extramark_predicate = view_extramarks_predicate & has_global_perm(
"alsijil.change_extramark"
)
add_perm("alsijil.edit_extramark", edit_extramark_predicate)
# Delete extra mark
delete_extramark_predicate = view_extramarks_predicate & has_global_perm(
"alsijil.delete_extramark"
)
add_perm("alsijil.delete_extramark", delete_extramark_predicate)
...@@ -7,3 +7,54 @@ table a.tr-link { ...@@ -7,3 +7,54 @@ table a.tr-link {
width: inherit; width: inherit;
height: inherit; height: inherit;
} }
.collapsible-icon-right {
align-self: end;
flex-grow: 100;
text-align: right!important;
}
@media only screen and (min-width: 1201px) {
.hide-on-extra-large-only {
display: none;
}
}
@media only screen and (max-width: 1200px) {
.show-on-extra-large {
display: none;
}
}
@media only screen and (max-width: 600px) {
.collection .collection-item.avatar {
padding-left: 20px;
}
.collection .collection-item.avatar:not(.circle-clipper) > .circle {
position: relative;
margin-bottom: 10px;
}
}
.collapsible li .show-on-active {
display: none;
}
.collapsible li.active .show-on-active {
display: block;
}
th.chip-height {
height: 67px;
line-height: 2.2;
}
.collection-item.chip-height {
height: 52px;
line-height: 2.2;
}
li.collection-item.button-height {
height: 58px;
line-height: 2.5;
}
...@@ -10,6 +10,11 @@ ...@@ -10,6 +10,11 @@
text-decoration: line-through; text-decoration: line-through;
} }
.alsijil-tardiness-text{
vertical-align: super;
}
@media only screen and (max-width : 992px) { @media only screen and (max-width : 992px) {
table.responsive-table.alsijil-table th, table.responsive-table.alsijil-table th,
table.responsive-table.alsijil-table td { table.responsive-table.alsijil-table td {
...@@ -17,3 +22,7 @@ ...@@ -17,3 +22,7 @@
vertical-align: top; vertical-align: top;
height: 109px;} height: 109px;}
} }
.alsijil-top-button {
margin-top: -20px;
}
...@@ -42,3 +42,9 @@ class ExcuseTypeTable(tables.Table): ...@@ -42,3 +42,9 @@ class ExcuseTypeTable(tables.Table):
text=_("Delete"), text=_("Delete"),
attrs={"a": {"class": "btn-flat waves-effect waves-red red-text"}}, attrs={"a": {"class": "btn-flat waves-effect waves-red red-text"}},
) )
def before_render(self, request):
if not request.user.has_perm("alsijil.edit_excusetype"):
self.columns.hide("edit")
if not request.user.has_perm("alsijil.delete_excusetype"):
self.columns.hide("delete")
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
{% block page_title %}{% blocktrans %}Register absence{% endblocktrans %}{% endblock %} {% block page_title %}{% blocktrans %}Register absence{% endblocktrans %}{% endblock %}
{% block content %} {% block content %}
<h6>{% trans "Person" %}: {{ person }}</h6>
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
...@@ -17,7 +18,7 @@ ...@@ -17,7 +18,7 @@
$(document).ready(function () { $(document).ready(function () {
$("#id_date_start").change(function () { $("#id_date_start").change(function () {
$("#id_date_end").val($("#id_date_start").val()); $("#id_date_end").val($("#id_date_start").val());
$("#id_date_end").change(); initDatePicker("#id_date_end");
}); });
}); });
</script> </script>
......
{# -*- engine:django -*- #} {# -*- engine:django -*- #}
{% extends "core/base.html" %} {% extends "core/base.html" %}
{% load i18n %} {% load i18n static %}
{% block browser_title %}{% blocktrans %}My groups{% endblocktrans %}{% endblock %} {% block browser_title %}{% blocktrans %}My groups{% endblocktrans %}{% endblock %}
{% block page_title %} {% block page_title %}
{% blocktrans %}My groups{% endblocktrans %} {% blocktrans %}My groups{% endblocktrans %}
{% endblock %} {% endblock %}
{% block extra_head %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'css/alsijil/alsijil.css' %}"/>
{% endblock %}
{% block content %} {% block content %}
<div class="collection"> <table class="highlight responsive-table hide-on-med-and-down">
<thead>
<tr>
<th>{% trans "Name" %}</th>
<th>{% trans "Students" %}</th>
<th></th>
</tr>
</thead>
{% for group in groups %} {% for group in groups %}
<a class="collection-item" href="{% url "week_view" "group" group.pk %}"> <tr>
{{ group }} <td>
</a> {{ group }}
</td>
<td>{{ group.students_count }}</td>
<td>
<div class="right">
<a class="btn primary-color waves-effect waves-light" href="{% url "students_list" group.pk %}">
<i class="material-icons left">people</i>
{% trans "Students list" %}
</a>
<a class="btn secondary-color waves-effect waves-light" href="{% url "week_view" "group" group.pk %}">
<i class="material-icons left">view_week</i>
{% trans "Week view" %}
</a>
<a class="btn primary waves-effect waves-light" href="{% url "full_register_group" group.pk %}"
target="_blank">
<i class="material-icons left">print</i>
{% trans "Generate printout" %}
</a>
</div>
</td>
</tr>
{% empty %} {% empty %}
<li class="collection-item flow-text"> <tr>
{% blocktrans %}No groups available.{% endblocktrans %} <td class="flow-text" colspan="3">
</li> {% blocktrans %}No groups available.{% endblocktrans %}
</td>
</tr>
{% endfor %} {% endfor %}
</table>
<div class="hide-on-large-only">
<ul class="collection">
{% for group in groups %}
<li class="collection-item">
<span class="title">{{ group }}</span>
<p>
{{ group.students_count }} {% trans "students" %}
</p>
<p>
<a class="btn primary-color waves-effect waves-light" href="{% url "week_view" "group" group.pk %}">
<i class="material-icons left">people</i>
{% trans "Students list" %}
</a>
</p>
<p>
<a class="btn secondary-color waves-effect waves-light" href="{% url "week_view" "group" group.pk %}">
<i class="material-icons left">view_week</i>
{% trans "Week view" %}
</a>
</p>
<p>
<a class="btn primary waves-effect waves-light" href="{% url "full_register_group" group.pk %}"
target="_blank">
<i class="material-icons left">print</i>
{% trans "Generate printout" %}
</a>
</p>
</li>
{% empty %}
<li class="collection-item flow-text">
{% blocktrans %}No groups available.{% endblocktrans %}
</li>
{% endfor %}
</ul>
</div> </div>
{% endblock %} {% endblock %}
{# -*- engine:django -*- #} {# -*- engine:django -*- #}
{% extends "core/base.html" %} {% extends "core/base.html" %}
{% load week_helpers material_form_internal %} {% load week_helpers material_form_internal material_form i18n static rules time_helpers %}
{% load material_form i18n static %}
{% block browser_title %}{% blocktrans %}Lesson{% endblocktrans %}{% endblock %} {% block browser_title %}{% blocktrans %}Lesson{% endblocktrans %}{% endblock %}
...@@ -10,47 +9,85 @@ ...@@ -10,47 +9,85 @@
<link rel="stylesheet" href="{% static 'css/alsijil/lesson.css' %}"/> <link rel="stylesheet" href="{% static 'css/alsijil/lesson.css' %}"/>
{% endblock %} {% endblock %}
{% block page_title %} {% block content %}
{{ day }}, {% blocktrans with period=lesson_period.period.period %}{{ period }}. period{% endblocktrans %} – {% if next_lesson_person or prev_lesson_person %}
<div class="row no-margin">
<div class="col s12 no-padding">
{# Back to week view #}
{% with lesson_period.get_lesson_documentation as lesson_doc %}
<a href="{% url "week_view_by_week" lesson_doc.year lesson_doc.week "group" lesson_period.lesson.groups.all.0.pk %}"
class="btn primary-color waves-light waves-effect alsijil-top-button">
<i class="material-icons left">chevron_left</i> {% trans "Back to week view" %}
</a>
{% endwith %}
{# Next lesson #}
{% if prev_lesson_person %}
<a class="btn primary waves-effect waves-light alsijil-top-button"
href="{% url "lesson_by_week_and_period" prev_lesson_person.week.year prev_lesson_person.week.week prev_lesson_person.id %}">
<i class="material-icons left">arrow_back</i>
{% trans "My previous lesson" %}
</a>
{% endif %}
{% for group in lesson_period.get_groups.all %} {# Previous lesson #}
<span>{{ group.name }}</span>, {% if next_lesson_person %}
{% endfor %} <a class="btn primary right waves-effect waves-light alsijil-top-button"
href="{% url "lesson_by_week_and_period" next_lesson_person.week.year next_lesson_person.week.week next_lesson_person.id %}">
<i class="material-icons right">arrow_forward</i>
{% trans "My next lesson" %}
</a>
{% endif %}
</div>
</div>
{% endif %}
{{ lesson_period.get_subject.name }}, <h4>
{{ day }}, {% blocktrans with period=lesson_period.period.period %}{{ period }}. period{% endblocktrans %} –
{% for teacher in lesson_period.get_teachers.all %} {% for group in lesson_period.get_groups.all %}
{{ teacher.short_name }} <span>{{ group.name }}</span>,
{% endfor %} {% endfor %}
<span class="right"> {{ lesson_period.get_subject.name }},
{% for teacher in lesson_period.get_teachers.all %}
{{ teacher.short_name }}
{% endfor %}
<span class="right">
{% include "alsijil/partials/lesson_status_icon.html" with period=lesson_period css_class="medium" %} {% include "alsijil/partials/lesson_status_icon.html" with period=lesson_period css_class="medium" %}
</span> </span>
{% endblock %} </h4>
<br/>
{% block content %} {% has_perm "alsijil.view_lessondocumentation" user lesson_period as can_view_lesson_documentation %}
<div class="row"> {% has_perm "alsijil.edit_lessondocumentation" user lesson_period as can_edit_lesson_documentation %}
<div class="col s12"> {% has_perm "alsijil.edit_lesson_personalnote" user lesson_period as can_edit_lesson_personalnote %}
{% with prev_lesson=lesson_period.prev %}
<a class="btn-flat left waves-effect waves-light"
href="{% url "lesson_by_week_and_period" prev_lesson.week.year prev_lesson.week.week prev_lesson.id %}">
<i class="material-icons left">arrow_back</i>
{% trans "Previous lesson" %}
</a>
{% endwith %}
{% with next_lesson=lesson_period.next %} <form method="post" class="row">
<a class="btn-flat right waves-effect waves-light" <p>
href="{% url "lesson_by_week_and_period" next_lesson.week.year next_lesson.week.week next_lesson.id %}"> {% if can_edit_lesson_documentation or can_edit_lesson_personalnote %}
<i class="material-icons right">arrow_forward</i> {% include "core/partials/save_button.html" %}
{% trans "Next lesson" %} {% endif %}
</a>
{% endwith %} <a class="btn waves-effect waves-light primary"
</div> href="{% url "lesson_by_week_and_period" prev_lesson.week.year prev_lesson.week.week prev_lesson.id %}">
</div> <i class="material-icons left">arrow_back</i>
{% blocktrans with subject=lesson_period.get_subject.name %}
Previous {{ subject }} lesson
{% endblocktrans %}
</a>
<a class="btn right waves-effect waves-light primary"
href="{% url "lesson_by_week_and_period" next_lesson.week.year next_lesson.week.week next_lesson.id %}">
<i class="material-icons right">arrow_forward</i>
{% blocktrans with subject=lesson_period.get_subject.name %}
Next {{ subject }} lesson
{% endblocktrans %}
</a>
</p>
<form method="post">
<p>{% include "core/partials/save_button.html" %}</p>
{% csrf_token %} {% csrf_token %}
<div class="row"> <div class="row">
...@@ -64,6 +101,12 @@ ...@@ -64,6 +101,12 @@
<a href="#personal-notes">{% trans "Personal notes" %}</a> <a href="#personal-notes">{% trans "Personal notes" %}</a>
</li> </li>
{% endif %} {% endif %}
{% has_perm "alsijil.view_lessondocumentation" user lesson_period.prev as can_view_prev_lesson_documentation %}
{% if lesson_period.prev.get_lesson_documentation and can_view_prev_lesson_documentation %}
<li class="tab">
<a href="#previous-lesson">{% trans "Previous lesson" %}</a>
</li>
{% endif %}
<li class="tab"> <li class="tab">
<a href="#version-history">{% trans "Change history" %}</a> <a href="#version-history">{% trans "Change history" %}</a>
</li> </li>
...@@ -71,11 +114,52 @@ ...@@ -71,11 +114,52 @@
</div> </div>
<div class="col s12" id="lesson-documentation"> <div class="col s12" id="lesson-documentation">
{% with prev_lesson=lesson_period.prev prev_doc=prev_lesson.get_lesson_documentation %} <div class="card">
{% 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 %} <div class="card-content">
{% if prev_doc %} <span class="card-title">
{% weekday_to_date prev_lesson.week prev_lesson.period.weekday as prev_date %} {% blocktrans %}Lesson documentation{% endblocktrans %}
</span>
{% if can_edit_lesson_documentation %}
{% form form=lesson_documentation_form %}{% endform %}
{% elif can_view_lesson_documentation %}
<table>
<tr>
<th>
{% trans "Lesson topic" %}
</th>
<td>
{{ lesson_documentation.topic }}
</td>
</tr>
<tr>
<th>
{% trans "Homework" %}
</th>
<td>
{{ lesson_documentation.homework }}
</td>
</tr>
<tr>
<th>
{% trans "Group note" %}
</th>
<td>
{{ lesson_documentation.group_note }}
</td>
</tr>
</table>
{% endif %}
</div>
</div>
</div>
{% with prev_lesson=lesson_period.prev prev_doc=prev_lesson.get_lesson_documentation %}
{% with absences=prev_lesson.get_absences tardinesses=prev_lesson.get_tardinesses extra_marks=prev_lesson.get_extra_marks %}
{% has_perm "alsijil.view_lessondocumentation" user prev_lesson as can_view_prev_lesson_documentation %}
{% if prev_doc and can_view_prev_lesson_documentation %}
{% weekday_to_date prev_lesson.week prev_lesson.period.weekday as prev_date %}
<div class="col s12" id="previous-lesson">
<div class="card"> <div class="card">
<div class="card-content"> <div class="card-content">
<span class="card-title"> <span class="card-title">
...@@ -124,7 +208,10 @@ ...@@ -124,7 +208,10 @@
<th>{{ extra_mark.name }}</th> <th>{{ extra_mark.name }}</th>
<td> <td>
{% for note in notes %} {% for note in notes %}
<span>{{ note.person }}{% if not forloop.last %},{% endif %}</span> {% has_perm "alsijil.view_personalnote" user note as can_view_personalnote %}
{% if can_view_personalnote %}
<span>{{ note.person }}{% if not forloop.last %},{% endif %}</span>
{% endif %}
{% endfor %} {% endfor %}
</td> </td>
</tr> </tr>
...@@ -133,29 +220,21 @@ ...@@ -133,29 +220,21 @@
</table> </table>
</div> </div>
</div> </div>
{% endif %} </div>
{% endwith %} {% endif %}
{% endwith %} {% endwith %}
{% endwith %}
<div class="card">
<div class="card-content">
<span class="card-title">
{% blocktrans %}Lesson documentation{% endblocktrans %}
</span>
{% form form=lesson_documentation_form %}{% endform %}
</div>
</div>
</div>
{% if not lesson_period.get_substitution.cancelled or not request.site.preferences.alsijil__block_personal_notes_for_cancelled %} {% 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="col s12" id="personal-notes">
<div class="card"> <div class="card">
<div class="card-content"> <div class="card-content">
<span class="card-title"> <span class="card-title">
{% blocktrans %}Personal notes{% endblocktrans %} {% blocktrans %}Personal notes{% endblocktrans %}
</span> </span>
{% form form=personal_note_formset.management_form %}{% endform %} {% if can_edit_lesson_personalnote %}
{% form form=personal_note_formset.management_form %}{% endform %}
{% endif %}
<table class="striped responsive-table alsijil-table"> <table class="striped responsive-table alsijil-table">
<thead> <thead>
...@@ -166,94 +245,129 @@ ...@@ -166,94 +245,129 @@
<th>{% blocktrans %}Excused{% endblocktrans %}</th> <th>{% blocktrans %}Excused{% endblocktrans %}</th>
<th>{% blocktrans %}Excuse type{% endblocktrans %}</th> <th>{% blocktrans %}Excuse type{% endblocktrans %}</th>
<th>{% blocktrans %}Extra marks{% endblocktrans %}</th> <th>{% blocktrans %}Extra marks{% endblocktrans %}</th>
<th>{% blocktrans %}Remarks{% endblocktrans %}</th> <th>{% blocktrans %}Remarks{% endblocktrans %}</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for form in personal_note_formset %} {% for form in personal_note_formset %}
<tr> {% if can_edit_lesson_personalnote %}
{{ form.id }} <tr>
<td>{{ form.person_name }}{{ form.person_name.value }}</td> {{ form.id }}
<td class="center-align"> <td>{{ form.person_name }}{{ form.person_name.value }}</td>
<label> <td class="center-align">
{{ form.absent }} <label>
<span></span> {{ form.absent }}
</label> <span></span>
</td>
<td>
<div class="input-field">
{{ form.late }}
<label for="{{ form.absent.id_for_label }}">
{% trans "Tardiness (in m)" %}
</label> </label>
</div> </td>
</td> <td>
<td class="center-align"> <div class="input-field">
<label> {{ form.late }}
{{ form.excused }} <label for="{{ form.absent.id_for_label }}">
<span></span> {% trans "Tardiness (in m)" %}
</label> </label>
</td> </div>
<td> </td>
<div class="input-field"> <td class="center-align">
{{ form.excuse_type }} <label>
<label for="{{ form.excuse_type.id_for_label }}"> {{ form.excused }}
{% trans "Excuse type" %} <span></span>
</label> </label>
</div> </td>
</td> <td>
<td> <div class="input-field">
{% for group, items in form.extra_marks|select_options %} {{ form.excuse_type }}
{% for choice, value, selected in items %} <label for="{{ form.excuse_type.id_for_label }}">
<label class="{% if selected %} active{% endif %} alsijil-check-box"> {% trans "Excuse type" %}
<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> </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 %} {% endfor %}
{% endfor %} </td>
</td> <td>
<td> <div class="input-field">
<div class="input-field"> {{ form.remarks }}
{{ form.remarks }} <label for="{{ form.absent.id_for_label }}">
<label for="{{ form.absent.id_for_label }}"> {% trans "Remarks" %}
{% trans "Remarks" %} </label>
</label> </div>
</div> </td>
</td> </tr>
<td> {% else %}
<div class="input-field"> <tr>
{{ form.remarks }} <td>{{ form.person_name.value }}</td>
<label for="{{ form.absent.id_for_label }}"> <td><i class="material-icons center">{{ form.absent.value|yesno:"check,clear" }}</i></td>
{% trans "Remarks" %} <td>
</label> <i class="material-icons center">{{ form.late.value|yesno:"check,clear" }}</i>
</div> <span class="alsijil-tardiness-text">
</td> {% if form.late.value %}{{ form.late.value|to_time|time:"i\m" }}{% endif %}
</tr> </span>
</td>
<td><i class="material-icons center">{{ form.excused.value|yesno:"check,clear" }}</i></td>
<td>{% firstof form.excuse_type.value "–" %}</td>
<td>
{% for extra_mark in form.extra_marks.value %}
{{ extra_mark }}{% if not forloop.last %},{% endif %}
{% empty %}
{% endfor %}
</td>
<td>{% firstof form.remarks.value "–" %}</td>
</tr>
{% endif %}
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
{% endif %} {% endif %}
<div class="col s12" id="version-history"> {% if can_view_lesson_documentation %}
<div class="card"> <div class="col s12" id="version-history">
<div class="card-content"> <div class="card">
<div class="card-content">
<span class="card-title"> <span class="card-title">
{% blocktrans %}Change history{% endblocktrans %} {% blocktrans %}Change history{% endblocktrans %}
</span> </span>
{% include 'core/partials/crud_events.html' with obj=lesson_documentation %} {% include 'core/partials/crud_events.html' with obj=lesson_documentation %}
</div>
</div> </div>
</div> </div>
</div> {% endif %}
</div> </div>
<p>{% include "core/partials/save_button.html" %}</p> <p>
{% if can_edit_lesson_documentation or can_edit_lesson_personalnote %}
{% include "core/partials/save_button.html" %}
{% endif %}
<a class="btn primary waves-effect waves-light"
href="{% url "lesson_by_week_and_period" prev_lesson.week.year prev_lesson.week.week prev_lesson.id %}">
<i class="material-icons left">arrow_back</i>
{% blocktrans with subject=lesson_period.get_subject.name %}
Previous {{ subject }} lesson
{% endblocktrans %}
</a>
<a class="btn primary right waves-effect waves-light"
href="{% url "lesson_by_week_and_period" next_lesson.week.year next_lesson.week.week next_lesson.id %}">
<i class="material-icons right">arrow_forward</i>
{% blocktrans with subject=lesson_period.get_subject.name %}
Next {{ subject }} lesson
{% endblocktrans %}
</a>
</p>
</form> </form>
{% endblock %} {% endblock %}
{# -*- engine:django -*- #} {# -*- engine:django -*- #}
{% extends "core/base.html" %} {% extends "core/base.html" %}
{% load rules %}
{% load data_helpers %} {% load data_helpers %}
{% load week_helpers %} {% load week_helpers %}
{% load i18n %} {% load i18n %}
...@@ -8,12 +9,28 @@ ...@@ -8,12 +9,28 @@
{% block page_title %} {% block page_title %}
{% has_perm "alsijil.view_my_students" user as has_students %}
{% if has_students %}
<a href="{% url "my_students" %}"
class="btn-flat primary-color-text waves-light waves-effect">
<i class="material-icons left">chevron_left</i> {% trans "Back" %}
</a>
{% endif %}
{% blocktrans with person=person %} {% blocktrans with person=person %}
Class register overview for {{ person }} Class register overview for {{ person }}
{% endblocktrans %} {% endblocktrans %}
{% endblock %} {% endblock %}
{% block content %} {% block content %}
{% has_perm "alsijil.edit_person_overview_personalnote" user person as can_mark_all_as_excused %}
{% has_perm "alsijil.register_absence" user person as can_register_absence %}
{% if can_register_absence %}
<a class="btn primary-color waves-effect waves-light" href="{% url "register_absence" person.pk %}">
<i class="material-icons left">rate_review</i>
{% trans "Register absence" %}
</a>
{% endif %}
<div class="row"> <div class="row">
<div class="col s12 m12 l6"> <div class="col s12 m12 l6">
<h5>{% trans "Unexcused absences" %}</h5> <h5>{% trans "Unexcused absences" %}</h5>
...@@ -22,16 +39,19 @@ ...@@ -22,16 +39,19 @@
{% for note in unexcused_absences %} {% for note in unexcused_absences %}
{% weekday_to_date note.calendar_week note.lesson_period.period.weekday as note_date %} {% weekday_to_date note.calendar_week note.lesson_period.period.weekday as note_date %}
<li class="collection-item"> <li class="collection-item">
<form action="" method="post" class="right hide-on-small-only" style="margin-top: -7px;"> {% has_perm "alsijil.edit_personalnote" user note as can_edit_personal_note %}
{% csrf_token %} {% if can_edit_personal_note %}
{% trans "Mark as" %} <form action="" method="post" class="right hide-on-small-only" style="margin-top: -7px;">
<input type="hidden" value="{{ note.pk }}" name="personal_note"> {% csrf_token %}
{% include "alsijil/partials/mark_as_buttons.html" %} {% trans "Mark as" %}
<a class="btn-flat red-text" title="{% trans "Delete note" %}" <input type="hidden" value="{{ note.pk }}" name="personal_note">
href="{% url "delete_personal_note" note.pk %}"> {% include "alsijil/partials/mark_as_buttons.html" %}
<i class="material-icons center">cancel</i> <a class="btn-flat red-text" title="{% trans "Delete note" %}"
</a> href="{% url "delete_personal_note" note.pk %}">
</form> <i class="material-icons center">cancel</i>
</a>
</form>
{% endif %}
<i class="material-icons left red-text">warning</i> <i class="material-icons left red-text">warning</i>
<p class="no-margin"> <p class="no-margin">
<a href="{% url "lesson_by_week_and_period" note.year note.week note.lesson_period.pk %}">{{ note_date }}, {{ note.lesson_period }}</a> <a href="{% url "lesson_by_week_and_period" note.year note.week note.lesson_period.pk %}">{{ note_date }}, {{ note.lesson_period }}</a>
...@@ -39,64 +59,69 @@ ...@@ -39,64 +59,69 @@
{% if note.remarks %} {% if note.remarks %}
<p class="no-margin"><em>{{ note.remarks }}</em></p> <p class="no-margin"><em>{{ note.remarks }}</em></p>
{% endif %} {% endif %}
<form action="" method="post" class="hide-on-med-and-up"> {% if can_edit_personal_note %}
{% csrf_token %} <form action="" method="post" class="hide-on-med-and-up">
{% trans "Mark as" %} {% csrf_token %}
<input type="hidden" value="{{ note.pk }}" name="personal_note"> {% trans "Mark as" %}
{% include "alsijil/partials/mark_as_buttons.html" %} <input type="hidden" value="{{ note.pk }}" name="personal_note">
<a class="btn-flat red-text" title="{% trans "Delete note" %}" {% include "alsijil/partials/mark_as_buttons.html" %}
href="{% url "delete_personal_note" note.pk %}"> <a class="btn-flat red-text" title="{% trans "Delete note" %}"
<i class="material-icons center">cancel</i> href="{% url "delete_personal_note" note.pk %}">
</a> <i class="material-icons center">cancel</i>
</form> </a>
</form>
{% endif %}
</li> </li>
{% empty %} {% empty %}
<li class="collection-item flow-text"> <li class="collection-item avatar valign-wrapper">
{% trans "There are unexcused lessons." %} <i class="material-icons left circle green white-text">check</i>
<span class="title">{% trans "There are no unexcused lessons." %}</span>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
<h5>{% trans "Statistics on absences, tardiness and remarks" %}</h5> {% if stats %}
<ul class="collapsible"> <h5>{% trans "Statistics on absences, tardiness and remarks" %}</h5>
{% for school_term, stat in stats %} <ul class="collapsible">
<li {% if forloop.first %}class="active"{% endif %}> {% for school_term, stat in stats %}
<div class="collapsible-header"> <li {% if forloop.first %}class="active"{% endif %}>
<i class="material-icons">date_range</i>{{ school_term }}</div> <div class="collapsible-header">
<div class="collapsible-body"> <i class="material-icons">date_range</i>{{ school_term }}</div>
<table> <div class="collapsible-body">
<tr> <table>
<th colspan="2">{% trans 'Absences' %}</th>
<td>{{ stat.absences_count }}</td>
</tr>
<tr>
<td rowspan="{{ excuse_types.count|add:2 }}" class="hide-on-small-only">{% trans "thereof" %}</td>
<td rowspan="{{ excuse_types.count|add:2 }}" class="hide-on-med-and-up"></td>
<th class="truncate">{% trans 'Excused' %}</th>
<td>{{ stat.excused }}</td>
</tr>
{% for excuse_type in excuse_types %}
<th>{{ excuse_type.name }}</th>
<td>{{ stat|get_dict:excuse_type.count_label }}</td>
{% endfor %}
<tr>
<th>{% trans 'Unexcused' %}</th>
<td>{{ stat.unexcused }}</td>
</tr>
<tr>
<th colspan="2">{% trans 'Tardiness' %}</th>
<td>{{ stat.tardiness }}'</td>
</tr>
{% for extra_mark in extra_marks %}
<tr> <tr>
<th colspan="2">{{ extra_mark.name }}</th> <th colspan="2">{% trans 'Absences' %}</th>
<td>{{ stat|get_dict:extra_mark.count_label }}</td> <td>{{ stat.absences_count }}</td>
</tr> </tr>
{% endfor %} <tr>
</table> <td rowspan="{{ excuse_types.count|add:2 }}" class="hide-on-small-only">{% trans "thereof" %}</td>
</div> <td rowspan="{{ excuse_types.count|add:2 }}" class="hide-on-med-and-up"></td>
</li> <th class="truncate">{% trans 'Excused' %}</th>
{% endfor %} <td>{{ stat.excused }}</td>
</ul> </tr>
{% for excuse_type in excuse_types %}
<th>{{ excuse_type.name }}</th>
<td>{{ stat|get_dict:excuse_type.count_label }}</td>
{% endfor %}
<tr>
<th>{% trans 'Unexcused' %}</th>
<td>{{ stat.unexcused }}</td>
</tr>
<tr>
<th colspan="2">{% trans 'Tardiness' %}</th>
<td>{{ stat.tardiness }}'/{{ stat.tardiness_count }} &times;</td>
</tr>
{% for extra_mark in extra_marks %}
<tr>
<th colspan="2">{{ extra_mark.name }}</th>
<td>{{ stat|get_dict:extra_mark.count_label }}</td>
</tr>
{% endfor %}
</table>
</div>
</li>
{% endfor %}
</ul>
{% endif %}
</div> </div>
<div class="col s12 m12 l6"> <div class="col s12 m12 l6">
<h5>{% trans "Relevant personal notes" %}</h5> <h5>{% trans "Relevant personal notes" %}</h5>
...@@ -121,21 +146,25 @@ ...@@ -121,21 +146,25 @@
{% weekday_to_date note.calendar_week note.lesson_period.period.weekday as note_date %} {% weekday_to_date note.calendar_week note.lesson_period.period.weekday as note_date %}
{% ifchanged note_date %} {% ifchanged note_date %}
<li class="collection-item"> <li class="collection-item">
<form action="" method="post" class="right hide-on-small-only" style="margin-top: -7px;"> {% if can_mark_all_as_excused %}
{% csrf_token %} <form action="" method="post" class="right hide-on-small-only" style="margin-top: -7px;">
{% trans "Mark all as" %} {% csrf_token %}
<input type="hidden" value="{{ note_date|date:"Y-m-d" }}" name="date"> {% trans "Mark all as" %}
{% include "alsijil/partials/mark_as_buttons.html" %} <input type="hidden" value="{{ note_date|date:"Y-m-d" }}" name="date">
</form> {% include "alsijil/partials/mark_as_buttons.html" %}
</form>
{% endif %}
<i class="material-icons left">schedule</i> <i class="material-icons left">schedule</i>
{{ note_date }} {{ note_date }}
<form action="" method="post" class="hide-on-med-and-up"> {% if can_mark_all_as_excused %}
{% csrf_token %} <form action="" method="post" class="hide-on-med-and-up">
{% trans "Mark all as" %} {% csrf_token %}
<input type="hidden" value="{{ note_date|date:"Y-m-d" }}" name="date"> {% trans "Mark all as" %}
{% include "alsijil/partials/mark_as_buttons.html" %} <input type="hidden" value="{{ note_date|date:"Y-m-d" }}" name="date">
</form> {% include "alsijil/partials/mark_as_buttons.html" %}
</form>
{% endif %}
</li> </li>
{% endifchanged %} {% endifchanged %}
...@@ -154,7 +183,8 @@ ...@@ -154,7 +183,8 @@
</div> </div>
<div class="col s12 m7 no-padding"> <div class="col s12 m7 no-padding">
{% if note.absent and not note.excused %} {% has_perm "alsijil.edit_personalnote" user note as can_edit_personal_note %}
{% if note.absent and not note.excused and can_edit_personal_note %}
<form action="" method="post" class="right hide-on-small-only" style="margin-top: -7px;"> <form action="" method="post" class="right hide-on-small-only" style="margin-top: -7px;">
{% csrf_token %} {% csrf_token %}
{% trans "Mark as" %} {% trans "Mark as" %}
...@@ -165,6 +195,11 @@ ...@@ -165,6 +195,11 @@
<i class="material-icons center">cancel</i> <i class="material-icons center">cancel</i>
</a> </a>
</form> </form>
{% elif can_edit_personal_note %}
<a class="btn-flat red-text right hide-on-small-only" title="{% trans "Delete note" %}"
href="{% url "delete_personal_note" note.pk %}">
<i class="material-icons center">cancel</i>
</a>
{% endif %} {% endif %}
{% if note.absent %} {% if note.absent %}
...@@ -196,7 +231,7 @@ ...@@ -196,7 +231,7 @@
</div> </div>
<div class="col s12 hide-on-med-and-up"> <div class="col s12 hide-on-med-and-up">
{% if note.absent and not note.excused %} {% if note.absent and not note.excused and can_edit_personal_note %}
<form action="" method="post"> <form action="" method="post">
{% csrf_token %} {% csrf_token %}
{% trans "Mark as" %} {% trans "Mark as" %}
...@@ -207,6 +242,12 @@ ...@@ -207,6 +242,12 @@
<i class="material-icons center">cancel</i> <i class="material-icons center">cancel</i>
</a> </a>
</form> </form>
{% elif can_edit_personal_note %}
<a class="btn-flat red-text" title="{% trans "Delete note" %}"
href="{% url "delete_personal_note" note.pk %}">
<i class="material-icons left">cancel</i>
{% trans "Delete" %}
</a>
{% endif %} {% endif %}
</div> </div>
</li> </li>
......