Finalise Vuetify app as SPA #759

Closed
opened 2022-11-30 22:33:38 +01:00 by nik · 82 comments
Owner

We want to turn AlekSIS frontend into an SPA finally. To do so, we need to find a way to still incorporate legacy views.

The rough plan is:

  • Turn the Vuetify base template into a Vuetify component that is used as base component for all views
  • Remove all decorations and the whole outer UI from the Materialize base template
  • Implement menu generation in Vue, based on the routes in Vue router
  • Make a generic component that loads legacy fragments from Django and renders them in an iframe
    • This requires correct handling of URL routes on both sides

TODOS:

  • Routes with permissions (@yuha)
  • Page Title/Favicon
  • fix Sidenav Search
  • Browser Titles
  • fix highlighting in sidenav
  • Vue Router 404
  • Custom Footer Menu
  • Fix iframe viewport size/breaking points
  • make SPA reload user-related information as soon as login happens
  • Language form in sidenav
  • basic SW fixes
  • Include routes from apps
  • Include messages from apps
  • end Impersonation in account menu
  • introduce handling of failing queries due to network issues
  • Additional rules for views
  • Tests
    • Test with Alsijil: Messages, Course book (@yuha)
    • Test Sentry integration
    • Test Docker build
    • Test regular deployment steps and update handbook
    • Test dev environment setup steps and update handbook
  • Nicer 404
  • Check translations (en and de, @hansegucker)
  • Test progress page (@hansegucker)
  • change whoAmI resolver (DummyPerson when admin and no Person)/change handling of null whoAmI response (@yuha)
  • anonymous user graphQL errors and faulty message when not logged in
  • faulty login URLs
  • Importing of messages does not work for vite production mode (since imports directories resulting from virtual modules are not evaluated properly in messages.js)
  • reconsider handling of graphql errors when network connection is lost (ping query?) (@yuha)
  • show user if offline (@yuha)
  • Find and define a clean way to set page titles in components
  • Refetch/Invalidate all querys (like whoAmI etc.) on login/logout/impersonate (@yuha)
    • Purge Apollo cache completely!
  • Admin has Login- and SignUp-Button, despite being logged in or having signup disabled, due to reliance on permissions/rules only (the permission check for an admin is always true)
  • External links are opened within iframe
  • Factor out local GraphQL definitions into separate file
  • Factor out Apollo configuration, utility code, etc. into separate files
  • Most important encapsulations:
    • Everything that is specific to legacy pages is in LegacyBaseComponent
    • All utility code offered to components is in the AleksisVue plugin
    • Can we get rid of window.app?
  • Pass GraphQL endpoint from Django
  • Fix query importing (do not use require, maybe do not use ApolloQuery too much)
  • Person page without data given (e. g. when offline & data not cached) is completely empty without any information
  • add revisioning to additional precache paths
  • Fix type errors in SideNav
  • Fix type error in Additional Image (if person.secondaryImageUrl passed from PersonOverview is null)
We want to turn AlekSIS frontend into an SPA finally. To do so, we need to find a way to still incorporate legacy views. The rough plan is: * Turn the Vuetify base template into a Vuetify component that is used as base component for all views * Remove all decorations and the whole outer UI from the Materialize base template * Implement menu generation in Vue, based on the routes in Vue router * Make a generic component that loads legacy fragments from Django and renders them in an iframe * This requires correct handling of URL routes on both sides TODOS: - [x] Routes with permissions (@yuha) - [x] Page Title/Favicon - [x] fix Sidenav Search - [x] Browser Titles - [x] fix highlighting in sidenav - [x] Vue Router 404 - [x] Custom Footer Menu - [x] Fix iframe viewport size/breaking points - [x] make SPA reload user-related information as soon as login happens - [x] Language form in sidenav - [x] basic SW fixes - [x] Include routes from apps - [x] Include messages from apps - [x] end Impersonation in account menu - [x] introduce handling of failing queries due to network issues - [x] Additional rules for views - [x] Tests - [x] Test with Alsijil: Messages, Course book (@yuha) - [x] Test Sentry integration - [x] Test Docker build - [x] Test regular deployment steps and update handbook - [x] Test dev environment setup steps and update handbook - [x] Nicer 404 - [x] Check translations (en and de, @hansegucker) - [x] Test progress page (@hansegucker) - [x] change whoAmI resolver (DummyPerson when admin and no Person)/change handling of null whoAmI response (@yuha) - [x] anonymous user graphQL errors and faulty message when not logged in - [x] faulty login URLs - [x] Importing of messages does not work for vite production mode (since imports directories resulting from virtual modules are not evaluated properly in messages.js) - [x] reconsider handling of graphql errors when network connection is lost (ping query?) (@yuha) - [x] show user if offline (@yuha) - [x] Find and define a clean way to set page titles in components - [x] Refetch/Invalidate all querys (like whoAmI etc.) on login/logout/impersonate (@yuha) - [x] Purge Apollo cache completely! - [x] Admin has Login- and SignUp-Button, despite being logged in or having signup disabled, due to reliance on permissions/rules only (the permission check for an admin is always true) - [x] External links are opened within iframe - [x] Factor out local GraphQL definitions into separate file - [x] Factor out Apollo configuration, utility code, etc. into separate files - [x] Most important encapsulations: - [x] Everything that is specific to legacy pages is in `LegacyBaseComponent` - [x] All utility code offered to components is in the `AleksisVue` plugin - [x] Can we get rid of `window.app`? - [x] Pass GraphQL endpoint from Django - [x] Fix query importing (do not use `require`, maybe do not use `ApolloQuery` too much) - [x] Person page without data given (e. g. when offline & data not cached) is completely empty without any information - [x] add revisioning to additional precache paths - [x] Fix type errors in SideNav - [x] Fix type error in Additional Image (if `person.secondaryImageUrl` passed from `PersonOverview` is null)
Author
Owner

