Author: julien Date: 2011-10-25 22:33:17 -0700 (Tue, 25 Oct 2011) New Revision: 17033
Modified: django/trunk/django/contrib/admin/templates/admin/prepopulated_fields_js.html django/trunk/tests/regressiontests/admin_views/admin.py django/trunk/tests/regressiontests/admin_views/models.py django/trunk/tests/regressiontests/admin_views/tests.py Log: Fixed #15938 -- Prevented the `max_length` number in the admin `prepopulated_fields` javascript to be localized when `USE_THOUSAND_SEPARATOR` is turned on. Thanks to Lev Maximov, Mathieu Agopian and feel. Modified: django/trunk/django/contrib/admin/templates/admin/prepopulated_fields_js.html =================================================================== --- django/trunk/django/contrib/admin/templates/admin/prepopulated_fields_js.html 2011-10-25 02:55:25 UTC (rev 17032) +++ django/trunk/django/contrib/admin/templates/admin/prepopulated_fields_js.html 2011-10-26 05:33:17 UTC (rev 17033) @@ -1,3 +1,4 @@ +{% load l10n %} <script type="text/javascript"> (function($) { var field = null; @@ -7,7 +8,7 @@ id: '#{{ field.field.auto_id }}', dependency_ids: [], dependency_list: [], - maxLength: {{ field.field.field.max_length|default_if_none:"50" }} + maxLength: {{ field.field.field.max_length|default_if_none:"50"|unlocalize }} }; {% for dependency in field.dependencies %} Modified: django/trunk/tests/regressiontests/admin_views/admin.py =================================================================== --- django/trunk/tests/regressiontests/admin_views/admin.py 2011-10-25 02:55:25 UTC (rev 17032) +++ django/trunk/tests/regressiontests/admin_views/admin.py 2011-10-26 05:33:17 UTC (rev 17033) @@ -22,7 +22,7 @@ Gadget, Villain, SuperVillain, Plot, PlotDetails, CyclicOne, CyclicTwo, WorkHour, Reservation, FoodDelivery, RowLevelChangePermissionModel, Paper, CoverLetter, Story, OtherStory, Book, Promo, ChapterXtra1, Pizza, Topping, - Album, Question, Answer, ComplexSortedPerson) + Album, Question, Answer, ComplexSortedPerson, PrePopulatedPostLargeSlug) def callable_year(dt_value): @@ -469,6 +469,11 @@ list_filter = ('employee',) +class PrePopulatedPostLargeSlugAdmin(admin.ModelAdmin): + prepopulated_fields = { + 'slug' : ('title',) + } + site = admin.AdminSite(name="admin") site.register(Article, ArticleAdmin) site.register(CustomArticle, CustomArticleAdmin) @@ -538,3 +543,4 @@ from django.contrib.auth.admin import UserAdmin, GroupAdmin site.register(User, UserAdmin) site.register(Group, GroupAdmin) +site.register(PrePopulatedPostLargeSlug, PrePopulatedPostLargeSlugAdmin) Modified: django/trunk/tests/regressiontests/admin_views/models.py =================================================================== --- django/trunk/tests/regressiontests/admin_views/models.py 2011-10-25 02:55:25 UTC (rev 17032) +++ django/trunk/tests/regressiontests/admin_views/models.py 2011-10-26 05:33:17 UTC (rev 17033) @@ -538,3 +538,13 @@ age = models.PositiveIntegerField() is_employee = models.NullBooleanField() +class PrePopulatedPostLargeSlug(models.Model): + """ + Regression test for #15938: a large max_length for the slugfield must not + be localized in prepopulated_fields_js.html or it might end up breaking + the javascript (ie, using THOUSAND_SEPARATOR ends up with maxLength=1,000) + """ + title = models.CharField(max_length=100) + published = models.BooleanField() + slug = models.SlugField(max_length=1000) + \ No newline at end of file Modified: django/trunk/tests/regressiontests/admin_views/tests.py =================================================================== --- django/trunk/tests/regressiontests/admin_views/tests.py 2011-10-25 02:55:25 UTC (rev 17032) +++ django/trunk/tests/regressiontests/admin_views/tests.py 2011-10-26 05:33:17 UTC (rev 17033) @@ -28,6 +28,7 @@ from django.utils.encoding import iri_to_uri from django.utils.html import escape from django.utils.http import urlencode +from django.test.utils import override_settings # local test models from .models import (Article, BarAccount, CustomArticle, EmptyModel, FooAccount, @@ -2756,6 +2757,15 @@ self.assertNotContains(response, "id: '#id_slug'") self.assertNotContains(response, "field['dependency_ids'].push('#id_title');") self.assertNotContains(response, "id: '#id_prepopulatedsubpost_set-0-subslug',") + + @override_settings(USE_THOUSAND_SEPARATOR = True, USE_L10N = True) + def test_prepopulated_maxlength_localized(self): + """ + Regression test for #15938: if USE_THOUSAND_SEPARATOR is set, make sure + that maxLength (in the javascript) is rendered without separators. + """ + response = self.client.get('/test_admin/admin/admin_views/prepopulatedpostlargeslug/add/') + self.assertContains(response, "maxLength: 1000") # instead of 1,000 class ReadonlyTest(TestCase): urls = "regressiontests.admin_views.urls" -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.