Package platecom :: Package langview :: Module events
[hide private]
[frames] | no frames]

Source Code for Module icsemantic.langfallback.events

 1  """ 
 2  icsemantic.langfallback events 
 3   
 4  @author: Juan Pablo Gimenez 
 5  @contact: jpg@rcom.com.ar 
 6  """ 
 7  __author__ = """Juan Pablo Gimenez <jpg@rcom.com.ar>""" 
 8  __docformat__ = 'plaintext' 
 9   
10  from zope.component import getUtility 
11   
12  from platecom.utils.interfaces import IicSemanticManagementContentTypes, \ 
13                                        IContentTypesMultilingualPatcher 
14   
15 -def site_patcher(event):
16 """ 17 handler que se dispara en el IBeforeTraverseEvent 18 19 En el event.object recibe el portal y tiene que patchear 20 a todos los ContentTypes que esten configurados 21 22 >>> from icsemantic.langfallback.events import site_patcher 23 24 >>> class Event: pass 25 >>> event = Event() 26 27 le paso cualquier porqueria como portal... 28 >>> event.object = 'portal' 29 >>> site_patcher(event) 30 31 le paso un portal pero no es Site... 32 >>> event.object = portal 33 >>> site_patcher(event) 34 35 le paso un portal que es un Site... 36 >>> from zope.app.component.hooks import setSite 37 >>> setSite(portal) 38 >>> site_patcher(event) 39 40 """ 41 if not getattr(event.object, '_v_multiligual_patched', None): 42 # one time event... 43 try: 44 pcm=getUtility(IicSemanticManagementContentTypes, 45 name='platecom.configuration') 46 except: 47 # si no tenemos la utility no hacemo'na 48 return 49 ccpatcher = getUtility(IContentTypesMultilingualPatcher) 50 for type_name in pcm.fallback_types: 51 try: 52 ccpatcher.patch(type_name, True) 53 except: 54 # TODO: reportar el problema de alguna manera 55 pass 56 event.object._v_multiligual_patched = True
57