doc/3.14.rst
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Thu, 22 Sep 2011 16:12:23 +0200
changeset 7827 9bbf83f68bcc
child 7828 749e1a67987f
permissions -rw-r--r--
[entity] upgrade fetch_[unrelated_]order to benefit from changes introduced in 3.14 (closes #1942758) of rql generation parts of the ORM now based on rql syntax tree. This allows more powerful and flexible sort control by giving them the syntax tree instead of manipulating string. Also: * prefix new methods by 'cw_' * fix cases that currently crash in 3.14 due to the refactoring

API changes in cubicweb 3.14
----------------------------

* `Entity.fetch_order` and `Entity.fetch_unrelated_order` class methods have been
  replaced by `Entity.cw_fetch_order` and `Entity.cw_fetch_unrelated_order` with
  a different prototype:

  - instead of taking (attr, var) as two string argument, they now take (select,
    attr, var) where select is the rql syntax tree beinx constructed and var the
    variable *node*.

  - instead of returning some string to be inserted in the ORDERBY clause, it has
    to modify the syntax tree

  Backward compat is kept with proper warning, BESIDE cases below:

  - custom order method return **something else the a variable name with or
    without the sorting order** (e.g. cases where you sort on the value of a
    registered procedure as it was done in the tracker for instance). In such
    case, an error is logged telling that this sorting is ignored until API
    upgrade.

  - client code use direct access to one of those methods on an entity (no code
    known to do that)