{% extends "base.html" %} {% block title %}Группа {{ group.name }}{% endblock %} {% block content %} {% set lab_id_str = lab_id | string %} {% set n_main = students|selectattr("level", "equalto", "main")|list|length %} {% set n_adv = students|selectattr("level", "equalto", "advanced")|list|length %}

Группа {{ group.name }}

{{ students|length }} студентов Основная: {{ n_main }} Повышенная: {{ n_adv }} {%- if unassigned is not none and unassigned %} {{ unassigned }} без варианта {%- endif %}
Логины и пароли (xlsx) Пароли (csv)

Распределение вариантов

Номера берутся из вариантов выбранной лабораторной и раздаются студентам группы: уникальны внутри группы, по возможности — между группами; если вариантов меньше, чем студентов, повторение допускается.

{% if labs %}
{% else %}

Пока нет ни одной лабораторной с загруженными вариантами — загрузите условия.

{% endif %}

Студенты

{%- if labs %}
Варианты:
{%- endif %}
{% for st in students %} {% set la = (st.lab_numbers or {}).get(lab_id_str) if lab_id else none %} {% else %} {% endfor %}
№ студенческого ФИО Уровень Вариант Пароль
{{ st.id_student }}
{{ st.surname }} {{ st.first_name }} {{ st.middle_name }}
{% if st.basis %}
{{ st.basis }}
{% endif %}
{% if not labs %} — {% elif lab_id %} {% if la and la.number %} {{ la.number }} {% if la.manual %}вручную{% endif %} {% else %}не назначен{% endif %} {% else %} {{ (st.lab_numbers or {}) | length }} из {{ labs | length }} {% endif %} {% if st.must_change %}стартовый {% else %}сменён{% endif %}
Студентов нет — импортируйте список на главной.
{% if students and labs %}
Ручное назначение варианта для конкретного студента.
{% endif %}
{% endblock %}