Skip to content
Snippets Groups Projects
rate.twig 6.64 KiB
Newer Older
{% extends 'base' %}

{% block title %}Выставление баллов{% endblock %} {# head -> title #}
{% block media %} {# head -> css, js #}
PavelBegunkov's avatar
PavelBegunkov committed
	{{ HTML.script('static/js/functions.js')|raw }}
	{{ HTML.script('static/js/libs/jquery.fileDownload.js')|raw }}
xamgore's avatar
xamgore committed
	{{ HTML.script('static/js/discipline/rating/rate.js')|raw }}
PavelBegunkov's avatar
PavelBegunkov committed
	{{ HTML.style('static/css/teacher/rating.css')|raw }}
{% endblock %}

{% block main_top_title %}Выставление баллов{% endblock %}
{% block main_content %}
xamgore's avatar
xamgore committed
	{% if Discipline.Milestone > 0 %}
		<p class="canNotEdit">
			Семестр завершен. Выставление баллов <u>запрещено</u>.
		</p>
	{% endif %}
	{#
xamgore's avatar
xamgore committed
    {% if Discipline.Type == 'exam' %}
        <p class="canNotEdit">
            Выставление баллов за экзамен возможно только на странице "Сессия".
        </p>
    {% endif %}
    #}
xamgore's avatar
xamgore committed
	<h2 class="h2_titleSubject">{{ Discipline.SubjectName }}</h2>
pimka's avatar
pimka committed

	<button class="downloadExcel" style="display: none">Скачать в excel формате [dev version]</button>
xamgore's avatar
xamgore committed
	{{ HTML.anchor('discipline/' ~ Discipline.ID ~ '/exam', 'Перейти к сессии →', {
		'title': 'Сессия', 'class': 'exam_a'
	})|raw }}
pimka's avatar
pimka committed
	<div class="groupSelectorWrap">
pimka's avatar
pimka committed
		<div class="groupSelectorText">Фильтр:</div>
pimka's avatar
pimka committed
		<select class="groupSelector">
			<option value="0">Все группы</option>
xamgore's avatar
xamgore committed
			{% for Group in Groups %}
				<option value="{{ Group.ID }}">
					{% if Group.Degree == 'master' %}
						Магистратура, {{ Group.GradeNum }} год
					{% else %}
						{{ Group.GradeNum }} курс
					{% endif %}

					{{ Group.GroupNum }} группа
				</option>
pimka's avatar
pimka committed
			{% endfor %}
		</select>
	</div>
PavelBegunkov's avatar
PavelBegunkov committed

Антон Шалимов's avatar
Антон Шалимов committed
	<p class="notification notif_rating" style="display: none">Обратите внимание, что пустая клетка эквивалентна нулю</p>
xamgore's avatar
xamgore committed

	<table class="studentsRate" border="0" cellspacing="0" cellpadding="0">
xamgore's avatar
xamgore committed

Антон Шалимов's avatar
Антон Шалимов committed
			<td class="title">Модуль</td>
xamgore's avatar
xamgore committed

			{% 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('—') }}
			{% endfor %}
xamgore's avatar
xamgore committed

			<td class="subject" rowspan="3">Итог</td>
			<td class="title">Мероприятие</td>
xamgore's avatar
xamgore committed

			{% 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>
xamgore's avatar
xamgore committed
			<td class="title">Макс. балл</td>

Антон Шалимов's avatar
Антон Шалимов committed
			{% set CellCount = 0 %}
			{% set col = 0 %}
xamgore's avatar
xamgore committed

			{% 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>
xamgore's avatar
xamgore committed
							{# при наличии второго сабмодуля у добора выводим только первый #}
							{% set CellCount = CellCount - 1 %}
Антон Шалимов's avatar
Антон Шалимов committed
					{% else %}
						{% set col = col + 1 %}
xamgore's avatar
xamgore committed
						<td class="subject col_{{ col }}" id="{{ Submodule.ID }}">{{ Submodule.Rate }}</td>
Антон Шалимов's avatar
Антон Шалимов committed
					{% endif %}
		<tr class="RatingTableSubmodulesInfo">
PavelBegunkov's avatar
PavelBegunkov committed
			<td class="info"></td>
xamgore's avatar
xamgore committed
			{% 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 %}
PavelBegunkov's avatar
PavelBegunkov committed
			<td class="info"></td>
		</tr>
xamgore's avatar
xamgore committed
		{% 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>
xamgore's avatar
xamgore committed
			{% for student in StudentsList %}
				{% set extraRate = 0 %}
				{% set examRate = 0 %}
xamgore's avatar
xamgore committed
				{% set sumRate = 0 %}
xamgore's avatar
xamgore committed
				{% set row = row + 1 %}
xamgore's avatar
xamgore committed

xamgore's avatar
xamgore committed
				<tr id="row_{{ row }}" class="group_{{ GroupID }}">
xamgore's avatar
xamgore committed
					<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] %}
xamgore's avatar
xamgore committed
						{% set sumRate = sumRate + rate %}

xamgore's avatar
xamgore committed

						{% if Module.Type == 'regular' %}
							<td id="col_{{ j }}" class="commonCell {{ Discipline.Milestone ? staticCell }}">
xamgore's avatar
xamgore committed
								<input type="text" value="{{ rate }}">
							</td>
						{% else %}
							{% set j = j - 1 %}
xamgore's avatar
xamgore committed
							{% if Module.Type == 'extra' %}
								{% set extraRate = extraRate + rate %}
							{% elseif Module.Type == 'exam' %}
								{% set examRate = rate %}

								{#<td class="staticCell {{ Module.Type == 'exam' ? 'examCell' }}">#}
									{#<p>{{ rate }}</p>#}
								{#</td>#}
xamgore's avatar
xamgore committed

					<td class="staticCell extraCell">
						{#<p>{{ extraRate ? extraRate }}</p>#}
						{{ extraRate ? extraRate }}
					</td>

					<td class="staticCell examCell">
						{#<p>{{ examRate ? examRate }}</p>#}
						{{ examRate ? examRate }}
xamgore's avatar
xamgore committed
					</td>

					<td class="staticCell rateResultCell">
xamgore's avatar
xamgore committed
						{{ sumRate > 100 ? '100+' : sumRate }}
	</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>
PavelBegunkov's avatar
PavelBegunkov committed
	<div id="hidden_div" style="display: none;">
xamgore's avatar
xamgore committed
		{{ Discipline|json_encode|raw }}
	<input type="hidden" id="pageType" value="rating"/>
PavelBegunkov's avatar
PavelBegunkov committed
{% endblock %}