You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Quand on essaie de supprimer un organisme associé à un jeu de données, on obient cette erreur : {"type": "Exception", "msg": "IntegrityError('(psycopg2.errors.ForeignKeyViolation) update or delete on table \"bib_organismes\" violates foreign key constraint \"fk_dataset_actor_id_organism\" on table \"cor_dataset_actor\"\\nDETAIL: Key (id_organisme)=(2) is still referenced from table \"cor_dataset_actor\".\\n')"}
Il faudrait le convertir en un message d'alerte du type "l'organisme est associé à un ou plusieurs jeux de données, etc .."
J'ai remarqué ce genre de problème pour plusieurs types d'objets, par exemple la suppression d'un groupe associé à une liste : {"type": "Exception", "msg": "IntegrityError('(psycopg2.errors.ForeignKeyViolation) update or delete on table \"t_roles\" violates foreign key constraint \"fk_cor_role_liste_id_role\" on table \"cor_role_liste\"\\nDETAIL: Key (id_role)=(1) is still referenced from table \"cor_role_liste\".\\n')"}
The text was updated successfully, but these errors were encountered:
Je viens de voir cette issue que le CEN Ariège à également rencontré (mais sur la suppression d'utilisateur qui appartiennent encore à une liste d'utilisateurs) .
J'ai eu le temps de tester un truc qui permet de gérer les cas où une erreur est renvoyé et d'améliorer l'expérience utilisateur pour pas qu'il se retrouve sur une page "Internal Server Error".
Voici le comportement actuel (en terme de feedback utilisateur lorsqu'on supprime un utilisateur qui ne peut pas être supprimé car référencé dans une autre table ) :
@route.route("users/delete/<id_role>", methods=["GET", "POST"])@fnauth.check_auth(6,)defdeluser(id_role):
""" Route qui supprime un utilisateurs dont l'id est donné en paramètres dans l'url Retourne une redirection vers la liste d'utilisateurs """try:
TRoles.delete(id_role)
flash("L'utilisateur a été supprimé avec succès.", "success")
exceptIntegrityErrorase:
error_message=str(e.orig)
# On extrait la partie du message après "DETAIL:"detail_match=re.search(r"DETAIL:\s*(.*)", error_message, re.IGNORECASE)
ifdetail_match:
detail_message=detail_match.group(1)
# On formatte le message d'erreur en utilisant les détails extraitsflash(f"L'utilisateur avec l'ID {id_role} ne peut pas être supprimé : {detail_message}", "error")
else:
flash("Une erreur est survenue lors de la suppression de l'utilisateur.", "error")
log.error(f"Erreur lors de la suppression de l'utilisateur {id_role}: {error_message}", exc_info=True)
exceptExceptionase:
flash("Une erreur est survenue lors de la suppression de l'utilisateur.", "error")
log.error(f"Erreur lors de la suppression de l'utilisateur {id_role}: {e}", exc_info=True)
returnredirect(url_for("user.users"))
Bonjour,
Quand on essaie de supprimer un organisme associé à un jeu de données, on obient cette erreur :
{"type": "Exception", "msg": "IntegrityError('(psycopg2.errors.ForeignKeyViolation) update or delete on table \"bib_organismes\" violates foreign key constraint \"fk_dataset_actor_id_organism\" on table \"cor_dataset_actor\"\\nDETAIL: Key (id_organisme)=(2) is still referenced from table \"cor_dataset_actor\".\\n')"}
Il faudrait le convertir en un message d'alerte du type "l'organisme est associé à un ou plusieurs jeux de données, etc .."
J'ai remarqué ce genre de problème pour plusieurs types d'objets, par exemple la suppression d'un groupe associé à une liste :
{"type": "Exception", "msg": "IntegrityError('(psycopg2.errors.ForeignKeyViolation) update or delete on table \"t_roles\" violates foreign key constraint \"fk_cor_role_liste_id_role\" on table \"cor_role_liste\"\\nDETAIL: Key (id_role)=(1) is still referenced from table \"cor_role_liste\".\\n')"}
The text was updated successfully, but these errors were encountered: