[Plone-conosur] Problema con CacheFu

David Picó Vila dpico en dsic.upv.es
Vie Ago 8 15:05:38 UTC 2008


Hola!

He hecho una pequeña modificación a  
plone.belowcontenttitle.documentbyline a través de  
portal_view_customizations y se me ha fastidiado CacheFu.

Os lo detallo, a ver si alguien me puede echar una mano. La idea era  
poder controlar en qué páginas se ve la información del propietario de  
document, fecha de modificación, etc. (es decir, el DocumentByLine).

Para eso lo que hice fue modificar el viewlet de documentbyline. El  
original es este:

<div class="documentByLine"
      id="plone-document-byline"
      i18n:domain="plone"
      tal:condition="view/show">

y el modificado

<div class="documentByLine"
      id="plone-document-byline"
      i18n:domain="plone"
      tal:condition="view/show and not here.hideDocumentByLine">

Es decir, que añadí la condición "and not here.hideDocumentByLine" que  
usa una propiedad booleana definida por mí. Si entro en el /manage de  
un documento y defino hideDocumentByLine con valor False, entonces la  
linea "byline" no se ve. Uso esto para hacer portadas de subsecciones.  
En el resto de documentos me interesa que se vea quién es el autor,  
porque uso esto en un sitio colaborativo.

Todo funciona, ¡excepto CacheFu! Si lo activo con los cambios  
anteriores, me da el siguiente error (pongo lo interesante):

Traceback (innermost last):
   Module ZPublisher.Publish, line 119, in publish
...
   Module Products.CacheSetup.patch_cmf, line 48, in FSPT_pt_render
   Module Products.CacheSetup.patch_cmf, line 123, in PT_pt_render
   Module zope.tal.talinterpreter, line 271, in __call__
...
   Module zope.tales.tales, line 696, in evaluate
    - URL: file:/home/dpico/webapps/plonebuild/parts/plone/CMFPlone/ 
skins/plone_content/document_view.pt
    - Line 25, Column 8
    - Expression: <StringExpr u'plone.belowcontenttitle'>
    - Names:
       {'container': <PloneSite at /terapiados>,
        'context': <ATDocument at /terapiados/quienes-somos/quienes- 
somos>,
        'default': <object object at 0xb7f31528>,
        'here': <ATDocument at /terapiados/quienes-somos/quienes-somos>,
        'loop': {},
        'nothing': None,
        'options': {'args': ()},
        'repeat': <Products.PageTemplates.Expressions.SafeMapping  
object at 0xafbc9b4c>,
        'request': <HTTPRequest, URL=http://terapiados.net/quienes-somos/quienes-somos/document_view 
 >,
        'root': <Application at >,
        'template': <FSPageTemplate at /terapiados/document_view used  
for /terapiados/quienes-somos/quienes-somos>,
        'traverse_subpath': [],
...
   Module Products.CacheSetup.patch_cmf, line 123, in PT_pt_render
   Module zope.tal.talinterpreter, line 271, in __call__
   Module zope.tal.talinterpreter, line 346, in interpret
   Module zope.tal.talinterpreter, line 854, in do_condition
   Module Products.PageTemplates.Expressions, line 211, in  
evaluateBoolean
   Module zope.tales.tales, line 696, in evaluate
    - URL: /terapiados/experiencias/muere-casi-todo-igual/ 
zope.interface.interface-plone.belowcontenttitle.documentbyline
    - Line 1, Column 0
    - Expression: <PathExpr standard:u'view/show and not  
here.hideDocumentByLine'>
    - Names:
       {'container': <ATDocument at /terapiados/quienes-somos/quienes- 
somos>,
        'context': <ATDocument at /terapiados/quienes-somos/quienes- 
somos>,
        'default': <object object at 0xb7f31528>,
        'here': <ATDocument at /terapiados/quienes-somos/quienes-somos>,
        'loop': {},
        'nothing': None,
        'options': {'args': ()},
        'repeat': <Products.PageTemplates.Expressions.SafeMapping  
object at 0xafc425ec>,
        'request': <HTTPRequest, URL=http://terapiados.net/quienes-somos/quienes-somos/document_view 
 >,
        'root': <Application at >,
        'template': <TTWViewTemplate at /terapiados/quienes-somos/ 
quienes-somos/zope.interface.interface- 
plone.belowcontenttitle.documentbyline>,
        'user': <PloneUser 'gestion'>,
        'view': <five.customerize.zpt.TTWViewlet object at 0xafc8d8cc>}
   Module zope.tales.expressions, line 217, in __call__
...
   Module zope.traversing.adapters, line 164, in traversePathElement
    - __traceback_info__: (<five.customerize.zpt.TTWViewlet object at  
0xafc8d8cc>, 'show and not here.hideDocumentByLine')
   Module zope.traversing.adapters, line 52, in traverse
    - __traceback_info__: (<five.customerize.zpt.TTWViewlet object at  
0xafc8d8cc>, 'show and not here.hideDocumentByLine', [])
TraversalError: (<five.customerize.zpt.TTWViewlet object at  
0xafc8d8cc>, 'show and not here.hideDocumentByLine')


O sea, que el pequeño añadido hacer que CacheFu deje de funcionar.

No tengo ni idea de por donde meterle mano al asunto. Cualquier idea  
para averiguar cómo arreglar esto será bienvenida con gran  
agradecimiento.

¡Un saludo y feliz agosto! (vacaciones en España para la mayor parte  
de la gente, aunque no todos...)

David



Más información sobre la lista de distribución Plone-ConoSur