Skip to content

Commit f06eb57

Browse files
committed
fix analysis workflow, dynamic analysis status
1 parent aabbf17 commit f06eb57

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

qiita_db/analysis.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,16 +120,25 @@ def create(cls, owner, name, description, parent=None, from_default=False):
120120
conn_handler = SQLConnectionHandler()
121121
conn_handler.create_queue(queue)
122122
# TODO after demo: if exists()
123-
123+
# Needed since issue #292 exists
124+
status_id = conn_handler.execute_fetchone(
125+
"SELECT analysis_status_id from qiita.analysis_status WHERE "
126+
"status = 'in_construction'")[0]
124127
if from_default:
125128
# insert analysis and move samples into that new analysis
126129
dflt_id = owner.default_analysis
127130
sql = """INSERT INTO qiita.{0}
128131
(email, name, description, analysis_status_id)
129-
VALUES (%s, %s, %s, 3)
132+
VALUES (%s, %s, %s, %s)
130133
RETURNING analysis_id""".format(cls._table)
131134
conn_handler.add_to_queue(queue, sql, (owner.id, name,
132-
description))
135+
description, status_id))
136+
# MAGIC NUMBER 3: command selection step
137+
# needed so we skip the sample selection step
138+
sql = """INSERT INTO qiita.analysis_workflow
139+
(analysis_id, step) VALUES (%s, %s)
140+
RETURNING %s"""
141+
conn_handler.add_to_queue(queue, sql, ['{0}', 3, '{0}'])
133142
sql = """UPDATE qiita.analysis_sample
134143
SET analysis_id = %s
135144
WHERE analysis_id = %s RETURNING %s"""
@@ -138,10 +147,10 @@ def create(cls, owner, name, description, parent=None, from_default=False):
138147
# insert analysis information into table as "in construction"
139148
sql = """INSERT INTO qiita.{0}
140149
(email, name, description, analysis_status_id)
141-
VALUES (%s, %s, %s, 1)
150+
VALUES (%s, %s, %s, %s)
142151
RETURNING analysis_id""".format(cls._table)
143152
conn_handler.add_to_queue(
144-
queue, sql, (owner.id, name, description))
153+
queue, sql, (owner.id, name, description, status_id))
145154

146155
# add parent if necessary
147156
if parent:

qiita_db/test/test_analysis.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ def test_create_from_default(self):
129129
new = Analysis.create(owner, "newAnalysis",
130130
"A New Analysis", from_default=True)
131131
self.assertEqual(new.id, new_id)
132+
self.assertEqual(new.step, 3)
132133

133134
# Make sure samples were transfered properly
134135
sql = "SELECT * FROM qiita.analysis_sample WHERE analysis_id = %s"

qiita_db/util.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -905,9 +905,8 @@ def convert_to_id(value, table, conn_handler=None):
905905
The passed string has no associated id
906906
"""
907907
conn_handler = conn_handler if conn_handler else SQLConnectionHandler()
908-
_id = conn_handler.execute_fetchone(
909-
"SELECT {0}_id FROM qiita.{0} WHERE {0} = %s".format(table),
910-
(value, ))
908+
sql = "SELECT {0}_id FROM qiita.{0} WHERE {0} = %s".format(table)
909+
_id = conn_handler.execute_fetchone(sql, (value, ))
911910
if _id is None:
912911
raise IncompetentQiitaDeveloperError("%s not valid for table %s"
913912
% (value, table))

0 commit comments

Comments
 (0)