;ς ŒBCc@sdZdZdklZdklZdklZdkl Z l Z dk l Z l Z d„Zdd „Zd kZdZeed ƒ o1he _e ie _ee _ee_d Znd klZdklZdklZy$dklZlZdkl Z Wn e!Z nXd„Z"e!d„Z#e!d„Z$dZ%eedƒ o<ei&e_'e"e_&e#e_(e o e$e _(nd Z%ndk)l*Z*d klZdZ+ee*dƒ ode*_,de_,d Z+nd„Z-dk)l*Z*d klZdZ.e-e*_/e-e_/d S(sA Patches. $Id: Patches.py 8360 2005-05-06 12:07:05Z longsleep $ s$Revision: 1.10 $(s StringType(s get_ident(s aq_parent(sPublishsmapply(sLOGsPROBLEMcCstiitƒtƒSdS(sGet a request objectN(sPublishs _requestssgets get_identsNone(((s?/mnt/gmirror/ports/www/zope-i18nlayer/work/I18NLayer/Patches.pys get_request3sicCsntƒ}|ti| call _old_filteredItems() and strip empty I18NLayers s I18NLayeriis portal_typeN(sselfs_old_filteredItemssidssfiltsresultsouttypessisxslenslengthsincsrsgetattrsgetIdstypsNones_checkPermissionsModifyPortalContent( sselfsidssfiltsouttypessislengthsrsresultsxstypsinc((s?/mnt/gmirror/ports/www/zope-i18nlayer/work/I18NLayer/Patches.pysnew__filteredItemscs.      cCsβ|tj oΎt|ƒtdƒjo |g}ng}x‡|iD]|}|d|jo|i|dƒqC|ddjo?t||dƒ}|i ƒ|jo|i|dƒqΏqCqCW|Snt d„|iƒSdS(Nsss meta_typesids I18NLayercCs|dS(Nsid(si(si((s?/mnt/gmirror/ports/www/zope-i18nlayer/work/I18NLayer/Patches.pys˜s( sspecsNonestypessetsselfs_objectssobsappendsgetattrsosContainmentMetaTypesmap(sselfsspecssetsobso((s?/mnt/gmirror/ports/www/zope-i18nlayer/work/I18NLayer/Patches.pys new_objectIds€s   c Cs6|tj ot|tƒo |g}n|i}t}x@|D]8}|i |tƒ}|tj ot ||ƒ}q@q@W|i dtƒ}|tj ogt ƒ}x[|iƒD]I}|i|ƒ}|iƒ|jo||||