diff -r 48f468f33704 -r e4580e5f0703 doc/book/fr/10-form-management.fr.txt --- a/doc/book/fr/10-form-management.fr.txt Fri Dec 10 12:17:18 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -.. -*- coding: utf-8 -*- - -Gestion de formulaires -====================== - -Contrôle de la génération automatique de formulaire pour les entités manipulée ------------------------------------------------------------------------------- -XXX FILLME - -* les formulaires 'edition' et 'creation' - -Le formulaire généré par défaut ne vous convient pas ? Vous êtes peut-être pas -obligé de le refaire à la main ! :) - -* rtags primary, secondary, generated, generic, - `Entity.relation_category(rtype, x='subject')` -* inline_view (now a rtag?) -* spécification widget - - -Fonctionnement du contrôleur d'édition par défaut (id: 'edit') --------------------------------------------------------------- - -Contrôle de l'édition -````````````````````` -Prérequis: les paramètres liés aux entités à éditer sont spécifiés de la forme :: - - : - -où l'eid de l'entité pourra être une lettre dans le cas d'une entité à créer. On -dénommera ces paramètres comme *qualifié*. - -1. récupération des entités à éditer en cherchant les paramètres de formulaire - commençant par 'eid:' ayant également un paramètre '__type' associé - (également *qualifié* par l'eid évidemment) - -2. pour tous les attributs et relations de chaque entité à éditer - - 1. recherche d'un paramètre 'edits-' ou 'edito-' - qualifié dans le cas d'une relation dont l'entité est objet - 2. si trouvé, la valeur récupérée est considérée comme la valeur originale - pour cette relation, et on cherche la (ou les) nouvelle(s) valeur(s) dans - le paramètre (qualifié) - 3. si la valeur est différente de l'originale, une requête de modification en - base est effectuée - -3. pour chaque entité à éditer - - 1. si un paramètre `__linkto` qualifié est spécifié, sa valeur doit être une - chaine (ou une liste de chaine) de la forme : :: - - :: - - où vaut 'subject' ou 'object' et chaque eid peut-être séparé d'un - autre par un '_'. Target spécifie *l'entité éditée* est sujet ou objet de la - relation et chaque relation ainsi spécifiée sera insérée. - - 2. si un paramètre `__cloned_eid` qualifié est spécifié pour une entité, les - relations de l'entité spécifiée en valeur de cette argument sont copiées sur - l'entité éditée - - - 3. si un paramètre `__delete` qualifié est spécifié, sa valeur doit être une - chaine (ou une liste de chaine) de la forme : :: - - :: - - où chaque eid sujet ou objet peut-être séparé d'un autre par un '_'. Chaque - relation ainsi spécifiée sera supprimée. - - 4. si un paramètre `__insert` qualifié est spécifié, sa valeur doit être de - même format que pour `__delete`, mais chaque relation ainsi spécifiée sera - insérée. - -4. si les paramètres `__insert` et/ou `__delete` sont trouvés non qualifiés, - ils sont interprétés comme décrit ci-dessus (quelque soit le nombre d'entité - édité) - -5. si aucune entité n'est éditée mais que le formulaire contient les paramètres - `__linkto` et `eid`, celui-ci est interprété en prenant la valeur spécifié - par le paramètre `eid` pour désigner l'entité sur laquelle ajouter les - relations - - -A noter que : - -* si le paramètre `__action_delete` est trouvé, toutes les entités comme - spécifiées à éditer seront supprimées - -* si le paramètre `__action_cancel` est trouvé, aucune action n'est effectuée - -* si le paramètre `__action_apply` est trouvé, l'édition est effectuée - normalement mais la redirection sera effectuée sur le formulaire (cf `Contrôle - de la redirection`_) - -* le paramètre `__method` est également supporté comme sur le template principal - (XXX not very consistent, maybe __method should be dealed in the view controller) - -* si aucune entité à éditer n'est trouvée et qu'il n'y a pas de paramètre - `__action_delete`, `__action_cancel`, `__linkto`, `__delete` ou `__insert`, - une erreur est levée - -* placer dans le formulaire le paramètre `__message` permettra d'utiliser la - valeur de ce paramètre comme message d'information à l'utilisateur une fois - l'édition effectuée. - - -Contrôle de la redirection -`````````````````````````` -Une fois que l'édition s'est bien passé, reste un problème : c'est bien beau -tout ça, mais où qu'on va maintenant ?? Si rien n'est spécifié, le controlleur -se débrouille, mais comme il fait pas toujours ce qu'on voudrait, on peut -controller ça en utilisant les paramètres suivant : - -* `__redirectpath`: chemin de l'url (relatif à la racine du site, sans paramètre - de formulaire - -* `__redirectparams`: paramètres de formulaires à ajouter au chemin - -* `__redirectrql`: requête RQL de redirection - -* `__redirectvid`: identifiant de vue de redirection - -* `__errorurl`: url du formulaire original, utilisé pour la redirection en cas - d'erreur de validation pendant l'édition. Si celui-ci n'est pas spécifié, une - page d'erreur sera présentée plutot qu'un retour sur le formulaire (qui est le - cas échéant responsable d'afficher les erreurs) - -* `__form_id`: identifiant de vue du formulaire original, utilisée si - `__action_apply` est trouvé - -En général on utilise soit `__redirectpath et `__redirectparams` soit -`__redirectrql` et `__redirectvid`.