[server] Fixed issue with the adapters cache of a cloned EditedEntity
The adapters' cache of the entity within an EditedEntity used to be copied along
the entity itself during a cloning operation of the EditedEntity. This raises
an issue when the adapters' cache is not empty and contains cached values
linking to transaction-specific data (or the transaction itself). This prevents
the clone EditedEntity being used in a transaction outside the one that created
it.
This change resets the adapters' cache of the new copy so that no cached value
remain. The new copy can then be used in a new transaction afterwards.
3.20 (06/01/2015)
=================
New features
------------
* virtual relations: a new ComputedRelation class can be used in
schema.py; its `rule` attribute is an RQL snippet that defines the new
relation.
* computed attributes: an attribute can now be defined with a `formula`
argument (also an RQL snippet); it will be read-only, and updated
automatically.
Both of these features are described in `CWEP-002`_, and the updated
"Data model" chapter of the CubicWeb book.
* cubicweb-ctl plugins can use the ``cubicweb.utils.admincnx`` function
to get a Connection object from an instance name.
* new 'tornado' wsgi backend
* session cookies have the HttpOnly flag, so they're no longer exposed to
javascript
* rich text fields can be formatted as markdown
* the edit controller detects concurrent editions, and raises a ValidationError
if an entity was modified between form generation and submission
* cubicweb can use a postgresql "schema" (namespace) for its tables
* "cubicweb-ctl configure" can be used to set values of the admin user
credentials in the sources configuration file
* in debug mode, setting the _cwtracehtml parameter on a request allows tracing
where each bit of output is produced
.. _CWEP-002: http://hg.logilab.org/review/cwep/file/tip/CWEP-002.rst
API Changes
-----------
* ``ucsvreader()`` and ``ucsvreader_pb()`` from the ``dataimport`` module have
2 new keyword arguments ``delimiter`` and ``quotechar`` to replace the
``separator`` and ``quote`` arguments respectively. This makes the API match
that of Python's ``csv.reader()``. The old arguments are still supported
though deprecated.
* the migration environment's ``remove_cube`` function is now called ``drop_cube``.
* cubicweb.old.css is now cubicweb.css. The previous "new"
cubicweb.css, along with its cubicweb.reset.css companion, have been
removed.
* the jquery-treeview plugin was updated to its latest version
Deprecated Code Drops
----------------------
* most of 3.10 and 3.11 backward compat is gone; this includes:
- CtxComponent.box_action() and CtxComponent.build_link()
- cubicweb.devtools.htmlparser.XMLDemotingValidator
- various methods and properties on Entities, replaced by cw_edited
and cw_attr_cache
- 'commit_event' method on hooks, replaced by 'postcommit_event'
- server.hook.set_operation(), replaced by
Operation.get_instance(...).add_data()
- View.div_id(), View.div_class() and View.create_url()
- `*VComponent` classes
- in forms, Field.value() and Field.help() must take the form and
the field itself as arguments
- form.render() must get `w` as a named argument, and
renderer.render() must take `w` as first argument
- in breadcrumbs, the optional `recurs` argument must be a set, not
False
- cubicweb.web.views.idownloadable.{download_box,IDownloadableLineView}
- primary views no longer have `render_entity_summary` and `summary`
methods
- WFHistoryVComponent's `cell_call` method is replaced by
`render_body`
- cubicweb.dataimport.ObjectStore.add(), replaced by create_entity
- ManageView.{folders,display_folders}