# HG changeset patch # User Sylvain Thénault # Date 1250783827 -7200 # Node ID 51cdfe069e1028f8b5c3bb36fc43d97bbceacb5e # Parent edfdb69df6e81e58cc9aa679d75dd1e477019dca fix edited_attributes handling when adding entity diff -r edfdb69df6e8 -r 51cdfe069e10 server/repository.py --- a/server/repository.py Thu Aug 20 17:56:41 2009 +0200 +++ b/server/repository.py Thu Aug 20 17:57:07 2009 +0200 @@ -996,15 +996,16 @@ print 'ADD entity', etype, entity.eid, dict(entity) entity._is_saved = False # entity has an eid but is not yet saved relations = [] - # if inlined relations are specified, fill entity's related cache to - # avoid unnecessary queries + # init edited_attributes before calling before_add_entity hooks + entity.edited_attributes = set(entity) + if source.should_call_hooks: + self.hm.call_hooks('before_add_entity', etype, session, entity) + # XXX use entity.keys here since edited_attributes is not updated for + # inline relations for attr in entity.keys(): rschema = eschema.subject_relation(attr) if not rschema.is_final(): # inlined relation relations.append((attr, entity[attr])) - if source.should_call_hooks: - self.hm.call_hooks('before_add_entity', etype, session, entity) - entity.edited_attributes = set(entity) entity.set_defaults() entity.check(creation=True) source.add_entity(session, entity)