changed due date to December 16, 2022

changed due date to December 16, 2022
Author
Owner

assigned to @yuha

assigned to @yuha
Author
Owner

added #760 as child task

added #760 as child task
Author
Owner

added #761 as child task

added #761 as child task
Author
Owner

added #762 as child task

added #762 as child task
Author
Owner

added #763 as child task

added #763 as child task
Author
Owner

added #764 as child task

added #764 as child task
Member

created branch 759-finalise-vuetify-app-as-spa to address this issue

created branch [`759-finalise-vuetify-app-as-spa`](/AlekSIS/official/AlekSIS-Core/-/compare/master...759-finalise-vuetify-app-as-spa) to address this issue
Member

mentioned in merge request !2768

mentioned in merge request !2768
Author
Owner

mentioned in merge request !2769

mentioned in merge request !2769
Author
Owner

mentioned in issue #766

mentioned in issue #766
Member

changed the description

changed the description
Member

marked the checklist item end Impersonation in account menu as completed

marked the checklist item **end Impersonation in account menu** as completed
Member

marked the checklist item Nicer 404 as completed

marked the checklist item **Nicer 404** as completed
Member

marked the checklist item faulty login URLs as completed

marked the checklist item **faulty login URLs** as completed
Member

marked the checklist item anonymous user graphQL errors and faulty message when not logged in as completed

marked the checklist item **anonymous user graphQL errors and faulty message when not logged in** as completed
Member

changed the description

changed the description
Member

marked the checklist item Importing of messages does not work for vite production mode (since imports directories resulting from virtual modules are not evaluated properly in messages.js) as completed

marked the checklist item **Importing of messages does not work for vite production mode (since imports directories resulting from virtual modules are not evaluated properly in messages.js)** as completed
Member

marked the checklist item basic SW fixes as completed

marked the checklist item **basic SW fixes** as completed
Author
Owner

changed the description

changed the description
Member

changed the description

changed the description
Owner

changed the description

changed the description
Member

changed the description

changed the description
Member

changed the description

changed the description
Member

changed the description

changed the description
Member

changed the description

changed the description
Member

marked the checklist item change whoAmI resolver (DummyPerson when admin and no Person)/change handling of null whoAmI response (@yuha) as completed

marked the checklist item **change whoAmI resolver (DummyPerson when admin and no Person)/change handling of null whoAmI response (@yuha)** as completed
Member

changed the description

changed the description
Owner

marked the checklist item Test progress page (@hansegucker) as completed

marked the checklist item **Test progress page (@hansegucker)** as completed
Owner

changed the description

changed the description
Owner

changed the description

changed the description
Author
Owner

changed the description

changed the description
Author
Owner

changed the description

changed the description
Owner

marked the checklist item Check translations (en and de, @hansegucker) as completed

marked the checklist item **Check translations (en and de, @hansegucker)** as completed
Owner

marked the checklist item External links are opened within iframe as completed

marked the checklist item **External links are opened within iframe** as completed
Author
Owner

