925 self.repo.hm.call_hooks('before_add_entity', session, entity=entity) |
925 self.repo.hm.call_hooks('before_add_entity', session, entity=entity) |
926 # restore the entity |
926 # restore the entity |
927 action.changes['cw_eid'] = eid |
927 action.changes['cw_eid'] = eid |
928 sql = self.sqlgen.insert(SQL_PREFIX + etype, action.changes) |
928 sql = self.sqlgen.insert(SQL_PREFIX + etype, action.changes) |
929 self.doexec(session, sql, action.changes) |
929 self.doexec(session, sql, action.changes) |
|
930 # add explicitly is / is_instance_of whose deletion is not recorded for |
|
931 # consistency with addition (done by sql in hooks) |
|
932 self.doexec(session, 'INSERT INTO is_relation(eid_from, eid_to) ' |
|
933 'VALUES(%s, %s)' % (eid, eschema_eid(session, eschema))) |
|
934 for eschema in entity.e_schema.ancestors() + [entity.e_schema]: |
|
935 self.doexec(session, 'INSERT INTO is_instance_of_relation(eid_from,' |
|
936 'eid_to) VALUES(%s, %s)' % (eid, eschema_eid(session, eschema))) |
930 # restore record in entities (will update fti if needed) |
937 # restore record in entities (will update fti if needed) |
931 self.add_info(session, entity, self, None, True) |
938 self.add_info(session, entity, self, None, True) |
932 # remove record from deleted_entities if entity's type is multi-sources |
939 # remove record from deleted_entities if entity's type is multi-sources |
933 if entity.__regid__ in self.multisources_etypes: |
940 if entity.__regid__ in self.multisources_etypes: |
934 self.doexec(session, |
941 self.doexec(session, |