feat: add course attestations and average grade column

- store attestation columns and per-student results in progress-service
- add teacher UI for intermediate/pass/exam columns with semester and missed hours
- show average score per student on the group page
- show attestation results on the student dashboard
This commit is contained in:
2026-10-26 16:33:59 +03:00
parent e22443b08e
commit f7a1830548
24 changed files with 914 additions and 25 deletions

View File

@@ -24,6 +24,30 @@
<a class="btn btn-secondary" th:href="@{/learn}">Учебные материалы</a>
</div>
<h2 class="section-title mt-8">Аттестации</h2>
<div th:if="${!#lists.isEmpty(attestations)}" class="card card-flush mb-6">
<table>
<thead>
<tr><th>Форма аттестации</th><th>Семестр</th><th>Результат</th><th>Пропущено</th></tr>
</thead>
<tbody>
<tr th:each="a : ${attestations}">
<td th:text="${a.kindLabel}">—</td>
<td th:text="${a.semester}">—</td>
<td>
<span class="badge"
th:classappend="${a.positive == true} ? 'badge-ok' : (${a.positive == false} ? 'badge-warn' : '')"
th:text="${a.valueLabel}">—</span>
</td>
<td class="text-muted" th:text="${a.missedHours != null ? a.missedHours + ' ч.' : '—'}">—</td>
</tr>
</tbody>
</table>
</div>
<div th:if="${#lists.isEmpty(attestations)}" class="card card-body text-muted mb-6">
Аттестаций пока нет. Преподаватель добавит результаты после их выставления.
</div>
<h2 class="section-title mt-8">Мои лабораторные</h2>
<div class="row row-cols-1 row-cols-lg-2 g-4">
<div th:each="c : ${cards}" class="col"><div class="card h-100">