marked the checklist item Find and define a clean way to set page titles in components as completed

marked the checklist item **Find and define a clean way to set page titles in components** as completed
Author
Owner

changed the description

changed the description
Author
Owner

changed the description

changed the description
Owner

marked the checklist item Admin has Login- and SignUp-Button, despite being logged in or having signup disabled, due to reliance on permissions/rules only (the permission check for an admin is always true) as completed

marked the checklist item **Admin has Login- and SignUp-Button, despite being logged in or having signup disabled, due to reliance on permissions/rules only (the permission check for an admin is always true)** as completed
Member

marked the checklist item show user if offline (@yuha) as completed

marked the checklist item **show user if offline (@yuha)** as completed
Member

marked the checklist item reconsider handling of graphql errors when network connection is lost (ping query?) (@yuha) as completed

marked the checklist item **reconsider handling of graphql errors when network connection is lost (ping query?) (@yuha)** as completed
Member

created branch 759-finalise-vuetify-app-as-spa-2 to address this issue

created branch [`759-finalise-vuetify-app-as-spa-2`](/AlekSIS/official/AlekSIS-Core/-/compare/master...759-finalise-vuetify-app-as-spa-2) to address this issue
Author
Owner

changed the description

changed the description
Member

changed the description

changed the description
Member

changed the description

changed the description
Member

changed the description

changed the description
Author
Owner

marked the checklist item Factor out Apollo configuration, utility code, etc. into separate files as completed

marked the checklist item **Factor out Apollo configuration, utility code, etc. into separate files** as completed
Author
Owner

marked the checklist item Factor out local GraphQL definitions into separate file as completed

marked the checklist item **Factor out local GraphQL definitions into separate file** as completed
Author
Owner

marked the checklist item Everything that is specific to legacy pages is in LegacyBaseComponent as completed

marked the checklist item **Everything that is specific to legacy pages is in `LegacyBaseComponent`** as completed
Author
Owner

marked the checklist item All utility code offered to components is in the AleksisVue plugin as completed

marked the checklist item **All utility code offered to components is in the `AleksisVue` plugin** as completed
Author
Owner

marked the checklist item Most important encapsulations: as completed

marked the checklist item **Most important encapsulations:** as completed
Author
Owner

changed the description

changed the description
Author
Owner

changed the description

changed the description
Author
Owner

changed the description

changed the description
Author
Owner

changed the description

changed the description
Author
Owner

marked the checklist item Can we get rid of window.app? as completed

marked the checklist item **Can we get rid of `window.app`?** as completed
Author
Owner

marked the checklist item Refetch/Invalidate all querys (like whoAmI etc.) on login/logout/impersonate (@yuha) as completed

marked the checklist item **Refetch/Invalidate all querys (like whoAmI etc.) on login/logout/impersonate (@yuha)** as completed
Author
Owner

marked the checklist item Purge Apollo cache completely! as completed

marked the checklist item **Purge Apollo cache completely!** as completed
Author
Owner

marked the checklist item Change wording of legacy offline fallback page (to include sites that are not designated to be cached, e.g. forms) as completed

marked the checklist item **Change wording of legacy offline fallback page (to include sites that are not designated to be cached, e.g. forms)** as completed
Author
Owner

changed the description

changed the description
Author
Owner

marked the checklist item Pass GraphQL endpoint from Django as completed

marked the checklist item **Pass GraphQL endpoint from Django** as completed
Author
Owner

changed the description

changed the description
Author
Owner

changed the description

changed the description
Owner

marked the checklist item Fix query importing (do not use require, maybe do not use ApolloQuery too much) as completed

marked the checklist item **Fix query importing (do not use `require`, maybe do not use `ApolloQuery` too much)** as completed
Owner

marked the checklist item Fix query importing (do not use require, maybe do not use ApolloQuery too much) as incomplete

marked the checklist item **Fix query importing (do not use `require`, maybe do not use `ApolloQuery` too much)** as incomplete
Owner

marked the checklist item Fix query importing (do not use require, maybe do not use ApolloQuery too much) as completed

marked the checklist item **Fix query importing (do not use `require`, maybe do not use `ApolloQuery` too much)** as completed
Member

marked the checklist item add revisioning to additional precache paths as completed

marked the checklist item **add revisioning to additional precache paths** as completed
Member

Opening AlekSIS (localhost:8000) throws some errors in the console, but the login page loads successfully.

[Vue warn]: Invalid prop: type check failed for prop "sideNavMenu". Expected Array, got Null 

