From cab4355fec9928639e688d096d9ad5e77cb28493 Mon Sep 17 00:00:00 2001 From: Christian Klinger Date: Fri, 10 Jun 2016 17:19:50 +0200 Subject: first rough version of exams-module. --- modules-available/exams/config.json | 5 ++ modules-available/exams/inc/exams.inc.php | 17 +++++ modules-available/exams/page.inc.php | 76 ++++++++++++++++++++++ .../exams/templates/page-add-exam.html | 25 +++++++ modules-available/exams/templates/page-exams.html | 32 +++++++++ 5 files changed, 155 insertions(+) create mode 100644 modules-available/exams/config.json create mode 100644 modules-available/exams/inc/exams.inc.php create mode 100644 modules-available/exams/page.inc.php create mode 100644 modules-available/exams/templates/page-add-exam.html create mode 100644 modules-available/exams/templates/page-exams.html (limited to 'modules-available/exams') diff --git a/modules-available/exams/config.json b/modules-available/exams/config.json new file mode 100644 index 00000000..e109b27b --- /dev/null +++ b/modules-available/exams/config.json @@ -0,0 +1,5 @@ +{ + "category":"main.status", + "dependencies": [ "locations" ], + "permission": "0" +} diff --git a/modules-available/exams/inc/exams.inc.php b/modules-available/exams/inc/exams.inc.php new file mode 100644 index 00000000..9e5833ba --- /dev/null +++ b/modules-available/exams/inc/exams.inc.php @@ -0,0 +1,17 @@ + 0) as examMode FROM exams WHERE starttime < NOW() AND endtime > NOW() AND locationid IN $l", []); + + return $res['examMode']; + } +} diff --git a/modules-available/exams/page.inc.php b/modules-available/exams/page.inc.php new file mode 100644 index 00000000..e5129d38 --- /dev/null +++ b/modules-available/exams/page.inc.php @@ -0,0 +1,76 @@ +action = $req_action; + } + + if ($this->action === 'show') { + $tmp = Database::simpleQuery("select * from exams NATURAL LEFT OUTER JOIN location;", []); + while ($exam = $tmp->fetch(PDO::FETCH_ASSOC)) { + $this->exams[] = $exam; + } + } elseif ($this->action === 'add') { + $tmp = Database::simpleQuery("select * from location;", []); + while ($loc = $tmp->fetch(PDO::FETCH_ASSOC)) { + $this->locations[] = $loc; + } + + if (Request::isPost()) { + /* process form-data */ + $locationid = Request::post('location'); + $starttime = Request::post('starttime'); + $endtime = Request::post('endtime'); + + $res = Database::exec("INSERT INTO exams(locationid, starttime, endtime) VALUES(:locationid, :starttime, :endtime);", + compact('locationid', 'starttime', 'endtime')); + + if ($res === false) { + Message::addError('exam-not-added'); + } else { + Message::addInfo('exam-added-success'); + } + Util::redirect('?do=exams'); + } + + } elseif ($this->action === 'delete') { + if (!Request::isPost()) { die('delete only works with a post request'); } + $examid = Request::post('examid'); + $res = Database::exec("DELETE FROM exams WHERE examid = :examid;", compact('examid')); + if ($res === false) { + Message::addError('exam-not-deleted-error'); + } else { + Message::addInfo('exam-deleted-success'); + } + Util::redirect('?do=exams'); + } else { + Util::traceError("unknown action"); + } + } + + protected function doRender() + { + // Render::setTitle(Dictionary::translate('lang_exams')); + //Render::addTemplate('page-exams', $_POST); + + if ($this->action === "show") { + Render::setTitle("All Exams"); + Render::addTemplate('page-exams', ['exams' => $this->exams]); + } elseif ($this->action === "add") { + Render::setTitle("Add Exam"); + Render::addTemplate('page-add-exam', ['locations' => $this->locations]); + } + // Render::output('hi'); + } + +} diff --git a/modules-available/exams/templates/page-add-exam.html b/modules-available/exams/templates/page-add-exam.html new file mode 100644 index 00000000..b610fcd8 --- /dev/null +++ b/modules-available/exams/templates/page-add-exam.html @@ -0,0 +1,25 @@ +

Add Exam

+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ + + +
diff --git a/modules-available/exams/templates/page-exams.html b/modules-available/exams/templates/page-exams.html new file mode 100644 index 00000000..6c67fa2c --- /dev/null +++ b/modules-available/exams/templates/page-exams.html @@ -0,0 +1,32 @@ + +

All Exams

+ + + + + + + + + + {{#exams}} + + + + + + + + {{/exams}} + +
IDLocationBeginEndActions
{{examid}} + {{locationname}} + {{starttime}}{{endtime}} +
+ + + +
+
+Add Exam -- cgit v1.2.3-55-g7522