mirror of https://github.com/django/django.git
Fixed #25903 -- Fixed the admin's list_editable add/change buttons.
This commit is contained in:
parent
d7580e286a
commit
f18b08748a
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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`).
|
||||
|
|
|
@ -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 = (
|
||||
|
|
|
@ -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'
|
||||
|
|
Loading…
Reference in New Issue