found in

---> <SideNav> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/SideNav.vue
       <VApp>
         <App> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/App.vue
           <Root> vue.esm.js:5100:20
[Vue warn]: Error in v-on handler: "TypeError: $event.target is undefined"

found in

---> <VNavigationDrawer>
       <SideNav> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/SideNav.vue
         <VApp>
           <App> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/App.vue
             <Root>
TypeError: $event.target is undefined
    input SideNav.vue:20
    VueJS 4
    isActive VNavigationDrawer.ts:248
Opening AlekSIS (localhost:8000) throws some errors in the console, but the login page loads successfully. ``` [Vue warn]: Invalid prop: type check failed for prop "sideNavMenu". Expected Array, got Null found in ---> <SideNav> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/SideNav.vue <VApp> <App> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/App.vue <Root> vue.esm.js:5100:20 ``` ``` [Vue warn]: Error in v-on handler: "TypeError: $event.target is undefined" found in ---> <VNavigationDrawer> <SideNav> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/SideNav.vue <VApp> <App> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/App.vue <Root> ``` ``` TypeError: $event.target is undefined input SideNav.vue:20 VueJS 4 isActive VNavigationDrawer.ts:248 ```
Member
  • On a person's detail page, the page loading indicator (? that small animation at the top) stays in an endless loop, although the page is already loaded. This could be related to this error:
[Vue warn]: Invalid prop: type check failed for prop "src". Expected String, Object, got Null 

found in

---> <AdditionalImage> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/person/AdditionalImage.vue
       <DetailView> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/generic/DetailView.vue
         <PersonOverview> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/person/PersonOverview.vue
           <Parent> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/Parent.vue
             <VMain>
               <VApp>
                 <App> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/App.vue
                   <Root>
  • My admin account without a person has the menu entry "Account", which links to /person, whichs shows an empty page (except for the Your administrator account is not linked to any person. Therefore, a dummy person has been linked to your account. message).

  • Trying to open Data checks results in the following server-side error:

