Skip to content
Snippets Groups Projects
subject.twig 10.6 KiB
Newer Older
{% extends 'base' %} 
 
{% block media %} {# head -> css, js #}
PavelBegunkov's avatar
PavelBegunkov committed
    {{ HTML.style('static/css/student/subject.css')|raw }}
{% endblock %}

PavelBegunkov's avatar
PavelBegunkov committed
    {% macro event(event_name, event_date, event_ball, event_max_ball) %}
        <tr class="table_content">
            <td>{{ event_name }}</td>
            <td>{{ event_date }}</td>
            <td>{{ event_ball }} / {{ event_max_ball }}</td>
        </tr>											
    {% endmacro %}
xamgore's avatar
xamgore committed
{% block title %}{{ Discipline.SubjectName|default('УКД') }}{% endblock %}
{% block main_top_title %}Учебная карта дисциплины{% endblock %}
{% block main_content_classes %}sidePadding{% endblock %}
pimka's avatar
pimka committed

{% block main_content %}

    <div class="pageTitle">
xamgore's avatar
xamgore committed
        <h2>{{ Discipline.SubjectName|default('—') }}</h2>
    </div>

    <div class="disciplineInfo first">
            <div class="label">Форма аттестации:</div>
            <div class="content">{{ Rus[Discipline.Type] |default('—') }}</div>
            <div class="label">Семестр:</div>
            <div class="content">
                {{ Semester.Season == 'autumn' ? 'Осенний' : 'Весенний' }} семестр
                {{ Semester.Year }}/{{ Semester.Year + 1 }} учебного года
    </div>

    <div class="disciplineInfo last">
            <div class="label">Преподаватели:</div>
            <div class="content">
                {% for Teacher in Teachers %}
                    <div>{{ Teacher.Name }}</div>
                {% else %}

                {% endfor %}
            </div>
            <div class="label">Учебная нагрузка:</div>
            <div class="content">

xamgore's avatar
xamgore committed
                {% if (Discipline.Practice) and (Discipline.Labs) %}
                    {% set FirstConjuction = ',' %}
                    {% set SecondConjuction = ' и' %}
xamgore's avatar
xamgore committed
                {% elseif (Discipline.Practice) or (Discipline.Labs) %}
                    {% if Discipline.Lectures %}
                        {% set FirstConjuction = ' и' %}
xamgore's avatar
xamgore committed
                    {% elseif Discipline.Labs %}
                        {% set SecondConjuction = ' и' %}
                    {% endif %}
                {% endif %}
xamgore's avatar
xamgore committed
                
                {% set Hours = [
                    { Type: 'Lectures', Text: 'теории' ~ FirstConjuction },
                    { Type: 'Practice', Text: 'практики' ~ SecondConjuction },
                    { Type: 'Labs',     Text: 'лабораторных занятий' }
                ] %}
                
                {% for Hour in Hours if Discipline[Hour.Type] %}
                    {{ Discipline[Hour.Type] }}
                    {{ Rus.NumEnding(Discipline[Hour.Type], ['час', 'часа', 'часов']) }}
                    {{ Hour.Text }}
                {% endfor %}

    <h3 class="blockTitle">Баллы за семестр</h3>

xamgore's avatar
xamgore committed
    {% set SemesterRate = 0 %}
    {% set SemesterMaxRate = 0 %}
    
    <div class="blockMargin">
    {% for Module in DisciplineMap.Modules %}
xamgore's avatar
xamgore committed
        {% set ModuleRate = 0 %}
        {% set ModuleMaxRate = 0 %}
        
        <div class="tableTitle Module">
            {{ Module.Title|default('Модуль ' ~ loop.index) }}
xamgore's avatar
xamgore committed
        {% for SubmoduleID in Module.Submodules %}
            {% set Submodule = Submodules[SubmoduleID] %}
            <div class="submoduleBlock">
xamgore's avatar
xamgore committed
                <div class="submoduleTitle">
                    {{ Submodule.Title|default('Мероприятие ' ~ loop.index) }}
                </div>
                <div class="submoduleRate">
xamgore's avatar
xamgore committed
                    {{ +Submodule.Rate }} / {{ +Submodule.MaxRate }}
                    {% set ModuleRate = ModuleRate + Submodule.Rate %}
                <div class="submodulePercent">
xamgore's avatar
xamgore committed
                    {{ Submodule.MaxRate ? (Submodule.Rate * 100) // Submodule.MaxRate ~ ' %' : '—' }}
                    {% set ModuleMaxRate = ModuleMaxRate + Submodule.MaxRate %}
                <div class="submoduleDate">
xamgore's avatar
xamgore committed
                    {{ Submodule.Date ? Submodule.Date|date('d.m.Y') : '—' }}
            {% if loop.last %}
                <div class="moduleResult">
xamgore's avatar
xamgore committed
                    Итого за модуль: {{ ModuleRate }} / {{ ModuleMaxRate }}
                    {% set SemesterRate = SemesterRate + ModuleRate %}
                    {% set SemesterMaxRate = SemesterMaxRate + ModuleMaxRate %}
                </div>
            {% endif %}
        {% endfor %}
    {% endfor %}
    </div>
xamgore's avatar
xamgore committed
    {% if Discipline.Type == 'exam' %}
    <h3 class="blockTitle">Допуск к экзамену</h3>
    <div class="blockMargin">
xamgore's avatar
xamgore committed
        {% set Admission = 38 - (SemesterRate + DisciplineMap.Extra.Rate) %}
        {% if Admission > 0 %}
            Для допуска к экзамену Вам необходимо получить еще {{ Admission }} {{ Rus.NumEnding(Admission, ['балл', 'балла', 'баллов']) }}.
        {% else %}
            Поздравляем, заработанных Вами баллов достаточно для получения допуска к экзамену!
        {% endif %}
        {% if ExtraRate %}
            <div class="blockMargin">
                <div class="submoduleBlock topBorder">
                    <div class="submoduleTitle">Добор баллов</div>
                    <div class="submoduleRate">{{ DisciplineMap.Extra.Rate }}</div>
                    <div class="submodulePercent">&nbsp;</div>
xamgore's avatar
xamgore committed
                    <div class="submoduleDate"></div>
PavelBegunkov's avatar
PavelBegunkov committed
    <div class="Middle totalRate">
xamgore's avatar
xamgore committed
        Промежуточный итог: {{ SemesterRate + DisciplineMap.ExtraRate }} / {{ SemesterMaxRate }}
xamgore's avatar
xamgore committed
        
    {% set Bonus = Submodules[DisciplineMap.Bonus] %}
        
    <h3 class="blockTitle">Экзамен</h3>
    <div class="blockMargin">
        <div class="tableTitle Extra">
xamgore's avatar
xamgore committed
            Экзамен по курсу &laquo;{{ Discipline.SubjectName|default('—') }}&raquo;
xamgore's avatar
xamgore committed
        {% if Bonus is not empty %}
        <div class="submoduleBlock">            
            <div class="submoduleTitle">Бонусные баллы</div>
            <div class="submoduleRate">
xamgore's avatar
xamgore committed
                {{ +Bonus.Rate }} / {{ +Bonus.MaxRate }}
RomanSteinberg's avatar
RomanSteinberg committed
            </div>
            <div class="submodulePercent">
xamgore's avatar
xamgore committed
                {% if Bonus.MaxRate == 0 %} 0 {% else %} {{ (Bonus.Rate * 100) // Bonus.MaxRate }} %
                {% endif %}
            </div>
            <div class="submoduleDate">
xamgore's avatar
xamgore committed
                {% if Bonus.Date != 0 %}
                    {{ Bonus.Date|date('d.m.Y') }}
xamgore's avatar
xamgore committed

                {% endif %}
            </div>
        </div>
RomanSteinberg's avatar
RomanSteinberg committed
        {% endif %}
        {% if DisciplineMap.Exam is not empty %}
            <div class="submoduleBlock">
xamgore's avatar
xamgore committed
                <div class="submoduleTitle">Экзамен по курсу &laquo;{{ Discipline.SubjectName|default('—') }}&raquo;</div>
                <div class="submoduleRate">{{ DisciplineMap.Exam.Rate }} / {{ DisciplineMap.Exam.MaxRate }}</div>
                <div class="submodulePercent">
PavelBegunkov's avatar
PavelBegunkov committed
                    {% if DisciplineMap.Exam.MaxRate == 0 %} 0 {% else %} {{ (DisciplineMap.Exam.Rate  * 100) // DisciplineMap.Exam.MaxRate }} % {% endif %}
                <div class="submoduleDate">
                    {% if DisciplineMap.Exam.Date != 0 %}
                        {{ DisciplineMap.Exam.Date|date('d.m.Y') }}
xamgore's avatar
xamgore committed

PavelBegunkov's avatar
PavelBegunkov committed
    <div class="Final totalRate">
xamgore's avatar
xamgore committed
        {% set Rating = SemesterRate + DisciplineMap.Extra.Rate + Bonus.Rate + DisciplineMap.Exam.Rate %}
xamgore's avatar
xamgore committed
        Итоговый рейтинг: {{ min(Rating, 100) }} / 100
pimka's avatar
pimka committed
    </div>
xamgore's avatar
xamgore committed
    {% elseif Discipline.Type == 'credit' %}
        <h3 class="blockTitle">Зачет</h3>
        <div class="blockMargin">
xamgore's avatar
xamgore committed
            {% set Admission = 60 - (SemesterRate + DisciplineMap.Extra.Rate) %}
            {% if Admission > 0 %}
                Для получения зачета необходимо набрать ещё {{ Admission }} {{ Rus.NumEnding(Admission, ['балл', 'балла', 'баллов']) }}.
            {% else %}
xamgore's avatar
xamgore committed
                Поздравляем, Вы получили зачет по курсу &laquo;{{ Discipline.SubjectName|default('—') }}&raquo;!
xamgore's avatar
xamgore committed
            {% if ExtraRate or not Admission or Bonus is not empty %}
xamgore's avatar
xamgore committed
                Зачет по курсу &laquo;{{ Discipline.SubjectName|default('—') }}&raquo;
            </div>
            {% if ExtraRate or not Admission %}
                <div class="blockMargin">
                    <div class="submoduleBlock topBorder">
                        <div class="submoduleTitle">Добор баллов</div>
                        <div class="submoduleRate">{{ DisciplineMap.Extra.Rate }}</div>
                        <div class="submodulePercent">&nbsp;</div>
xamgore's avatar
xamgore committed
                        <div class="submoduleDate"></div>
xamgore's avatar
xamgore committed
            {% if Bonus is not empty %}
                <div class="submoduleBlock">
                    <div class="submoduleTitle">Бонусные баллы</div>
                    <div class="submoduleRate">
xamgore's avatar
xamgore committed
                        {{ +Bonus.Rate }} / {{ +Bonus.MaxRate }}
xamgore's avatar
xamgore committed
                        {% if Bonus.MaxRate == 0 %} 0 {% else %} {{ (Bonus.Rate * 100) // Bonus.MaxRate }} %
                        {% endif %}
                    </div>
                    <div class="submoduleDate">
xamgore's avatar
xamgore committed
                        {% if Bonus.Date != 0 %}
                            {{ Bonus.Date|date('d.m.Y') }}
xamgore's avatar
xamgore committed

PavelBegunkov's avatar
PavelBegunkov committed
        <div class="Final totalRate">
xamgore's avatar
xamgore committed
            {% set Rating = SemesterRate + DisciplineMap.Extra.Rate + Bonus.Rate %}
xamgore's avatar
xamgore committed
            Итоговый рейтинг: {{ min(Rating, 100) }} / 100
xamgore's avatar
xamgore committed
{% endblock %}