mirror of https://github.com/django/django.git
Added tests and minified javascript missing in 83a3add4be
.
Refs #22038.
This commit is contained in:
parent
462edd22e5
commit
578bdb532c
|
@ -16,6 +16,8 @@
|
|||
},
|
||||
updateCounter = function() {
|
||||
var sel = $(actionCheckboxes).filter(":checked").length;
|
||||
// _actions_icnt is defined in the generated HTML
|
||||
// and contains the total amount of objects in the queryset
|
||||
$(options.counterContainer).html(interpolate(
|
||||
ngettext('%(sel)s of %(cnt)s selected', '%(sel)s of %(cnt)s selected', sel), {
|
||||
sel: sel,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
(function(a){var f;a.fn.actions=function(q){var b=a.extend({},a.fn.actions.defaults,q),g=a(this),e=!1,m=function(c){c?k():l();a(g).prop("checked",c).parent().parent().toggleClass(b.selectedClass,c)},h=function(){var c=a(g).filter(":checked").length;a(b.counterContainer).html(interpolate(ngettext("%(sel)s of %(cnt)s selected","%(sel)s of %(cnt)s selected",c),{sel:c,cnt:void 0},!0));a(b.allToggle).prop("checked",function(){var a;c==g.length?(a=!0,k()):(a=!1,n());return a})},k=function(){a(b.acrossClears).hide();
|
||||
(function(a){var f;a.fn.actions=function(q){var b=a.extend({},a.fn.actions.defaults,q),g=a(this),e=!1,m=function(c){c?k():l();a(g).prop("checked",c).parent().parent().toggleClass(b.selectedClass,c)},h=function(){var c=a(g).filter(":checked").length;a(b.counterContainer).html(interpolate(ngettext("%(sel)s of %(cnt)s selected","%(sel)s of %(cnt)s selected",c),{sel:c,cnt:_actions_icnt},!0));a(b.allToggle).prop("checked",function(){var a;c==g.length?(a=!0,k()):(a=!1,n());return a})},k=function(){a(b.acrossClears).hide();
|
||||
a(b.acrossQuestions).show();a(b.allContainer).hide()},p=function(){a(b.acrossClears).show();a(b.acrossQuestions).hide();a(b.actionContainer).toggleClass(b.selectedClass);a(b.allContainer).show();a(b.counterContainer).hide()},l=function(){a(b.acrossClears).hide();a(b.acrossQuestions).hide();a(b.allContainer).hide();a(b.counterContainer).show()},n=function(){l();a(b.acrossInput).val(0);a(b.actionContainer).removeClass(b.selectedClass)};a(b.counterContainer).show();a(this).filter(":checked").each(function(c){a(this).parent().parent().toggleClass(b.selectedClass);
|
||||
h();1==a(b.acrossInput).val()&&p()});a(b.allToggle).show().click(function(){m(a(this).prop("checked"));h()});a("a",b.acrossQuestions).click(function(c){c.preventDefault();a(b.acrossInput).val(1);p()});a("a",b.acrossClears).click(function(c){c.preventDefault();a(b.allToggle).prop("checked",!1);n();m(0);h()});f=null;a(g).click(function(c){c||(c=window.event);var d=c.target?c.target:c.srcElement;if(f&&a.data(f)!=a.data(d)&&!0===c.shiftKey){var e=!1;a(f).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass,
|
||||
d.checked);a(g).each(function(){if(a.data(this)==a.data(f)||a.data(this)==a.data(d))e=e?!1:!0;e&&a(this).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass,d.checked)})}a(d).parent().parent().toggleClass(b.selectedClass,d.checked);f=d;h()});a("form#changelist-form table#result_list tr").find("td:gt(0) :input").change(function(){e=!0});a('form#changelist-form button[name="index"]').click(function(a){if(e)return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost."))});
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
from django.contrib import admin
|
||||
from django.core.paginator import Paginator
|
||||
from django.contrib.auth.admin import UserAdmin
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from .models import Event, Child, Parent, Swallow
|
||||
|
||||
|
||||
site = admin.AdminSite(name="admin")
|
||||
|
||||
site.register(User, UserAdmin)
|
||||
|
||||
|
||||
class CustomPaginator(Paginator):
|
||||
def __init__(self, queryset, page_size, orphans=0, allow_empty_first_page=True):
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
[
|
||||
{
|
||||
"pk": 100,
|
||||
"model": "auth.user",
|
||||
"fields": {
|
||||
"username": "super",
|
||||
"first_name": "Super",
|
||||
"last_name": "User",
|
||||
"is_active": true,
|
||||
"is_superuser": true,
|
||||
"is_staff": true,
|
||||
"last_login": "2007-05-30 13:20:10",
|
||||
"groups": [],
|
||||
"user_permissions": [],
|
||||
"password": "sha1$995a3$6011485ea3834267d719b4c801409b8b1ddd0158",
|
||||
"email": "super@example.com",
|
||||
"date_joined": "2007-05-30 13:20:10"
|
||||
}
|
||||
}
|
||||
]
|
|
@ -6,10 +6,11 @@ from django.contrib import admin
|
|||
from django.contrib.admin.options import IncorrectLookupParameters
|
||||
from django.contrib.admin.templatetags.admin_list import pagination
|
||||
from django.contrib.admin.views.main import ChangeList, SEARCH_VAR, ALL_VAR
|
||||
from django.contrib.admin.tests import AdminSeleniumWebDriverTestCase
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.template import Context, Template
|
||||
from django.test import TestCase
|
||||
from django.test import TestCase, override_settings
|
||||
from django.test.client import RequestFactory
|
||||
from django.utils import formats
|
||||
from django.utils import six
|
||||
|
@ -661,3 +662,46 @@ class AdminLogNodeTestCase(TestCase):
|
|||
# Rendering should be u'' since this templatetag just logs,
|
||||
# it doesn't render any string.
|
||||
self.assertEqual(template.render(context), '')
|
||||
|
||||
|
||||
@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',))
|
||||
class SeleniumFirefoxTests(AdminSeleniumWebDriverTestCase):
|
||||
|
||||
available_apps = ['admin_changelist'] + AdminSeleniumWebDriverTestCase.available_apps
|
||||
fixtures = ['users.json']
|
||||
urls = "admin_changelist.urls"
|
||||
webdriver_class = 'selenium.webdriver.firefox.webdriver.WebDriver'
|
||||
|
||||
def test_add_row_selection(self):
|
||||
"""
|
||||
Ensure that the status line for selected rows gets updated correcly (#22038)
|
||||
"""
|
||||
self.admin_login(username='super', password='secret')
|
||||
self.selenium.get('%s%s' % (self.live_server_url,
|
||||
'/admin/auth/user/'))
|
||||
|
||||
form_id = '#changelist-form'
|
||||
|
||||
# Test amount of rows in the Changelist
|
||||
rows = self.selenium.find_elements_by_css_selector(
|
||||
'%s #result_list tbody tr' % form_id)
|
||||
self.assertEqual(len(rows), 1)
|
||||
|
||||
# Test current selection
|
||||
selection_indicator = self.selenium.find_element_by_css_selector(
|
||||
'%s .action-counter' % form_id)
|
||||
self.assertEqual(selection_indicator.text, "0 of 1 selected")
|
||||
|
||||
# Select a row and check again
|
||||
row_selector = self.selenium.find_element_by_css_selector(
|
||||
'%s #result_list tbody tr:first-child .action-select' % form_id)
|
||||
row_selector.click()
|
||||
self.assertEqual(selection_indicator.text, "1 of 1 selected")
|
||||
|
||||
|
||||
class SeleniumChromeTests(SeleniumFirefoxTests):
|
||||
webdriver_class = 'selenium.webdriver.chrome.webdriver.WebDriver'
|
||||
|
||||
|
||||
class SeleniumIETests(SeleniumFirefoxTests):
|
||||
webdriver_class = 'selenium.webdriver.ie.webdriver.WebDriver'
|
||||
|
|
Loading…
Reference in New Issue