Closed amandine-sahl closed 1 year ago
Bonjour,
Il y a une erreur sur cette ligne
.filter(CorRoleListe.id_role == cls.id_liste)
a remplacer par comme écrit dans la PR #165
.filter(CorRoleListe.id_role == cls.id_role)
Bonjour, Il y a une erreur sur cette ligne : .filter(CorRoleListe.id_role == cls.id_liste) a remplacer par comme écrit dans la PR #165 .filter(CorRoleListe.id_role == cls.id_role) … ____ De : naidinp @.> Envoyé : lundi 16 janvier 2023 11:47 À : PnX-SI/UsersHub @.> Cc : Subscribed @.> Objet : Re: [PnX-SI/UsersHub] Correction requête (PR #166) Bonjour, Après la correction de la requête dans le fichier /usershub/app/models.py comme expliqué dans le fix #165<#165> , j'ai maintenant cette erreur : Ma modification :
def get_user_out_list(cls, id_liste): """ Méthode qui retourne un dictionnaire de rôles n'appartenant pas à une liste Avec pour paramètre un id_liste """ q = db.session.query(cls) q = q.order_by(desc(cls.nom_role)) subquery = ( ~db.session.query(CorRoleListe) .filter(CorRoleListe.id_liste == id_liste) .filter(CorRoleListe.id_role == cls.id_liste) .exists() ) # TODO filtrer les roles actifs q = q.filter(subquery).filter(cls.active == True) data = [data.as_dict_full_name() for data in q.all()] return data
{"type": "Exception", "msg": "AttributeError(\"type object 'TRoles' has no attribute 'id_liste'\")"} Avez-vous une idée ou je me suis loupé ? Merci pour votre aide. — Reply to this email directly, view it on GitHub<#166 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFOUXH3CBEUBYUFG7ZEDFU3WSURLTANCNFSM6AAAAAATDDSY3Q. You are receiving this because you are subscribed to this thread.Message ID: @.>
Parfait merci.
Je ferme le ticket que j'avait ouvert.
Cordialement
Ecrit ainsi, la liste des roles n'appartenant pas à la liste est identique à la liste des rôles appartenant à la liste. On n'a donc pas la possibilité d'ajouter de nouveaux rôles à la liste.
remplacer
.filter(CorRoleListe.id_role == cls.id_role)
par
.filter(CorRoleListe.id_role != cls.id_role)
Le ~ de la subquery indique que la requête correspond à un not exists ce qui exclu bien les roles appartenant à la liste.
Effectivement, en reproduisant par copier/coller les lignes corrigées dans la PR, j'ai du oublier le tilde. J'ai testé avec le tilde et le "==" plutôt que "!=" et ça fonctionne bien aussi. Merci Amandine
fix #165