AlekSIS-App-Untis issueshttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues2023-11-14T20:37:36Zhttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/63Class absences: Lessons with multiple classes are marked as cancelled even if...2023-11-14T20:37:36ZJonathan Wethgit@jonathanweth.deClass absences: Lessons with multiple classes are marked as cancelled even if only one of the classes is absent2023.12 – "Falk"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/66Do not change validity range borders in the past2024-01-10T19:23:01ZJonathan Wethgit@jonathanweth.deDo not change validity range borders in the pasthttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/61Fix 0003_guess_school_id migration2023-11-14T20:53:53ZHangzhi Yuhangzhi@protonmail.comFix 0003_guess_school_id migration```
Applying untis.0003_guess_school_id...Traceback (most recent call last):
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/bin/aleksis-admin", line 8, in <module>
sys.exit(aleksis_cmd())
File "/...```
Applying untis.0003_guess_school_id...Traceback (most recent call last):
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/bin/aleksis-admin", line 8, in <module>
sys.exit(aleksis_cmd())
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/aleksis/core/__main__.py", line 14, in aleksis_cmd
execute_from_command_line(sys.argv)
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line
utility.execute()
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/core/management/__init__.py", line 440, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/core/management/base.py", line 402, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/core/management/base.py", line 448, in execute
output = self.handle(*args, **options)
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/core/management/base.py", line 96, in wrapped
res = handle_func(*args, **kwargs)
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/core/management/commands/migrate.py", line 349, in handle
post_migrate_state = executor.migrate(
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/db/migrations/executor.py", line 135, in migrate
state = self._migrate_all_forwards(
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/db/migrations/executor.py", line 167, in _migrate_all_forwards
state = self.apply_migration(
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/db/migrations/executor.py", line 252, in apply_migration
state = migration.apply(state, schema_editor)
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/db/migrations/migration.py", line 130, in apply
operation.database_forwards(
File "/home/yuha/.cache/pypoetry/virtualenvs/aleksis-app-untis--EKEJ1Yq-py3.10/lib/python3.10/site-packages/django/db/migrations/operations/special.py", line 193, in database_forwards
self.code(from_state.apps, schema_editor)
File "/home/yuha/AlekSIS/apps/official/AlekSIS-App-Untis/aleksis/apps/untis/migrations/0003_guess_school_id.py", line 19, in guess_school_id
get_site_preferences()["untis_mysql__school_id"] = school_id
NameError: name 'school_id' is not defined
```2023.12 – "Falk"https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/68Import consecutive lessons as one lesson with correct slot_start/slot_end2024-03-27T11:27:55ZJonathan Wethgit@jonathanweth.deImport consecutive lessons as one lesson with correct slot_start/slot_endhttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/65Import of supervisions fails sometimes2023-12-06T10:50:01ZJonathan Wethgit@jonathanweth.deImport of supervisions fails sometimesThere are missing database constraintsThere are missing database constraints2023.12 – "Falk"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/38"Nicht drucken" in Untis does not work2022-04-10T13:05:13ZNik | Klampfradlerdominik.george@teckids.org"Nicht drucken" in Untis does not workSetting "Nicht drucken" in Untis does not cause the substitution to be removed from the planSetting "Nicht drucken" in Untis does not cause the substitution to be removed from the planhttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/17Potentially optimisable database behaviour2020-12-23T12:21:53ZNik | Klampfradlerdominik.george@teckids.orgPotentially optimisable database behaviourUsing the PostgreSQL Workload Analyser, the following queries have been identified that could potentially be optimised.
## Run too often
```sql
SELECT "chronos_lessonperiod"."id", "chronos_lessonperiod"."site_id", "chronos_lessonperiod...Using the PostgreSQL Workload Analyser, the following queries have been identified that could potentially be optimised.
## Run too often
```sql
SELECT "chronos_lessonperiod"."id", "chronos_lessonperiod"."site_id", "chronos_lessonperiod"."extended_data", "chronos_lessonperiod"."lesson_id", "chronos_lessonperiod"."period_id", "chronos_lessonperiod"."room_id", "chronos_lesson"."id", "chronos_lesson"."site_id", "chronos_lesson"."extended_data", "chronos_lesson"."validity_id", "chronos_lesson"."subject_id", "chronos_validityrange"."id", "chronos_validityrange"."site_id", "chronos_validityrange"."extended_data", "chronos_validityrange"."school_term_id", "chronos_validityrange"."name", "chronos_validityrange"."date_start", "chronos_validityrange"."date_end", "core_schoolterm"."id", "core_schoolterm"."site_id", "core_schoolterm"."extended_data", "core_schoolterm"."name", "core_schoolterm"."date_start", "core_schoolterm"."date_end", "chronos_subject"."id", "chronos_subject"."site_id", "chronos_subject"."extended_data", "chronos_subject"."short_name", "chronos_subject"."name", "chronos_subject"."colour_fg", "chronos_subject"."colour_bg", "chronos_timeperiod"."id", "chronos_timeperiod"."site_id", "chronos_timeperiod"."extended_data", "chronos_timeperiod"."validity_id", "chronos_timeperiod"."weekday", "chronos_timeperiod"."period", "chronos_timeperiod"."time_start", "chronos_timeperiod"."time_end", "chronos_room"."id", "chronos_room"."site_id", "chronos_room"."extended_data", "chronos_room"."short_name", "chronos_room"."name" FROM "chronos_lessonperiod" INNER JOIN "chronos_lesson" ON ("chronos_lessonperiod"."lesson_id" = "chronos_lesson"."id") LEFT OUTER JOIN "chronos_validityrange" ON ("chronos_lesson"."validity_id" = "chronos_validityrange"."id") LEFT OUTER JOIN "core_schoolterm" ON ("chronos_validityrange"."school_term_id" = "core_schoolterm"."id") INNER JOIN "chronos_subject" ON ("chronos_lesson"."subject_id" = "chronos_subject"."id") INNER JOIN "chronos_timeperiod" ON ("chronos_lessonperiod"."period_id" = "chronos_timeperiod"."id") LEFT OUTER JOIN "chronos_room" ON ("chronos_lessonperiod"."room_id" = "chronos_room"."id") WHERE ("chronos_lessonperiod"."site_id" = $1 AND "chronos_lessonperiod"."lesson_id" = $2 AND ("chronos_lessonperiod"."extended_data" -> $3) = $4) ORDER BY "chronos_validityrange"."date_start" ASC, "chronos_timeperiod"."weekday" ASC, "chronos_timeperiod"."period" ASC, "chronos_subject"."name" ASC, "chronos_subject"."short_name" ASC LIMIT $5
```
```sql
SELECT "chronos_lesson"."id", "chronos_lesson"."site_id", "chronos_lesson"."extended_data", "chronos_lesson"."validity_id", "chronos_lesson"."subject_id" FROM "chronos_lesson" INNER JOIN "chronos_validityrange" ON ("chronos_lesson"."validity_id" = "chronos_validityrange"."id") INNER JOIN "chronos_subject" ON ("chronos_lesson"."subject_id" = "chronos_subject"."id") WHERE ("chronos_lesson"."site_id" = $1 AND ("chronos_lesson"."extended_data" -> $2) = $3 AND ("chronos_lesson"."extended_data" -> $4) = $5 AND "chronos_lesson"."validity_id" = $6) ORDER BY "chronos_validityrange"."date_start" ASC, "chronos_subject"."name" ASC, "chronos_subject"."short_name" ASC LIMIT $7
```
@hansegucker Can you please try to identify the code locations and annotate them here?https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/31Support transfers2022-01-07T11:16:19ZJonathan Wethgit@jonathanweth.deSupport transfersUntis has a model called `Transfer`. Some substitutions have a foreign key to a `Transfer` object. In these cases, the substituted lesson is moved to a new period. This has to be reflected by substitutions and extra lessons.Untis has a model called `Transfer`. Some substitutions have a foreign key to a `Transfer` object. In these cases, the substituted lesson is moved to a new period. This has to be reflected by substitutions and extra lessons.