2016-02-26 6 views
1

J'utilise ce code pour un simple lien de téléchargement (et apparaît uniquement si le champ « attachement » a une valeur - une pièce jointe) - (fonctionne très bien):tal: état des champs de fixation de fichier

<metal:field use-macro="python:here.widget('attachment', mode='view')" /> 

I voudrais également fournir une méthode de visualisation directe du fichier directement sans téléchargement. Je suis actuellement en utilisant cet extrait de code (fonctionne très bien):

<a tal:attributes="href string:${context/absolute_url}/attachment">View Attached File</a> 

Je veux ajouter une condition que si le champ « attachement » a en fait une pièce jointe, puis afficher le lien « vue ». Cependant, je suis incapable d'obtenir le robinet: condition de travail. En testant ce que j'ai essayé ces extraits de code:

<span tal:condition="here/attachment">ATTACHMENT</span> 

<span tal:condition="context/attachment">ATTACHMENT</span> 

<span tal:condition="template/attachment">ATTACHMENT</span> 

<span tal:condition="exists:template/attachment">ATTACHMENT</span> 

<span tal:condition="string:${context/absolute_url}/attachment">ATTACHMENT</span> 

<span tal:condition="python:here.widget('attachment', mode='view')">ATTACHMENT</span> 

<span tal:condition="exists:python:here.widget('attachment', mode='view')">ATTACHMENT</span> 

<span tal:define="file_exists2 exists:string:${context/absolute_url}/attachment" tal:condition="python:file_exists2">ATTACHMENT</span> 

(ci-dessus affichée, peu importe si la pièce jointe était présent ou non)

Y at-il une solution simple qui permettra à un tal: la condition de reconnaître avec précision si un le champ de fichier a la valeur et PAS l'affichage quand aucune pièce jointe est présente et l'affichage quand il est?

Répondre

2

Vous pouvez vérifier la taille de la pièce jointe:

Si c'est un Archétype (appel getSize sur le AT-Field, il est aussi traversable public):

<span tal:condition="context/attachment/getSize">ATTACHMENT</span> 

AFAIK sur DX, il est différent, car il est un NamedBlobFile :

<span tal:condition="context/attachment/get_size">ATTACHMENT</span> 
+0

Merci. C'est ce que j'ai fait! – ckrall