#15129: Invalid order of applying formats
-------------------------------------------+--------------------------------
          Reporter:  tonnzor               |         Owner:  nobody
            Status:  new                   |     Milestone:  1.3   
         Component:  Internationalization  |       Version:  1.2   
        Resolution:                        |      Keywords:        
             Stage:  Unreviewed            |     Has_patch:  0     
        Needs_docs:  0                     |   Needs_tests:  0     
Needs_better_patch:  0                     |  
-------------------------------------------+--------------------------------
Changes (by tonnzor):

  * needs_better_patch:  => 0
  * needs_tests:  => 0
  * needs_docs:  => 0

Comment:

 It seems I had found the issue in django/utils/formats.py:

 {{{
 def get_format_modules(reverse=False):
     """
     Returns an iterator over the format modules found
     """
     lang = get_language()
     modules = _format_modules_cache.setdefault(lang,
 list(iter_format_modules(lang)))
     if reverse:
         modules.reverse()
     return modules
 }}}

 Modules are stored in _format_modules_cache variable and get reversed in
 place. So if we call the same method multiple times - order will be
 incorrect.

 It seems all we need is just to reverse in memory, not in place:
 {{{
 def get_format_modules(reverse=False):
     """
     Returns an iterator over the format modules found
     """
     lang = get_language()
     modules = _format_modules_cache.setdefault(lang,
 list(iter_format_modules(lang)))
     if reverse:
         return list(reversed(modules)) # FIX
     return modules
 }}}

-- 
Ticket URL: <http://code.djangoproject.com/ticket/15129#comment:1>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
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