[Checkins] SVN: zope.app.container/trunk/s Fix #221025 : adding
menu is sorted with translated items
Christophe Combelles
ccomb at free.fr
Fri Jun 13 12:57:57 EDT 2008
Jacob Holm a écrit :
> Good idea, but might I suggest using the collation support in zope.i18n
> to help with the actual sorting?
I didn't know collators, I've added it, thanks!
Christophe
>
> Something like changing
>
> result.sort(lambda a, b: cmp(a['title'], b['title']))
>
>
> into:
>
> try:
> collator = zope.i18n.interfaces.ICollator(self.request.locale)
> except ComponenLookupError:
> collator =
> zope.i18n.locales.fallbackcollator.FallbackCollator(self.request.locale)
> result.sort(key = lambda x: collator.key(x['title']))
>
> (If the fallbackcollator had been registered by default in zope.i18n
> this would have been easier, but unfortunately it is not...)
>
> Regards
>
> - Jacob
>
>
>
> Christopher Combelles wrote:
>> Log message for revision 87365:
>> Fix #221025 : adding menu is sorted with translated items
>>
>> Changed:
>> U zope.app.container/trunk/setup.py
>> U zope.app.container/trunk/src/zope/app/container/browser/adding.py
>> U
>> zope.app.container/trunk/src/zope/app/container/browser/commontasks.pt
>> U
>> zope.app.container/trunk/src/zope/app/container/browser/tests/test_adding.py
>>
>>
>> -=-
>> Modified: zope.app.container/trunk/setup.py
>> ===================================================================
>> --- zope.app.container/trunk/setup.py 2008-06-13 13:48:19 UTC (rev
>> 87364)
>> +++ zope.app.container/trunk/setup.py 2008-06-13 13:53:01 UTC (rev
>> 87365)
>> @@ -84,6 +84,7 @@
>> 'zope.app.broken',
>> 'zope.copypastemove',
>> 'ZODB3',
>> + 'zope.i18n',
>> ],
>> include_package_data = True,
>> zip_safe = False,
>>
>> Modified:
>> zope.app.container/trunk/src/zope/app/container/browser/adding.py
>> ===================================================================
>> ---
>> zope.app.container/trunk/src/zope/app/container/browser/adding.py
>> 2008-06-13 13:48:19 UTC (rev 87364)
>> +++
>> zope.app.container/trunk/src/zope/app/container/browser/adding.py
>> 2008-06-13 13:53:01 UTC (rev 87365)
>> @@ -43,8 +43,8 @@
>> from zope.app.container.interfaces import IContainerNamesContainer
>> from zope.app.pagetemplate.viewpagetemplatefile import
>> ViewPageTemplateFile
>> from zope.app.publisher.browser.menu import getMenu
>> +from zope.i18n import translate
>>
>> -
>> class Adding(BrowserView):
>> implements(IAdding, IPublishTraverse)
>>
>> @@ -182,6 +182,9 @@
>> continue
>> elif item['extra']['factory'] != item['action']:
>> item['has_custom_add_view']=True
>> + # translate here to have a localized sorting
>> + item['title'] = zope.i18n.translate(item['title'],
>> +
>> context=self.request)
>> result.append(item)
>>
>> result.sort(lambda a, b: cmp(a['title'], b['title']))
>>
>> Modified:
>> zope.app.container/trunk/src/zope/app/container/browser/commontasks.pt
>> ===================================================================
>> ---
>> zope.app.container/trunk/src/zope/app/container/browser/commontasks.pt
>> 2008-06-13 13:48:19 UTC (rev 87364)
>> +++
>> zope.app.container/trunk/src/zope/app/container/browser/commontasks.pt
>> 2008-06-13 13:53:01 UTC (rev 87365)
>> @@ -1,5 +1,5 @@
>> <tal:block define="addingInfo context/@@+/addingInfo|nothing"
>> - condition="addingInfo" i18n:domain="zope">
>> + condition="addingInfo">
>>
>> <tal:block repeat="info addingInfo"
>> define="namesRequired context/@@+/nameAllowed">
>> @@ -15,7 +15,7 @@
>> tal:attributes="
>> href
>> string:${baseurl}/@@contents.html?type_name=${info/action};
>> class info/selected"
>> - tal:content="info/title" i18n:translate="">Folder
>> + tal:content="info/title">Folder
>> </a>
>>
>> <a href="#"
>> @@ -25,7 +25,7 @@
>> tal:attributes="
>> href
>> string:${baseurl}/@@+/action.html?type_name=${info/action};
>> class info/selected"
>> - tal:content="info/title" i18n:translate="">Folder
>> + tal:content="info/title">Folder
>> </a>
>>
>> <a href="#"
>> @@ -34,7 +34,7 @@
>> tal:attributes="
>> href python: info['action'][3:];
>> class info/selected"
>> - tal:content="info/title" i18n:translate="">Folder
>> + tal:content="info/title">Folder
>> </a>
>> </div>
>> </tal:block>
>>
>> Modified:
>> zope.app.container/trunk/src/zope/app/container/browser/tests/test_adding.py
>>
>> ===================================================================
>> ---
>> zope.app.container/trunk/src/zope/app/container/browser/tests/test_adding.py
>> 2008-06-13 13:48:19 UTC (rev 87364)
>> +++
>> zope.app.container/trunk/src/zope/app/container/browser/tests/test_adding.py
>> 2008-06-13 13:53:01 UTC (rev 87365)
>> @@ -264,18 +264,18 @@
>> >>> len(items)
>> 1
>> >>> items[0]['title']
>> - 'item3'
>> + u'item3'
>>
>> >>> adding.menu_id = 'TestMenu'
>> >>> items = adding.addingInfo()
>> >>> len(items)
>> 3
>> >>> items[0]['title']
>> - 'item1'
>> + u'item1'
>> >>> items[1]['title']
>> - 'item2'
>> + u'item2'
>> >>> items[2]['title']
>> - 'item3'
>> + u'item3'
>> """
>>
>> def test_constraint_driven_add():
>>
>> _______________________________________________
>> Checkins mailing list
>> Checkins at zope.org
>> http://mail.zope.org/mailman/listinfo/checkins
>>
>
> _______________________________________________
> Checkins mailing list
> Checkins at zope.org
> http://mail.zope.org/mailman/listinfo/checkins
>
>
More information about the Checkins
mailing list