Commit f18b0874 authored by Tim Graham's avatar Tim Graham
Browse files

Fixed #25903 -- Fixed the admin's list_editable add/change buttons.

parent d7580e28
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -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);
+0 −18
Original line number Diff line number Diff line
@@ -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();
+3 −0
Original line number Diff line number Diff line
@@ -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`).
+5 −2
Original line number Diff line number Diff line
@@ -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 = (
+28 −0
Original line number Diff line number Diff line
@@ -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'