Skip to content

Commit a0ed07f

Browse files
committed
seminar fragebogen/parser and import logic added
1 parent 8af97fd commit a0ed07f

File tree

7 files changed

+389
-3
lines changed

7 files changed

+389
-3
lines changed

src/feedback/admin.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from feedback.models import Person, Veranstaltung, Semester, \
1010
Mailvorlage, Kommentar, Tutor, BarcodeScanner, BarcodeScannEvent, BarcodeAllowedState, \
1111
EmailEndung, Fragebogen2020, FragebogenUE2020, Ergebnis2020, Fragebogen2016, FragebogenUE2016, Ergebnis2016, \
12-
Fragebogen2025, FragebogenUE2025, Ergebnis2025
12+
Fragebogen2025, FragebogenUE2025, Ergebnis2025, FragebogenSE2025
1313
from feedback.models.base import Log, Fachgebiet, FachgebietEmail
1414

1515

@@ -258,6 +258,7 @@ class FragebogenAdmin(admin.ModelAdmin):
258258
admin.site.register(Person, PersonAdmin)
259259
admin.site.register(Veranstaltung, VeranstaltungAdmin)
260260
admin.site.register(Semester, SemesterAdmin)
261+
admin.site.register(FragebogenSE2025, FragebogenAdmin)
261262
admin.site.register(Fragebogen2025, FragebogenAdmin)
262263
admin.site.register(FragebogenUE2025, FragebogenAdmin)
263264
admin.site.register(Ergebnis2025, FragebogenAdmin)
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Generated by Django 5.2.7 on 2025-11-22 23:20
2+
3+
import django.db.models.deletion
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('feedback', '0057_rename_v_7_5_ergebnis2025_v_8_1_and_more'),
11+
]
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name='ErgebnisSE2025',
16+
fields=[
17+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18+
('anzahl', models.PositiveIntegerField()),
19+
('s_didaktik', models.FloatField(blank=True, null=True)),
20+
('s_didaktik_count', models.PositiveIntegerField(default=0)),
21+
('s_organisation', models.FloatField(blank=True, null=True)),
22+
('s_organisation_count', models.PositiveIntegerField(default=0)),
23+
('s_praxisbezug_motivation', models.FloatField(blank=True, null=True)),
24+
('s_praxisbezug_motivation_count', models.PositiveIntegerField(default=0)),
25+
('s_digitale_lehre', models.FloatField(blank=True, null=True)),
26+
('s_digitale_lehre_count', models.PositiveIntegerField(default=0)),
27+
('s_9_5', models.FloatField(blank=True, null=True)),
28+
('s_9_5_count', models.PositiveIntegerField(default=0)),
29+
('s_feedbackpreis', models.FloatField(blank=True, null=True)),
30+
('s_feedbackpreis_count', models.PositiveIntegerField(default=0)),
31+
('gesamt', models.FloatField(blank=True, null=True)),
32+
('gesamt_count', models.PositiveIntegerField(default=0)),
33+
('veranstaltung', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='feedback.veranstaltung')),
34+
],
35+
options={
36+
'verbose_name': 'Seminarergebnis 2025',
37+
'verbose_name_plural': 'Seminarergebnisse 2025',
38+
'ordering': ['veranstaltung'],
39+
},
40+
),
41+
migrations.CreateModel(
42+
name='FragebogenSE2025',
43+
fields=[
44+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
45+
('fach', models.CharField(blank=True, choices=[('inf', 'Informatik'), ('math', 'Mathematik'), ('ce', 'Computational Engineering'), ('ist', 'Informationssystemtechnik'), ('etit', 'Elektrotechnik'), ('psyit', 'Psychologie in IT'), ('winf', 'Wirtschaftsinformatik'), ('sonst', 'etwas anderes')], max_length=5)),
46+
('abschluss', models.CharField(blank=True, choices=[('bsc', 'Bachelor'), ('msc', 'Master'), ('dipl', 'Diplom'), ('lehr', 'Lehramt'), ('sonst', 'anderer Abschluss')], max_length=5)),
47+
('semester', models.CharField(blank=True, choices=[('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9'), ('10', '>=10')], max_length=4)),
48+
('geschlecht', models.CharField(blank=True, choices=[('w', 'weiblich'), ('m', 'männlich'), ('s', 'sonstiges')], max_length=1)),
49+
('studienberechtigung', models.CharField(blank=True, choices=[('d', 'Deutschland'), ('o', 'anderes Land')], max_length=1)),
50+
('male_veranstaltung_gehoert', models.CharField(blank=True, choices=[('1', '1'), ('2', '2'), ('3', '3'), ('4', '<=4')], max_length=1)),
51+
('s_wie_oft_besucht', models.PositiveSmallIntegerField(blank=True, null=True)),
52+
('s_besuch_ueberschneidung', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
53+
('s_besuch_qualitaet', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
54+
('s_besuch_verhaeltnisse', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
55+
('s_besuch_privat', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
56+
('s_besuch_elearning', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
57+
('s_besuch_zufrueh', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
58+
('s_besuch_sonstiges', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
59+
('s_3_1', models.PositiveSmallIntegerField(blank=True, null=True)),
60+
('s_3_2', models.PositiveSmallIntegerField(blank=True, null=True)),
61+
('s_3_3', models.PositiveSmallIntegerField(blank=True, null=True)),
62+
('s_3_4', models.PositiveSmallIntegerField(blank=True, null=True)),
63+
('s_3_6', models.PositiveSmallIntegerField(blank=True, null=True)),
64+
('s_3_7', models.PositiveSmallIntegerField(blank=True, null=True)),
65+
('s_3_8', models.PositiveSmallIntegerField(blank=True, null=True)),
66+
('s_3_9', models.PositiveSmallIntegerField(blank=True, null=True)),
67+
('s_3_10', models.PositiveSmallIntegerField(blank=True, null=True)),
68+
('s_4_1', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
69+
('s_4_2', models.PositiveSmallIntegerField(blank=True, null=True)),
70+
('s_4_3', models.PositiveSmallIntegerField(blank=True, null=True)),
71+
('s_4_4', models.PositiveSmallIntegerField(blank=True, null=True)),
72+
('s_4_5', models.PositiveSmallIntegerField(blank=True, null=True)),
73+
('s_4_6', models.CharField(blank=True, choices=[('0', '0'), ('1', '0.5'), ('2', '1'), ('3', '2'), ('4', '3'), ('5', '4'), ('6', '5'), ('7', '>=5')], max_length=1)),
74+
('s_5_1', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
75+
('s_5_2', models.PositiveSmallIntegerField(blank=True, null=True)),
76+
('s_5_3', models.PositiveSmallIntegerField(blank=True, null=True)),
77+
('s_5_4', models.PositiveSmallIntegerField(blank=True, null=True)),
78+
('s_5_5', models.PositiveSmallIntegerField(blank=True, null=True)),
79+
('s_5_6', models.PositiveSmallIntegerField(blank=True, null=True)),
80+
('s_5_7', models.CharField(blank=True, choices=[('0', '0'), ('1', '0.5'), ('2', '1'), ('3', '2'), ('4', '3'), ('5', '4'), ('6', '5'), ('7', '>=5')], max_length=1)),
81+
('s_6_1', models.PositiveSmallIntegerField(blank=True, null=True)),
82+
('s_6_2', models.PositiveSmallIntegerField(blank=True, null=True)),
83+
('s_6_3', models.PositiveSmallIntegerField(blank=True, null=True)),
84+
('s_6_4', models.PositiveSmallIntegerField(blank=True, null=True)),
85+
('s_6_5', models.PositiveSmallIntegerField(blank=True, null=True)),
86+
('s_6_6', models.PositiveSmallIntegerField(blank=True, null=True)),
87+
('s_6_7', models.PositiveSmallIntegerField(blank=True, null=True)),
88+
('s_6_8', models.PositiveSmallIntegerField(blank=True, null=True)),
89+
('s_6_9', models.PositiveSmallIntegerField(blank=True, null=True)),
90+
('s_6_10', models.PositiveSmallIntegerField(blank=True, null=True)),
91+
('s_7_1', models.PositiveSmallIntegerField(blank=True, null=True)),
92+
('s_7_2', models.PositiveSmallIntegerField(blank=True, null=True)),
93+
('s_9_1', models.CharField(blank=True, choices=[('h', 'zu hoch'), ('n', 'zu niedrig')], max_length=1)),
94+
('s_9_2', models.CharField(blank=True, choices=[('h', 'zu hoch'), ('n', 'zu niedrig')], max_length=1)),
95+
('s_9_3', models.CharField(blank=True, choices=[('h', 'zu hoch'), ('n', 'zu niedrig')], max_length=1)),
96+
('s_9_4', models.PositiveSmallIntegerField(blank=True, null=True)),
97+
('s_9_5', models.PositiveSmallIntegerField(blank=True, null=True)),
98+
('veranstaltung', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='feedback.veranstaltung')),
99+
],
100+
options={
101+
'verbose_name': 'Seminarfragebogen 2025',
102+
'verbose_name_plural': 'Seminarfragebögen 2025',
103+
'ordering': ['semester', 'veranstaltung'],
104+
},
105+
),
106+
]

src/feedback/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from feedback.models.fragebogenUE2020 import FragebogenUE2020
1515
from feedback.models.fragebogen2025 import Fragebogen2025, Ergebnis2025
1616
from feedback.models.fragebogenUE2025 import FragebogenUE2025
17+
from feedback.models.fragebogenSE2025 import FragebogenSE2025
1718
from django.core.exceptions import ObjectDoesNotExist
1819

1920
from django.db.models import Q

0 commit comments

Comments
 (0)