Release - Upload
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}Prüfungsplan - Datenbank gelöscht{% endblock %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<h1>Hinweis</h1>
|
||||
Datenbank gelöscht!
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,80 @@
|
||||
{% extends 'pruefplan/tableBase.html' %}
|
||||
|
||||
{% block title %}Prüfungsplan - Ansicht Prüfungen{% endblock %}
|
||||
|
||||
{% block additionalScript %}
|
||||
<script>
|
||||
$.fn.dataTable.moment( 'DD.MM.YYYY HH:mm' );
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block table %}
|
||||
|
||||
<h3>Prüfungsplan - Ansicht Prüfungen</h3>
|
||||
|
||||
<div class="container mb-3 mt-3" >
|
||||
<table id="examTable" class="display" style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Wochentag</th>
|
||||
<th>Fachkennung</th>
|
||||
<th>Fächer</th>
|
||||
<th>Fächerbezeichnung</th>
|
||||
<th>Teilprüfung</th>
|
||||
<th>Aufsichtsperson</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ex in exams %}
|
||||
<tr>
|
||||
<td>{{ ex.date|date:"d.m.Y" }} {{ ex.time|date:"H:i" }}</td>
|
||||
<td>{{ ex.weekday }}</td>
|
||||
<td>
|
||||
{% for partialExam in ex.partialexam_set.all %}
|
||||
{% for subject in partialExam.subjectIds.all %}
|
||||
{{ subject.initials }}<br/>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for partialExam in ex.partialexam_set.all %}
|
||||
{{ partialExam.identification }} <br/>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for partialExam in ex.partialexam_set.all %}
|
||||
{% for subject in partialExam.subjectIds.all %}
|
||||
{{ subject.name }}<br/>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for partialExam in ex.partialexam_set.all %}
|
||||
{% for subject in partialExam.subjectIds.all %}
|
||||
{{ subject.identification }}<br/>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{% for supervisor in supervisorSetDict|get_item:ex.identification %}
|
||||
{{ supervisor }}<br/>
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$('#examTable').DataTable({
|
||||
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
|
||||
"language": { url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json'}
|
||||
});
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,30 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
<div style="padding:20px;">
|
||||
<h3>Fehlermeldungen</h3>
|
||||
|
||||
<div style="margin-top:40px;">
|
||||
<h4>Beim Upload und Einlesen der Rohdateien sind folgende Fehler aufgetreten: </h4>
|
||||
<ul>
|
||||
{% for exception in exceptions %}
|
||||
<p>{{ exception }}</p>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="padding:20px;">
|
||||
<h3>Warnmeldungen</h3>
|
||||
|
||||
<div style="margin-top:40px;">
|
||||
<h4>Beim Upload und Einlesen der Rohdateien sind folgende Warnmeldungen aufgetreten: </h4>
|
||||
<ul>
|
||||
{% for warning in warnings %}
|
||||
<p>{{ warning }}</p>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,50 @@
|
||||
{% extends 'pruefplan/tableBase.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% block title%}Prüfungsplan - Ansicht Lehrkräfte{% endblock %}
|
||||
|
||||
{% block table %}
|
||||
|
||||
<h3>Prüfungsplan - Ansicht Lehrkräfte</h3>
|
||||
|
||||
<div class="container mb-3 mt-3">
|
||||
<table id="lecturerTable" class="display" style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>Vorname</th>
|
||||
<th>Nachname</th>
|
||||
<th>Titel</th>
|
||||
<th>Prüfungen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for lec in lecturers %}
|
||||
<tr>
|
||||
<td>{{ lec.identification }}</td>
|
||||
<td>{{ lec.firstName }}</td>
|
||||
<td>{{ lec.lastName }}</td>
|
||||
<td>{{ lec.title }}</td>
|
||||
<td>
|
||||
<a href="{% url 'pp_viewer:examForLecturer' lecturer_id=lec.identification %}" role="button" class="btn btn-outline-warning">
|
||||
<img src="{% static 'open-iconic/svg/list.svg' %}" alt="Prüfungen" width="20" height="20" >
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<tfoot></tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var lecturerTable = $("#lecturerTable").DataTable({
|
||||
lengthMenu: [
|
||||
[10, 25, 50, -1],
|
||||
[10, 25, 50, "All"]
|
||||
],
|
||||
language: { url: "//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json" }
|
||||
});
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,230 @@
|
||||
<!DOCTYPE html!>
|
||||
{% extends "pruefplan/tableBase.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block additionalScript %}
|
||||
<script>
|
||||
$.fn.dataTable.moment("DD.MM.YYYY HH:mm");
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block table %}
|
||||
<div class="container mb-3 mt-3">
|
||||
<h3>Prüfungsplan - {{ lecturer.firstName }} {{ lecturer.lastName }}</h3>
|
||||
<table id="lecturerExamTable"
|
||||
class="display table-striped"
|
||||
style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Wochentag</th>
|
||||
<th>Raum</th>
|
||||
<th>Fachkennung</th>
|
||||
<th>Fächer</th>
|
||||
<th>Fächerbezeichnung</th>
|
||||
<th>Teilprüfung</th>
|
||||
<th>Anzahl Anmeldungen</th>
|
||||
<th>Aufsichtsart</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for examExeLine in lecExamLines %}
|
||||
<tr data-toggle="collapse" data-target="#{{ forloop.counter }}" class="accordion-toggle">
|
||||
<td>{{ examExeLine.date|date:"d.m.Y" }} {{ examExeLine.time|date:"H:i" }}</td>
|
||||
<td>{{ examExeLine.weekday }}</td>
|
||||
<td>{{ examExeLine.location|default_if_none:'' }}</td>
|
||||
<td>{{ examExeLine.examIdent|default_if_none:'' }}</td>
|
||||
<td>
|
||||
{% for subject in examExeLine.subjectIds.all %}
|
||||
{{ subject.initials }}
|
||||
<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for subject in examExeLine.subjectIds.all %}
|
||||
{{ subject.name }}
|
||||
<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for subject in examExeLine.subjectIds.all %}
|
||||
{{ subject.identification }}
|
||||
<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>{{ examExeLine.examStudCound|default_if_none:'' }}</td>
|
||||
<td>{{ examExeLine.supervisorType }}</td>
|
||||
</tr>
|
||||
<tr class="accordian-body collapse" id="{{ forloop.counter }}">
|
||||
<td colspan="9">
|
||||
<div>
|
||||
<table class="table-nostriped"
|
||||
cellpadding="5"
|
||||
cellspacing="0"
|
||||
border="0"
|
||||
style="padding-left: 50px">
|
||||
<tr>
|
||||
<td>Aufsichtspersonen:</td>
|
||||
<td>
|
||||
{% for examExecutions in examExeLine.executionSet %}
|
||||
{{ examExecutions.lecturer.firstName }} {{ examExecutions.lecturer.lastName }}
|
||||
<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Prüfungskennung:</td>
|
||||
<td>{{ examExeLine.partialExamIdent }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% comment %}
|
||||
<tfoot>
|
||||
</tfoot>
|
||||
{% endcomment %}
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
$("#lecturerExamTable").DataTable({
|
||||
lengthMenu: [[-1], ["Alle"]],
|
||||
ordering: false,
|
||||
bInfo: false,
|
||||
language: { url: "//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json" }
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% comment %}
|
||||
<tbody>
|
||||
{% for examExeLine in lecExamExes %}
|
||||
<tr data-toggle="collapse" data-target="#{{forloop.counter}}" class="accordion-toggle">
|
||||
<td>
|
||||
{{ examExeLine.partialExam.exam.date|date:"d.m.Y" }} {{
|
||||
examExeLine.partialExam.exam.time|date:"H:i" }}
|
||||
</td>
|
||||
<td>{{ examExeLine.partialExam.exam.weekday }}</td>
|
||||
<td>{{ examExeLine.location }}</td>
|
||||
{% endblock %} {% comment %}
|
||||
<tbody>
|
||||
{% for examExeLine in lecExamExes %}
|
||||
<tr data-toggle="collapse" data-target="#{{forloop.counter}}" class="accordion-toggle">
|
||||
<td>
|
||||
{{ examExeLine.partialExam.exam.date|date:"d.m.Y" }} {{
|
||||
examExeLine.partialExam.exam.time|date:"H:i" }}
|
||||
</td>
|
||||
<td>{{ examExeLine.partialExam.exam.weekday }}</td>
|
||||
<td>{{ examExeLine.location }}</td>
|
||||
|
||||
<td>
|
||||
{% for subject in examExeLine.subjectIds.all %}{{ subject.initials }}<br />{% endfor %}
|
||||
</td>
|
||||
<td>{{ examExeLine.partialExam.identification }}</td>
|
||||
<td>
|
||||
{% for subject in examExeLine.subjectIds.all %}{{ subject.name }}<br />{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for subject in examExeLine.subjectIds.all %} {{ subject.identification
|
||||
}}<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for subject in examExeLine.subjectIds.all %} {{ subject.initials }}<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>{{ examExeLine.partialExam.identification }}</td>
|
||||
<td>
|
||||
{% for subject in examExeLine.subjectIds.all %} {{ subject.name }}<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for subject in examExeLine.subjectIds.all %} {{ subject.identification
|
||||
}}<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
|
||||
<td>{{ examExeLine.partialExam.regStudCount }}</td>
|
||||
<td>{{ examExeLine.supervisorType }}</td>
|
||||
</tr>
|
||||
<tr class="accordian-body collapse" id="{{forloop.counter}}">
|
||||
<td colspan="9">
|
||||
<div>
|
||||
<table class="table-nostriped" cellpadding="5" cellspacing="0" border="0" style="padding-left: 50px">
|
||||
<tr>
|
||||
<td>Aufsichtspersonen:</td>
|
||||
<td>
|
||||
{% for examExecutions in
|
||||
examExeLine.partialExam.examexecution_set.all %} {{
|
||||
examExecutions.lecturer.firstName }} {{
|
||||
examExecutions.lecturer.lastName }}<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Prüfungskennung:</td>
|
||||
<td>{{ examExeLine.partialExam.exam.identification }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<td>{{ examExeLine.partialExam.regStudCount }}</td>
|
||||
<td>{{ examExeLine.supervisorType }}</td>
|
||||
</tr>
|
||||
<tr class="accordian-body collapse" id="{{ forloop.counter }}">
|
||||
<td colspan="9">
|
||||
<div>
|
||||
<table class="table-nostriped" cellpadding="5" cellspacing="0" border="0" style="padding-left: 50px">
|
||||
<tr>
|
||||
<td>Aufsichtspersonen:</td>
|
||||
<td>
|
||||
{% for examExecutions in
|
||||
examExeLine.partialExam.examexecution_set.all %}
|
||||
{{
|
||||
examExecutions.lecturer.firstName }} {{
|
||||
examExecutions.lecturer.lastName }}
|
||||
<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Prüfungskennung:</td>
|
||||
<td>{{ examExeLine.partialExam.exam.identification }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endcomment %}
|
||||
@@ -0,0 +1,5 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
Lesen der Json-Dateien und eintragen in die Datenbank abgeschlossen
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,42 @@
|
||||
{% extends 'pruefplan/tableBase.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}Prüfungsplan - Ansicht Studierende{% endblock %}
|
||||
|
||||
{% block table %}
|
||||
|
||||
<h3>Prüfungsplan - Ansicht Studierende</h3>
|
||||
|
||||
<div class="container mb-3 mt-3" >
|
||||
<table id="studentTable" class="display" style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Matrikelnummer</th>
|
||||
<th>Prüfungen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for student in students %}
|
||||
<tr>
|
||||
<td>{{ student.matrikel }}</td>
|
||||
<td>
|
||||
<a href="{% url 'pp_viewer:examForStudent' student_id=student.matrikel %}" role="button" class="btn btn-outline-warning">
|
||||
<img src="{% static 'open-iconic/svg/list.svg' %}" alt="Prüfungen" width="20" height="20" >
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
var studentTable = $('#studentTable').DataTable({
|
||||
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
|
||||
"language": { url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json'}
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
{% extends 'pruefplan/tableBase.html' %}
|
||||
|
||||
{% block additionalScript %}
|
||||
<script>
|
||||
$.fn.dataTable.moment( 'DD.MM.YYYY' );
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block table %}
|
||||
<div class="container mb-3 mt-3" >
|
||||
<h3>Prüfungsplan - Matrikelnummer: {{ student.matrikel}}</h3>
|
||||
<p>Hinweis: Sie können mit einem Bookmark auf diese Seite jederzeit auf Ihren Prüfungsplan zugreifen.</p>
|
||||
<table id="studentExamTable" class="display table-striped" style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Uhrzeit</th>
|
||||
<th>Wochentag</th>
|
||||
<th>Raum</th>
|
||||
|
||||
<th>Fachkennung</th>
|
||||
<th>Fächer</th>
|
||||
<th>Aufsichtsperson</th>
|
||||
<th>Fächerbezeichung</th>
|
||||
<th>Teilpfrüfung</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for exam in exams %}
|
||||
<tr>
|
||||
<td>{{ exam.date|date:"d.m.Y" }}</td>
|
||||
<td>{{ exam.time|date:"H:i" }}</td>
|
||||
<td>{{ exam.weekday }}</td>
|
||||
<td>{{ exam.location }}</td>
|
||||
|
||||
<td>
|
||||
{% for subject in exam.examExecution.subjectIds.all %}
|
||||
{{ subject.initials }}<br/>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>{{ exam.examExecution.partialExam.identification }}</td>
|
||||
<td>{{ exam.examExecution.lecturer.firstName }} {{ exam.examExecution.lecturer.lastName }}</td>
|
||||
|
||||
<td>
|
||||
{% for subject in exam.examExecution.subjectIds.all %}
|
||||
{{ subject.name }}<br/>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for subject in exam.examExecution.subjectIds.all %}
|
||||
{{ subject.identification }}<br/>
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$('#studentExamTable').DataTable({
|
||||
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
|
||||
"language": { url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json'}
|
||||
});
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
{% extends 'pruefplan/tableBase.html' %}
|
||||
|
||||
{% block title %}Prüfungsplan - Ansicht Fächer{% endblock %}
|
||||
|
||||
{% block table %}
|
||||
|
||||
<h3>Prüfungsplan - Ansicht Fächer</h3>
|
||||
|
||||
<div class="container mb-3 mt-3" >
|
||||
<table id="subjectTable" class="display" style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Identification</th>
|
||||
<th>Initials</th>
|
||||
<th>Name</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for sub in subjects %}
|
||||
<tr>
|
||||
<td>{{ sub.identification }}</td>
|
||||
<td>{{ sub.initials }}</td>
|
||||
<td>{{ sub.name }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$('#subjectTable').DataTable({
|
||||
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
|
||||
"language": { url: '//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json'}
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %}Prüfungsplan{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<!--Bootstrap sortable table-->
|
||||
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
|
||||
<script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
|
||||
|
||||
<!--Sort DateTime-->
|
||||
<script src="https://momentjs.com/downloads/moment.js" type="text/javascript"></script>
|
||||
<script src="http://cdn.datatables.net/plug-ins/1.10.9/sorting/datetime-moment.js"></script>
|
||||
|
||||
<!--Sort custom enum data e.g. weekday-->
|
||||
<script src="https://cdn.datatables.net/plug-ins/1.10.21/sorting/enum.js"></script>
|
||||
|
||||
<script>
|
||||
$.fn.dataTable.enum( [ 'MONTAG', 'DIENSTAG', 'MITTWOCH', 'DONNERSTAG', 'FREITAG', 'SAMSTAG', 'SONNTAG' ] );
|
||||
</script>
|
||||
|
||||
{% block additionalScript %}{% endblock %}
|
||||
{% block table %}{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,31 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block title %}Prüfungsplan{% endblock %}
|
||||
{% block content %}
|
||||
<h3>Hochladen der JSON-Dateien</h3>
|
||||
<div style="padding:20px;">
|
||||
<form action="upload_file" method="post" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
Dozenten:
|
||||
{{ form.lecturers_file }}
|
||||
<br />
|
||||
<br />
|
||||
Faecher:
|
||||
{{ form.subjects_file }}
|
||||
<br />
|
||||
<br />
|
||||
Präsenzen:
|
||||
{{ form.attendance_file }}
|
||||
<br />
|
||||
<br />
|
||||
Pruefungen:
|
||||
{{ form.exams_file }}
|
||||
<br />
|
||||
<br />
|
||||
Saaleinteilung:
|
||||
{{ form.student_file }}
|
||||
<br />
|
||||
<br />
|
||||
<button type="submit">Upload</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user