1104 previous_value = entity.related(attr) or None |
1105 previous_value = entity.related(attr) or None |
1105 if previous_value is not None: |
1106 if previous_value is not None: |
1106 previous_value = previous_value[0][0] # got a result set |
1107 previous_value = previous_value[0][0] # got a result set |
1107 if previous_value == entity[attr]: |
1108 if previous_value == entity[attr]: |
1108 previous_value = None |
1109 previous_value = None |
1109 else: |
1110 elif source.should_call_hooks: |
1110 hm.call_hooks('before_delete_relation', session, |
1111 hm.call_hooks('before_delete_relation', session, |
1111 eidfrom=entity.eid, rtype=attr, |
1112 eidfrom=entity.eid, rtype=attr, |
1112 eidto=previous_value) |
1113 eidto=previous_value) |
1113 relations.append((attr, entity[attr], previous_value)) |
1114 relations.append((attr, entity[attr], previous_value)) |
1114 source = self.source_from_eid(entity.eid, session) |
1115 if source.should_call_hooks: |
1115 if source.should_call_hooks: |
1116 # call hooks for inlined relations |
1116 # call hooks for inlined relations |
1117 for attr, value, _ in relations: |
1117 for attr, value, _ in relations: |
1118 hm.call_hooks('before_add_relation', session, |
1118 hm.call_hooks('before_add_relation', session, |
1119 eidfrom=entity.eid, rtype=attr, eidto=value) |
1119 eidfrom=entity.eid, rtype=attr, eidto=value) |
1120 if not only_inline_rels: |
1120 if not only_inline_rels: |
1121 hm.call_hooks('before_update_entity', session, entity=entity) |
1121 hm.call_hooks('before_update_entity', session, entity=entity) |
|
1122 source.update_entity(session, entity) |
1122 source.update_entity(session, entity) |
1123 self.system_source.update_info(session, entity, need_fti_update) |
1123 self.system_source.update_info(session, entity, need_fti_update) |
1124 if source.should_call_hooks: |
1124 if source.should_call_hooks: |
1125 if not only_inline_rels: |
1125 if not only_inline_rels: |
1126 hm.call_hooks('after_update_entity', session, entity=entity) |
1126 hm.call_hooks('after_update_entity', session, entity=entity) |