doc/book/en/B051-define-entities.en.txt
changeset 130 213f07dffde3
parent 127 ae611743f5c6
child 188 97cc951f9f3c
equal deleted inserted replaced
129:061fa802e2a3 130:213f07dffde3
     1 .. -*- coding: utf-8 -*-
     1 .. -*- coding: utf-8 -*-
     2 
     2 
     3 Paramétrages et extensions spécifiques
     3 Parametrization and specific extensions
     4 --------------------------------------
     4 ---------------------------------------
     5 
     5 
     6 Valeurs par défaut dynamiques
     6 Dynamic default values
     7 `````````````````````````````
     7 ``````````````````````
     8 Il est possible de définir dans le schéma des valeurs par défaut *statiques*.
     8 It is possible to define in the schema *static* default values.
     9 Il est également possible de définir des valeurs par défaut *dynamiques* en 
     9 It is also possible to define in the schema *dynamic* default values
    10 définissant sur la classe d'entité une méthode `default_<nom attribut>` pour
    10 by defining in the entity class a method `default_<attribut name>` for
    11 un attribut donnée.
    11 a given attribute.
    12 
    12 
    13 
    13 
    14 Contrôle des attributs chargés et du tri par défaut
    14 Control of loaded attributes and default sorting
    15 ```````````````````````````````````````````````````
    15 ````````````````````````````````````````````````
    16 * l'attribut de classe `fetch_attrs` permet de définir sur une classe d'entité
       
    17   la liste des noms des attributs ou relations devant être chargés 
       
    18   automatiquement lors de la récupération d'entité(s) de ce type. Dans le cas 
       
    19   des relations, on est limité aux relations *sujets de cardinalité `?` ou `1`*.
       
    20 
    16 
    21 * la méthode de classe `fetch_order(attr, var)` prend en argument un nom 
    17 * The class attribute `fetch_attrs` allows to defined in an entity class
    22   d'attribut (ou de relation) et un nom de variable et doit retourner une chaine
    18   a list of names of attributes or relations that should be automatically
    23   à utiliser dans la close "ORDERBY" d'une requête RQL pour trier 
    19   loaded when we recover the entities of this type. In the case of relations,
    24   automatiquement les listes d'entités de ce type selon cet attribut, ou `None`
    20   we are limited to *subject of cardinality `?` or `1`* relations.
    25   si l'on ne veut pas de tri sur l'attribut passé en argument. Par défaut les 
       
    26   entités sont triées selon leur date de création
       
    27 
    21 
    28 * la méthode de classe `fetch_unrelated_order(attr, var)` est similaire à la 
    22 * The class method `fetch_order(attr, var)` expects an attribute (or relation)
    29   méthode `fetch_order` mais est utilisée essentiellement pour contrôler le tri
    23   name as a parameter and a variable name, and it should return a string
    30   des listes déroulantes permettant de créer des relations dans la vue d'édition
    24   to use in the requirement `ORDER BY` of an RQL query to automatically
    31   d'une entité
    25   sort the list of entities of such type according to this attribute, or
       
    26   `None` if we do not want to sort on the attribute given in the parameter.
       
    27   By default, the entities are sorted according to their creation date.
    32 
    28 
    33 La fonction `fetch_config(fetchattrs, mainattr=None)` permet de simplifier la 
    29 * The class method `fetch_unrelated_order(attr, var)` is similar to the 
    34 définition des attributs à précharger et du tri en retournant une liste des 
    30   method `fetch_order` except that it is essentially used to control
    35 attributs à précharger (en considérant ceux de la classe  `AnyEntity`
    31   the sorting of drop-down lists enabling relations creation in 
    36 automatiquement) et une fonction de tri sur l'attribut "principal" (le 2eme 
    32   the editing view of an entity.
    37 argument si spécifié ou sinon le premier attribut de la liste `fetchattrs`).
       
    38 Cette fonction est définie dans le package `ginco.entities`.
       
    39 
    33 
    40 Par exemple : ::
    34 The function `fetch_config(fetchattrs, mainattr=None)` simplifies the
       
    35 definition of the attributes to load and the sorting by returning a 
       
    36 list of attributes to pre-load (considering automatically the attributes
       
    37 of `AnyEntity`) and a sorting function based on the main attribute
       
    38 (the second parameter if specified otherwisethe first attribute from
       
    39 the list `fetchattrs`).
       
    40 This function is defined in `cubicweb.entities`.
       
    41 
       
    42 By example: ::
    41 
    43 
    42   class Transition(AnyEntity):
    44   class Transition(AnyEntity):
    43     """..."""
    45     """..."""
    44     id = 'Transition'
    46     id = 'Transition'
    45     fetch_attrs, fetch_order = fetch_config(['name'])
    47     fetch_attrs, fetch_order = fetch_config(['name'])