diff options
| author | Johannes Hoppe <info@johanneshoppe.com> | 2017-07-20 17:06:30 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-07-20 11:06:30 -0400 |
| commit | c19b56f633e172b3c02094cbe12d28865ee57772 (patch) | |
| tree | 698bf39231100f9a95ab87aa37b416eb7056e4e0 /django/contrib | |
| parent | f86b6f351d45c366f733c586127251c598dfd541 (diff) | |
Fixed #28377 -- Made combining form Media retain relative asset order.
Thanks Florian Apolloner, Mariusz Felisiak, and Tim Graham for reviews.
Diffstat (limited to 'django/contrib')
| -rw-r--r-- | django/contrib/admin/helpers.py | 2 | ||||
| -rw-r--r-- | django/contrib/admin/options.py | 2 | ||||
| -rw-r--r-- | django/contrib/admin/widgets.py | 26 | ||||
| -rw-r--r-- | django/contrib/gis/admin/options.py | 6 |
4 files changed, 27 insertions, 9 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index 58e92c9689..2b47ed07fa 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -304,7 +304,7 @@ class InlineAdminFormSet: @property def media(self): - media = self.opts.media + self.formset.media + media = self.formset.media + self.opts.media for fs in self: media = media + fs.media return media diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index edd0d7c3ad..714a27e994 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -579,9 +579,9 @@ class ModelAdmin(BaseModelAdmin): def media(self): extra = '' if settings.DEBUG else '.min' js = [ - 'core.js', 'vendor/jquery/jquery%s.js' % extra, 'jquery.init.js', + 'core.js', 'admin/RelatedObjectLookups.js', 'actions%s.js' % extra, 'urlify.js', diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index 4b932f2c01..7cf71bb6ce 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -4,6 +4,7 @@ Form Widget classes specific to the Django admin site. import copy from django import forms +from django.conf import settings from django.db.models.deletion import CASCADE from django.urls import reverse from django.urls.exceptions import NoReverseMatch @@ -22,7 +23,14 @@ class FilteredSelectMultiple(forms.SelectMultiple): """ @property def media(self): - js = ["core.js", "SelectBox.js", "SelectFilter2.js"] + extra = '' if settings.DEBUG else '.min' + js = [ + 'vendor/jquery/jquery%s.js' % extra, + 'jquery.init.js', + 'core.js', + 'SelectBox.js', + 'SelectFilter2.js', + ] return forms.Media(js=["admin/js/%s" % path for path in js]) def __init__(self, verbose_name, is_stacked, attrs=None, choices=()): @@ -43,7 +51,13 @@ class FilteredSelectMultiple(forms.SelectMultiple): class AdminDateWidget(forms.DateInput): @property def media(self): - js = ["calendar.js", "admin/DateTimeShortcuts.js"] + extra = '' if settings.DEBUG else '.min' + js = [ + 'vendor/jquery/jquery%s.js' % extra, + 'jquery.init.js', + 'calendar.js', + 'admin/DateTimeShortcuts.js', + ] return forms.Media(js=["admin/js/%s" % path for path in js]) def __init__(self, attrs=None, format=None): @@ -56,7 +70,13 @@ class AdminDateWidget(forms.DateInput): class AdminTimeWidget(forms.TimeInput): @property def media(self): - js = ["calendar.js", "admin/DateTimeShortcuts.js"] + extra = '' if settings.DEBUG else '.min' + js = [ + 'vendor/jquery/jquery%s.js' % extra, + 'jquery.init.js', + 'calendar.js', + 'admin/DateTimeShortcuts.js', + ] return forms.Media(js=["admin/js/%s" % path for path in js]) def __init__(self, attrs=None, format=None): diff --git a/django/contrib/gis/admin/options.py b/django/contrib/gis/admin/options.py index 431f138f1b..fe74df36ff 100644 --- a/django/contrib/gis/admin/options.py +++ b/django/contrib/gis/admin/options.py @@ -2,6 +2,7 @@ from django.contrib.admin import ModelAdmin from django.contrib.gis.admin.widgets import OpenLayersWidget from django.contrib.gis.db import models from django.contrib.gis.gdal import OGRGeomType +from django.forms import Media spherical_mercator_srid = 3857 @@ -46,10 +47,7 @@ class GeoModelAdmin(ModelAdmin): @property def media(self): "Injects OpenLayers JavaScript into the admin." - media = super().media - media.add_js([self.openlayers_url]) - media.add_js(self.extra_js) - return media + return super().media + Media(js=[self.openlayers_url] + self.extra_js) def formfield_for_dbfield(self, db_field, request, **kwargs): """ |
