# HG changeset patch # User Sylvain Thénault # Date 1286948718 -7200 # Node ID 869813c2dd4075fac159b414a9965315c707ad6c # Parent 43d71dd8a8ecc06649e1ab2c1751c20fd3bd4e5e [entity, repo] move prefill_entity_cache function back to repository due to usage of del_existing_rel_if_needed function which is also defined there diff -r 43d71dd8a8ec -r 869813c2dd40 entity.py --- a/entity.py Tue Oct 12 23:36:54 2010 +0200 +++ b/entity.py Wed Oct 13 07:45:18 2010 +0200 @@ -61,28 +61,6 @@ return False return True -def prefill_entity_caches(entity, relations): - session = entity._cw - # prefill entity relation caches - for rschema in entity.e_schema.subject_relations(): - rtype = str(rschema) - if rtype in schema.VIRTUAL_RTYPES: - continue - if rschema.final: - entity.cw_attr_cache.setdefault(rtype, None) - else: - entity.cw_set_relation_cache(rtype, 'subject', - session.empty_rset()) - for rschema in entity.e_schema.object_relations(): - rtype = str(rschema) - if rtype in schema.VIRTUAL_RTYPES: - continue - entity.cw_set_relation_cache(rtype, 'object', session.empty_rset()) - # set inlined relation cache before call to after_add_entity - for attr, value in relations: - session.update_rel_cache_add(entity.eid, attr, value) - del_existing_rel_if_needed(session, entity.eid, attr, value) - class Entity(AppObject): diff -r 43d71dd8a8ec -r 869813c2dd40 server/repository.py --- a/server/repository.py Tue Oct 12 23:36:54 2010 +0200 +++ b/server/repository.py Wed Oct 13 07:45:18 2010 +0200 @@ -54,12 +54,33 @@ BadConnectionId, Unauthorized, ValidationError, RepositoryError, UniqueTogetherError, typed_eid, onevent) from cubicweb import cwvreg, schema, server -from cubicweb.entity import prefill_entity_caches from cubicweb.server import utils, hook, pool, querier, sources from cubicweb.server.session import Session, InternalSession, InternalManager, \ security_enabled from cubicweb.server.ssplanner import EditedEntity +def prefill_entity_caches(entity, relations): + session = entity._cw + # prefill entity relation caches + for rschema in entity.e_schema.subject_relations(): + rtype = str(rschema) + if rtype in schema.VIRTUAL_RTYPES: + continue + if rschema.final: + entity.cw_attr_cache.setdefault(rtype, None) + else: + entity.cw_set_relation_cache(rtype, 'subject', + session.empty_rset()) + for rschema in entity.e_schema.object_relations(): + rtype = str(rschema) + if rtype in schema.VIRTUAL_RTYPES: + continue + entity.cw_set_relation_cache(rtype, 'object', session.empty_rset()) + # set inlined relation cache before call to after_add_entity + for attr, value in relations: + session.update_rel_cache_add(entity.eid, attr, value) + del_existing_rel_if_needed(session, entity.eid, attr, value) + def del_existing_rel_if_needed(session, eidfrom, rtype, eidto): """delete existing relation when adding a new one if card is 1 or ?