about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/base/trait.py28
-rw-r--r--wqflask/maintenance/set_resource_defaults.py6
-rw-r--r--wqflask/utility/redis_tools.py5
3 files changed, 13 insertions, 26 deletions
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index 5903fb08..8e11c11d 100644
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -50,7 +50,6 @@ def create_trait(**kw):
     if "view" in permissions['data']:
         the_trait = GeneralTrait(**kw)
         if the_trait.dataset.type != "Temp":
-
             the_trait = retrieve_trait_info(the_trait, the_trait.dataset, get_qtl_info=kw.get('get_qtl_info'))
         return the_trait
     else:
@@ -390,27 +389,14 @@ def retrieve_trait_info(trait, dataset, get_qtl_info=False):
 
     try:
         response = requests.get(the_url).content
-        if response.strip() == "no-access":
-            trait.view = False
-            return trait
-        else:
-            trait_info = json.loads(response)
-    except:
-        resource_info = get_resource_info(resource_id)
-        if resource_info:
-            default_permissions = resource_info['default_mask']['data']
-        else:
-            default_permissions = webqtlConfig.DEFAULT_PRIVILEGES
-        if 'view' not in default_permissions:
-            trait.view = False
-            return trait
-
+        trait_info = json.loads(response)
+    except: #ZS: I'm assuming the trait is viewable if the try fails for some reason; it should never reach this point unless the user has privileges, since that's dealt with in create_trait
         if dataset.type == 'Publish':
             query = """
                     SELECT
-                            PublishXRef.Id, Publication.PubMed_ID,
+                            PublishXRef.Id, InbredSet.InbredSetCode, Publication.PubMed_ID,
                             Phenotype.Pre_publication_description, Phenotype.Post_publication_description, Phenotype.Original_description,
-                            Phenotype.Pre_publication_abbreviation, Phenotype.Post_publication_abbreviation,
+                            Phenotype.Pre_publication_abbreviation, Phenotype.Post_publication_abbreviation, PublishXRef.mean,
                             Phenotype.Lab_code, Phenotype.Submitter, Phenotype.Owner, Phenotype.Authorized_Users,
                             Publication.Authors, Publication.Title, Publication.Abstract,
                             Publication.Journal, Publication.Volume, Publication.Pages,
@@ -474,11 +460,11 @@ def retrieve_trait_info(trait, dataset, get_qtl_info=False):
 
     if trait_info:
         trait.haveinfo = True
-
         for i, field in enumerate(dataset.display_fields):
             holder =  trait_info[i]
-            if isinstance(trait_info[i], basestring):
-                holder = holder.encode('latin1')
+            # if isinstance(trait_info[i], basestring):
+            #     holder = unicode(holder.strip(codecs.BOM_UTF8), 'utf-8', "ignore")
+
             setattr(trait, field, holder)
 
         if dataset.type == 'Publish':
diff --git a/wqflask/maintenance/set_resource_defaults.py b/wqflask/maintenance/set_resource_defaults.py
index ddb3b17b..54fd8e7e 100644
--- a/wqflask/maintenance/set_resource_defaults.py
+++ b/wqflask/maintenance/set_resource_defaults.py
@@ -77,7 +77,7 @@ def insert_probeset_resources(default_owner_id):
                                             "admin": "not-admin"}
         resource_ob['group_masks'] = {}
 
-        add_resource(resource_ob)
+        add_resource(resource_ob, update=False)
 
 def insert_publish_resources(default_owner_id):
     current_resources = Redis.hgetall("resources")
@@ -108,7 +108,7 @@ def insert_publish_resources(default_owner_id):
 
             resource_ob['group_masks'] = {}
 
-            add_resource(resource_ob)
+            add_resource(resource_ob, update=False)
         else:
             continue
 
@@ -139,7 +139,7 @@ def insert_geno_resources(default_owner_id):
                                             "admin": "not-admin"}
         resource_ob['group_masks'] = {}
 
-        add_resource(resource_ob)
+        add_resource(resource_ob, update=False)
 
 def insert_resources(default_owner_id):
     current_resources = get_resources()
diff --git a/wqflask/utility/redis_tools.py b/wqflask/utility/redis_tools.py
index 8a5f95ee..6c912a23 100644
--- a/wqflask/utility/redis_tools.py
+++ b/wqflask/utility/redis_tools.py
@@ -285,13 +285,14 @@ def get_resource_info(resource_id):
     else:
         return None
 
-def add_resource(resource_info):
+def add_resource(resource_info, update=True):
     if 'trait' in resource_info['data']:
         resource_id = hmac.hmac_creation('{}:{}:{}'.format(str(resource_info['type']), str(resource_info['data']['dataset']), str(resource_info['data']['trait'])))
     else:
         resource_id = hmac.hmac_creation('{}:{}'.format(str(resource_info['type']), str(resource_info['data']['dataset'])))
 
-    Redis.hset("resources", resource_id, json.dumps(resource_info))
+    if not Redis.hexists("resources", resource_id):
+        Redis.hset("resources", resource_id, json.dumps(resource_info))
 
     return resource_info