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.

Reply via email to