2022-10-09 01:00:51 +00:00
{% extends "admin_base.jinja.html" %}
2022-04-10 19:04:13 +00:00
2022-10-09 01:00:51 +00:00
{% block content %}
2022-03-19 21:21:45 +00:00
{% for error in form.file.errors %}
2022-11-10 12:19:48 +00:00
< div class = "alert alert-danger" role = "alert" >
2022-03-19 21:21:45 +00:00
< strong > Error!< / strong > {{ error }}
< / div >
{% endfor %}
2021-09-11 19:08:37 +00:00
2022-03-19 21:21:45 +00:00
< form method = "POST" enctype = "multipart/form-data" >
{{ form.csrf_token }}
{{ form.file.label }}
{{ form.file }}
2022-04-10 19:01:42 +00:00
{{ form.submit }}
2022-03-19 21:21:45 +00:00
< / form >
2022-05-30 14:43:29 +00:00
2022-09-10 16:26:31 +00:00
< hr >
< h3 > Help< / h3 >
< p >
The import file has to be a text file (with < code > .txt< / code > at the end) encoded in UTF-8. It has to < strong > strictly< / strong > follow the required format.
< / p >
< p >
You can take a look at the file
2022-11-10 12:19:48 +00:00
< a href = "{{ url_for('static', filename='example_database_import.txt') }}"
target="_blank"
rel="noopener noreferrer">
2022-09-10 16:26:31 +00:00
example_database_import.txt
< / a >
for an example.
< / p >
< h4 > Required manipulation using the web interface< / h4 >
2022-11-10 12:19:48 +00:00
< p > The following tables can not be imported from a file and have to be manipulated using the web interface.< / p >
2022-09-10 16:26:31 +00:00
< ul >
2022-11-10 12:19:48 +00:00
< li > Semester< / li >
< li > Program< / li >
< li > Part< / li >
< li > User< / li >
< li > Assistant< / li >
< li > Experiment< / li >
< li > Semester Experiment< / li >
2022-09-10 16:26:31 +00:00
< / ul >
< h4 > Optional values< / h4 >
< p >
If an attribute is optional/nullable and has no value, then < code > NULL< / code > (uppercase) has to be written.
< / p >
< h4 > How to understand the tables in the next section< / h4 >
< h5 > ID< / h5 >
< p >
None of the mentioned ids in the import file is meant as a database id. The ids here only refer to the imported instances. The id in the database is assigned automatically.
< / p >
2022-11-10 12:19:48 +00:00
< p > Here is the format of a table in the "Tables" section:< / p >
2022-09-10 16:26:31 +00:00
< h5 > Table< / h5 >
< ul >
< li >
id → 0 / 1 / 2 / ... (starts with 0 and has step
1)
< / li >
2022-11-10 12:19:48 +00:00
< li > attribute → example1 / example2 / ... (explanation)< / li >
< li > ...< / li >
2022-09-10 16:26:31 +00:00
< / ul >
< p >
The type of attributes can be seen in the drawio file
2022-11-10 12:19:48 +00:00
< a href = "{{ url_for('static', filename='DB.drawio') }}" > DB.drawio< / a > which can be opened using
< a href = "https://www.diagrams.net/"
target="_blank"
rel="noopener noreferrer">diagrams.net< / a > . Some attributes have constraints marked also in the drawio file.
2022-09-10 16:26:31 +00:00
< / p >
< h4 > Tables< / h4 >
< h5 > Semester (only one!)< / h5 >
< ul >
2022-11-10 12:19:48 +00:00
< li > label → WS / SS< / li >
2022-09-10 16:26:31 +00:00
< li >
year → 22 / 23 / ...
< / li >
< / ul >
2022-11-10 12:19:48 +00:00
< h5 >
Part
< / h5 >
2022-09-10 16:26:31 +00:00
< ul >
< li >
id
< / li >
< li >
number → 1 / 2 / ...
< / li >
< li >
program_label → BS / MS / BE / ... (for bachelor of science, master of science, bachelor of education, etc.)
< / li >
< / ul >
2022-11-10 12:19:48 +00:00
< h5 >
Student
< / h5 >
2022-09-10 16:26:31 +00:00
< ul >
< li >
< code > student_number< / code >
< / li >
< li >
< code > first_name< / code >
< / li >
< li >
< code > last_name< / code >
< / li >
< li >
< code > uni_email< / code >
< / li >
< li >
< code > < em > contact_email< / em > < / code > (optional)
< / li >
< li >
< code > < em > bachelor_thesis< / em > < / code > (optional)
< / li >
< li >
< code > < em > bachelor_thesis_work_group< / em > < / code > (optional)
< / li >
< li >
< code > < em > note< / em > < / code > (optional)
< / li >
< / ul >
< div style = "font-size: 90%;" >
Notes:
< ul >
< li >
If < code > student_number< / code > is found in the database but < code > first_name< / code > , < code > last_name< / code > or < code > uni_email< / code > do not match, a warning is given during the import. Pay attention to warnings!
< / li >
< li >
< code > bachelor_thesis< / code > and < code > bachelor_thesis_work_group< / code > are only updated in the database if they are not < code > NULL< / code > . This prevents overriding values written using the web interface.
< / li >
< li >
If < code > note< / code > is not < code > NULL< / code > then it is appended to the note in the database if the student already exists in the database. It will not overwrite existing notes.
< / li >
< / ul >
< / div >
2022-11-10 12:19:48 +00:00
< h5 >
Group
< / h5 >
2022-09-10 16:26:31 +00:00
< ul >
< li >
< code > id< / code >
< / li >
< li >
< code > number< / code > → 1 / 2 / ...
< / li >
< li >
< code > program_label< / code >
< / li >
< / ul >
2022-11-10 12:19:48 +00:00
< h5 >
PartStudent
< / h5 >
2022-09-10 16:26:31 +00:00
< ul >
< li >
< code > student_number< / code >
< / li >
< li >
< code > part_id< / code >
< / li >
< li >
< code > group_id< / code >
< / li >
< / ul >
2022-11-10 12:19:48 +00:00
< h5 >
Experiment
< / h5 >
2022-09-10 16:26:31 +00:00
< ul >
< li >
< code > id< / code >
< / li >
< li >
< code > number< / code > → 1 / 2 / ...
< / li >
< li >
< code > program_label< / code >
< / li >
< / ul >
2022-11-10 12:19:48 +00:00
< h5 >
GroupExperiment
< / h5 >
2022-09-10 16:26:31 +00:00
< ul >
< li >
< code > id< / code >
< / li >
< li >
< code > experiment_id< / code >
< / li >
< li >
< code > group_id< / code >
< / li >
< / ul >
2022-11-10 12:19:48 +00:00
< h5 >
Appointment
< / h5 >
2022-09-10 16:26:31 +00:00
< ul >
< li >
< code > date< / code > → 12.09.2022
< / li >
< li >
< code > special< / code > → 1 / 0
< / li >
< li >
< code > group_experiment_id< / code >
< / li >
< li >
< code > assistant_email< / code >
< / li >
< / ul >
2022-10-09 01:00:51 +00:00
{% endblock %}