Merge tag '3.0.0' into fix_request_path_info
3.0.0
This commit is contained in:
@@ -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,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,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):
|
||||
|
||||
@@ -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"),
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user