--- a/server/repository.py Sun Aug 16 20:42:33 2009 +0200
+++ b/server/repository.py Mon Aug 17 18:25:57 2009 +0200
@@ -1011,7 +1011,7 @@
session.set_entity_cache(entity)
only_inline_rels, need_fti_update = True, False
relations = []
- for attr in entity.keys():
+ for attr in edited_attributes:
if attr == 'eid':
continue
rschema = eschema.subject_relation(attr)
@@ -1021,8 +1021,8 @@
only_inline_rels = False
else:
# inlined relation
- previous_value = entity.related(attr)
- if previous_value:
+ previous_value = entity.related(attr) or None
+ if previous_value is not None:
previous_value = previous_value[0][0] # got a result set
if previous_value == entity[attr]:
previous_value = None
@@ -1051,7 +1051,7 @@
for attr, value, prevvalue in relations:
# if the relation is already cached, update existant cache
relcache = entity.relation_cached(attr, 'subject')
- if prevvalue:
+ if prevvalue is not None:
self.hm.call_hooks('after_delete_relation', session,
eidfrom=entity.eid, rtype=attr, eidto=prevvalue)
if relcache is not None: