--- a/doc/book/en/development/devcore/vreg.rst Thu Jun 25 20:29:27 2009 +0200
+++ b/doc/book/en/development/devcore/vreg.rst Fri Jun 26 13:51:08 2009 +0200
@@ -1,3 +1,5 @@
+.. -*- coding: utf-8 -*-
+
The VRegistry
--------------
@@ -7,21 +9,23 @@
Details of the recording process
````````````````````````````````
-* par défaut on enregistre automatiquement tout les objets
+XXX this part needs to be updated and checked
+
+* by default all objects are registered automatically
-* si certains objets doivent remplacer d'autres objets ou être inclus
- conditionnellement,
- - enregistrement explicite en définissant la fonction `registration_callback(vreg)`
- - appel des méthodes d'enregistrement des objets sur le vreg
+* if some objects have to replace other objects or be included only if a
+ condition is true,
+ - explicitly register the object by defining `registration_callback(vreg)`
+ - call registration methods on objects listed in the vreg registry
+
.. note::
Once the function `registration_callback(vreg)` is implemented, all the objects
- need to be explicitly registered as it disables the automatic object registering.
+ have to be explicitly registered as it disables the automatic object registering.
-* suppression de l'ancien système quand il ne restera plus de réference au
- module registerers dans le code des cubes existants.
+* the old registration mechanism will be removed when there will be no reference
+ left to the registerers module in cubicweb and the library of cubes.
-
-Examples
+Examples:
.. code-block:: python
@@ -40,6 +44,7 @@
API d'enregistrement des objets
```````````````````````````````
+
.. code-block:: python
register(obj, registryname=None, oid=None, clear=False)
@@ -58,7 +63,8 @@
Defining selectors
``````````````````
-The object's selector is defined by itsd `__select__` class attribute.
+
+The object's selector is defined by its `__select__` class attribute.
When two selectors are combined using the `&` operator (former `chainall`), it
means that both should return a positive score. On success, the sum of scores is returned.
@@ -86,18 +92,20 @@
Example
````````
-Le but final : quand on est sur un Blog, on veut que le lien rss de celui-ci pointe
-vers les entrées de ce blog, non vers l'entité blog elle-même.
+XXX this part needs to be translated
-L'idée générale pour résoudre ça : on définit une méthode sur les classes d'entité
+Le but final : quand on est sur un Blog, on veut que le lien rss de celui-ci pointe
+vers les entrées de ce blog, non vers l'entité blog elle-même.
+
+L'idée générale pour résoudre ça : on définit une méthode sur les classes d'entité
qui renvoie l'url du flux rss pour l'entité en question. Avec une implémentation
-par défaut sur AnyEntity et une implémentation particulière sur Blog qui fera ce
+par défaut sur AnyEntity et une implémentation particulière sur Blog qui fera ce
qu'on veut.
-La limitation : on est embêté dans le cas ou par ex. on a un result set qui contient
+La limitation : on est embêté dans le cas ou par ex. on a un result set qui contient
plusieurs entités Blog (ou autre chose), car on ne sait pas sur quelle entité appeler
la méthode sus-citée. Dans ce cas, on va conserver le comportement actuel (eg appel
-à limited_rql)
+Ã limited_rql)
Donc : on veut deux cas ici, l'un pour un rset qui contient une et une seule entité,
l'autre pour un rset qui contient plusieurs entité.
@@ -116,7 +124,7 @@
pour voir le détail)
* non_final_entity, qui filtre sur des rset contenant une liste d'entité non finale
-ça correspond donc à notre 2eme cas. Reste à fournir un composant plus spécifique
+ça correspond donc à notre 2eme cas. Reste à fournir un composant plus spécifique
pour le 1er cas ::
class EntityRSSIconBox(RSSIconBox):
@@ -130,11 +138,11 @@
non sélectionnable). Donc ici, sur un rset avec plusieurs entités, onelinerset_selector
rendra la classe EntityRSSIconBox non sélectionnable, et on obtiendra bien la
classe RSSIconBox. Pour un rset avec une entité, la classe EntityRSSIconBox aura un
-score supérieur à RSSIconBox et c'est donc bien elle qui sera sélectionnée.
+score supérieur à RSSIconBox et c'est donc bien elle qui sera sélectionnée.
-Voili voilou, il reste donc pour finir tout ça :
+Voili voilou, il reste donc pour finir tout ça :
-* à définir le contenu de la méthode call de EntityRSSIconBox
+* Ã définir le contenu de la méthode call de EntityRSSIconBox
* fournir l'implémentation par défaut de la méthode renvoyant l'url du flux rss sur
AnyEntity
* surcharger cette methode dans blog.Blog
@@ -144,8 +152,8 @@
```````````````````````
Il faut utiliser les sélecteurs pour faire des choses différentes en
-fonction de ce qu'on a en entrée. Dès qu'on a un "if" qui teste la
-nature de `self.rset` dans un objet, il faut très sérieusement se
+fonction de ce qu'on a en entrée. Dès qu'on a un "if" qui teste la
+nature de `self.rset` dans un objet, il faut très sérieusement se
poser la question s'il ne vaut pas mieux avoir deux objets différent
avec des sélecteurs approprié.