wcs/help/fr/misc-conditions.page

110 lines
3.4 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<page xmlns="http://projectmallard.org/1.0/"
type="topic" id="misc-conditions" xml:lang="fr">
<info>
<revision docversion="0.1" date="2014-09-12" status="draft"/>
<link type="seealso" xref="misc-substvars" />
<credit type="author">
<name>Frédéric Péters</name>
<email>fpeters@entrouvert.com</email>
</credit>
</info>
<title>Exemples de conditions</title>
<p>
Dans la définition de pages conditionnelles et dans le paramétrage de sauts
dans le workflow, il y a besoin d'exprimer une condition sous forme d'une
expression Python. Cette page ne se veut évidemment pas un guide complet,
toutes les possibilités offertes par le langage Python étant possibles, mais
une série d'exemples concrets, rencontrés dans le paramétrage.
</p>
<note><p>Une explication sur les variables accessibles se trouve dans la page
<link xref="misc-substvars">variables de substitution</link>.
</p></note>
<section>
<title>Expressions simples</title>
<p>
Pour tester le code postal associé à l'utilisateur courant, par exemple
pour proposer une page différente aux habitants d'une commune particulière,
l'expression suivante pourrait être utilisée :
</p>
<example><code>session_user_var_codepostal == '07530'</code></example>
<p>
Dans le même ordre d'idée, pour les utilisateurs qui ne seraient <em>pas</em>
de cette commune :
</p>
<example><code>session_user_var_codepostal != '07530'</code></example>
<p>
De manière générale, la négative peut également être obtenue en entourant
l'expression d'un <code>not()</code> :
</p>
<example><code>not(session_user_var_codepostal == '07530')</code></example>
<p>
Il peut également être imaginé de viser un département entier, en regardant
les deux premiers chiffres, deux manières sont possibles :
</p>
<example><code>session_user_var_codepostal.startswith('07')</code></example>
<p>
Ou, en utilisant <code>[:2]</code> pour signifier « les deux premiers
caractères » :
</p>
<example><code>session_user_var_codepostal[:2] == '07'</code></example>
<p>
Tout autre chose, pour une réservation, on pourrait vouloir afficher une
page supplémentaire demandant les noms des inscrits, quand l'inscription
est faite pour plusieurs personnes. L'utilisation de <code>int()</code>
permet les comparaisons numériques :
</p>
<example><code>int(form_var_nombre_de_reservations) > 1</code></example>
</section>
<section>
<title>Expressions combinées</title>
<p>
Pour étendre un exemple donné plus haut, si on voulait afficher une page aux
usagers de deux communes différentes, on combinerait les expressions avec le
mot-clé <code>or</code> :
</p>
<example><code>session_user_var_codepostal == '07520' or session_user_var_codepostal == '07530'</code></example>
<p>
Cela peut devenir long avec un grand nombre de codes postaux, la même
expression peut être réduite en expression simple avec <code>in</code> :
</p>
<example><code>session_user_var_codepostal in ('07510', '07520', '07530')</code></example>
<p>
Sur ces exemples de codes postaux, si l'application visait plusieurs pays, on
devrait combiner le test, pour par exemple avoir « 07530 » comme code postal
<em>et</em> « France » comme pays. Cela se fait avec le mot-clé
<code>and</code> :
</p>
<example><code>session_user_var_codepostal == '07520' and session_user_var_pays == 'France'</code></example>
</section>
</page>