def delete_entity(id_: int) -> Optional[str]: url = None entity = Entity.get_by_id(id_) if not is_authorized(entity.class_.write_access): abort(403) # pragma: no cover if isinstance(entity, ReferenceSystem): if entity.system: abort(403) if entity.forms: flash(_('Deletion not possible if forms are attached'), 'error') return url_for('entity_view', id_=id_) if entity.class_.view in ['artifact', 'place']: if entity.get_linked_entities('P46'): flash(_('Deletion not possible if subunits exists'), 'error') return url_for('entity_view', id_=id_) parent = None \ if entity.class_.name == 'place' \ else entity.get_linked_entity('P46', True) entity.delete() logger.log_user(id_, 'delete') flash(_('entity deleted'), 'info') if parent: tab = f"#tab-{entity.class_.name.replace('_', '-')}" url = url_for('entity_view', id_=parent.id) + tab else: Entity.delete_(id_) logger.log_user(id_, 'delete') flash(_('entity deleted'), 'info') if entity.class_.name == 'file': try: delete_files(id_) except Exception as e: # pragma: no cover logger.log('error', 'file', 'file deletion failed', e) flash(_('error file delete'), 'error') return url
def translation_delete(id_: int) -> Response: source = Link.get_linked_entity_safe(id_, 'P73', inverse=True) Entity.delete_(id_) flash(_('entity deleted'), 'info') return redirect(f"{url_for('entity_view', id_=source.id)}#tab-text")