PnX-SI / UsersHub

Application web de gestion centralisée des utilisateurs
GNU General Public License v3.0
13 stars 24 forks source link

Correction requête #166

Closed amandine-sahl closed 1 year ago

amandine-sahl commented 1 year ago

fix #165

lpofredc commented 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)

naidinp commented 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) ____ 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

gildeluermoz commented 1 year ago

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)

amandine-sahl commented 1 year ago

Le ~ de la subquery indique que la requête correspond à un not exists ce qui exclu bien les roles appartenant à la liste.

gildeluermoz commented 1 year ago

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