Skip to content
Snippets Groups Projects
Commit 26ea069c authored by permcu's avatar permcu
Browse files

Split register-template and make it configurable

django.po still needs adjusting
parent 9af9c13c
No related branches found
No related tags found
1 merge request!422Resolve "Add export functionality to course book"
This commit is part of merge request !422. Comments created here will be created in the context of that merge request.
<h4>{% trans 'Personal overview' %}: {{ person.last_name }}, {{ person.first_name }}</h4>
<h5>{% blocktrans %}Contact details{% endblocktrans %}</h5>
<table class="person-info">
<tr>
<td rowspan="6" class="person-img">
{% if person.photo %}
<img src="{{ person.photo.url }}" alt="{{ person.first_name }} {{ person.last_name }}"/>
{% else %}
<img src="{% static 'img/fallback.png' %}" alt="{{ person.first_name }} {{ person.last_name }}"/>
{% endif %}
</td>
<td><i class="material-icons iconify" data-icon="mdi:account-outline"></i></td>
<td colspan="2">{{ person.first_name }} {{ person.additional_name }} {{ person.last_name }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:human-non-binary"></i></td>
<td colspan="2">{{ person.get_sex_display }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:map-marker-outline"></i></td>
<td>{{ person.street }} {{ person.housenumber }}</td>
<td>{{ person.postal_code }} {{ person.place }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:phone-outline"></i></td>
<td>{{ person.phone_number }}</td>
<td>{{ person.mobile_number }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:email-outline"></i></td>
<td colspan="2">{{ person.email }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:cake"></i></td>
<td colspan="2">{{ person.date_of_birth|date }}</td>
</tr>
</table>
<div class="row">
<div class="col s6">
<h5>{% trans 'Absences and tardiness' %}</h5>
<table>
<tr>
<th colspan="3">{% trans 'Absences' %}</th>
<td>{{ person.absences_count }}</td>
</tr>
<tr>
<td rowspan="{{ excuse_types.count|add:3 }}" style="width: 16mm;"
class="rotate small-print">{% trans "thereof" %}</td>
<th colspan="2">{% trans 'Excused' %}</th>
<td>{{ person.excused }}</td>
</tr>
<tr>
<td rowspan="{{ excuse_types.count|add:1 }}" style="width: 16mm;"
class="rotate small-print">{% trans "thereof" %}</td>
<th>{% trans "Without excuse type" %}</th>
<td>{{ person.excused_without_excuse_type }}</td>
</tr>
{% for excuse_type in excuse_types %}
<tr>
<th>{{ excuse_type.name }}</th>
<td>{{ person|get_dict:excuse_type.count_label }}</td>
</tr>
{% endfor %}
<tr>
<th colspan="2">{% trans 'Unexcused' %}</th>
<td>{{ person.unexcused }}</td>
</tr>
{% for excuse_type in excuse_types_not_absent %}
<tr>
<th colspan="3">{{ excuse_type.name }}</th>
<td>{{ person|get_dict:excuse_type.count_label }}</td>
</tr>
{% endfor %}
<tr>
<th colspan="3">{% trans 'Tardiness' %}</th>
<td>{{ person.tardiness }}'/{{ person.tardiness_count }}&times;</td>
</tr>
</table>
</div>
<div class="col s6">
{% if extra_marks %}
<h5>{% trans 'Extra marks' %}</h5>
<table>
{% for extra_mark in extra_marks %}
<tr>
<th>{{ extra_mark.name }}</th>
<td>{{ person|get_dict:extra_mark.count_label }}</td>
</tr>
{% endfor %}
</table>
{% endif %}
</div>
</div>
<h5>{% trans 'Relevant personal notes' %}</h5>
<table class="small-print">
<thead>
<tr>
<th>{% trans 'Date' %}</th>
<th>{% trans 'Pe.' %}</th>
<th>{% trans 'Subj.' %}</th>
<th>{% trans 'Te.' %}</th>
<th>{% trans 'Absent' %}</th>
<th>{% trans 'Tard.' %}</th>
<th colspan="2">{% trans 'Remarks' %}</th>
</tr>
</thead>
<tbody>
{% for note in person.filtered_notes %}
{% if note.absent or note.tardiness or note.remarks or note.extra_marks.all %}
<tr>
{% if note.date %}
<td>{{ note.date }}</td>
<td>{{ note.register_object.period.period }}</td>
{% else %}
<td colspan="2">
{{ note.register_object.date_start }} {{ note.register_object.period_from.period }}.–{{ note.register_object.date_end }}
{{ note.register_object.period_to.period }}.
</td>
{% endif %}
<td>
{% if note.register_object.label_ != "event" %}
{{ note.register_object.get_subject.short_name }}
{% else %}
{% trans "Event" %}
{% endif %}
</td>
<td>{{ note.register_object.teacher_short_names }}</td>
<td>
{% if note.absent %}
{% trans 'Yes' %}
{% if note.excused %}
{% if note.excuse_type %}
({{ note.excuse_type.short_name }})
{% else %}
({% trans 'e' %})
{% endif %}
{% endif %}
{% endif %}
</td>
<td>
{% if note.tardiness %}
{{ note.tardiness }}'
{% endif %}
</td>
<td>
{% for extra_mark in note.extra_marks.all %}
{{ extra_mark.short_name }}{% if not forloop.last %},{% endif %}
{% endfor %}
</td>
<td>{{ note.remarks }}</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
<h4>{% trans "Abbreviations" %}</h4>
<h5>{% trans "General" %}</h5>
<ul class="collection">
<li class="collection-item">
<strong>(a)</strong> {% trans "Absent" %}
</li>
<li class="collection-item">
<strong>(b)</strong> {% trans "Late" %}
</li>
<li class="collection-item">
<strong>(u)</strong> {% trans "Unexcused" %}
</li>
<li class="collection-item">
<strong>(e)</strong> {% trans "Excused" %}
</li>
</ul>
{% if excuse_types %}
<h5>{% trans "Custom excuse types" %}</h5>
<ul class="collection">
{% for excuse_type in excuse_types %}
<li class="collection-item">
<strong>({{ excuse_type.short_name }})</strong> {{ excuse_type.name }}
</li>
{% endfor %}
</ul>
{% endif %}
{% if excuse_types_not_absent %}
<h5>{% trans "Custom excuse types (not counted as absent)" %}</h5>
<ul class="collection">
{% for excuse_type in excuse_types_not_absent %}
<li class="collection-item">
<strong>({{ excuse_type.short_name }})</strong> {{ excuse_type.name }}
</li>
{% endfor %}
</ul>
{% endif %}
{% if extra_marks %}
<h5>{% trans "Available extra marks" %}</h5>
<ul class="collection">
{% for extra_mark in extra_marks %}
<li class="collection-item">
<strong>{{ extra_mark.short_name }}</strong> {{ extra_mark.name }}
</li>
{% endfor %}
</ul>
{% endif %}
{% for week in weeks %}
<h4>{% trans 'Week' %} {{ week.week }}: {{ week.0 }}–{{ week.6 }}</h4>
<table class="small-print">
<thead>
<tr>
<th></th>
<th>{% trans 'Pe.' %}</th>
<th>{% trans 'Subj.' %}</th>
<th>{% trans 'Lesson topic' %}</th>
<th>{% trans 'Homework' %}</th>
<th>{% trans 'Notes' %}</th>
<th>{% trans 'Te.' %}</th>
</tr>
</thead>
<tbody>
{% for day in week %}
{% with register_objects_by_day|get_dict:day as register_objects %}
{% for register_object, documentation, notes, substitution in register_objects %}
<tr class="
{% if substitution %}
{% if substitution.cancelled %}
lesson-cancelled
{% else %}
lesson-substituted
{% endif %}
{% endif %}
{% if forloop.first %}
lessons-day-first
{% endif %}
">
{% if forloop.first %}
<th rowspan="{{ register_objects|length }}" class="lessons-day-head">{{ day|date:"D" }}</th>
{% endif %}
<td class="lesson-pe">
{% if register_object.label_ != "event" %}
{{ register_object.period.period }}
{% else %}
{{ register_object.period_from_on_day }}.–{{ register_object.period_to_on_day }}.
{% endif %}
</td>
<td class="lesson-subj">
{% if register_object.label_ == "event" %}
<strong>{% trans "Event" %}</strong>
{% elif substitution %}
{% include "chronos/partials/subs/subject.html" with type="substitution" el=substitution %}
{% else %}
{% include "chronos/partials/subject.html" with subject=register_object.get_subject %}
{% endif %}
</td>
<td class="lesson-topic">
{% if register_object.label_ == "event" %}
{{ register_object.title }}: {{ documentation.topic }}
{% elif substitution.cancelled %}
{% trans 'Lesson cancelled' %}
{% else %}
{{ documentation.topic }}
{% endif %}
</td>
<td class="lesson-homework">{{ documentation.homework }}</td>
<td class="lesson-notes">
{{ documentation.group_note }}
{% for note in notes %}
{% if note.absent %}
<span class="lesson-note-absent">
{{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
{% if note.excused %}
<span class="lesson-note-excused">
{% if note.excuse_type %}
({{ note.excuse_type.short_name }})
{% else %}
({% trans 'e' %})
{% endif %}
</span>
{% endif %}
</span>
{% endif %}
{% if note.tardiness %}
<span class="lesson-note-late">
{{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
({{ note.tardiness }}′)
{% if note.excused %}
<span class="lesson-note-excused">
{% if note.excuse_type %}
({{ note.excuse_type.short_name }})
{% else %}
({% trans 'e' %})
{% endif %}
</span>
{% endif %}
</span>
{% endif %}
{% for extra_mark in note.extra_marks.all %}
<span>
{{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
({{ extra_mark.short_name }})
</span>
{% endfor %}
{% endfor %}
</td>
<td class="lesson-te">
{% if documentation.topic %}
{{ register_object.get_teachers.first.short_name }}
{% endif %}
</td>
</tr>
{% endfor %}
{% endwith %}
{% endfor %}
</tbody>
</table>
<div class="page-break">&nbsp;</div>
{% endfor %}
<div class="center-align">
<h1>{% trans 'Class register' %}</h1>
<h5>{{ school_term }}</h5>
<p>({{ school_term.date_start }}–{{ school_term.date_end }})</p>
{% static "img/aleksis-banner.svg" as aleksis_banner %}
<img src="{% firstof SITE_PREFERENCES.theme__logo.url aleksis_banner %}"
alt="{{ SITE_PREFERENCES.general__title }} – Logo" class="max-size-600 center">
<h4 id="group-desc">
{{ group.name }}
</h4>
<p id="group-owners" class="flow-text">
{% trans 'Owners' %}:
{{ group.owners.all|join:', ' }}
</p>
<p id="printed-info">
{% trans 'Printed on' %} {{ today }}
</p>
</div>
<div>
<hr/>
</div>
<div>
<p>
{% blocktrans %}
This printout is intended for archival purposes. The main copy of
the class register is stored in the AlekSIS School Information
System.
{% endblocktrans %}
</p>
<p>
{% blocktrans %}
Copies of the class register, both digital and as printout, must
only be kept inside the school and/or on devices authorised by the
school.
{% endblocktrans %}
</p>
<p>
{% blocktrans %}
The owner of the group and the headteacher confirm the above, as
well as the correctness of this printout.
{% endblocktrans %}
</p>
<div id="signatures">
<div class="signature">
{% trans 'Owners' %}
</div>
<div class="signature">
{% trans 'Headteacher' %}
</div>
</div>
</div>
<h4>{% trans 'Persons in group' %} {{ group.name }}</h4>
<table id="persons">
<thead>
<tr>
<th>{% trans 'No.' %}</th>
<th>{% trans 'Last name' %}</th>
<th>{% trans 'First name' %}</th>
<th>{% trans 'Sex' %}</th>
<th>{% trans 'Date of birth' %}</th>
<th>{% trans '(a)' %}</th>
<th>{% trans "Sum (e)" %}</th>
<th>{% trans "(e)" %}</th>
{% for excuse_type in excuse_types %}
<th>({{ excuse_type.short_name }})</th>
{% endfor %}
<th>{% trans '(u)' %}</th>
{% for excuse_type in excuse_types_not_absent %}
<th>({{ excuse_type.short_name }})</th>
{% endfor %}
<th>{% trans '(b)' %}</th>
{% for extra_mark in extra_marks %}
<th>{{ extra_mark.short_name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for person in persons %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ person.last_name }}</td>
<td>{{ person.first_name }}</td>
<td>{{ person.get_sex_display }}</td>
<td>{{ person.date_of_birth }}</td>
<td>{{ person.absences_count }}</td>
<td>{{ person.excused }}</td>
<td>{{ person.excused_without_excuse_type }}</td>
{% for excuse_type in excuse_types %}
<td>{{ person|get_dict:excuse_type.count_label }}</td>
{% endfor %}
<td>{{ person.unexcused }}</td>
{% for excuse_type in excuse_types_not_absent %}
<td>{{ person|get_dict:excuse_type.count_label }}</td>
{% endfor %}
<td>{{ person.tardiness }}'/{{ person.tardiness_count }}&times;</td>
{% for extra_mark in extra_marks %}
<td>{{ person|get_dict:extra_mark.count_label }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
<table id="lessons">
<thead>
<tr>
{% if len(groups) > 1 %}
<th>{% trans 'Group' %}</th>
{% endif %}
<th>{% trans 'Subject' %}</th>
<th>{% trans 'Teacher' %}</th>
<th>{% trans 'Lesson start' %}</th>
<th>{% trans 'Lesson end' %}</th>
<th>{% trans 'Per week' %}</th>
</tr>
</thead>
<tbody>
{% for group in groups %}
{% for lesson in group.lessons.all %}
<tr>
{% if len(groups) > 1 %}
<td>{{ group.name }}</td>
{% endif %}
<td>{{ lesson.subject.name }}</td>
<td>{{ lesson.teachers.all|join:', ' }}</td>
<td>{{ lesson.validity.date_start }}</td>
<td>{{ lesson.validity.date_end }}</td>
<td>{{ lesson.lesson_periods.count }}</td>
</tr>
{% endfor %}
{% endfor %}
</tbody>
</table>
......@@ -11,516 +11,45 @@
{% endblock %}
{% block content %}
<div class="center-align">
<h1>{% trans 'Class register' %}</h1>
<h5>{{ school_term }}</h5>
<p>({{ school_term.date_start }}–{{ school_term.date_end }})</p>
{% static "img/aleksis-banner.svg" as aleksis_banner %}
<img src="{% firstof SITE_PREFERENCES.theme__logo.url aleksis_banner %}"
alt="{{ SITE_PREFERENCES.general__title }} – Logo" class="max-size-600 center">
<h4 id="group-desc">
{{ group.name }}
</h4>
<p id="group-owners" class="flow-text">
{% trans 'Owners' %}:
{{ group.owners.all|join:', ' }}
</p>
<p id="printed-info">
{% trans 'Printed on' %} {{ today }}
</p>
</div>
<div>
<hr/>
</div>
<div>
<p>
{% blocktrans %}
This printout is intended for archival purposes. The main copy of
the class register is stored in the AlekSIS School Information
System.
{% endblocktrans %}
</p>
<p>
{% blocktrans %}
Copies of the class register, both digital and as printout, must
only be kept inside the school and/or on devices authorised by the
school.
{% endblocktrans %}
</p>
<p>
{% blocktrans %}
The owner of the group and the headteacher confirm the above, as
well as the correctness of this printout.
{% endblocktrans %}
</p>
<div id="signatures">
<div class="signature">
{% trans 'Owners' %}
</div>
<div class="signature">
{% trans 'Headteacher' %}
</div>
</div>
</div>
<div class="page-break">&nbsp;</div>
<h4>{% trans "Abbreviations" %}</h4>
<h5>{% trans "General" %}</h5>
<ul class="collection">
<li class="collection-item">
<strong>(a)</strong> {% trans "Absent" %}
</li>
<li class="collection-item">
<strong>(b)</strong> {% trans "Late" %}
</li>
<li class="collection-item">
<strong>(u)</strong> {% trans "Unexcused" %}
</li>
<li class="collection-item">
<strong>(e)</strong> {% trans "Excused" %}
</li>
</ul>
{% if excuse_types %}
<h5>{% trans "Custom excuse types" %}</h5>
<ul class="collection">
{% for excuse_type in excuse_types %}
<li class="collection-item">
<strong>({{ excuse_type.short_name }})</strong> {{ excuse_type.name }}
</li>
{% endfor %}
</ul>
{% if include_cover %}
{% include "alsijil/partials/register_cover.html" %}
{% endif %}
{% if excuse_types_not_absent %}
<h5>{% trans "Custom excuse types (not counted as absent)" %}</h5>
<ul class="collection">
{% for excuse_type in excuse_types_not_absent %}
<li class="collection-item">
<strong>({{ excuse_type.short_name }})</strong> {{ excuse_type.name }}
</li>
{% endfor %}
</ul>
<div class="page-break">&nbsp;</div>
{% if include_abbreviations %}
{% include "alsijil/partials/register_abbreviations.html" %}
{% endif %}
{% if extra_marks %}
<h5>{% trans "Available extra marks" %}</h5>
<div class="page-break">&nbsp;</div>
<ul class="collection">
{% for extra_mark in extra_marks %}
<li class="collection-item">
<strong>{{ extra_mark.short_name }}</strong> {{ extra_mark.name }}
</li>
{% endfor %}
</ul>
{% if include_members_table %}
{% include "alsijil/partials/register_members_table.html" %}
{% endif %}
<div class="page-break">&nbsp;</div>
{% if include_teachers_and_subjects_table %}
{% if group.lessons %}
<h4>{% trans 'Teachers and lessons in group' %} {{ group.name }}</h4>
{% include "alsijil/partials/register_teachers_and_subjects_table.html" with groups=[group] only %}
<div class="page-break">&nbsp;</div>
{% endif %}
{% if child_groups %}
<h4>{% trans 'Teachers and lessons in child groups' %}</h4>
{% include "alsijil/partials/register_teachers_and_subjects_table.html" with groups=child_groups only}
<div class="page-break">&nbsp;</div>
{% endif %}
{% endif %}
<h4>{% trans 'Persons in group' %} {{ group.name }}</h4>
<table id="persons">
<thead>
<tr>
<th>{% trans 'No.' %}</th>
<th>{% trans 'Last name' %}</th>
<th>{% trans 'First name' %}</th>
<th>{% trans 'Sex' %}</th>
<th>{% trans 'Date of birth' %}</th>
<th>{% trans '(a)' %}</th>
<th>{% trans "Sum (e)" %}</th>
<th>{% trans "(e)" %}</th>
{% for excuse_type in excuse_types %}
<th>({{ excuse_type.short_name }})</th>
{% endfor %}
<th>{% trans '(u)' %}</th>
{% for excuse_type in excuse_types_not_absent %}
<th>({{ excuse_type.short_name }})</th>
{% endfor %}
<th>{% trans '(b)' %}</th>
{% for extra_mark in extra_marks %}
<th>{{ extra_mark.short_name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% if include_person_overviews %}
{% for person in persons %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ person.last_name }}</td>
<td>{{ person.first_name }}</td>
<td>{{ person.get_sex_display }}</td>
<td>{{ person.date_of_birth }}</td>
<td>{{ person.absences_count }}</td>
<td>{{ person.excused }}</td>
<td>{{ person.excused_without_excuse_type }}</td>
{% for excuse_type in excuse_types %}
<td>{{ person|get_dict:excuse_type.count_label }}</td>
{% endfor %}
<td>{{ person.unexcused }}</td>
{% for excuse_type in excuse_types_not_absent %}
<td>{{ person|get_dict:excuse_type.count_label }}</td>
{% endfor %}
<td>{{ person.tardiness }}'/{{ person.tardiness_count }}&times;</td>
{% for extra_mark in extra_marks %}
<td>{{ person|get_dict:extra_mark.count_label }}</td>
{% endfor %}
</tr>
{% include "alsijil/partials/person_overview.html with person=person only %}
<div class="page-break">&nbsp;</div>
{% endfor %}
</tbody>
</table>
<div class="page-break">&nbsp;</div>
{% if lessons %}
<h4>{% trans 'Teachers and lessons in group' %} {{ group.name }}</h4>
<table id="lessons">
<thead>
<tr>
<th>{% trans 'Subject' %}</th>
<th>{% trans 'Teacher' %}</th>
<th>{% trans 'Lesson start' %}</th>
<th>{% trans 'Lesson end' %}</th>
<th>{% trans 'Per week' %}</th>
</tr>
</thead>
<tbody>
{% for lesson in lessons %}
<tr>
<td>{{ lesson.subject.name }}</td>
<td>{{ lesson.teachers.all|join:', ' }}</td>
<td>{{ lesson.validity.date_start }}</td>
<td>{{ lesson.validity.date_end }}</td>
<td>{{ lesson.lesson_periods.count }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="page-break">&nbsp;</div>
{% endif %}
{% if child_groups %}
<h4>{% trans 'Teachers and lessons in child groups' %}</h4>
<table id="lessons">
<thead>
<tr>
<th>{% trans 'Group' %}</th>
<th>{% trans 'Subject' %}</th>
<th>{% trans 'Teacher' %}</th>
<th>{% trans 'Lesson start' %}</th>
<th>{% trans 'Lesson end' %}</th>
<th>{% trans 'Per week' %}</th>
</tr>
</thead>
<tbody>
{% for child_group in child_groups %}
{% for lesson in child_group.lessons.all %}
<tr>
<td>{{ child_group.name }}</td>
<td>{{ lesson.subject.name }}</td>
<td>{{ lesson.teachers.all|join:', ' }}</td>
<td>{{ lesson.validity.date_start }}</td>
<td>{{ lesson.validity.date_end }}</td>
<td>{{ lesson.lesson_periods.count }}</td>
</tr>
{% endfor %}
{% endfor %}
</tbody>
</table>
<div class="page-break">&nbsp;</div>
{% if include_coursebook %}
{% include "alsijil/partials/register_coursebook.html" %}
{% endif %}
{% for person in persons %}
<h4>{% trans 'Personal overview' %}: {{ person.last_name }}, {{ person.first_name }}</h4>
<h5>{% blocktrans %}Contact details{% endblocktrans %}</h5>
<table class="person-info">
<tr>
<td rowspan="6" class="person-img">
{% if person.photo %}
<img src="{{ person.photo.url }}" alt="{{ person.first_name }} {{ person.last_name }}"/>
{% else %}
<img src="{% static 'img/fallback.png' %}" alt="{{ person.first_name }} {{ person.last_name }}"/>
{% endif %}
</td>
<td><i class="material-icons iconify" data-icon="mdi:account-outline"></i></td>
<td colspan="2">{{ person.first_name }} {{ person.additional_name }} {{ person.last_name }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:human-non-binary"></i></td>
<td colspan="2">{{ person.get_sex_display }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:map-marker-outline"></i></td>
<td>{{ person.street }} {{ person.housenumber }}</td>
<td>{{ person.postal_code }} {{ person.place }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:phone-outline"></i></td>
<td>{{ person.phone_number }}</td>
<td>{{ person.mobile_number }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:email-outline"></i></td>
<td colspan="2">{{ person.email }}</td>
</tr>
<tr>
<td><i class="material-icons iconify" data-icon="mdi:cake"></i></td>
<td colspan="2">{{ person.date_of_birth|date }}</td>
</tr>
</table>
<div class="row">
<div class="col s6">
<h5>{% trans 'Absences and tardiness' %}</h5>
<table>
<tr>
<th colspan="3">{% trans 'Absences' %}</th>
<td>{{ person.absences_count }}</td>
</tr>
<tr>
<td rowspan="{{ excuse_types.count|add:3 }}" style="width: 16mm;"
class="rotate small-print">{% trans "thereof" %}</td>
<th colspan="2">{% trans 'Excused' %}</th>
<td>{{ person.excused }}</td>
</tr>
<tr>
<td rowspan="{{ excuse_types.count|add:1 }}" style="width: 16mm;"
class="rotate small-print">{% trans "thereof" %}</td>
<th>{% trans "Without excuse type" %}</th>
<td>{{ person.excused_without_excuse_type }}</td>
</tr>
{% for excuse_type in excuse_types %}
<tr>
<th>{{ excuse_type.name }}</th>
<td>{{ person|get_dict:excuse_type.count_label }}</td>
</tr>
{% endfor %}
<tr>
<th colspan="2">{% trans 'Unexcused' %}</th>
<td>{{ person.unexcused }}</td>
</tr>
{% for excuse_type in excuse_types_not_absent %}
<tr>
<th colspan="3">{{ excuse_type.name }}</th>
<td>{{ person|get_dict:excuse_type.count_label }}</td>
</tr>
{% endfor %}
<tr>
<th colspan="3">{% trans 'Tardiness' %}</th>
<td>{{ person.tardiness }}'/{{ person.tardiness_count }}&times;</td>
</tr>
</table>
</div>
<div class="col s6">
{% if extra_marks %}
<h5>{% trans 'Extra marks' %}</h5>
<table>
{% for extra_mark in extra_marks %}
<tr>
<th>{{ extra_mark.name }}</th>
<td>{{ person|get_dict:extra_mark.count_label }}</td>
</tr>
{% endfor %}
</table>
{% endif %}
</div>
</div>
<h5>{% trans 'Relevant personal notes' %}</h5>
<table class="small-print">
<thead>
<tr>
<th>{% trans 'Date' %}</th>
<th>{% trans 'Pe.' %}</th>
<th>{% trans 'Subj.' %}</th>
<th>{% trans 'Te.' %}</th>
<th>{% trans 'Absent' %}</th>
<th>{% trans 'Tard.' %}</th>
<th colspan="2">{% trans 'Remarks' %}</th>
</tr>
</thead>
<tbody>
{% for note in person.filtered_notes %}
{% if note.absent or note.tardiness or note.remarks or note.extra_marks.all %}
<tr>
{% if note.date %}
<td>{{ note.date }}</td>
<td>{{ note.register_object.period.period }}</td>
{% else %}
<td colspan="2">
{{ note.register_object.date_start }} {{ note.register_object.period_from.period }}.–{{ note.register_object.date_end }}
{{ note.register_object.period_to.period }}.
</td>
{% endif %}
<td>
{% if note.register_object.label_ != "event" %}
{{ note.register_object.get_subject.short_name }}
{% else %}
{% trans "Event" %}
{% endif %}
</td>
<td>{{ note.register_object.teacher_short_names }}</td>
<td>
{% if note.absent %}
{% trans 'Yes' %}
{% if note.excused %}
{% if note.excuse_type %}
({{ note.excuse_type.short_name }})
{% else %}
({% trans 'e' %})
{% endif %}
{% endif %}
{% endif %}
</td>
<td>
{% if note.tardiness %}
{{ note.tardiness }}'
{% endif %}
</td>
<td>
{% for extra_mark in note.extra_marks.all %}
{{ extra_mark.short_name }}{% if not forloop.last %},{% endif %}
{% endfor %}
</td>
<td>{{ note.remarks }}</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
<div class="page-break">&nbsp;</div>
{% endfor %}
{% for week in weeks %}
<h4>{% trans 'Week' %} {{ week.week }}: {{ week.0 }}–{{ week.6 }}</h4>
<table class="small-print">
<thead>
<tr>
<th></th>
<th>{% trans 'Pe.' %}</th>
<th>{% trans 'Subj.' %}</th>
<th>{% trans 'Lesson topic' %}</th>
<th>{% trans 'Homework' %}</th>
<th>{% trans 'Notes' %}</th>
<th>{% trans 'Te.' %}</th>
</tr>
</thead>
<tbody>
{% for day in week %}
{% with register_objects_by_day|get_dict:day as register_objects %}
{% for register_object, documentation, notes, substitution in register_objects %}
<tr class="
{% if substitution %}
{% if substitution.cancelled %}
lesson-cancelled
{% else %}
lesson-substituted
{% endif %}
{% endif %}
{% if forloop.first %}
lessons-day-first
{% endif %}
">
{% if forloop.first %}
<th rowspan="{{ register_objects|length }}" class="lessons-day-head">{{ day|date:"D" }}</th>
{% endif %}
<td class="lesson-pe">
{% if register_object.label_ != "event" %}
{{ register_object.period.period }}
{% else %}
{{ register_object.period_from_on_day }}.–{{ register_object.period_to_on_day }}.
{% endif %}
</td>
<td class="lesson-subj">
{% if register_object.label_ == "event" %}
<strong>{% trans "Event" %}</strong>
{% elif substitution %}
{% include "chronos/partials/subs/subject.html" with type="substitution" el=substitution %}
{% else %}
{% include "chronos/partials/subject.html" with subject=register_object.get_subject %}
{% endif %}
</td>
<td class="lesson-topic">
{% if register_object.label_ == "event" %}
{{ register_object.title }}: {{ documentation.topic }}
{% elif substitution.cancelled %}
{% trans 'Lesson cancelled' %}
{% else %}
{{ documentation.topic }}
{% endif %}
</td>
<td class="lesson-homework">{{ documentation.homework }}</td>
<td class="lesson-notes">
{{ documentation.group_note }}
{% for note in notes %}
{% if note.absent %}
<span class="lesson-note-absent">
{{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
{% if note.excused %}
<span class="lesson-note-excused">
{% if note.excuse_type %}
({{ note.excuse_type.short_name }})
{% else %}
({% trans 'e' %})
{% endif %}
</span>
{% endif %}
</span>
{% endif %}
{% if note.tardiness %}
<span class="lesson-note-late">
{{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
({{ note.tardiness }}′)
{% if note.excused %}
<span class="lesson-note-excused">
{% if note.excuse_type %}
({{ note.excuse_type.short_name }})
{% else %}
({% trans 'e' %})
{% endif %}
</span>
{% endif %}
</span>
{% endif %}
{% for extra_mark in note.extra_marks.all %}
<span>
{{ note.person.last_name }}, {{ note.person.first_name|slice:"0:1" }}.
({{ extra_mark.short_name }})
</span>
{% endfor %}
{% endfor %}
</td>
<td class="lesson-te">
{% if documentation.topic %}
{{ register_object.get_teachers.first.short_name }}
{% endif %}
</td>
</tr>
{% endfor %}
{% endwith %}
{% endfor %}
</tbody>
</table>
<div class="page-break">&nbsp;</div>
{% endfor %}
{% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment