aboutsummaryrefslogtreecommitdiff
path: root/wqflask
diff options
context:
space:
mode:
authorZachary Sloan2013-06-27 23:03:14 +0000
committerZachary Sloan2013-06-27 23:03:14 +0000
commit62bd1bb6ad9f9f1c991127387154b5e0ca271fae (patch)
tree1f458ff27728111487887f564d907c0708e3055c /wqflask
parente712f665d8d1000d87a7c1aafce776062ff75cf1 (diff)
downloadgenenetwork2-62bd1bb6ad9f9f1c991127387154b5e0ca271fae.tar.gz
Created a group manager page where user administrators can create
groups of datasets to give/add read privileges to
Diffstat (limited to 'wqflask')
-rwxr-xr-xwqflask/base/data_set.py50
-rw-r--r--wqflask/wqflask/correlation/show_corr_results.py8
-rw-r--r--wqflask/wqflask/templates/admin/group_manager.html49
-rw-r--r--wqflask/wqflask/user_manager.py16
-rw-r--r--wqflask/wqflask/views.py13
5 files changed, 106 insertions, 30 deletions
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index 803cbc4f..03b24230 100755
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -77,14 +77,31 @@ def create_dataset(dataset_name, dataset_type = None):
def create_datasets_list():
key = "all_datasets"
result = Redis.get(key)
+
if result:
print("Cache hit!!!")
- result = pickle.loads(result)
+ datasets = pickle.loads(result)
+
else:
+ datasets = list()
with Bench("Creating DataSets object"):
- ds = DataSets()
- Redis.set(key, pickle.dumps(result))
- Redis.expire(key, 2*60)
+ type_dict = {'Publish': 'PublishFreeze',
+ 'ProbeSet': 'ProbeSetFreeze',
+ 'Geno': 'GenoFreeze'}
+
+ for dataset_type in type_dict:
+ query = "SELECT Name FROM {}".format(type_dict[dataset_type])
+ for result in g.db.execute(query).fetchall():
+ #The query at the beginning of this function isn't necessary here, but still would
+ #rather just reuse it
+ print("type: {}\tname: {}".format(dataset_type, result.Name))
+ dataset = create_dataset(result.Name, dataset_type)
+ datasets.append(dataset)
+
+ Redis.set(key, pickle.dumps(datasets, pickle.HIGHEST_PROTOCOL))
+ Redis.expire(key, 60*60)
+
+ return datasets
def create_in_clause(items):
@@ -240,24 +257,13 @@ class DatasetGroup(object):
self.samplelist = list(genotype.prgy)
-class DataSets(object):
- """Builds a list of DataSets"""
-
- def __init__(self):
- self.datasets = list()
-
- type_dict = {'Publish': 'PublishFreeze',
- 'ProbeSet': 'ProbeSetFreeze',
- 'Geno': 'GenoFreeze'}
-
- for dataset_type in type_dict:
- query = "SELECT Name FROM {}".format(type_dict[dataset_type])
- for result in g.db.execute(query).fetchall():
- #The query at the beginning of this function isn't necessary here, but still would
- #rather just reuse it
- print("type: {}\tname: {}".format(dataset_type, result.Name))
- create_dataset(result.Name, dataset_type)
-
+#class DataSets(object):
+# """Builds a list of DataSets"""
+#
+# def __init__(self):
+# self.datasets = list()
+#
+
#query = """SELECT Name FROM ProbeSetFreeze
# UNION
diff --git a/wqflask/wqflask/correlation/show_corr_results.py b/wqflask/wqflask/correlation/show_corr_results.py
index 3b47e970..f69fe551 100644
--- a/wqflask/wqflask/correlation/show_corr_results.py
+++ b/wqflask/wqflask/correlation/show_corr_results.py
@@ -205,10 +205,10 @@ class CorrelationResults(object):
- trait_list = self.getTissueCorrelationByList( primary_trait_symbol = self.this_trait.symbol,
- corr_results = self.correlation_results,
- TissueProbeSetFreezeId = 1,
- method=1)
+ #trait_list = self.getTissueCorrelationByList( primary_trait_symbol = self.this_trait.symbol,
+ # corr_results = self.correlation_results,
+ # TissueProbeSetFreezeId = 1,
+ # method=1)
#XZ, 09/18/2008: get all information about the user selected database.
#target_db_name = fd.corr_dataset
diff --git a/wqflask/wqflask/templates/admin/group_manager.html b/wqflask/wqflask/templates/admin/group_manager.html
new file mode 100644
index 00000000..6b7809d3
--- /dev/null
+++ b/wqflask/wqflask/templates/admin/group_manager.html
@@ -0,0 +1,49 @@
+{% extends "base.html" %}
+{% block title %}Group Manager{% endblock %}
+{% block content %}
+<!-- Start of body -->
+ <header class="jumbotron subhead" id="overview">
+ <div class="container">
+ <h1>Group Manager</h1>
+ </div>
+ </header>
+
+ <div class="container">
+ <div class="page-header">
+
+ </div>
+ <form>
+ <div class="control-group">
+ <b>Group Name: </b>
+ <div class="input-append">
+ <input type="text" name="group_name">
+ <button type="submit" class="btn btn-primary">Save</button>
+ </div>
+ </div>
+
+ <table class="table table-hover">
+ <thead>
+ <tr>
+ <th>Read</th>
+ <th>Type</th>
+ <th>ID</th>
+ <th>Name</th>
+ <th>Full Name</th>
+ </tr>
+ </thead>
+ {% for dataset in datasets %}
+ <tr>
+ <td><input type="checkbox" name="read" value="{{ dataset.type }}:{{ dataset.name }}"></td>
+ <td>{{ dataset.type }}</td>
+ <td>{{ dataset.id }}</td>
+ <td>{{ dataset.name }}</td>
+ <td>{{ dataset.fullname }}</td>
+ </tr>
+ {% endfor %}
+ </table>
+ </form>
+ </div>
+
+<!-- End of body -->
+
+{% endblock %} \ No newline at end of file
diff --git a/wqflask/wqflask/user_manager.py b/wqflask/wqflask/user_manager.py
index b8ebc71f..9e666bbd 100644
--- a/wqflask/wqflask/user_manager.py
+++ b/wqflask/wqflask/user_manager.py
@@ -13,6 +13,8 @@ from flask import Flask, g
from pprint import pformat as pf
+from base.data_set import create_datasets_list
+
#from app import db
print("globals are:", globals())
@@ -32,6 +34,20 @@ class UserManager(object):
#print("user is:", user)
self.user = model.User.query.get(self.user_id)
print("user is:", self.user)
+ datasets = create_datasets_list()
+ for dataset in datasets:
+ if not dataset.check_confidentiality():
+ continue
+ print("\n Name:", dataset.name)
+ print(" Type:", dataset.type)
+ print(" ID:", dataset.id)
+ print(" Confidential:", dataset.check_confidentiality())
+ #print(" ---> self.datasets:", self.datasets)
+
+
+class GroupsManager(object):
+ def __init__(self, kw):
+ self.datasets = create_datasets_list()
class RolesManager(object):
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index bd56f7a9..813075b8 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -54,7 +54,7 @@ def connect_db():
@app.route("/")
def index_page():
print("Sending index_page")
- create_datasets_list()
+ #create_datasets_list()
#key = "all_datasets"
#result = Redis.get(key)
#if result:
@@ -63,7 +63,7 @@ def index_page():
#else:
# with Bench("Creating DataSets object"):
# ds = DataSets()
- # Redis.set(key, pickle.dumps(result))
+ # Redis.set(key, pickle.dumps(result, pickle.HIGHEST_PROTOCOL))
# Redis.expire(key, 2*60)
#print("[orange] ds:", ds.datasets)
return render_template("index_page.html")
@@ -112,7 +112,7 @@ def search_page():
result = the_search.__dict__
print("result: ", pf(result))
- Redis.set(key, pickle.dumps(result))
+ Redis.set(key, pickle.dumps(result, pickle.HIGHEST_PROTOCOL))
Redis.expire(key, 60*60)
if result['quick']:
@@ -232,7 +232,7 @@ def marker_regression_page():
# print(" ---**--- {}: {}".format(type(template_vars.__dict__[item]), item))
#causeerror
- Redis.set(key, pickle.dumps(result))
+ Redis.set(key, pickle.dumps(result, pickle.HIGHEST_PROTOCOL))
Redis.expire(key, 60*60)
with Bench("Rendering template"):
@@ -283,6 +283,11 @@ def manage_user():
template_vars = user_manager.UserManager(request.args)
return render_template("admin/ind_user_manager.html", **template_vars.__dict__)
+@app.route("/manage/groups")
+def manage_groups():
+ template_vars = user_manager.GroupsManager(request.args)
+ return render_template("admin/group_manager.html", **template_vars.__dict__)
+
def json_default_handler(obj):
'''Based on http://stackoverflow.com/a/2680060/1175849'''