From ed9e290b441a6486c576c2e2e4baa69fa0f3ed37 Mon Sep 17 00:00:00 2001 From: deva Date: Tue, 2 Aug 2011 08:00:20 +0000 Subject: New 'open course' feature. --- server/src/transactionhandler.cc | 364 +++++++++++++++++++++------------------ 1 file changed, 194 insertions(+), 170 deletions(-) (limited to 'server/src/transactionhandler.cc') diff --git a/server/src/transactionhandler.cc b/server/src/transactionhandler.cc index 4b4e7ca..0821cef 100644 --- a/server/src/transactionhandler.cc +++ b/server/src/transactionhandler.cc @@ -30,6 +30,8 @@ #include "macroparser.h" #include "resumeparser.h" #include "templateparser.h" +#include "templateheaderparser.h" +#include "courseparser.h" #include "configuration.h" #include "luaquerymapper.h" #include "queryhandlerpentominos.h" @@ -83,206 +85,228 @@ static std::string handleCommits(Transaction &transaction, Environment &env, return answer; } -static std::string handleRequest(Transaction &transaction, Environment &env, +static std::string handleRequest(Request &request, Environment &env, Session &session) { std::string answer; - if(transaction.requests.size() > 0) { + if(request.course == "" && request.templ == "" && request.macro == "") + return ""; - AutoBorrower borrower(env.dbpool); - Database *db = borrower.get(); - // Database *db = session.database(); + if(request.course != "" && request.templ == "" && request.macro == "") { + CourseParser cp(env.courselist.getLatestVersion(request.course)); + cp.parse(); + Course *course = cp.getCourse(); + answer += " name + "\" title=\"" + + course->title + "\">\n"; - Requests::iterator i = transaction.requests.begin(); - while(i != transaction.requests.end()) { - Request &request = *i; + std::vector< Template >::iterator ti = course->templates.begin(); + while(ti != course->templates.end()) { + std::string tname = ti->name; - DEBUG(server, "Handling request - macro: %s, template: %s\n", - request.macro.c_str(), request.templ.c_str()); - - // Read and parse the template file. - TemplateParser tp(env.templatelist.getLatestVersion(request.templ)); + TemplateHeaderParser tp(env.templatelist.getLatestVersion(tname)); tp.parse(); - Template *templ = tp.getTemplate(); - - answer += "