Skip to content
Snippets Groups Projects
Verified Commit ea5d40a4 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch 'master' into 483-caching-issues

parents 755b8045 d6722497
No related branches found
No related tags found
1 merge request!747Resolve "Caching issues"
Pipeline #38248 failed
...@@ -14,6 +14,7 @@ Fixed ...@@ -14,6 +14,7 @@ Fixed
* Fix order of submit buttons in login form and restructure login template * Fix order of submit buttons in login form and restructure login template
to make 2FA work correctly. to make 2FA work correctly.
* Fix page title bug on the impersonate page.
* Provide `style.css` and icon files without any authentication to avoid caching issues. * Provide `style.css` and icon files without any authentication to avoid caching issues.
`2.0rc7`_ - 2021-10-18 `2.0rc7`_ - 2021-10-18
...@@ -41,6 +42,7 @@ Added ...@@ -41,6 +42,7 @@ Added
* OpenID Connect scope and accompanying claim ``groups`` * OpenID Connect scope and accompanying claim ``groups``
* Support config files in JSON format * Support config files in JSON format
* Allow apps to dynamically generate OAuth scopes * Allow apps to dynamically generate OAuth scopes
* Provide an ``ExtensiblePolymorphicModel`` to support the features of extensible models for polymorphic models and vice-versa.
Changed Changed
~~~~~~~ ~~~~~~~
......
...@@ -120,3 +120,7 @@ class InstalledWidgetsDashboardWidgetOrderManager(Manager): ...@@ -120,3 +120,7 @@ class InstalledWidgetsDashboardWidgetOrderManager(Manager):
# [obj["id"] for obj in list(Person.objects.all().values("id"))] # [obj["id"] for obj in list(Person.objects.all().values("id"))]
return super().get_queryset().filter(widget_id__in=dashboard_widget_pks) return super().get_queryset().filter(widget_id__in=dashboard_widget_pks)
class PolymorphicCurrentSiteManager(_CurrentSiteManager, PolymorphicManager):
"""Default manager for extensible, polymorphic models."""
...@@ -24,9 +24,16 @@ from guardian.admin import GuardedModelAdmin ...@@ -24,9 +24,16 @@ from guardian.admin import GuardedModelAdmin
from guardian.core import ObjectPermissionChecker from guardian.core import ObjectPermissionChecker
from jsonstore.fields import IntegerField, JSONFieldMixin from jsonstore.fields import IntegerField, JSONFieldMixin
from material.base import Layout, LayoutNode from material.base import Layout, LayoutNode
from polymorphic.base import PolymorphicModelBase
from polymorphic.managers import PolymorphicManager
from polymorphic.models import PolymorphicModel
from rules.contrib.admin import ObjectPermissionsModelAdmin from rules.contrib.admin import ObjectPermissionsModelAdmin
from aleksis.core.managers import CurrentSiteManagerWithoutMigrations, SchoolTermRelatedQuerySet from aleksis.core.managers import (
CurrentSiteManagerWithoutMigrations,
PolymorphicCurrentSiteManager,
SchoolTermRelatedQuerySet,
)
class _ExtensibleModelBase(models.base.ModelBase): class _ExtensibleModelBase(models.base.ModelBase):
...@@ -351,6 +358,22 @@ class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase): ...@@ -351,6 +358,22 @@ class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase):
abstract = True abstract = True
class _ExtensiblePolymorphicModelBase(_ExtensibleModelBase, PolymorphicModelBase):
"""Base class for extensible, polymorphic models."""
class ExtensiblePolymorphicModel(
ExtensibleModel, PolymorphicModel, metaclass=_ExtensiblePolymorphicModelBase
):
"""Model class for extensible, polymorphic models."""
objects = PolymorphicCurrentSiteManager()
objects_all_sites = PolymorphicManager()
class Meta:
abstract = True
class PureDjangoModel(object): class PureDjangoModel(object):
"""No-op mixin to mark a model as deliberately not using ExtensibleModel.""" """No-op mixin to mark a model as deliberately not using ExtensibleModel."""
......
...@@ -4,9 +4,8 @@ ...@@ -4,9 +4,8 @@
{% extends "core/base.html" %} {% extends "core/base.html" %}
{% load i18n %} {% load i18n %}
{% block page_title %} {% block browser_title %}{% trans "Impersonate" %}{% endblock %}
{% blocktrans %}Impersonate user{% endblocktrans %} {% block page_title %}{% trans "Impersonate" %}{% endblock %}
{% endblock %}
{% block content %} {% block content %}
{% if page.object_list %} {% if page.object_list %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment