AlekSIS-Core issueshttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues2024-03-27T02:05:53Zhttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/995Re-evaluate querying behaviour on error 500 & offline2024-03-27T02:05:53ZHangzhi Yuhangzhi@protonmail.comRe-evaluate querying behaviour on error 500 & offlineApparently, the offline detection feature sometimes doesn't work properly or is triggered in cases in which it should not be triggered; and queries failing for reasons that are unlikely to change (permission-related stuff, for example) a...Apparently, the offline detection feature sometimes doesn't work properly or is triggered in cases in which it should not be triggered; and queries failing for reasons that are unlikely to change (permission-related stuff, for example) are retried several (5?) times with only a short debounce time span.https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/987ForeignKeyField's overriding of the item slot destroys multiple prop2024-03-14T18:52:20ZJulianForeignKeyField's overriding of the item slot destroys multiple propWhen trying to add `multiple` to a foreignkeyfield, it doesn't work because the item slot is overridden (at least that seems to be the problem). Probably need to rewrite itWhen trying to add `multiple` to a foreignkeyfield, it doesn't work because the item slot is overridden (at least that seems to be the problem). Probably need to rewrite ithttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/986Sort menu2024-03-26T10:52:23ZJonathan Wethgit@jonathanweth.deSort menu~~- [ ] Rename "People" to "Persons and Groups"~~
- [ ] Move "Invite person" to persons page
- [ ] Drop "Groups and child groups" at all
- [ ] New menu item "Data management" with Rooms, Announcements, Holidays, and School Terms~~- [ ] Rename "People" to "Persons and Groups"~~
- [ ] Move "Invite person" to persons page
- [ ] Drop "Groups and child groups" at all
- [ ] New menu item "Data management" with Rooms, Announcements, Holidays, and School TermsLukas WeicheltLukas Weichelthttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/980[Calendar] Make first day of week configurable or dependent on locale2024-02-24T17:32:05ZJulian[Calendar] Make first day of week configurable or dependent on localeIn germany the first day of the week is monday, why does my aleksis calendar start on a sunday, even when german locale is set? If this is not easily done using the locale, there should be a preference somewhere to change this behaviourIn germany the first day of the week is monday, why does my aleksis calendar start on a sunday, even when german locale is set? If this is not easily done using the locale, there should be a preference somewhere to change this behaviourhttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/974Allow selecting rooms as locations for personal events2024-02-23T14:58:29ZJonathan Wethgit@jonathanweth.deAllow selecting rooms as locations for personal eventshttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/968duplicate key value violates unique constraint "core_personpreferencemodel_se...2024-02-20T17:00:50Zmagicfelixduplicate key value violates unique constraint "core_personpreferencemodel_section_name_5beac7ca_uniq"Steps to reproduce (tested with Core 4.0.0.dev3)
1. Create at least two persons and enter dates of birth
2. Try to view calender with birthdays enabled
Either I don't understand how `PersonPreferenceModel` is supposed to work, or the u...Steps to reproduce (tested with Core 4.0.0.dev3)
1. Create at least two persons and enter dates of birth
2. Try to view calender with birthdays enabled
Either I don't understand how `PersonPreferenceModel` is supposed to work, or the unique contstraint (section, name) is just wrong.
AFAIU the constraint should be (section, name, instance).
Error message:
```
2024-01-29 13:40:30,109 ERROR django.request[14341]: Internal Server Error: /graphql/
Traceback (most recent call last):
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 155, in get_db_pref
pref = self.queryset.get(section=section, name=name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 637, in get
raise self.model.DoesNotExist(
aleksis.core.models.PersonPreferenceModel.DoesNotExist: PersonPreferenceModel matching query does not exist.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 916, in get_or_create
return self.get(**kwargs), False
^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 637, in get
raise self.model.DoesNotExist(
aleksis.core.models.PersonPreferenceModel.DoesNotExist: PersonPreferenceModel matching query does not exist.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django_prometheus/db/common.py", line 69, in execute
return super().execute(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "core_personpreferencemodel_section_name_5beac7ca_uniq"
DETAIL: Key (section, name)=(notification, addressing_name_format) already exists.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/views/decorators/csrf.py", line 56, in wrapper_view
return view_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/views/generic/base.py", line 104, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/utils/decorators.py", line 46, in _wrapper
return bound_method(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/utils/decorators.py", line 134, in _wrapper_view
response = view_func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/graphene_django/views.py", line 178, in dispatch
responses = [self.get_response(request, entry) for entry in data]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/graphene_django/views.py", line 178, in <listcomp>
responses = [self.get_response(request, entry) for entry in data]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/graphene_django/views.py", line 205, in get_response
execution_result = self.execute_graphql_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/src/aleksis/apps/official/AlekSIS-Core/aleksis/core/views.py", line 1466, in execute_graphql_request
raise error
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/graphql/execution/execute.py", line 540, in execute_field
completed = self.complete_value(
^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/graphql/execution/execute.py", line 607, in complete_value
raise result
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/graphene_django/debug/middleware.py", line 65, in resolve
result = next(root, info, **args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/src/aleksis/apps/official/AlekSIS-Core/aleksis/core/schema/calendar.py", line 71, in resolve_events
feed = root.create_feed(info.context, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/src/aleksis/apps/official/AlekSIS-Core/aleksis/core/mixins.py", line 654, in create_feed
cls.create_event(reference_object, feed, request=request, params=params)
File "/home/felix/src/aleksis/apps/official/AlekSIS-Core/aleksis/core/mixins.py", line 617, in create_event
field_value = cls.get_event_field_value(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/src/aleksis/apps/official/AlekSIS-Core/aleksis/core/mixins.py", line 695, in get_event_field_value
return getattr(cls, method_name)(reference_object, request=request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/src/aleksis/apps/official/AlekSIS-Core/aleksis/core/models.py", line 1597, in value_title
return _("{}'s birthday").format(reference_object.addressing_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/src/aleksis/apps/official/AlekSIS-Core/aleksis/core/models.py", line 282, in addressing_name
if self.preferences["notification__addressing_name_format"] == "last_first":
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 34, in __getitem__
return self.get(key)
^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 149, in get
db_pref = self.get_db_pref(section=section, name=name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 158, in get_db_pref
pref = self.create_db_pref(
^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 196, in create_db_pref
db_pref, created = self.model.objects.get_or_create(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 923, in get_or_create
return self.create(**params), True
^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 658, in create
obj.save(force_insert=True, using=self.db)
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/dynamic_preferences/models.py", line 77, in save
super(BasePreferenceModel, self).save(**kwargs)
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/base.py", line 814, in save
self.save_base(
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/base.py", line 877, in save_base
updated = self._save_table(
^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/base.py", line 1020, in _save_table
results = self._do_insert(
^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/base.py", line 1061, in _do_insert
return manager._insert(
^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 1805, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/cachalot/monkey_patch.py", line 37, in inner
return original(compiler, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/cachalot/monkey_patch.py", line 113, in inner
return original(write_compiler, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/models/sql/compiler.py", line 1822, in execute_sql
cursor.execute(sql, params)
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/graphene_django/debug/sql/tracking.py", line 153, in execute
return self._record(self.cursor.execute, sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/graphene_django/debug/sql/tracking.py", line 99, in _record
return method(sql, params)
^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/backends/utils.py", line 102, in execute
return super().execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/cachalot/monkey_patch.py", line 137, in inner
return original(cursor, sql, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/backends/utils.py", line 67, in execute
return self._execute_with_wrappers(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/backends/utils.py", line 80, in _execute_with_wrappers
return executor(sql, params, many, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute
with self.db.wrap_database_errors:
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django/db/backends/utils.py", line 89, in _execute
return self.cursor.execute(sql, params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-VLqlbO2E-py3.11/lib/python3.11/site-packages/django_prometheus/db/common.py", line 69, in execute
return super().execute(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
graphql.error.graphql_error.GraphQLError: duplicate key value violates unique constraint "core_personpreferencemodel_section_name_5beac7ca_uniq"
DETAIL: Key (section, name)=(notification, addressing_name_format) already exists.
GraphQL request:10:7
9 | activated
10 | events(start: $start, end: $end, params: $params) {
| ^
11 | name
```Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/963Make GraphQL mutations raise meaningful errors2024-02-20T17:22:22ZHangzhi Yuhangzhi@protonmail.comMake GraphQL mutations raise meaningful errorsevaluate the use of `full_clean` (https://docs.djangoproject.com/en/5.0/ref/models/instances/#validating-objects) in combination with `graphene_object_cud`evaluate the use of `full_clean` (https://docs.djangoproject.com/en/5.0/ref/models/instances/#validating-objects) in combination with `graphene_object_cud`Jonathan Wethgit@jonathanweth.deJonathan Wethgit@jonathanweth.dehttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/962New frontend sometimes crashes my browser2024-01-10T19:46:51ZJulianNew frontend sometimes crashes my browserAfter having a running instance open in a browser for some time, the browser crashes.After having a running instance open in a browser for some time, the browser crashes.https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/960Its possible to create personal events that start after their end2023-12-16T13:45:59ZJulianIts possible to create personal events that start after their endBoth backend and frontend need chanegesBoth backend and frontend need chaneges2023.12 – "Falk"https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/957Something loads personal preferences without person2023-12-09T12:10:47ZNik | Klampfradlerdominik.george@teckids.orgSomething loads personal preferences without person```plain
2023-12-09 12:08:27,002 ERROR django.request[14708]: Internal Server Error: /graphql/
Traceback (most recent call last):
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dyn...```plain
2023-12-09 12:08:27,002 ERROR django.request[14708]: Internal Server Error: /graphql/
Traceback (most recent call last):
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 155, in get_db_pref
pref = self.queryset.get(section=section, name=name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 637, in get
raise self.model.DoesNotExist(
aleksis.core.models.PersonPreferenceModel.DoesNotExist: PersonPreferenceModel matching query does not exist.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 916, in get_or_create
return self.get(**kwargs), False
^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 637, in get
raise self.model.DoesNotExist(
aleksis.core.models.PersonPreferenceModel.DoesNotExist: PersonPreferenceModel matching query does not exist.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/views/decorators/csrf.py", line 56, in wrapper_view
return view_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/views/generic/base.py", line 104, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/utils/decorators.py", line 46, in _wrapper
return bound_method(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/utils/decorators.py", line 134, in _wrapper_view
response = view_func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphene_django/views.py", line 178, in dispatch
responses = [self.get_response(request, entry) for entry in data]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphene_django/views.py", line 178, in <listcomp>
responses = [self.get_response(request, entry) for entry in data]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphene_django/views.py", line 205, in get_response
execution_result = self.execute_graphql_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/AlekSIS/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/views.py", line 1539, in execute_graphql_request
raise error
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphql/execution/execute.py", line 540, in execute_field
completed = self.complete_value(
^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphql/execution/execute.py", line 607, in complete_value
raise result
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphene_django/debug/middleware.py", line 65, in resolve
result = next(root, info, **args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/AlekSIS/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/schema/calendar.py", line 96, in resolve_activated
return root.get_activated(info.context.user.person)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/AlekSIS/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/mixins.py", line 801, in get_activated
return cls.name in person.preferences["calendar__activated_calendars"]
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 34, in __getitem__
return self.get(key)
^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 149, in get
db_pref = self.get_db_pref(section=section, name=name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 158, in get_db_pref
pref = self.create_db_pref(
^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 196, in create_db_pref
db_pref, created = self.model.objects.get_or_create(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 923, in get_or_create
return self.create(**params), True
^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 658, in create
obj.save(force_insert=True, using=self.db)
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/models.py", line 77, in save
super(BasePreferenceModel, self).save(**kwargs)
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/base.py", line 778, in save
self._prepare_related_fields_for_save(operation_name="save")
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/base.py", line 1093, in _prepare_related_fields_for_save
raise ValueError(
graphql.error.graphql_error.GraphQLError: save() prohibited to prevent data loss due to unsaved related object 'instance'.
GraphQL request:10:7
9 | color
10 | activated
| ^
11 | __typename
2023-12-09 12:08:27,002 ERROR django.request[14708]: Internal Server Error: /graphql/
Traceback (most recent call last):
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 155, in get_db_pref
pref = self.queryset.get(section=section, name=name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 637, in get
raise self.model.DoesNotExist(
aleksis.core.models.PersonPreferenceModel.DoesNotExist: PersonPreferenceModel matching query does not exist.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 916, in get_or_create
return self.get(**kwargs), False
^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 637, in get
raise self.model.DoesNotExist(
aleksis.core.models.PersonPreferenceModel.DoesNotExist: PersonPreferenceModel matching query does not exist.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/views/decorators/csrf.py", line 56, in wrapper_view
return view_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/views/generic/base.py", line 104, in view
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/utils/decorators.py", line 46, in _wrapper
return bound_method(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/utils/decorators.py", line 134, in _wrapper_view
response = view_func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphene_django/views.py", line 178, in dispatch
responses = [self.get_response(request, entry) for entry in data]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphene_django/views.py", line 178, in <listcomp>
responses = [self.get_response(request, entry) for entry in data]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphene_django/views.py", line 205, in get_response
execution_result = self.execute_graphql_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/AlekSIS/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/views.py", line 1539, in execute_graphql_request
raise error
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphql/execution/execute.py", line 540, in execute_field
completed = self.complete_value(
^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphql/execution/execute.py", line 607, in complete_value
raise result
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/graphene_django/debug/middleware.py", line 65, in resolve
result = next(root, info, **args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/AlekSIS/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/schema/calendar.py", line 96, in resolve_activated
return root.get_activated(info.context.user.person)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/AlekSIS/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/mixins.py", line 801, in get_activated
return cls.name in person.preferences["calendar__activated_calendars"]
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 34, in __getitem__
return self.get(key)
^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 149, in get
db_pref = self.get_db_pref(section=section, name=name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 158, in get_db_pref
pref = self.create_db_pref(
^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/managers.py", line 196, in create_db_pref
db_pref, created = self.model.objects.get_or_create(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 923, in get_or_create
return self.create(**params), True
^^^^^^^^^^^^^^^^^^^^^
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 658, in create
obj.save(force_insert=True, using=self.db)
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/dynamic_preferences/models.py", line 77, in save
super(BasePreferenceModel, self).save(**kwargs)
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/base.py", line 778, in save
self._prepare_related_fields_for_save(operation_name="save")
File "/home/nik/.cache/pypoetry/virtualenvs/aleksis-core-rYwtuYiE-py3.11/lib/python3.11/site-packages/django/db/models/base.py", line 1093, in _prepare_related_fields_for_save
raise ValueError(
graphql.error.graphql_error.GraphQLError: save() prohibited to prevent data loss due to unsaved related object 'instance'.
GraphQL request:10:7
9 | color
10 | activated
| ^
11 | __typename
filters={}
```2023.12 – "Falk"https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/948Error handling with personal event creation is not usable2023-12-26T12:17:48ZJonathan Wethgit@jonathanweth.deError handling with personal event creation is not usableAfter just adding a participating person and clicking on save, there is no useful error message in the frontend, the button is in an infinite loading state.
```
This is not a valid error handling. Please also check whether other parts o...After just adding a participating person and clicking on save, there is no useful error message in the frontend, the button is in an infinite loading state.
```
This is not a valid error handling. Please also check whether other parts of the personal event save logic are broken.2023.12 – "Falk"Hangzhi Yuhangzhi@protonmail.comHangzhi Yuhangzhi@protonmail.comhttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/947"Password was changed" dialouge only appears after another ui navigation2023-11-25T10:40:52ZPinguinpinguin@lagerfeuerhacker.de"Password was changed" dialouge only appears after another ui navigationIf I change my password in an AlekSIS-Instance, I have to do one other navigation in the UI before the "Password was changed" dialouge appears.If I change my password in an AlekSIS-Instance, I have to do one other navigation in the UI before the "Password was changed" dialouge appears.https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/921DateField doesn't set value on click occasionally2024-02-24T12:56:37ZHangzhi Yuhangzhi@protonmail.comDateField doesn't set value on click occasionallyWhen clicking on a day in the `DateField` select menu, sometimes, the menu just closes and no date is set. It does not seem that there is some way to enforce that faulty behaviour.When clicking on a day in the `DateField` select menu, sometimes, the menu just closes and no date is set. It does not seem that there is some way to enforce that faulty behaviour.2023.12 – "Falk"JulianJulianhttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/907Allow (manual) updating of ForeignKeyField content2023-11-14T20:22:43ZHangzhi Yuhangzhi@protonmail.comAllow (manual) updating of ForeignKeyField contentWhen new items contained in an already opened ForeignKeyField are added, they are not displayedWhen new items contained in an already opened ForeignKeyField are added, they are not displayed2023.12 – "Falk"https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/903Correctly determine whether routes are active2023-08-14T12:48:36ZJulianCorrectly determine whether routes are activeSometimes subroutes of routes are active (e.g. we have a route with `timetable/` and one `timetable/5/` and in both cases the item in the sidenav should be active. Maybe this code snippet helps (it works for the list-group, but not for t...Sometimes subroutes of routes are active (e.g. we have a route with `timetable/` and one `timetable/5/` and in both cases the item in the sidenav should be active. Maybe this code snippet helps (it works for the list-group, but not for the list-item-group, as this functions different, but maybe the latter one isn't needed?):
```
:value="$route.matched.some(route => route.name === menuItem.name)"
```https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/901Editing objects may lead to disappearance of relations to model instances man...2023-12-08T12:13:12ZHangzhi Yuhangzhi@protonmail.comEditing objects may lead to disappearance of relations to model instances managed by appsDue to model instances managed by apps not being displayed in the frontend, they cannot be selected in the frontend as objects to establish a relation to (e. g. Groups with GroupType "School class", managed by the Cursus app). When editi...Due to model instances managed by apps not being displayed in the frontend, they cannot be selected in the frontend as objects to establish a relation to (e. g. Groups with GroupType "School class", managed by the Cursus app). When editing the aforementioned object afterwards, the editing frontend does not contain these managed instances, so that the field is emptied on a save.2023.12 – "Falk"https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/900Can't create OAuthApplication due to not-null violation2023-11-14T20:21:44ZmagicfelixCan't create OAuthApplication due to not-null violation`django.db.utils.IntegrityError: null value in column "post_logout_redirect_uris" of relation "core_oauthapplication" violates not-null constraint``django.db.utils.IntegrityError: null value in column "post_logout_redirect_uris" of relation "core_oauthapplication" violates not-null constraint`2023.12 – "Falk"https://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/898Input fields in forms should use same style as in Plank2023-12-13T18:32:39ZJonathan Wethgit@jonathanweth.deInput fields in forms should use same style as in Plankincluding option for prepending iconsincluding option for prepending icons2023.12 – "Falk"JulianJulianhttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/891Performance improvements for calendar2023-12-09T15:31:28ZNik | Klampfradlerdominik.george@teckids.orgPerformance improvements for calendar- [x] DO not load calendar feeds that are disabled
- [x] Do not load all calendar feeds when loading calendar view
- [ ] Pass on calendar client request date range as far dow nas possible, e.g. to `Person` query for birthday feed- [x] DO not load calendar feeds that are disabled
- [x] Do not load all calendar feeds when loading calendar view
- [ ] Pass on calendar client request date range as far dow nas possible, e.g. to `Person` query for birthday feed2023.12 – "Falk"Nik | Klampfradlerdominik.george@teckids.orgNik | Klampfradlerdominik.george@teckids.orghttps://edugit.org/AlekSIS/official/AlekSIS-Core/-/issues/850Do not restart vite serve on every uwsgi reload2024-03-27T15:43:41ZJonathan Wethgit@jonathanweth.deDo not restart vite serve on every uwsgi reloadThis would fasten development very much.This would fasten development very much.