Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/feedback/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@

from feedback.models import Person, Veranstaltung, Semester, \
Mailvorlage, Kommentar, Tutor, BarcodeScanner, BarcodeScannEvent, BarcodeAllowedState, \
EmailEndung, Fragebogen2020, FragebogenUE2020, Ergebnis2020, Fragebogen2016, FragebogenUE2016, Ergebnis2016
EmailEndung, Fragebogen2020, FragebogenUE2020, Ergebnis2020, Fragebogen2016, FragebogenUE2016, Ergebnis2016, \
Fragebogen2025, FragebogenUE2025, Ergebnis2025
from feedback.models.base import Log, Fachgebiet, FachgebietEmail


Expand Down Expand Up @@ -257,6 +258,9 @@ class FragebogenAdmin(admin.ModelAdmin):
admin.site.register(Person, PersonAdmin)
admin.site.register(Veranstaltung, VeranstaltungAdmin)
admin.site.register(Semester, SemesterAdmin)
admin.site.register(Fragebogen2025, FragebogenAdmin)
admin.site.register(FragebogenUE2025, FragebogenAdmin)
admin.site.register(Ergebnis2025, FragebogenAdmin)
admin.site.register(Fragebogen2020, FragebogenAdmin)
admin.site.register(FragebogenUE2020, FragebogenAdmin)
admin.site.register(Ergebnis2020, FragebogenAdmin)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# Generated by Django 5.2.7 on 2025-10-31 23:20

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('feedback', '0054_alter_alternativvorname_vorname_and_more'),
]

