Esempio n. 1
0
function get_wkst($id)
{
    // verify access to worksheet
    if (!abet_is_admin_authenticated() && !abet_is_observer() && !check_assessment_access($_SESSION['id'], $id, 'assessment_worksheet')) {
        page_fail(UNAUTHORIZED);
    }
    // select required data from db
    $query = new Query(new QueryBuilder(SELECT_QUERY, array('tables' => array('assessment_worksheet' => array('id', 'activity', 'objective', 'instrument', 'course_of_action'), 'abet_assessment' => 'id', 'course' => array('title', 'course_number'), 'abet_characteristic' => array('level', 'program_specifier', 'description'), 'abet_criterion' => array('rank', 'description')), 'joins' => array('INNER JOIN abet_assessment ON assessment_worksheet.fk_assessment = abet_assessment.id', 'LEFT OUTER JOIN course ON assessment_worksheet.fk_course = course.id', 'LEFT OUTER JOIN abet_characteristic ON abet_assessment.fk_characteristic = abet_characteristic.id', 'INNER JOIN abet_criterion ON abet_assessment.fk_criterion = abet_criterion.id'), 'where' => 'assessment_worksheet.id = ?', 'where-params' => array("i:{$id}"))));
    if ($query->is_empty()) {
        page_fail(NOT_FOUND);
    }
    $row = $query->get_row_assoc();
    // query the assessment personnel via the acl
    $assess = new ABETAssessment($row['abet_assessment.id']);
    $faculty = $assess->get_acl();
    // build object for client
    $obj = new stdClass();
    $obj->id = $row['assessment_worksheet.id'];
    $obj->faculty = count($faculty) == 0 ? "n/a" : implode(', ', array_map(function ($x) {
        return $x->full_name;
    }, $faculty));
    $obj->criterion = "{$row['rank']} {$row['abet_criterion.description']}";
    if (!is_null($row['level'])) {
        $obj->characteristic = "{$row['level']} {$row['abet_characteristic.description']}";
        if (!is_null($row['program_specifier']) && $row['program_specifier'] != '') {
            $obj->characteristic .= " {$row['program_specifier']}";
        }
    } else {
        $obj->characteristic = null;
    }
    if (!is_null($row['title'])) {
        $obj->course = "{$row['course_number']}: {$row['title']}";
        $obj->activity = null;
    } else {
        $obj->course = null;
        $obj->activity = !is_null($row['activity']) && $row['activity'] != '' ? $row['activity'] : 'not specified';
    }
    $obj->objective = $row['objective'];
    $obj->instrument = $row['instrument'];
    $obj->course_of_action = $row['course_of_action'];
    return json_encode($obj);
}
Esempio n. 2
0
            $insert = new Query(new QueryBuilder(INSERT_QUERY, array('table' => 'program', 'fields' => array('name'), 'values' => array(array("l:'New Program'")))));
            if (!$insert->validate_update()) {
                $rollback = true;
                return array(SERVER_ERROR, "an insertion operation failed");
            }
            // grab the new program object
            $query = new Query(new QueryBuilder(SELECT_QUERY, array('tables' => array('program' => array('id', 'name', 'abbrv', 'semester', 'year', 'description')), 'where' => 'id = LAST_INSERT_ID()')));
            $row = $query->get_row_assoc();
            if (is_null($row)) {
                $rollback = true;
                return array(SERVER_ERROR, "could not retrieve inserted row");
            }
            // create a default assessment for each criterion that has a general
            // content item
            foreach (range(1, 8) as $critId) {
                $assess = ABETAssessment::create('', $row['id'], null, $critId);
                $assess->add_general_content();
            }
            return array(OKAY, json_encode($row));
        });
        http_response_code($code);
        echo $json;
    }
} else {
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        // verify fields
        static $fields = array('id', 'name', 'abbrv', 'semester', 'year', 'description');
        $a = array_map(function ($x) {
            if (!array_key_exists($x, $_POST)) {
                return null;
            }
Esempio n. 3
0
 static function set_fail(callable $func)
 {
     self::$exitFunction = $func;
 }