[Cubicweb] ORMHelper registry
Adrien Di Mascio
adrien.dimascio at logilab.fr
Tue Mar 8 20:30:09 CET 2011
Currently, we use *fetch_attrs* to improve attribute cache control and
*fetch_order* to control how data should be sorted. This has proven to
be very useful and easy to use.
However, in some complex cases, I'd like to be able to give more complex
hints to the ORM. For instance, I might like to :
- fetch different attributes according to the relation being traversed
(not only according to destination type)
- use RQL functions to change fetch_order
- sort according to "composed entities" (e.g. if schema defines "A rel1
B", "B rel2 (composite) C", I might want A.related('rel1') to sort
according to C)
- fetch other relations and other attributes that CubicWeb has no chance
- anything fancy
I would define and register such helpers in a custom registry, they
could define selectors, etc. etc. The ORMHelper interface would be
__select__ = something()
def fetch_order(self, rql):
I haven't give a lot of thoughts on the API actually, this is just a
concept I'd like to be discussed.
Any thoughts ?
Adrien Di Mascio - LOGILAB, Paris (France).
Formations - http://www.logilab.fr/formations
Développements - http://www.logilab.fr/services
Gestion de connaissances - http://www.cubicweb.org/
More information about the Cubicweb