Internal Server Error: /django/data_checks/
Traceback (most recent call last):
  File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-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-qqij0Gkv-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-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/views/generic/base.py", line 103, in view
    return self.dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/utils/decorators.py", line 46, in _wrapper
    return bound_method(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/decorators.py", line 15, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/contrib/auth/mixins.py", line 109, in dispatch
    return super().dispatch(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/views/generic/base.py", line 142, in dispatch
    return handler(request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/views/generic/list.py", line 154, in get
    self.object_list = self.get_queryset()
                       ^^^^^^^^^^^^^^^^^^^
  File "/home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/views.py", line 838, in get_queryset
    .order_by("check")
     ^^^^^^^^^^^^^^^^^
  File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 1645, in order_by
    obj.query.add_ordering(*field_names)
  File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/db/models/sql/query.py", line 2202, in add_ordering
    self.names_to_path(item.split(LOOKUP_SEP), self.model._meta)
  File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/db/models/sql/query.py", line 1709, in names_to_path
    raise FieldError(
django.core.exceptions.FieldError: Cannot resolve keyword 'check' into field. Choices are: content_type, content_type_id, data_check, extended_data, id, object_id, related_object, sent, site, site_id, solved

Additional infos, that may be related to that: I ran makemigrations (and migrate) which created the following migrations:

Migrations for 'core':
  /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/migrations/0048_alter_custommenuitem_icon_and_more.py
    - Alter field icon on custommenuitem
    - Alter field polymorphic_ctype on dashboardwidget
    - Alter field icon on notification
    - Alter field send_at on notification
    - Alter field user on oauthaccesstoken
    - Alter field client_secret on oauthapplication
    - Alter field user on oauthapplication
    - Alter field user on oauthgrant
    - Alter field user on oauthidtoken
    - Alter field user on oauthrefreshtoken
    - Alter field id on personinvitation
* On a person's detail page, the page loading indicator (? that small animation at the top) stays in an endless loop, although the page is already loaded. This could be related to this error: ``` [Vue warn]: Invalid prop: type check failed for prop "src". Expected String, Object, got Null found in ---> <AdditionalImage> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/person/AdditionalImage.vue <DetailView> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/generic/DetailView.vue <PersonOverview> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/person/PersonOverview.vue <Parent> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/Parent.vue <VMain> <VApp> <App> at /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/assets/components/app/App.vue <Root> ``` * My admin account without a person has the menu entry "Account", which links to `/person`, whichs shows an empty page (except for the `Your administrator account is not linked to any person. Therefore, a dummy person has been linked to your account.` message). * Trying to open `Data checks` results in the following server-side error: ``` Internal Server Error: /django/data_checks/ Traceback (most recent call last): File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-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-qqij0Gkv-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-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/views/generic/base.py", line 103, in view return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/utils/decorators.py", line 46, in _wrapper return bound_method(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/decorators.py", line 15, in _wrapped_view_func response = view_func(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/contrib/auth/mixins.py", line 109, in dispatch return super().dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/views/generic/base.py", line 142, in dispatch return handler(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/views/generic/list.py", line 154, in get self.object_list = self.get_queryset() ^^^^^^^^^^^^^^^^^^^ File "/home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/views.py", line 838, in get_queryset .order_by("check") ^^^^^^^^^^^^^^^^^ File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/db/models/query.py", line 1645, in order_by obj.query.add_ordering(*field_names) File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/db/models/sql/query.py", line 2202, in add_ordering self.names_to_path(item.split(LOOKUP_SEP), self.model._meta) File "/home/felix/.cache/pypoetry/virtualenvs/aleksis-core-qqij0Gkv-py3.11/lib/python3.11/site-packages/django/db/models/sql/query.py", line 1709, in names_to_path raise FieldError( django.core.exceptions.FieldError: Cannot resolve keyword 'check' into field. Choices are: content_type, content_type_id, data_check, extended_data, id, object_id, related_object, sent, site, site_id, solved ``` Additional infos, that may be related to that: I ran `makemigrations` (and `migrate`) which created the following migrations: ``` Migrations for 'core': /home/felix/src/AlekSIS/apps/official/AlekSIS-Core/aleksis/core/migrations/0048_alter_custommenuitem_icon_and_more.py - Alter field icon on custommenuitem - Alter field polymorphic_ctype on dashboardwidget - Alter field icon on notification - Alter field send_at on notification - Alter field user on oauthaccesstoken - Alter field client_secret on oauthapplication - Alter field user on oauthapplication - Alter field user on oauthgrant - Alter field user on oauthidtoken - Alter field user on oauthrefreshtoken - Alter field id on personinvitation ```
Member

Installation following the admin manual:

  • Needs Debian Bookworm -> Python version in uwsgi config has to be changed

  • Some scripts are loaded via https, even when accessing the site via http

  • Links to static files in manifest are broken

Installation following the admin manual: * Needs Debian Bookworm -> Python version in uwsgi config has to be changed * Some scripts are loaded via https, even when accessing the site via http * Links to static files in manifest are broken
Author
Owner

marked the checklist item Test regular deployment steps and update handbook as completed

marked the checklist item **Test regular deployment steps and update handbook** as completed
Author
Owner

marked the checklist item Test dev environment setup steps and update handbook as completed

marked the checklist item **Test dev environment setup steps and update handbook** as completed
Author
Owner

changed the description

changed the description
Member

marked the checklist item Fix type error in Additional Image (if person.secondaryImageUrl passed from PersonOverview is null) as completed

marked the checklist item **Fix type error in Additional Image (if `person.secondaryImageUrl` passed from `PersonOverview` is null)** as completed
Author
Owner

marked the checklist item Fix type errors in SideNav as completed

marked the checklist item **Fix type errors in SideNav** as completed
Author
Owner

changed the description

changed the description
Member

marked the checklist item Person page without data given (e. g. when offline & data not cached) is completely empty without any information as completed

marked the checklist item **Person page without data given (e. g. when offline & data not cached) is completely empty without any information** as completed
Owner

marked the checklist item Test Sentry integration as completed

marked the checklist item **Test Sentry integration** as completed
Author
Owner

marked the checklist item Test Docker build as completed

marked the checklist item **Test Docker build** as completed
Author
Owner

marked the checklist item Test with Alsijil: Messages, Course book (@yuha) as completed

marked the checklist item **Test with Alsijil: Messages, Course book (@yuha)** as completed
Author
Owner

marked the checklist item Tests as completed

marked the checklist item **Tests** as completed
nik closed this issue 2023-01-18 01:20:30 +01:00
Author
Owner

mentioned in commit adc31fbaaa

mentioned in commit adc31fbaaa810ebba4df29190efbd35c69994619
Sign in to join this conversation.
No milestone
No project
No assignees
5 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
aleksis/AlekSIS-Core#759
No description provided.