Newer
Older
{% extends 'base' %}
{% block title %}Контроль посещаемости{% endblock %}
{% block media %}
{{ HTML.script('static/js/functions.js')|raw }}
{{ HTML.script('static/js/libs/jquery.fileDownload.js')|raw }}
{{ HTML.script('static/js/discipline/journal.js')|raw }}
{{ HTML.script('static/js/libs/jquery-ui-1.12.1.js')|raw }}
{# addon для установки даты и времени, а не только даты #}
{# {{ HTML.script('static/js/libs/jquery-timepicker-addon-1.6.3.js')|raw }} #}
{# локализация jquery datepicker plugin на русский #}
{{ HTML.script('static/js/libs/datepicker-ru.js')|raw }}
{{ HTML.script('static/js/libs/tabulator.min.js')|raw }}
{#{{ HTML.script('static/js/libs/xlsx.full.min.js')|raw }}#}
{#{{ HTML.script('static/js/libs/jspdf.min.js')|raw }}#}
{#{{ HTML.script('static/js/libs/jspdf.plugin.autotable.js')|raw }}#}
{{ HTML.style('static/css/teacher/discipline/journal.css')|raw }}
{{ HTML.style('static/css/jquery-ui-1.12.1.css')|raw }}
{{ HTML.style('static/css/tabulator.min.css')|raw }}
{#HTML.style('https://unpkg.com/tabulator-tables@4.2.3/dist/css/tabulator_modern.min.css')|raw }} #}
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
{# {{ HTML.style('static/css/jquery-timepicker-addon-1.6.3.css')|raw }} #}
{% endblock %}
{% macro AnchorButton(URL, Text, AnchorTitle, AnchorClass) %}
{{ HTML.anchor(URL, Text, {
'title': AnchorTitle,
'class': AnchorClass
})|raw }}
{% endmacro %}
{% macro JournalCell(Col, Row, Discipline, Attendance, LessonType) %}
<td id="col_row_{{ Col }}_{{ Row }}" class="journal checkbox regular lesson_type_{{ LessonType }}">
<input type="checkbox" id="checkbox_col_row_{{ Col }}_{{ Row }}" {{ Attendance ? 'checked' }}>
<label class="checkmark" for="checkbox_col_row_{{ Col }}_{{ Row }}"></label>
</td>
{% endmacro %}
{% macro JournalCellTemplate(Col, Row, Discipline, Attendance) %}
<td id="col_row_{{ Col }}_{{ Row }}" class="journal checkbox regular" style="display: none">
<input type="checkbox" id="checkbox_col_row_{{ Col }}_{{ Row }}" {{ Attendance ? 'checked' }}>
<label class="checkmark" for="checkbox_col_row_{{ Col }}_{{ Row }}"></label>
</td>
{% endmacro %}
{% macro EmptyCell(Col, Row) %}
<td id="col_row_{{ Col }}_{{ Row }}" class="journal empty">
</td>
{% endmacro %}
{% macro RateCell(Col, Row, Discipline, Rate) %}
<td class="journal static semester">{{ Rate }}</td>
{% endmacro %}
{% macro LessonCell(Col, LessonID, LessonDate, LessonType, LessonName) %}
<td id="lesson_{{ LessonID }}" class="lesson_col_{{ Col }} lesson_type_{{ LessonType }}">
=======
{% macro LessonCell(Col, LessonID, LessonDate, LessonType, SubgroupID) %}
<td id="lesson_{{ LessonID }}" class="lesson_col_{{ Col }} lesson_type_{{ LessonType }} lesson_subgroup_{{SubgroupID}}">
>>>>>>> WIP: filtering by subgroup in journal #299
<input type="text" id="lesson_input_{{ LessonID }}" class="lesson_input col_{{ Col }}" value="{{ LessonDate | date("d-m") }}">
{# <input type="text" id="lesson_input_{{ LessonID }}" class="lesson_input col_{{ Col }}" value="{{ LessonDate }}"> #}
<div>
<input type="text" id="lesson_name_{{ LessonID }}" class="lesson_name_input col_{{ Col }}" value="{{ LessonName }}">
</div>
<div class="delete_lesson"><span class="delete_lesson_icon"></span></div>
</td>
{% endmacro %}
{% macro LessonCellTemplate(Col, LessonID, LessonDate, SubgroupID) %}
<td id="lesson_{{ LessonID }}" class="lesson_col_{{ Col }}" style="display: none">
<input type="text" id="lesson_input_{{ LessonID }}" class="lesson_input col_{{ Col }}" value="{{ LessonDate | date("d-m") }}">
{# <input type="text" id="lesson_input_{{ LessonID }}" class="lesson_input col_{{ Col }}" value="{{ LessonDate }}"> #}
<div>
<input type="text" id="lesson_name_{{ LessonID }}" class="lesson_name_input col_{{ Col }}" value="">
</div>
<div class="delete_lesson"><span class="delete_lesson_icon"></span></div>
</td>
{% endmacro %}
{% block main_top_title %}Контроль посещаемости{% endblock %}
{% block main_content %}
{% if Discipline.Milestone %}
<p class="noEdit">Семестр завершен, выставлять посещаемость запрещено</p>
{% endif %}
<div class="rateHeader ClearFix">
<h2 class="subject">{{ Discipline.SubjectName }}</h2>
{% if Discipline.IsGlobal %}
<h3 class="subject">{{ Discipline.GlobalName }}</h3>
{% endif %}
{{ _self.AnchorButton('discipline/' ~ Discipline.ID ~ '/rate', 'Семестр', 'Семестр', 'button') }}
{{ _self.AnchorButton('discipline/' ~ Discipline.ID ~ '/exam', 'Сессия', 'Сессия', 'button') }}
{{ _self.AnchorButton('discipline/' ~ Discipline.ID ~ '/history', 'История', 'История', 'button') }}
{#{{ _self.AnchorButton('discipline/' ~ Discipline.ID ~ '/structure', Discipline.IsLocked ? 'Просмотр' : 'Редактирование', 'История', 'button') }}#}
<div class="lessonSelector">
<span class="defaultForm">Тип занятия:</span>
<select class="defaultForm" id="lessonSelector">
<option value="0">Все занятия</option>
{% for Type in LessonTypes %}
<option value="{{ Type.ID }}">
{{ Type.LessonType }}
</option>
{% endfor %}
</select>
</div>
<div class="subgroupSelector">
<span class="defaultForm">Подгруппы:</span>
<select class="defaultForm" id="subgroupSelector">
<option value="0">Все подгруппы</option>
{% for Subgroup in Subgroups %}
<option value="{{ Subgroup.ID }}">
{{ Subgroup.Title }}
</option>
{% endfor %}
</select>
</div>
{#<div class="groupSelector">#}
{#<span class="defaultForm">Фильтр:</span>#}
{#<select class="defaultForm" id="groupSelector">#}
{#<option value="0">Все группы</option>#}
{#{% for Group in Groups %}#}
{#<option value="{{ Group.ID }}">#}
{#{% if Group.Degree == 'master' %}#}
{#Магистратура, {{ Group.GradeNum }} год#}
{#{% elseif Group.Degree == 'specialist' %}#}
{#Специалитет, {{ Group.GradeNum }} курс#}
{#{% elseif Group.Degree == 'postgraduate' %}#}
{#Аспирантура, {{ Group.GradeNum }} год#}
{#{% else %}#}
{#{{ Group.GradeNum }} курс#}
{#{% endif %}#}
{#{{ Group.GroupNum }} группа#}
Anton Bagliy
committed
{#{% if Group.FormName == 'очно-заочная' %}#}
{#ВО#}
{#{% endif %}#}
Anton Bagliy
committed
{#{% if Group.FormName == 'заочная' %}#}
{#ЗО#}
{#{% endif %}#}
{#</option>#}
{#{% endfor %}#}
{#</select>#}
{#</div>#}
{#<button id="download-xlsx" class="defaultForm BlueButton marginBetween" style="width: 100px; height: 28px; margin-left: 5px; margin-right: 5px"> Скачать xlsx </button>#}
{#<button id="download-pdf" class="defaultForm BlueButton marginBetween" style="width: 100px; height: 28px; margin-left: 5px; margin-right: 5px"> Скачать pdf </button>#}
<button id="history-undo" class="defaultForm BlueButton marginBetween" style="width: 100px; height: 28px; margin-left: 5px; margin-right: 5px"> Отменить </button>
<button id="history-redo" class="defaultForm BlueButton marginBetween" style="width: 100px; height: 28px; margin-left: 5px; margin-right: 5px"> Повторить </button>
<button id="tabulator-clear-settings" class="defaultForm BlueButton marginBetween" style="width: 200px; height: 28px; margin-left: 5px; margin-right: 5px;"> Очистить форматирование </button>
<div id = "new-lesson">
<label> Добавить новое занятие: </label>
<input type="text" id="new_lesson_input" class="new_lesson_input">
<button class="defaultForm BlueButton marginBetween" id="new_lesson_button" style="width: 100px; height: 28px; margin-left: 5px">добавить</button>
</div>
<div class="journalContent" style="height:90vh;">
<div id="studentsAttendance">
</div>
{#<div id="cellInfo" class="cellInfo">#}
{#<span id="student" class="field">#}
{#<span class="name">Студент:</span>#}
{#<span class="value"></span>#}
{#</span>#}
{#<span id="lesson" class="field">#}
{#<span class="name">Занятие:</span>#}
{#<span class="value"></span>#}
{#</span>#}
{#</div>#}
<div id="json_discipline" style="display: none">
{{ Discipline|json_encode|raw }}
</div>
<div id="json_lessonTypes" style="display: none">
{{ LessonTypes|json_encode|raw }}
</div>
<div id="json_lessons" style="display: none">
{{ Lessons|json_encode|raw }}
</div>
<div id="json_students" style="display: none">
{{ Students|json_encode|raw }}
</div>
<div id="json_groups" style="display: none">
{{ Groups|json_encode|raw }}
</div>
<div id="json_attendance" style="display: none">
{{ Attendance|json_encode|raw }}
</div>