def delete_term(cls, taxonomy: Taxonomy, term: TaxonomyTerm): """Delete a taxonomy term. :param taxonomy: taxonomy of the term :param term: term instance to be deleted :raise TaxonomyDeleteError """ taxonomy.lock() before_taxonomy_term_deleted.send(term, taxonomy=taxonomy, term=term) check_references_before_delete(term, taxonomy=taxonomy, term=term) term.delete() db.session.commit() after_taxonomy_term_deleted.send(term, taxonomy=taxonomy, term=term)
def update_term(cls, taxonomy: Taxonomy, term: TaxonomyTerm, changes) -> TaxonomyTerm: """Updates a taxonomy term. :param taxonomy: taxonomy instance of the term :param term: term instance to be updated :param extra_data: new term metadata :return TaxonomyTerm: updated taxonomy term """ taxonomy.lock() before_taxonomy_term_updated.send(term, term=term, taxonomy=taxonomy, extra_data=changes['extra_data']) term.update(**changes) db.session.commit() after_taxonomy_term_updated.send(term, term=term, taxonomy=taxonomy) return term