1089 previous_value = entity.related(attr) or None |
1090 previous_value = entity.related(attr) or None |
1090 if previous_value is not None: |
1091 if previous_value is not None: |
1091 previous_value = previous_value[0][0] # got a result set |
1092 previous_value = previous_value[0][0] # got a result set |
1092 if previous_value == entity[attr]: |
1093 if previous_value == entity[attr]: |
1093 previous_value = None |
1094 previous_value = None |
1094 else: |
1095 elif source.should_call_hooks: |
1095 hm.call_hooks('before_delete_relation', session, |
1096 hm.call_hooks('before_delete_relation', session, |
1096 eidfrom=entity.eid, rtype=attr, |
1097 eidfrom=entity.eid, rtype=attr, |
1097 eidto=previous_value) |
1098 eidto=previous_value) |
1098 relations.append((attr, entity[attr], previous_value)) |
1099 relations.append((attr, entity[attr], previous_value)) |
1099 source = self.source_from_eid(entity.eid, session) |
1100 if source.should_call_hooks: |
1100 if source.should_call_hooks: |
1101 # call hooks for inlined relations |
1101 # call hooks for inlined relations |
1102 for attr, value, _ in relations: |
1102 for attr, value, _ in relations: |
1103 hm.call_hooks('before_add_relation', session, |
1103 hm.call_hooks('before_add_relation', session, |
1104 eidfrom=entity.eid, rtype=attr, eidto=value) |
1104 eidfrom=entity.eid, rtype=attr, eidto=value) |
1105 if not only_inline_rels: |
1105 if not only_inline_rels: |
1106 hm.call_hooks('before_update_entity', session, entity=entity) |
1106 hm.call_hooks('before_update_entity', session, entity=entity) |
|
1107 source.update_entity(session, entity) |
1107 source.update_entity(session, entity) |
1108 self.system_source.update_info(session, entity, need_fti_update) |
1108 self.system_source.update_info(session, entity, need_fti_update) |
1109 if source.should_call_hooks: |
1109 if source.should_call_hooks: |
1110 if not only_inline_rels: |
1110 if not only_inline_rels: |
1111 hm.call_hooks('after_update_entity', session, entity=entity) |
1111 hm.call_hooks('after_update_entity', session, entity=entity) |