Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • hansegucker/AlekSIS-Core
  • pinguin/AlekSIS-Core
  • AlekSIS/official/AlekSIS-Core
  • sunweaver/AlekSIS-Core
  • sggua/AlekSIS-Core
  • edward/AlekSIS-Core
  • magicfelix/AlekSIS-Core
7 results
Show changes
Commits on Source (7)
......@@ -14,6 +14,7 @@ Fixed
* Fix order of submit buttons in login form and restructure login template
to make 2FA work correctly.
* Fix page title bug on the impersonate page.
`2.0rc7`_ - 2021-10-18
----------------------
......@@ -40,6 +41,7 @@ Added
* OpenID Connect scope and accompanying claim ``groups``
* Support config files in JSON format
* Allow apps to dynamically generate OAuth scopes
* Provide an ``ExtensiblePolymorphicModel`` to support the features of extensible models for polymorphic models and vice-versa.
Changed
~~~~~~~
......
......@@ -120,3 +120,7 @@ class InstalledWidgetsDashboardWidgetOrderManager(Manager):
# [obj["id"] for obj in list(Person.objects.all().values("id"))]
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
from guardian.core import ObjectPermissionChecker
from jsonstore.fields import IntegerField, JSONFieldMixin
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 aleksis.core.managers import CurrentSiteManagerWithoutMigrations, SchoolTermRelatedQuerySet
from aleksis.core.managers import (
CurrentSiteManagerWithoutMigrations,
PolymorphicCurrentSiteManager,
SchoolTermRelatedQuerySet,
)
class _ExtensibleModelBase(models.base.ModelBase):
......@@ -351,6 +358,22 @@ class ExtensibleModel(models.Model, metaclass=_ExtensibleModelBase):
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):
"""No-op mixin to mark a model as deliberately not using ExtensibleModel."""
......
......@@ -4,9 +4,8 @@
{% extends "core/base.html" %}
{% load i18n %}
{% block page_title %}
{% blocktrans %}Impersonate user{% endblocktrans %}
{% endblock %}
{% block browser_title %}{% trans "Impersonate" %}{% endblock %}
{% block page_title %}{% trans "Impersonate" %}{% endblock %}
{% block content %}
{% if page.object_list %}
......