Release - Upload
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
{% load static %}
|
||||
{% load auth_tags %}
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title> {% block title %}Seitenname{% endblock %}</title>
|
||||
<link rel="shortcut icon" href="{% static 'favicon.ico' %}" />
|
||||
<link href="{% static 'css/medinf.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'bootstrap/css/bootstrap.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'css/pruefplan.css' %}" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.min.css">
|
||||
<script src="{% static 'js/jquery-3.5.1.min.js'%}"></script>
|
||||
<script src="{% static 'js/dropzone.min.js'%}"></script>
|
||||
<link href="{% static 'css/dropzone.min.css' %}" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav id="navbar-efi" class="navbar navbar-expand-lg navbar-light">
|
||||
|
||||
<a class="navbar-brand" href="#">
|
||||
<img src="{% static 'images/efi.jpg' %}" width="35" height="35" alt="efi">
|
||||
</a>
|
||||
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
|
||||
<!-- Menüteil der Navigationsliste -->
|
||||
<ul class="navbar-nav mr-auto">
|
||||
|
||||
<!-- Studierendensuche -->
|
||||
{% if user|has_group:"STUD_VIEW" or user|has_group:"STUD_VIEW_EXTENDED" %}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
Studierende
|
||||
</a>
|
||||
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="{% url 'studis:index' %}">Suche</a>
|
||||
{% if user|has_group:"STUD_ADMIN" %}
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="{% url 'studis:reload' %}">Dateien einlesen</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<!-- Prüfungsplan -->
|
||||
{% if user.is_authenticated %}
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
Prüfungsplan
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||
<a class="dropdown-item" href="{% url 'pp_viewer:lecturer' %}">Ansicht Lehrkräfte</a>
|
||||
<a class="dropdown-item" href="{% url 'pp_viewer:student' %}">Ansicht Studierende</a>
|
||||
<a class="dropdown-item" href="{% url 'pp_viewer:exam' %}">Ansicht Prüfungen</a>
|
||||
<a class="dropdown-item" href="{% url 'pp_viewer:subject' %}">Ansicht Fächer</a>
|
||||
{% if user|has_group:"PP_ADMIN" %}
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="{% url 'pp_parser:upload_file' %}">Daten hochladen</a>
|
||||
<a class="dropdown-item" href="{% url 'pp_parser:clearTable' %}">Datenbank löschen</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<!-- Django Administration -->
|
||||
{% if user.is_superuser %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'admin:index' %}">Administration</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
<!-- Rechtsbündiger Teil der Navigationsleiste -->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
{% if user.is_authenticated %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled" href="#">{{ user.first_name }} {{ user.last_name }}</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url 'logout' %}?next={{ LOGOUT_REDIRECT_URL }}">Abmelden</a>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="dropdown">
|
||||
<a id="login-button" href="#" class="dropdown-toggle nav-link" data-toggle="dropdown">
|
||||
Anmelden<span class="caret"></span>
|
||||
</a>
|
||||
<ul id="login-dp" class="dropdown-menu">
|
||||
<li>
|
||||
<form class="form" role="form" method="post" action="{% url 'navlogin' %}" accept-charset="UTF-8" id="login-nav">
|
||||
{% csrf_token %}
|
||||
{% if next %}
|
||||
<input type="hidden" name="next" value="{{ next }}" />
|
||||
{% endif %}
|
||||
<div class="form-group">
|
||||
<label class="sr-only" for="username">Benutzername</label>
|
||||
<input type="text" class="form-control" id="username" name="username" placeholder="Benutzername" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="sr-only" for="password">Kennwort</label>
|
||||
<input type="password" class="form-control" id="password" name="password" placeholder="Kennwort" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-block">Anmelden</button>
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
{% block content %} {% endblock %}
|
||||
</div>
|
||||
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
||||
<script src="{% static 'bootstrap/js/bootstrap.bundle.js' %}"></script>
|
||||
|
||||
{% block javascript %} {% endblock %}
|
||||
|
||||
<div class="svg-hidden">
|
||||
{% block svg-footer %} {% endblock %}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,25 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}efi - Informationssystem{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="container">
|
||||
<div class="jumbotron">
|
||||
<h1>efi Informationssystem</h1>
|
||||
{% if user.is_authenticated %}
|
||||
<p>Herzlich Willkommen!</p>
|
||||
{% else %}
|
||||
<p>Bitte melden Sie sich mit Ihrer Domänenkennung an.</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if error %}
|
||||
<div class="alert alert-danger">
|
||||
{{ error }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
@@ -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 %}
|
||||
@@ -0,0 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<p>Logged out!</p>
|
||||
|
||||
<a href="{% url 'login'%}">Click here to login again.</a>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,36 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% if form.errors %}
|
||||
<p>Your username and password didn't match. Please try again.</p>
|
||||
{% endif %}
|
||||
|
||||
{% if next %}
|
||||
{% if user.is_authenticated %}
|
||||
<p>Your account doesn't have access to this page. To proceed,
|
||||
please login with an account that has access.</p>
|
||||
{% else %}
|
||||
<p>Please login to see this page.</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<form method="post" action="{% url 'login' %}">
|
||||
{% csrf_token %}
|
||||
|
||||
<div>
|
||||
<td>{{ form.username.label_tag }}</td>
|
||||
<td>{{ form.username }}</td>
|
||||
</div>
|
||||
<div>
|
||||
<td>{{ form.password.label_tag }}</td>
|
||||
<td>{{ form.password }}</td>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="submit" value="login" />
|
||||
<input type="hidden" name="next" value="{{ next }}" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user