goa/doc/devmanual_fr/chap_definition_workflows.txt
author Julien Jehannet <Julien Jehannet <julien.jehannet@logilab.fr>>
Tue, 02 Mar 2010 21:48:36 +0100
branchstable
changeset 4783 6dc34d4cf892
parent 0 b97547f5f1fa
permissions -rw-r--r--
[F] views: fix 2 unicode errors 1. You can now use valid unicode strings in ValidationError exception. Previously, if 'err' contains unicode, UnicodeDecodeError was raised by format_errors() >>> templstr = '<li>%s</li>\n' >>> e = ValidationError(None, {None: u'oué, une exception en unicode!'}) >>> templstr % e '<li>None (None): ou\xc3\xa9, une exception en unicode!</li>\n' >>> templstr = u'<li>%s</li>\n' >>> templstr % e u'<li>None (None): ou\xe9, une exception en unicode!</li>\n' 2. The message of an Exception can contains unicode. But it now properly managed by “informal” string representation. We can easily fix the problem by using the Exception.message attribute that still contains the original message. >>> a = AssertionError(u'séfdsdf') >>> a.message u's\xe9fdsdf' >>> str(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 1: ordinal not in range(128) >>> a = ValueError(u'fsdfsdéfsdfs') >>> str(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 6: ordinal not in range(128) >>> a ValueError(u'fsdfsd\xe9fsdfs',) >>> unicode(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 6: ordinal not in range(128) >>> a.message u'fsdfsd\xe9fsdfs'

Dfinition de workflow
======================
On peut mettre une condition rql ou/et un groupe auquel doit appartenir l'utilisateur.

Si on met  la fois un(ou plusieurs) groupe et une condition RQL, il faut que les deux soient respects.

Si on met plusieurs groupes, il faut que l'utilisateur soit dans un des groupes.

Pour la condition RQL sur une transition, on peut y mettre les substitutions suivantes :

* `%(eid)s`, eid de l'objet
* `%(ueid)s`, eid de l'utilisateur qui fait la requte
* `%(seid)s`, eid de l'tat courant de l'objet

Dans le script de cration d'un workflow, penser  mettre `_()` autour des noms d'tats et de transitions
pour que ceux si soient pris en compte par les scripts de gestion des catalogues i18n.