operations = [
migrations.AlterField(
model_name='semester',
name='fragebogen',
field=models.CharField(choices=[('2008', 'Fragebogen 2008'), ('2009', 'Fragebogen 2009'), ('2012', 'Fragebogen 2012'), ('2016', 'Fragebogen 2016'), ('2020', 'Fragebogen 2020'), ('2025', 'Fragebogen 2025')], help_text='Verwendete Version des Fragebogens.', max_length=5, verbose_name='Fragebogen'),
),
migrations.CreateModel(
name='Ergebnis2025',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('anzahl', models.PositiveIntegerField()),
('v_didaktik', models.FloatField(blank=True, null=True)),
('v_didaktik_count', models.PositiveIntegerField(default=0)),
('v_organisation', models.FloatField(blank=True, null=True)),
('v_organisation_count', models.PositiveIntegerField(default=0)),
('v_praxisbezug_motivation', models.FloatField(blank=True, null=True)),
('v_praxisbezug_motivation_count', models.PositiveIntegerField(default=0)),
('v_digitale_lehre', models.FloatField(blank=True, null=True)),
('v_digitale_lehre_count', models.PositiveIntegerField(default=0)),
('v_7_5', models.FloatField(blank=True, null=True)),
('v_7_5_count', models.PositiveIntegerField(default=0)),
('v_feedbackpreis', models.FloatField(blank=True, null=True)),
('v_feedbackpreis_count', models.PositiveIntegerField(default=0)),
('ue_didaktik', models.FloatField(blank=True, null=True)),
('ue_didaktik_count', models.PositiveIntegerField(default=0)),
('ue_organisation', models.FloatField(blank=True, null=True)),
('ue_organisation_count', models.PositiveIntegerField(default=0)),
('ue_arbeitsbedingungen', models.FloatField(blank=True, null=True)),
('ue_arbeitsbedingungen_count', models.PositiveIntegerField(default=0)),
('ue_umgang', models.FloatField(blank=True, null=True)),
('ue_umgang_count', models.PositiveIntegerField(default=0)),
('ue_lernerfolg', models.FloatField(blank=True, null=True)),
('ue_lernerfolg_count', models.PositiveIntegerField(default=0)),
('ue_digitale_lehre', models.FloatField(blank=True, null=True)),
('ue_digitale_lehre_count', models.PositiveIntegerField(default=0)),
('ue_feedbackpreis', models.FloatField(blank=True, null=True)),
('ue_feedbackpreis_count', models.PositiveIntegerField(default=0)),
('gesamt', models.FloatField(blank=True, null=True)),
('gesamt_count', models.PositiveIntegerField(default=0)),
('veranstaltung', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='feedback.veranstaltung')),
],
options={
'verbose_name': 'Ergebnis 2025',
'verbose_name_plural': 'Ergebnisse 2025',
'ordering': ['veranstaltung'],
},
),
migrations.CreateModel(
name='Fragebogen2025',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('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)),
('abschluss', models.CharField(blank=True, choices=[('bsc', 'Bachelor'), ('msc', 'Master'), ('dipl', 'Diplom'), ('lehr', 'Lehramt'), ('sonst', 'anderer Abschluss')], max_length=5)),
('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)),
('geschlecht', models.CharField(blank=True, choices=[('w', 'weiblich'), ('m', 'männlich'), ('s', 'sonstiges')], max_length=1)),
('studienberechtigung', models.CharField(blank=True, choices=[('d', 'Deutschland'), ('o', 'anderes Land')], max_length=1)),
('pflichveranstaltung', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('male_veranstaltung_gehoert', models.CharField(blank=True, choices=[('1', '1'), ('2', '2'), ('3', '3'), ('4', '<=4')], max_length=1)),
('pruefung_angetreten', models.CharField(blank=True, choices=[('0', '0'), ('1', '1'), ('2', '2')], max_length=1)),
('v_wie_oft_besucht', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_besuch_ueberschneidung', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('v_besuch_qualitaet', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('v_besuch_verhaeltnisse', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('v_besuch_privat', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('v_besuch_elearning', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('v_besuch_zufrueh', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('v_besuch_sonstiges', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('v_vorwissen_ausreichend', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_technisch_moeglich', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_3_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_3_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_3_3', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_3_4', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_3_6', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_3_7', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_4_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_4_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_4_3', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_4_4', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_4_5', 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)),
('v_4_6', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_4_7', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_5_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_5_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_5_3', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_5_4', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_5_5', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_5_6', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_5_7', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_6_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_6_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_6_3', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_6_4', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_6_5', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_6_6', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_7_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_7_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_8_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('v_8_4', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('veranstaltung', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='feedback.veranstaltung')),
],
options={
'verbose_name': 'Fragebogen 2025',
'verbose_name_plural': 'Fragebögen 2025',
'ordering': ['semester', 'veranstaltung'],
},
),
]
80 changes: 80 additions & 0 deletions src/feedback/migrations/0056_fragebogenue2025.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Generated by Django 5.2.7 on 2025-11-09 22:16

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('feedback', '0055_alter_semester_fragebogen_ergebnis2025_and_more'),
]

operations = [
migrations.CreateModel(
name='FragebogenUE2025',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('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)),
('abschluss', models.CharField(blank=True, choices=[('bsc', 'Bachelor'), ('msc', 'Master'), ('dipl', 'Diplom'), ('lehr', 'Lehramt'), ('sonst', 'anderer Abschluss')], max_length=5)),
('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)),
('geschlecht', models.CharField(blank=True, choices=[('w', 'weiblich'), ('m', 'männlich'), ('s', 'sonstiges')], max_length=1)),
('studienberechtigung', models.CharField(blank=True, choices=[('d', 'Deutschland'), ('o', 'anderes Land')], max_length=1)),
('ue_wie_oft_besucht', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_besuch_ueberschneidung', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('ue_besuch_qualitaet', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('ue_besuch_verhaeltnisse', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('ue_besuch_privat', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('ue_besuch_elearning', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('ue_besuch_zufrueh', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('ue_besuch_sonstiges', models.CharField(blank=True, choices=[('j', 'ja'), ('n', 'nein')], max_length=1)),
('ue_3_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_3_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_3_3', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_3_4', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_3_5', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_3_6', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_3_7', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_3_8', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_3', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_4', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_5', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_6', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_7', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_8', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_9', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_4_10', models.CharField(blank=True, max_length=1)),
('ue_4_11', models.CharField(blank=True, max_length=1)),
('kennziffer', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_3', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_4', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_5', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_6', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_7', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_8', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_9', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_10', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_11', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_12', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_13', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_14', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_15', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_5_16', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_6_1', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_6_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_7_1', 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)),
('ue_7_2', models.PositiveSmallIntegerField(blank=True, null=True)),
('ue_7_3', models.PositiveSmallIntegerField(blank=True, null=True)),
('veranstaltung', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='feedback.veranstaltung')),
],
options={
'verbose_name': 'Übungsfragebogen 2025',
'verbose_name_plural': 'Übungsfragebögen 2025',
'ordering': ['semester', 'veranstaltung'],
},
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 5.2.7 on 2025-11-09 22:18

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('feedback', '0056_fragebogenue2025'),
]

operations = [
migrations.RenameField(
model_name='ergebnis2025',
old_name='v_7_5',
new_name='v_8_1',
),
migrations.RenameField(
model_name='ergebnis2025',
old_name='v_7_5_count',
new_name='v_8_1_count',
),
]
2 changes: 2 additions & 0 deletions src/feedback/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
from feedback.models.fragebogenUE2016 import FragebogenUE2016
from feedback.models.fragebogen2020 import Fragebogen2020, Ergebnis2020
from feedback.models.fragebogenUE2020 import FragebogenUE2020
from feedback.models.fragebogen2025 import Fragebogen2025, Ergebnis2025
from feedback.models.fragebogenUE2025 import FragebogenUE2025
from django.core.exceptions import ObjectDoesNotExist

from django.db.models import Q
Expand Down
2 changes: 1 addition & 1 deletion src/feedback/models/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class Semester(models.Model):
('2012', 'Fragebogen 2012'),
('2016', 'Fragebogen 2016'),
('2020', 'Fragebogen 2020'),

('2025', 'Fragebogen 2025'),
)
SICHTBARKEIT_CHOICES = (
('ADM', _('Administratoren')),
Expand Down
Loading