From 454c226bdb9e5c2826df5a8dea85eb89009fe402 Mon Sep 17 00:00:00 2001
From: Bruno Nocera Zanette <brunonzanette@gmail.com>
Date: Mon, 6 Oct 2014 18:42:28 -0300
Subject: [PATCH] Add user's "tipo_perfil" information

Add user's "tipo_perfil" information
---
 lib/json_user_section.py           |  3 +++
 lib/opendata_queries_definition.py | 40 +++++++++++++++++++++++++++++-
 lib/xml_user_section.py            |  3 +++
 3 files changed, 45 insertions(+), 1 deletion(-)

diff --git a/lib/json_user_section.py b/lib/json_user_section.py
index 4822b97..f5b2599 100644
--- a/lib/json_user_section.py
+++ b/lib/json_user_section.py
@@ -382,6 +382,9 @@ def write_users_section (json, \
     json.write_tag("uid",user_attr,",")
     json.write_tag("nome",name,",")
     
+    accType=qry.user_acctype(json.database, guid)
+    json.write_tag("tipo_perfil",accType,",")
+    
     # Write a list of user friend's names
     #write_userfriends_subsection(json, guid)
     
diff --git a/lib/opendata_queries_definition.py b/lib/opendata_queries_definition.py
index 24ffd64..ef5771b 100644
--- a/lib/opendata_queries_definition.py
+++ b/lib/opendata_queries_definition.py
@@ -34,6 +34,24 @@ qry_users_info = \
     AND (e.access_id = 1 OR e.access_id = 2); ")
 #--------------------------------------------------------------------#
 
+#--------------------------------------------------------------------#
+# Argument: Post_ID / InfoType_ID
+# Return: Essential information about the group or post, such as
+#   blog's excerpts and bookmark's link
+qry_user_acctype = \
+("  SELECT \
+    CASE \
+        WHEN s.string = '1' THEN 'Ativista' \
+        WHEN s.string = '2' THEN 'Pesquisador' \
+        WHEN s.string = '3' THEN 'Usuario' \
+        ELSE 'Desconhecido' \
+    END \
+    FROM elgg_metadata d, elgg_metastrings s \
+    WHERE d.value_id = s.id \
+    AND d.entity_guid = %s AND d.name_id = %s \
+    AND (d.access_id = 1 OR d.access_id = 2); ");
+#--------------------------------------------------------------------#
+
 #--------------------------------------------------------------------#
 # Argument: Group_ID / InfoType_ID
 # Return: All InfoTypes' posts made by this group.
@@ -160,7 +178,27 @@ qry_post_content = \
 ("  SELECT s.string\
     FROM elgg_metadata d, elgg_metastrings s \
     WHERE d.value_id = s.id \
-    AND d.entity_guid = %s AND d.name_id = %s; ")
+    AND d.entity_guid = %s AND d.name_id = %s \
+    AND (d.access_id = 1 OR d.access_id = 2); ")
+#--------------------------------------------------------------------#
+
+#--------------------------------------------------------------------#
+def user_acctype (db, user_guid):
+    
+    content = db.cursor()
+    
+    # 51477 = select * from elgg_metastrings where string='accType';
+    content.execute(qry_user_acctype, (user_guid, 51477,))
+    
+    if content.rowcount == 1:
+        user_acctype = content.fetchone()[0]
+    else:
+        user_acctype=''
+        print "ERRO! Nenhum ou Mais do que um resultado para a query"
+        
+    content.close()
+    
+    return user_acctype
 #--------------------------------------------------------------------#
 
 #--------------------------------------------------------------------#
diff --git a/lib/xml_user_section.py b/lib/xml_user_section.py
index 6d5c7ff..7eab369 100644
--- a/lib/xml_user_section.py
+++ b/lib/xml_user_section.py
@@ -315,6 +315,9 @@ def write_users_section (xml, \
     # Write all user's information
     xml.write_tag("nome",name,'')
         
+    accType=qry.user_acctype(xml.database, guid)
+    xml.write_tag("tipo_perfil",accType,'')
+    
     # Write a list of user friend's names
     #write_userfriends_subsection(xml, guid)
     
-- 
GitLab