{% extends 'base' %} {% block title %}Выставление баллов{% endblock %} {# head -> title #} {% block media %} {# head -> css, js #} {{ HTML.script('static/js/functions.js')|raw }} {{ HTML.script('static/js/libs/jquery.fileDownload.js')|raw }} {{ HTML.script('static/js/discipline/rating/rate.js')|raw }} {{ HTML.style('static/css/teacher/rating.css')|raw }} {% endblock %} {% block main_top_title %}Выставление баллов{% endblock %} {% block main_content %} {% if Discipline.Milestone > 0 %} <p class="canNotEdit"> Семестр завершен. Выставление баллов <u>запрещено</u>. </p> {% endif %} {# {% if Discipline.Type == 'exam' %} <p class="canNotEdit"> Выставление баллов за экзамен возможно только на странице "Сессия". </p> {% endif %} #} <h2 class="h2_titleSubject">{{ Discipline.SubjectName }}</h2> <button class="downloadExcel" style="display: none">Скачать в excel формате [dev version]</button> {{ HTML.anchor('discipline/' ~ Discipline.ID ~ '/exam', 'Перейти к сессии →', { 'title': 'Сессия', 'class': 'exam_a' })|raw }} <div class="groupSelectorWrap"> <div class="groupSelectorText">Фильтр:</div> <select class="groupSelector"> <option value="0">Все группы</option> {% for Group in Groups %} <option value="{{ Group.ID }}"> {% if Group.Degree == 'master' %} Магистратура, {{ Group.GradeNum }} год {% else %} {{ Group.GradeNum }} курс {% endif %} {{ Group.GroupNum }} группа </option> {% endfor %} </select> </div> <p class="notification notif_rating" style="display: none">Обратите внимание, что пустая клетка эквивалентна нулю</p> <table class="studentsRate" border="0" cellspacing="0" cellpadding="0"> <tr class="RatingTableModulesHead"> <td class="title">Модуль</td> {% for Module in Modules %} {% set bonus = (Module.Type == 'bonus' ? 'bonus') %} {% set rowSpan = (Module.Type == 'regular' ? 1 : 2) %} {% set colSpan = (Module.Type != 'extra' ? Module.Submodules|length) %} <td class="subject {{ bonus }}" rowspan="{{ rowSpan }}" colspan="{{ colSpan }}"> {% set names = { 'bonus':'Бонус', 'extra':'Добор баллов', 'exam':'Экзамен', 'regular':Module.Name } %} {{ names[Module.Type] | default('—') }} </td> {% endfor %} <td class="subject" rowspan="3">Итог</td> </tr> <tr class="RatingTableSubmodulesHead"> <td class="title">Мероприятие</td> {% set col = 0 %} {% for Module in Modules if Module.Type == 'regular' %} {% for Submodule in Module.Submodules %} {% set col = col + 1 %} <td class="subject col_{{ col }}">{{ Submodule.Name }}</td> {% endfor %} {% endfor %} </tr> <tr class="RatingTableSubmodulesHeadMaxRate"> <td class="title">Макс. балл</td> {% set CellCount = 0 %} {% set col = 0 %} {% for Module in Modules %} {% set CellCount = CellCount + Module.Submodules|length %} {% for Submodule in Module.Submodules %} <script>console.log({{ Module|json_encode|raw }});</script> {% if Module.Type == "exam" %} <td class="subject" id="{{ Submodule.ID }}">{{ Submodule.Rate }}</td> {% elseif Module.Type == "extra" %} {% if loop.first %} <td class="subject" id="{{ Submodule.ID }}"></td> {% else %} {# при наличии второго сабмодуля у добора выводим только первый #} {% set CellCount = CellCount - 1 %} {% endif %} {% else %} {% set col = col + 1 %} <td class="subject col_{{ col }}" id="{{ Submodule.ID }}">{{ Submodule.Rate }}</td> {% endif %} {% endfor %} {% endfor %} </tr> <tr class="RatingTableSubmodulesInfo"> <td class="info"></td> {% set col = 0 %} {% for Module in Modules %} {% for Submodule in Module.Submodules %} {% if Module.Type != "extra" or loop.first %} {% set col = col + 1 %} <td class="info col_{{ col }}" id="{{ Submodule.ID }}"></td> {% endif %} {% endfor %} {% endfor %} <td class="info"></td> </tr> {% set row = 0 %} {% for GroupID, StudentsList in Students %} <tr id="group_{{ GroupID }}" class="group_{{ GroupID }}"> <td class="group" colspan="{{ CellCount + 2 }}"> {% set Group = Groups[GroupID] %} {% if Group.Degree == 'master' %} Магистратура, {{ Group.GradeNum }} год {% else %} {{ Group.GradeNum }} курс {% endif %} {{ Group.GroupNum }} группа </td> </tr> {% for student in StudentsList %} {% set extraRate = 0 %} {% set examRate = 0 %} {% set sumRate = 0 %} {% set j = 0 %} {% set row = row + 1 %} <tr id="row_{{ row }}" class="group_{{ GroupID }}"> <td id="student_{{ student.ID }}" class="studentCell staticCell"> {{ student.LastName }} {{ student.FirstName }} </td> {% for Submodule in Submodules %} {% set Module = Modules[Submodule.ModuleID] %} {% set rate = Rates[student.ID][Submodule.ID] %} {% set sumRate = sumRate + rate %} {% set j = j + 1 %} {% if Module.Type == 'regular' %} <td id="col_{{ j }}" class="{{ Discipline.Milestone ? 'staticCell' : 'commonCell' }}"> <input type="text" value="{{ rate }}"> </td> {% else %} {% set j = j - 1 %} {% if Module.Type == 'extra' %} {% set extraRate = extraRate + rate %} {% elseif Module.Type == 'exam' %} {% set examRate = rate %} {% else %} {#<td class="staticCell {{ Module.Type == 'exam' ? 'examCell' }}">#} {#<p>{{ rate }}</p>#} {#</td>#} {% endif %} {% endif %} {% endfor %} <td class="staticCell extraCell"> {#<p>{{ extraRate ? extraRate }}</p>#} {{ extraRate ? extraRate }} </td> {% if Discipline.Type == 'exam' %} <td class="staticCell examCell"> {#<p>{{ examRate ? examRate }}</p>#} {{ examRate ? examRate }} </td> {% endif %} <td class="staticCell rateResultCell"> {{ sumRate > 100 ? '100+' : sumRate }} </td> </tr> {% endfor %} {% endfor %} </table> <div id="tdInfo_wrap"> <div id="tdInfo"> <span id="student">Студент: <b></b></span> <span id="submodule">Мероприятие: <b></b></span> <span id="maxRate">Максимальный балл: <b></b></span> </div> </div> <div id="hidden_div" style="display: none;"> {{ Discipline|json_encode|raw }} </div> <input type="hidden" id="pageType" value="rating"/> {% endblock %}