From 73385a8c86b0552fe45bc86d105a0d5bf2b4df30 Mon Sep 17 00:00:00 2001
From: erichard <elliot.richard@lal.in2p3.fr>
Date: Thu, 31 Oct 2019 11:34:05 +0100
Subject: [PATCH] =?UTF-8?q?Modification=20de=20la=20requ=C3=AAte=20sql=20d?=
 =?UTF-8?q?e=20s=C3=A9lection=20des=20=C3=A9l=C3=A9ments=20!?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Pour obtenir des nom d'attribut identique pour les identifiants
entre les json des elements et labels j'ai modifier le nom des attributs
de la requête (id_element -> id).
Ainsi
{id: , element_name: } et {id: , label_name: } peuvent utiliser la fonction
get_ids(object) qui retourne une chaîne d'id séparer par des virgule
(étape préparatoire des requêtes sql).
---
 app/getter.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/app/getter.py b/app/getter.py
index c43c298..9bb97a9 100644
--- a/app/getter.py
+++ b/app/getter.py
@@ -10,9 +10,9 @@ def get_elements(id_mandatory_labels, id_forbiden_labels, number_of_mandatory_la
     :return: list
     """
     if(id_mandatory_labels):
-        elements = send_sql('SELECT id_element, element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id=ELEMENT_LABEL.id_element INNER JOIN LABEL ON ELEMENT_LABEL.id_label=LABEL.id WHERE id_label IN (' + id_mandatory_labels + ") AND id_element NOT IN (SELECT id_element FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id=ELEMENT_LABEL.id_element INNER JOIN LABEL ON ELEMENT_LABEL.id_label=LABEL.id  WHERE id_label IN (" + id_forbiden_labels + ")) GROUP BY id_element HAVING COUNT(*) = " + number_of_mandatory_labels + " Order BY element_name")
+        elements = send_sql('SELECT ELEMENT.id, element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id=ELEMENT_LABEL.id_element INNER JOIN LABEL ON ELEMENT_LABEL.id_label=LABEL.id WHERE id_label IN (' + id_mandatory_labels + ") AND id_element NOT IN (SELECT id_element FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id=ELEMENT_LABEL.id_element INNER JOIN LABEL ON ELEMENT_LABEL.id_label=LABEL.id  WHERE id_label IN (" + id_forbiden_labels + ")) GROUP BY id_element HAVING COUNT(*) = " + number_of_mandatory_labels + " Order BY element_name")
     else:
-        elements = send_sql('SELECT DISTINCT id_element, element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id = ELEMENT_LABEL.id_element INNER JOIN label ON ELEMENT_LABEL.id_label=label.id WHERE element_name NOT IN ( SELECT element_name  FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id = ELEMENT_LABEL.id_element INNER JOIN label ON ELEMENT_LABEL.id_label = label.id WHERE  id_label IN (' + id_forbiden_labels + ') ) ORDER BY element_name ASC')
+        elements = send_sql('SELECT DISTINCT ELEMENT.id, element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id = ELEMENT_LABEL.id_element INNER JOIN label ON ELEMENT_LABEL.id_label=label.id WHERE element_name NOT IN ( SELECT element_name  FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id = ELEMENT_LABEL.id_element INNER JOIN label ON ELEMENT_LABEL.id_label = label.id WHERE  id_label IN (' + id_forbiden_labels + ') ) ORDER BY element_name ASC')
     return elements
 
 #get_labels(json.loads(get_elements(id_mandatory_labels, id_forbiden_labels, number_of_mandatory_labels)))
-- 
GitLab