Merge tag '3.0.0' into fix_request_path_info

3.0.0
This commit is contained in:
2021-01-07 17:22:50 +01:00
33 changed files with 158 additions and 237 deletions
+1 -1
View File
@@ -5,7 +5,7 @@ import inspect
from django.contrib import admin
from django.urls import resolve
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from polymorphic.utils import get_base_polymorphic_model
+1 -1
View File
@@ -1,6 +1,6 @@
from django.contrib import admin
from django.core.exceptions import PermissionDenied
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
class PolymorphicChildModelFilter(admin.SimpleListFilter):
+1 -1
View File
@@ -1,6 +1,6 @@
from django import forms
from django.contrib.admin.widgets import AdminRadioSelect
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
class PolymorphicModelChoiceForm(forms.Form):
+3 -3
View File
@@ -8,7 +8,7 @@ import json
from django.contrib.admin.helpers import AdminField, InlineAdminForm, InlineAdminFormSet
from django.utils.encoding import force_text
from django.utils.text import capfirst
from django.utils.translation import ugettext
from django.utils.translation import gettext
from polymorphic.formsets import BasePolymorphicModelFormSet
@@ -96,7 +96,7 @@ class PolymorphicInlineAdminFormSet(InlineAdminFormSet):
"name": "#%s" % self.formset.prefix,
"options": {
"prefix": self.formset.prefix,
"addText": ugettext("Add another %(verbose_name)s")
"addText": gettext("Add another %(verbose_name)s")
% {"verbose_name": capfirst(verbose_name)},
"childTypes": [
{
@@ -105,7 +105,7 @@ class PolymorphicInlineAdminFormSet(InlineAdminFormSet):
}
for model in self.formset.child_forms.keys()
],
"deleteText": ugettext("Remove"),
"deleteText": gettext("Remove"),
},
}
)
+7 -18
View File
@@ -1,8 +1,6 @@
"""
The parent admin displays the list view of the base model.
"""
import sys
from django.contrib import admin
from django.contrib.admin.helpers import AdminErrorList, AdminForm
from django.contrib.admin.templatetags.admin_urls import add_preserved_filters
@@ -11,26 +9,16 @@ from django.core.exceptions import ImproperlyConfigured, PermissionDenied
from django.db import models
from django.http import Http404, HttpResponseRedirect
from django.template.response import TemplateResponse
from django.urls import URLResolver
from django.utils.encoding import force_text
from django.utils.http import urlencode
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from polymorphic.utils import get_base_polymorphic_model
from .forms import PolymorphicModelChoiceForm
try:
# Django 2.0+
from django.urls import URLResolver
except ImportError:
# Django < 2.0
from django.urls import RegexURLResolver as URLResolver
if sys.version_info[0] >= 3:
long = int
class RegistrationClosed(RuntimeError):
"The admin model can't be registered anymore at this point."
@@ -146,13 +134,14 @@ class PolymorphicParentModelAdmin(admin.ModelAdmin):
"""
self._lazy_setup()
choices = []
for model in self.get_child_models():
content_types = ContentType.objects.get_for_models(*self.get_child_models(), for_concrete_models=False)
for model, ct in content_types.items():
perm_function_name = "has_{0}_permission".format(action)
model_admin = self._get_real_admin_by_model(model)
perm_function = getattr(model_admin, perm_function_name)
if not perm_function(request):
continue
ct = ContentType.objects.get_for_model(model, for_concrete_model=False)
choices.append((ct.id, model._meta.verbose_name))
return choices
@@ -293,9 +282,9 @@ class PolymorphicParentModelAdmin(admin.ModelAdmin):
try:
pos = path.find("/")
if pos == -1:
object_id = long(path)
object_id = int(path)
else:
object_id = long(path[0:pos])
object_id = int(path[0:pos])
except ValueError:
raise Http404(
"No ct_id parameter, unable to find admin subclass for path '{0}'.".format(