From bf65c644d8751f3298a5bbdcb671efe90f0318aa Mon Sep 17 00:00:00 2001
From: erichard <elliot.richard@lal.in2p3.fr>
Date: Wed, 5 Aug 2020 10:07:16 +0200
Subject: [PATCH] export sql statement into file

The two file are a set python variables(key/value).
Keys are identical in each file in order to create a kind of interface
that can either use variables from one file or the other.
values are queries and indexes.
queries is a list of two sql statement executed to select tutorials with
mandatories and/or forbiden labels.
Inside sqlStmtUser.py ELEMENT table is join to User table but not in
sqlStmt.py. With sqlStmtUser.py result of select have an extra column :
username related to element (e.g. because they are the creator of this
element).
---
 labelstower/sqlStmt.py        | 48 +++++++++++++++++++++++++++++++
 labelstower/sqlStmtOptUser.py | 54 +++++++++++++++++++++++++++++++++++
 2 files changed, 102 insertions(+)
 create mode 100644 labelstower/sqlStmt.py
 create mode 100644 labelstower/sqlStmtOptUser.py

diff --git a/labelstower/sqlStmt.py b/labelstower/sqlStmt.py
new file mode 100644
index 0000000..ddf23f5
--- /dev/null
+++ b/labelstower/sqlStmt.py
@@ -0,0 +1,48 @@
+queries =[
+    '''SELECT 
+        ELEMENT.*
+    FROM 
+        ELEMENT 
+            INNER JOIN 
+        ELEMENT_LABEL 
+                ON ELEMENT.id=ELEMENT_LABEL.id_element 
+    WHERE 
+            id_label IN ({}) 
+        AND 
+            id_element NOT IN (
+                            SELECT 
+                                id_element 
+                            FROM 
+                                ELEMENT 
+                                    INNER JOIN 
+                                ELEMENT_LABEL 
+                                        ON ELEMENT.id=ELEMENT_LABEL.id_element
+                            WHERE 
+                                id_label IN ({})) 
+                            GROUP BY id_element 
+                            HAVING COUNT(*) = {} 
+                            Order BY element_name''',
+'''
+    SELECT 
+        ELEMENT.*
+    FROM 
+        ELEMENT 
+            INNER JOIN 
+        ELEMENT_LABEL 
+                ON ELEMENT.id = ELEMENT_LABEL.id_element 
+    WHERE 
+        id_element NOT IN (
+                        SELECT 
+                            id_element 
+                        FROM 
+                            ELEMENT 
+                                INNER JOIN 
+                            ELEMENT_LABEL 
+                                    ON ELEMENT.id = ELEMENT_LABEL.id_element
+                        WHERE  id_label IN ({}) )
+    GROUP BY ELEMENT.id 
+    ORDER BY element_name ASC
+'''
+]
+ALL_LABEL_TYPE=0
+FORBIDEN_LABEL_ONLY=1
\ No newline at end of file
diff --git a/labelstower/sqlStmtOptUser.py b/labelstower/sqlStmtOptUser.py
new file mode 100644
index 0000000..a80b90f
--- /dev/null
+++ b/labelstower/sqlStmtOptUser.py
@@ -0,0 +1,54 @@
+queries =[
+    '''SELECT 
+        ELEMENT.*, USER.username
+    FROM 
+        USER
+            INNER JOIN
+        ELEMENT 
+                ON USER.id=ELEMENT.user_id
+            INNER JOIN 
+        ELEMENT_LABEL 
+                ON ELEMENT.id=ELEMENT_LABEL.id_element 
+    WHERE 
+            id_label IN ({}) 
+        AND 
+            id_element NOT IN (
+                            SELECT 
+                                id_element 
+                            FROM 
+                                ELEMENT 
+                                    INNER JOIN 
+                                ELEMENT_LABEL 
+                                        ON ELEMENT.id=ELEMENT_LABEL.id_element
+                            WHERE 
+                                id_label IN ({})) 
+                            GROUP BY id_element 
+                            HAVING COUNT(*) = {} 
+                            Order BY element_name''',
+'''
+    SELECT
+        ELEMENT.*, USER.username
+    FROM 
+        USER
+            INNER JOIN
+        ELEMENT 
+                ON USER.id=ELEMENT.user_id
+            INNER JOIN 
+        ELEMENT_LABEL 
+                ON ELEMENT.id=ELEMENT_LABEL.id_element
+    WHERE 
+        id_element NOT IN (
+                        SELECT 
+                            id_element 
+                        FROM 
+                            ELEMENT 
+                                INNER JOIN 
+                            ELEMENT_LABEL 
+                                    ON ELEMENT.id = ELEMENT_LABEL.id_element
+                        WHERE  id_label IN ({}) )
+    GROUP BY ELEMENT.id 
+    ORDER BY element_name ASC
+'''
+]
+ALL_LABEL_TYPE=0
+FORBIDEN_LABEL_ONLY=1
\ No newline at end of file
-- 
GitLab