summaryrefslogtreecommitdiff
path: root/server/prolog_session.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/prolog_session.py')
-rw-r--r--server/prolog_session.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/server/prolog_session.py b/server/prolog_session.py
index e00afd8..c21d929 100644
--- a/server/prolog_session.py
+++ b/server/prolog_session.py
@@ -86,7 +86,7 @@ class PrologSession(object):
prolog.engine.stop(self._engine_id)
self._engine_id = None
- def run_for_user(self, user_id, language, problem_group, problem, program, query):
+ def run_for_user(self, user_id, problem_id, program, query):
"""A "shorthand" method to start a Prolog session, load correct solutions of all user's solved
problems and the given program, and ask a query.
"""
@@ -94,10 +94,12 @@ class PrologSession(object):
try:
cur = conn.cursor()
try:
- cur.execute('select l.id, p.id from problem p inner join problem_group g on g.id = p.problem_group_id inner join language l on l.id = p.language_id where l.identifier = %s and g.identifier = %s and p.identifier = %s', (language, problem_group, problem))
+ cur.execute('select l.id, l.identifier, g.identifier, p.identifier from problem p inner join problem_group g on g.id = p.problem_group_id inner join language l on l.id = p.language_id where p.id = %s', (problem_id,))
row = cur.fetchone()
language_id = row[0]
- problem_id = row[1]
+ language = row[1]
+ problem_group = row[2]
+ problem = row[3]
cur.execute('select g.identifier, p.identifier from solution s inner join problem p on p.id = s.problem_id inner join problem_group g on g.id = p.problem_group_id where s.codeq_user_id = %s and s.done = True and s.problem_id != %s and p.language_id = %s', (user_id, problem_id, language_id))
solved_problems = cur.fetchall()
finally: