summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-12-21 08:36:41 -0500
committerTim Graham <timograham@gmail.com>2015-12-21 09:29:57 -0500
commitf18b08748abaecb171fdcbcdfdcd7e4d95d931d1 (patch)
tree9da20d693878a53151be5cf3482fa67505e9deba
parentd7580e286ac9c48e410d59281720205d6f5dda10 (diff)
Fixed #25903 -- Fixed the admin's list_editable add/change buttons.
-rw-r--r--django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js18
-rw-r--r--django/contrib/admin/static/admin/js/change_form.js18
-rw-r--r--docs/releases/1.9.1.txt3
-rw-r--r--tests/admin_views/admin.py7
-rw-r--r--tests/admin_views/tests.py28
5 files changed, 54 insertions, 20 deletions
diff --git a/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js b/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
index 0d468d4b6d..86077ce38f 100644
--- a/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
+++ b/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
@@ -162,6 +162,24 @@
event.preventDefault();
opener.dismissRelatedLookupPopup(window, $(this).data("popup-opener"));
});
+ $('body').on('click', '.related-widget-wrapper-link', function(e) {
+ e.preventDefault();
+ if (this.href) {
+ var event = $.Event('django:show-related', {href: this.href});
+ $(this).trigger(event);
+ if (!event.isDefaultPrevented()) {
+ showRelatedObjectPopup(this);
+ }
+ }
+ });
+ $('body').on('change', '.related-widget-wrapper select', function(e) {
+ var event = $.Event('django:update-related');
+ $(this).trigger(event);
+ if (!event.isDefaultPrevented()) {
+ updateRelatedObjectLinks(this);
+ }
+ });
+ $('.related-widget-wrapper select').trigger('change');
});
})(django.jQuery);
diff --git a/django/contrib/admin/static/admin/js/change_form.js b/django/contrib/admin/static/admin/js/change_form.js
index 883376379f..921635f8b9 100644
--- a/django/contrib/admin/static/admin/js/change_form.js
+++ b/django/contrib/admin/static/admin/js/change_form.js
@@ -20,24 +20,6 @@
showRelatedObjectLookupPopup(this);
}
});
- $('body').on('click', '.related-widget-wrapper-link', function(e) {
- e.preventDefault();
- if (this.href) {
- var event = $.Event('django:show-related', {href: this.href});
- $(this).trigger(event);
- if (!event.isDefaultPrevented()) {
- showRelatedObjectPopup(this);
- }
- }
- });
- $('body').on('change', '.related-widget-wrapper select', function(e) {
- var event = $.Event('django:update-related');
- $(this).trigger(event);
- if (!event.isDefaultPrevented()) {
- updateRelatedObjectLinks(this);
- }
- });
- $('.related-widget-wrapper select').trigger('change');
if (modelName) {
$('form#' + modelName + '_form :input:visible:enabled:first').focus();
diff --git a/docs/releases/1.9.1.txt b/docs/releases/1.9.1.txt
index 8180a2805f..a40604780f 100644
--- a/docs/releases/1.9.1.txt
+++ b/docs/releases/1.9.1.txt
@@ -61,3 +61,6 @@ Bugfixes
* Fixed ``migrate --fake-initial`` detection of many-to-many tables
(:ticket:`25922`).
+
+* Restored the functionality of the admin's ``list_editable`` add and change
+ buttons (:ticket:`25903`).
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index 2db28c6f51..5df79675a3 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -87,8 +87,11 @@ class ChapterXtra1Admin(admin.ModelAdmin):
class ArticleAdmin(admin.ModelAdmin):
- list_display = ('content', 'date', callable_year, 'model_year',
- 'modeladmin_year', 'model_year_reversed')
+ list_display = (
+ 'content', 'date', callable_year, 'model_year', 'modeladmin_year',
+ 'model_year_reversed', 'section',
+ )
+ list_editable = ('section',)
list_filter = ('date', 'section')
view_on_site = False
fieldsets = (
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 00e23302e1..c73164f3fc 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -4558,6 +4558,34 @@ class SeleniumAdminViewsFirefoxTests(AdminSeleniumWebDriverTestCase):
self.assertEqual(Pizza.objects.count(), 1)
self.assertEqual(Topping.objects.count(), 2)
+ def test_list_editable_popups(self):
+ """
+ list_editable foreign keys have add/change popups.
+ """
+ s1 = Section.objects.create(name='Test section')
+ Article.objects.create(
+ content='<p>Middle content</p>',
+ date=datetime.datetime(2008, 3, 18, 11, 54, 58),
+ section=s1,
+ )
+ self.admin_login(username='super', password='secret', login_url=reverse('admin:index'))
+ self.selenium.get(self.live_server_url + reverse('admin:admin_views_article_changelist'))
+ # Change popup
+ self.selenium.find_element_by_id('change_id_form-0-section').click()
+ self.wait_for_popup()
+ self.selenium.switch_to.window(self.selenium.window_handles[-1])
+ self.wait_for_text('#content h1', 'Change section')
+ self.selenium.close()
+ self.selenium.switch_to.window(self.selenium.window_handles[0])
+
+ # Add popup
+ self.selenium.find_element_by_id('add_id_form-0-section').click()
+ self.wait_for_popup()
+ self.selenium.switch_to.window(self.selenium.window_handles[-1])
+ self.wait_for_text('#content h1', 'Add section')
+ self.selenium.close()
+ self.selenium.switch_to.window(self.selenium.window_handles[0])
+
class SeleniumAdminViewsChromeTests(SeleniumAdminViewsFirefoxTests):
webdriver_class = 'selenium.webdriver.chrome.webdriver.WebDriver'