From 88a5cd83b47a9dfb5a832936095c7b99ce0d8179 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ale=C5=A1=20Smodi=C5=A1?= Date: Tue, 25 Aug 2015 14:20:42 +0200 Subject: Implemented methods to fetch a list of available problems and the problem description. JavaScript no longer parses pythonic problem descriptions, instead they are loaded by server and JSONized. --- server/prolog_session.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'server/prolog_session.py') 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: -- cgit v1.2.1