function update_wkst($id, $objec, $instr, $coa) { // verify access to worksheet if (!abet_is_admin_authenticated() && !check_assessment_access($_SESSION['id'], $id, 'assessment_worksheet')) { page_fail(UNAUTHORIZED); } // prepare fields $us = array(); if (!is_null($objec)) { $us['objective'] = "s:{$objec}"; } if (!is_null($instr)) { $us['instrument'] = "s:{$instr}"; } if (!is_null($coa)) { $us['course_of_action'] = "s:{$coa}"; } if (count($us) > 0) { // update the three fields of importance $query = new Query(new QueryBuilder(UPDATE_QUERY, array('table' => 'assessment_worksheet', 'updates' => $us, 'where' => 'id = ?', 'where-params' => array("i:{$id}"), 'limit' => 1))); } echo "{\"success\":true}"; }
<?php // include needed files; update the include path to find the libraries $paths = array(get_include_path(), '/usr/lib/abet1', '/usr/local/lib/abet1'); set_include_path(implode(PATH_SEPARATOR, $paths)); require_once 'abet1-login.php'; require_once 'abet1-query.php'; require_once 'abet1-misc.php'; /* check-passwd.php - JSON transfer specification Supports: POST Fields: (POST) *--------* | passwd | *--------* This script checks password for a currently authenticated user. If the password matches then {"success":true} is returned; otherwise {"success":false} is returned. */ if (!abet_is_authenticated()) { page_fail(UNAUTHORIZED); } if ($_SERVER['REQUEST_METHOD'] != 'POST' || !array_key_exists('passwd', $_POST)) { page_fail(BAD_REQUEST); } if (!abet_verify($_SESSION['user'], $_POST['passwd'], $id, $role)) { page_fail(BAD_REQUEST); } echo "{\"success\":true}";
function get_assessment($id) { // get general assessment information $query = new Query(new QueryBuilder(SELECT_QUERY, array('tables' => array('abet_assessment' => 'name', 'abet_characteristic' => 'id', 'general_content' => 'id'), 'joins' => array('LEFT OUTER JOIN abet_characteristic ON abet_characteristic.id = abet_assessment.fk_characteristic', 'LEFT OUTER JOIN general_content ON general_content.fk_assessment = abet_assessment.id'), 'where' => 'abet_assessment.id = ?', 'where-params' => array("i:{$id}"), 'limit' => 1))); if ($query->is_empty()) { page_fail(NOT_FOUND); } // get acl and profile information $aclQuery = new Query(new QueryBuilder(SELECT_QUERY, array('tables' => array('userprofile' => array('id', 'first_name', 'last_name'), 'abet_assessment' => 'id'), 'joins' => array('LEFT OUTER JOIN acl_entry ON acl_entry.fk_profile = userprofile.id', 'LEFT OUTER JOIN acl ON acl.id = acl_entry.fk_acl', 'LEFT OUTER JOIN abet_assessment ON abet_assessment.fk_acl = acl.id ' . 'AND abet_assessment.id = ' . intval($id)), 'orderby' => 'userprofile.last_name'))); if ($aclQuery->is_empty()) { // this shouldn't happen page_fail(NOT_FOUND); } // get worksheet information $contentQuery = new Query(new QueryBuilder(SELECT_QUERY, array('tables' => array('assessment_worksheet' => array('id', 'activity'), 'course' => 'course_number'), 'joins' => array('INNER JOIN abet_assessment ON abet_assessment.id = assessment_worksheet.fk_assessment', 'LEFT OUTER JOIN course ON course.id = assessment_worksheet.fk_course'), 'where' => 'abet_assessment.id = ?', 'where-params' => array("i:{$id}")))); // get characteristics information $charsQuery = new Query(new QueryBuilder(SELECT_QUERY, array('tables' => array('abet_characteristic' => array('id', 'level', 'program_specifier', 'short_name')), 'orderby' => 'CHAR_LENGTH(level), level'))); // get single entity rows $genInfo = $query->get_row_assoc(); // prepare assessment object $obj = new stdClass(); $obj->name = $genInfo['name']; $obj->characteristic = $genInfo['abet_characteristic.id']; $obj->has_content = !is_null($genInfo['general_content.id']); $obj->acl = array(); $obj->profiles = array(); $obj->worksheets = array(); $obj->characteristics = array(); // assign profile and acl information $m = array(); $aclQuery->for_each_assoc(function ($row) use($obj, &$m) { if (array_key_exists($row['userprofile.id'], $m)) { return; } $m[$row['userprofile.id']] = null; if (!is_null($row['abet_assessment.id'])) { $obj->acl[] = $row['userprofile.id']; } $p = new stdClass(); $p->id = $row['userprofile.id']; $p->name = "{$row['first_name']} {$row['last_name']}"; $obj->profiles[] = $p; }); // assign worksheet info $contentQuery->for_each_assoc(function ($row) use($obj) { $w = new stdClass(); $w->id = $row['id']; if (!is_null($row['activity'])) { $w->name = $row['activity']; } else { $w->name = $row['course_number']; } $obj->worksheets[] = $w; }); // assign characteristics $charsQuery->for_each_assoc(function ($row) use($obj) { $c = new stdClass(); $c->id = $row['id']; $c->name = "{$row['level']}. {$row['short_name']}"; if (!is_null($row['program_specifier'])) { $c->name .= " [{$row['program_specifier']}]"; } $obj->characteristics[] = $c; }); return json_encode($obj); }
function add_comp_row($id) { // 'id' is worksheet id return Query::perform_transaction(function (&$rollback) use($id) { // select id of rubric_results entity $query = new Query(new QueryBuilder(SELECT_QUERY, array('tables' => array('rubric_results' => 'id'), 'joins' => array('INNER JOIN assessment_worksheet ON assessment_worksheet.fk_rubric_results = rubric_results.id'), 'where' => 'assessment_worksheet.id = ?', 'where-params' => array("i:{$id}")))); if ($query->is_empty()) { page_fail(NOT_FOUND); } $rrId = $query->get_row_ordered()[0]; // insert new competency_results entity $insert = new Query(new QueryBuilder(INSERT_QUERY, array('table' => 'competency_results', 'fields' => array('outstanding_tally', 'expected_tally', 'marginal_tally', 'unacceptable_tally', 'fk_rubric_results'), 'values' => array(array("l:0", "l:0", "l:0", "l:0", "l:{$rrId}"))))); // select the inserted row and return it $comp = new Query(new QueryBuilder(SELECT_QUERY, array('tables' => array('competency_results' => array('id', 'competency_desc', 'outstanding_tally', 'expected_tally', 'marginal_tally', 'unacceptable_tally', 'pass_fail_type', 'comment')), 'aliases' => array('competency_results.competency_desc' => 'description'), 'where' => 'id = LAST_INSERT_ID()'))); if ($comp->is_empty()) { page_fail(SERVER_ERROR); } // shouldn't happen return json_encode($comp->get_row_assoc()); }); }