Forcer un format de fichier spécifique pour un champ de type Document

Bonjour,

J’aimerais ajouter une contrainte sur certains de mes champs de type document pour que quand un utilisateur nous envoie un fichier, il soit au format PDF ou pdf (ignorant la case).
Je le faisais dans le code avant, mais j’aimerais le faire via une contrainte.

Je ne trouve pas de documentation à ce sujet. Auriez-vous une idée de comment procéder ?

Bonjour,

Les contraintes ne servent pas à la validation d’un champ.

Ce sont des assertions “Si xxx Alors xxx” pour modifier des comportements à la volée en back et/ou en front

  • Sur la visibilité d’une vue, action, zone
  • sur les propriétés d’un champ (visible, obligatoire…)
  • ou de l’objet (copiable…)

Tout ce qui est fait par contrainte peut être fait par code (hook front ou back)
La réciproque n’est pas possible, car les possibilités du code sont infinies.

Il faut donc implémenter votre règle dans le pre/postValidate de votre objet.
Pour les champs multi-documents (type document + rendering multiple), on peut spécifier les “accept files” dans la bibliothèque associée au champ (Bookshelf du menu Document).

Ce serait intéressant que cette fonctionnalité de paramétrage s’applique au champ document simple. On va regarder pour l’ajouter.

L’évolution a été faite à partir de la v5.2.

Un nouvel attribut de type Document sera associé à un Bookshelf quel que soit son rendering (mono ou multi-docs). Cela permet d’y spécifier quels sont les MIME types acceptés (accept files).
Le Bookshelf supporte aussi le paramétrage du min/max documents en cas de document multiples.

  • Il faut forcer un enregistrement des attributs existants pour générer le Bookshelf, cela n’est pas automatique.

  • Si un attribut n’a pas de Bookshelf, ou que celui-ci ne précise pas de MIME types, tous les types de fichiers seront acceptés.

1 Like