AlekSIS-App-Untis issueshttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues2024-02-23T16:10:14Zhttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/64Set icons for active menu entries2024-02-23T16:10:14ZJonathan Wethgit@jonathanweth.deSet icons for active menu entries2023.12 – "Falk"https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/62Adapt for SPA2023-02-01T21:11:20ZHangzhi Yuhangzhi@protonmail.comAdapt for SPARemove unused menu file & bump versionRemove unused menu file & bump version2023.6 – "Dewey"Hangzhi Yuhangzhi@protonmail.comHangzhi Yuhangzhi@protonmail.comhttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/60Room model moved to core2023-01-24T21:29:59ZTom Teichlertom.teichler@teckids.orgRoom model moved to core2023.6 – "Dewey"Tom Teichlertom.teichler@teckids.orgTom Teichlertom.teichler@teckids.orghttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/59Support overlapping terms2022-12-09T11:51:33ZNik | Klampfradlerdominik.george@teckids.orgSupport overlapping termsUntis requires all periods to end at the same date as the "parent period". Our current requirement is that periods that lose validity have an end date set to a date before the next period, which is reasonable. But Untis seems to rely on ...Untis requires all periods to end at the same date as the "parent period". Our current requirement is that periods that lose validity have an end date set to a date before the next period, which is reasonable. But Untis seems to rely on the end date being the same as the root period when calculating various statistics.Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/57Importing exams broken due to missing time period2022-10-23T09:02:56ZNik | Klampfradlerdominik.george@teckids.orgImporting exams broken due to missing time period```plain
Traceback (most recent call last):
File "/usr/local/bin/aleksis-admin", line 8, in <module>
sys.exit(aleksis_cmd())
File "/usr/local/lib/python3.10/dist-packages/aleksis/core/__main__.py", line 14, in aleksis_cmd
exe...```plain
Traceback (most recent call last):
File "/usr/local/bin/aleksis-admin", line 8, in <module>
sys.exit(aleksis_cmd())
File "/usr/local/lib/python3.10/dist-packages/aleksis/core/__main__.py", line 14, in aleksis_cmd
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 398, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.10/dist-packages/aleksis/apps/untis/management/commands/untis_import_mysql.py", line 30, in handle
command.run(background=background, version=version)
File "/usr/local/lib/python3.10/dist-packages/aleksis/apps/untis/commands.py", line 46, in run
_untis_import_mysql(cls.get_terms(), school_id=school_id, version=version)
File "/usr/local/lib/python3.10/dist-packages/aleksis/apps/untis/util/mysql/main.py", line 99, in untis_import_mysql
import_exams(validity_range, time_periods_ref, subjects_ref, teachers_ref, rooms_ref)
File "/usr/local/lib/python3.10/dist-packages/aleksis/apps/untis/util/mysql/importers/exams.py", line 93, in import_exams
period = time_periods_ref[weekday][period]
KeyError: 0
```
My best guess is that this happens when an exam is planned for a time period that does not have a regular lesson in the plan.2023.6 – "Dewey"https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/53guess_school_id migration does not work properly coming from Untis 2.1.32022-09-10T02:24:04ZNik | Klampfradlerdominik.george@teckids.orgguess_school_id migration does not work properly coming from Untis 2.1.3```plain
File "/usr/local/lib/python3.9/dist-packages/django/db/migrations/operations/special.py", line 190, in database_forwards
self.code(from_state.apps, schema_editor)
File "/usr/local/lib/python3.9/dist-packages/aleksis/apps...```plain
File "/usr/local/lib/python3.9/dist-packages/django/db/migrations/operations/special.py", line 190, in database_forwards
self.code(from_state.apps, schema_editor)
File "/usr/local/lib/python3.9/dist-packages/aleksis/apps/untis/migrations/0003_guess_school_id.py", line 16, in guess_school_id
school_id = vr.school_id_untis
AttributeError: 'NoneType' object has no attribute 'school_id_untis'
```Nik | Klampfradlerdominik.george@teckids.orgNik | Klampfradlerdominik.george@teckids.orghttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/56Use teachers only as fallback for course group matching2022-08-25T15:19:06ZJonathan Wethgit@jonathanweth.deUse teachers only as fallback for course group matching2023.6 – "Dewey"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/55Import fails if lesson has no teacher2022-08-13T10:29:50ZJonathan Wethgit@jonathanweth.deImport fails if lesson has no teacher2023.6 – "Dewey"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/54Importing lessons fails due to wrong reg ex2022-08-13T10:29:50ZJonathan Wethgit@jonathanweth.deImporting lessons fails due to wrong reg ex`46~0~92~45;~45;~12~11~0~~B~~~~~~n~~;18;~"Wp_Eb"~~34~0~67900~0~0~~21700,45~0~92~45;~45;~0~0~19000~~~~~~~~n~~;18;~"Wp_Eb"~~34~0~67900~0~0~~0` is not correctly parsed into
`46~0~92~45;~45;~12~11~0~~B~~~~~~n~~;18;~"Wp_Eb"~~34~0~67900~0~0~~...`46~0~92~45;~45;~12~11~0~~B~~~~~~n~~;18;~"Wp_Eb"~~34~0~67900~0~0~~21700,45~0~92~45;~45;~0~0~19000~~~~~~~~n~~;18;~"Wp_Eb"~~34~0~67900~0~0~~0` is not correctly parsed into
`46~0~92~45;~45;~12~11~0~~B~~~~~~n~~;18;~"Wp_Eb"~~34~0~67900~0~0~~21700` and `45~0~92~45;~45;~0~0~19000~~~~~~~~n~~;18;~"Wp_Eb"~~34~0~67900~0~0~~0` but in much shorter parts.
The correct reg ex would be `((?:\"[^\"]+\"|[^,\"]+)*),?`.2023.6 – "Dewey"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/5Import exams/announcement from calendar via MySQL2022-06-05T10:55:57ZJonathan Wethgit@jonathanweth.deImport exams/announcement from calendar via MySQLOutsourced from #4Outsourced from #42022.6 — "Cohn"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.de2022-04-17https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/48Absences of classes are not displayed2022-06-04T14:12:16ZNik | Klampfradlerdominik.george@teckids.orgAbsences of classes are not displayedMarking classes as absent does not show up in any plan.
(Probably goes for rooms as well)Marking classes as absent does not show up in any plan.
(Probably goes for rooms as well)2022.6 — "Cohn"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/52Importing lesson fails with , in subject name2022-05-24T19:10:40ZNik | Klampfradlerdominik.george@teckids.orgImporting lesson fails with , in subject name```plain
Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/celery/app/trace.py", line 451, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/celery/app/trac...```plain
Traceback (most recent call last):
File "/usr/local/lib/python3.9/dist-packages/celery/app/trace.py", line 451, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/celery/app/trace.py", line 734, in __protected_call__
return self.run(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/aleksis/apps/untis/tasks.py", line 11, in _task
import_command.run(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/aleksis/apps/untis/commands.py", line 38, in run
_untis_import_mysql(cls.get_terms(), version=version)
File "/usr/local/lib/python3.9/dist-packages/aleksis/apps/untis/util/mysql/main.py", line 60, in untis_import_mysql
import_lessons(
File "/usr/local/lib/python3.9/dist-packages/aleksis/apps/untis/util/mysql/importers/lessons.py", line 98, in import_lessons
class_ids = untis_split_third(el[17], conv=int)
IndexError: list index out of range
```
`LessonElement2` begins with: `49~0~302~7r;~0;~0~0~175608~~~~~"Freiraum: Naturwissenschaften, Fokus Physik"~"Nawi"~~n~~;11;12;13;14;15;16;17;`
The subject name contains a `,`, which is used for splitting time data in the importer, so the entry is cut off here.
Probably, the parse should use a CSV parser for splitting in all cases instead of `split`.2022.6 — "Cohn"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/49Import should respect SCHOOL_ID2022-04-19T14:57:55ZJonathan Wethgit@jonathanweth.deImport should respect SCHOOL_IDObviously, Untis MultiUser is multi-tenant. Therefore it should be possible to configure from which school the data should be imported.Obviously, Untis MultiUser is multi-tenant. Therefore it should be possible to configure from which school the data should be imported.2022.6 — "Cohn"Nik | Klampfradlerdominik.george@teckids.orgNik | Klampfradlerdominik.george@teckids.orghttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/50UnboundLocalError: local variable 'match' referenced before assignment2022-04-18T22:38:28ZJonathan Wethgit@jonathanweth.deUnboundLocalError: local variable 'match' referenced before assignment```
Traceback (most recent call last):
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/.venv/bin/aleksis-admin", line 8, in <module>
sys.exit(aleksis_cmd())
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-...```
Traceback (most recent call last):
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/.venv/bin/aleksis-admin", line 8, in <module>
sys.exit(aleksis_cmd())
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/.venv/lib/python3.10/site-packages/aleksis/core/__main__.py", line 14, in aleksis_cmd
execute_from_command_line(sys.argv)
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/.venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/.venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/.venv/lib/python3.10/site-packages/django/core/management/base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/.venv/lib/python3.10/site-packages/django/core/management/base.py", line 398, in execute
output = self.handle(*args, **options)
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/aleksis/apps/untis/management/commands/untis_import_mysql.py", line 30, in handle
command.run(background=background, version=version)
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/aleksis/apps/untis/commands.py", line 44, in run
_untis_import_mysql(cls.get_terms(), school_id=school_id, version=version)
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/aleksis/apps/untis/util/mysql/main.py", line 65, in untis_import_mysql
import_lessons(
File "/home/wethjo/dev/AlekSIS/apps/official/AlekSIS-App-Untis/aleksis/apps/untis/util/mysql/importers/lessons.py", line 150, in import_lessons
not match
UnboundLocalError: local variable 'match' referenced before assignment
```Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/51Queries for current_{next,future} are still broken2022-04-18T22:08:33ZJonathan Wethgit@jonathanweth.deQueries for current_{next,future} are still brokenBroken due to my own incompetence to test with fitting databases – it just uses all terms.Broken due to my own incompetence to test with fitting databases – it just uses all terms.2022.6 — "Cohn"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/43Import terms: Calling QuerySet.filter() after union() is not supported2022-04-09T18:06:54ZNik | Klampfradlerdominik.george@teckids.orgImport terms: Calling QuerySet.filter() after union() is not supportedThis happens in the version filter.This happens in the version filter.2022.6 — "Cohn"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/41Create match failures as data checks2022-03-31T19:14:09ZNik | Klampfradlerdominik.george@teckids.orgCreate match failures as data checksWe should make import errors (group name mismatch, etc.) better handleable for admins.
* Introduce a preference defining which kinds of data are expected to be seeded by Untis (i.e. expected to not generate a match on import, but create...We should make import errors (group name mismatch, etc.) better handleable for admins.
* Introduce a preference defining which kinds of data are expected to be seeded by Untis (i.e. expected to not generate a match on import, but create a new obejct)
* For all other kinds of data, if an object is newly created, create a data check result wit ha solve option to select another object for the match2022.6 — "Cohn"Nik | Klampfradlerdominik.george@teckids.orgNik | Klampfradlerdominik.george@teckids.orghttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/44Use iconify for Material Icons instead of icon font2022-03-31T09:50:42ZJonathan Wethgit@jonathanweth.deUse iconify for Material Icons instead of icon fontJulianJulianhttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/47Lesson periods are deleted and then cause data problems2022-03-22T18:54:56ZJonathan Wethgit@jonathanweth.deLesson periods are deleted and then cause data problemsCurrently, if the number of lesson periods for a lesson changes, all lesson periods of this lesson will be recreated. This will cause a potential data loss e. g. in Alsijil. Instead of deleting, we should update them in a sufficient way.Currently, if the number of lesson periods for a lesson changes, all lesson periods of this lesson will be recreated. This will cause a potential data loss e. g. in Alsijil. Instead of deleting, we should update them in a sufficient way.2022.6 — "Cohn"Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/issues/46Fuzzy matching of course groups2022-03-20T14:55:58ZNik | Klampfradlerdominik.george@teckids.orgFuzzy matching of course groupsAdd a mechanism that, if no 100% match of course groups is found, tries to find exactly one course group with a subset of the groups associated with the lesson (and adds a data check result after linking).Add a mechanism that, if no 100% match of course groups is found, tries to find exactly one course group with a subset of the groups associated with the lesson (and adds a data check result after linking).Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.de