doc/book/devrepo/devcore/reqbase.rst
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Thu, 28 Jan 2016 18:17:30 +0100
changeset 11090 b4b854c25de5
parent 10491 c67bcee93248
permissions -rw-r--r--
[repository] set .eid on eschema when schema is loaded from the filesystem enforcing the contract that a repository's schema should have .eid attribute of entity schema set to the eid of the entity used to serialize them in the db. Before this cset, this was not true during tests or for some c-c commands where 'quick_start' is set (eg db-restore, i18ncube...). The change in server __init__ makes this assumption true during instance creation: the serializing code was actually setting eid on schema object, but a reference to a previously built schema was given instead of the one for the latest created repository. Closes #10450092

Request and ResultSet methods
-----------------------------

Those are methods you'll find on both request objects and on
repository session.

Request methods
~~~~~~~~~~~~~~~

`URL handling`:

* `build_url(*args, **kwargs)`, returns an absolute URL based on the
  given arguments. The *controller* supposed to handle the response,
  can be specified through the first positional parameter (the
  connection is theoretically done automatically :).

`Data formatting`:

* `format_date(date, date_format=None, time=False)` returns a string for a
  date time according to instance's configuration

* `format_time(time)` returns a string for a date time according to
  instance's configuration

`And more...`:

* `tal_render(template, variables)`, renders a precompiled page template with
  variables in the given dictionary as context


Result set methods
~~~~~~~~~~~~~~~~~~

* `get_entity(row, col)`, returns the entity corresponding to the data position
  in the *result set*

* `complete_entity(row, col, skip_bytes=True)`, is equivalent to `get_entity` but
  also call the method `complete()` on the entity before returning it