Пример #1
0
 function definition()
 {
     global $COURSE;
     $mform =& $this->_form;
     //Is this particular course mapped to a course in WeBWorK
     $webworkclient = new webwork_client();
     $coursemapped = _wwassignment_mapped_course($COURSE->id);
     if ($coursemapped == -1) {
         $mform->addElement('link', 'mainpage', get_string('mainpage_link_desc', 'wwassignment'), "view.php?id={$COURSE->id}", get_string('mainpage_link_name', 'wwassignment'));
         return;
     }
     //links
     $mform->addElement('link', 'instructor_page_link', get_string('instructor_page_link_desc', 'wwassignment'), wwassignment_instructor_page_link(), get_string('instructor_page_link_name', 'wwassignment'));
     if ($this->instance != "") {
         $mform->addElement('link', 'edit_set', get_string('edit_set_link_desc', 'wwassignment'), wwassignment_edit_set_link($this->_instance), get_string('edit_set_link_name', 'wwassignment'));
     }
     //define the mapping
     $mform->addElement('header', 'set_initialization', get_string('set_initialization', 'wwassignment'));
     //name
     $mform->addElement('text', 'name', get_string('wwassignmentname', 'wwassignment'), array('size' => '64'));
     $mform->setType('name', PARAM_TEXT);
     $mform->addRule('name', null, 'required', null, 'client');
     //set select
     $options = $webworkclient->options_set($coursemapped, false);
     $mform->addElement('select', 'webwork_set', get_string('webwork_set', 'wwassignment'), $options);
     $mform->setHelpButton('webwork_set', array('webwork_set', get_string('webwork_set', 'wwassignment'), 'wwassignment'));
     //description
     $mform->addElement('htmleditor', 'description', get_string('description', 'assignment'));
     $mform->setType('description', PARAM_RAW);
     $mform->setHelpButton('description', array('writing', 'questions', 'richtext'), false, 'editorhelpbutton');
     $this->add_action_buttons();
     $this->standard_hidden_coursemodule_elements();
     return;
 }
Пример #2
0
/**
* @desc Gets derived questions from a webworkquestion record object by calling the SOAP server.
* @param $webworkquestion The record to create from
* @return $response The recordset from the WeBWorK Question Server.
*/
function webwork_get_derivations($wwquestion)
{
    //parameters needed from the webworkquestion object
    $code = $wwquestion->code;
    $seed = $wwquestion->seed;
    $trials = $wwquestion->trials;
    $files = $wwquestion->files;
    //problem to be generated
    $problem = array();
    $problem['code'] = $code;
    $problem['seed'] = $seed;
    $problem['files'] = $files;
    //requested # times for generation
    $request = array();
    $request['trials'] = $trials;
    $request['problem'] = $problem;
    //SOAP CALL
    $params = array($request);
    $client = new webwork_client();
    $response = $client->handler('generateProblem', $params);
    return $response;
}
Пример #3
0
 function definition()
 {
     global $COURSE;
     $mform =& $this->_form;
     //Is this particular course mapped to a course in WeBWorK
     $webworkclient = webwork_client::get_instance();
     $coursemapped = _wwassignment_mapped_course($COURSE->id);
     if ($coursemapped == -1) {
         //define the mapping
         $mform->addElement('header', 'course_initialization', get_string('course_initialization', 'wwassignment'));
         $options = $webworkclient->options_course();
         $mform->addElement('select', 'webwork_course', get_string('webwork_course', 'wwassignment'), $options);
         $mform->setHelpButton('webwork_course', array('webwork_course', get_string('webwork_course', 'wwassignment'), 'wwassignment'));
         $mform->addElement('checkbox', 'auto_enroll_course', get_string('auto_enroll_course', 'wwassignment'), get_string('auto_enroll_course_desc', 'wwassignment'));
         $this->add_action_buttons();
         $this->standard_hidden_coursemodule_elements();
         return;
     }
     $mform->addElement('link', 'instructor_page_link', get_string('instructor_page_link_desc', 'wwassignment'), wwassignment_instructor_page_link(), get_string('instructor_page_link_name', 'wwassignment'));
     if ($this->_instance == "") {
         //doing an addition
         $mform->addElement("header", 'set_initialization', get_string('set_initialization', 'wwassignment'));
         $options = $webworkclient->options_set($coursemapped);
         $mform->addElement('select', 'webwork_set', get_string('webwork_set', 'wwassignment'), $options);
         $mform->setHelpButton('webwork_set', array('webwork_set', get_string('webwork_set', 'wwassignment'), 'wwassignment'));
         $mform->addElement('checkbox', 'auto_enroll_set', get_string('auto_enroll_set', 'wwassignment'), get_string('auto_enroll_set_desc', 'wwassignment'));
         $this->add_action_buttons();
         $this->standard_hidden_coursemodule_elements();
         return;
     } else {
         //doing an update
         //$this->standard_hidden_coursemodule_elements();
         $mform->addElement('link', 'edit_set', get_string('edit_set_link_desc', 'wwassignment'), wwassignment_edit_set_link($this->_instance), get_string('edit_set_link_name', 'wwassignment'));
         //$this->add_action_buttons(false);
     }
     return;
 }
Пример #4
0
 /**
  * @desc Test Basic Communication
  */
 function test_basic_communication()
 {
     $client = new webwork_client();
     $response = $client->handler('hello');
     $this->assertEqual('hello world!', $response, 'Webwork Server Communication Test.');
 }
Пример #5
0
/**
* @desc Insures that all students in the moodle course exist in the webwork course (only one way).
* @param integer $courseid Moodle Course ID.
* @param integer $wwassignment default is -1, which means the function will synchronize all assignments in a course.
* @return true
*/
function _wwassignment_synchronize($courseid, $wwassignmentid = -1)
{
    $newones = array();
    $webworkclient = new webwork_client();
    $roleid = get_field('role', 'id', 'name', 'student');
    $context = get_context_instance(CONTEXT_COURSE, $courseid);
    $users = get_role_users($roleid, $context);
    if ($wwassignmentid == -1) {
        $records = get_records('wwassignment', 'course', $courseid);
    } else {
        $records = get_records('wwassignment', 'id', $wwassignmentid);
    }
    foreach ($users as $user) {
        $webworkuser = $user->username;
        $webworkuser = $webworkclient->mapped_user($webworkcourse, $webworkuser);
        if ($webworkuser == -1) {
            $webworkuser = $user->username;
            //this user isnt mapped create him/her
            $webworkclient->create_user($webworkcourse, $user);
        }
        foreach ($records as $wwassignment) {
            $webworkset = $wwassignment->webwork_set;
            $webworkuserset = $webworkclient->mapped_user_set($webworkcourse, $webworkuser, $webworkset);
            if ($webworkuserset == -1) {
                //this user isnt in a particular set
                $webworkclient->create_user_set($webworkcourse, $webworkuser, $webworkset);
            }
        }
    }
    return true;
}
Пример #6
0
$strtopic = get_string("topic");
$strOpenDate = get_string("openDate", "wwassignment");
$strDueDate = get_string("dueDate", "wwassignment");
if ($course->format == "weeks") {
    $table->head = array($strweek, $strname, $strOpenDate, $strDueDate);
    $table->align = array("center", "left", "left", "left");
} else {
    if ($course->format == "topics") {
        $table->head = array($strtopic, $strname, $strOpenDate, $strDueDate);
        $table->align = array("center", "left", "left", "left", "left", "left");
    } else {
        $table->head = array($strname, $strOpenDate, $strDueDate);
        $table->align = array("left", "left", "left", "left", "left");
    }
}
$webworkclient = webwork_client::get_instance();
$webworkcourse = _wwassignment_mapped_course($COURSE->id, false);
foreach ($wwassignments as $wwassignment) {
    // grab specific info for this set:
    if (isset($wwassignment)) {
        //var_dump($wwassignment);
        $wwassignmentsetinfo = $webworkclient->get_assignment_data($webworkcourse, $wwassignment->webwork_set, false);
        if (!$wwassignment->visible) {
            //Show dimmed if the mod is hidden
            $link = "<a class=\"dimmed\" href=\"view.php?id={$wwassignment->coursemodule}\">{$wwassignmentsetinfo->name}</a>";
        } else {
            //Show normal if the mod is visible
            $setinfoname = $wwassignmentsetinfo['name'];
            $link = "<a href=\"view.php?id={$wwassignment->coursemodule}\">{$setinfoname}</a>";
        }
        if ($course->format == "weeks" or $course->format == "topics") {
Пример #7
0
 /**
  * @desc Gets the correct answers from the SOAP server for the seed in state. Places them into the state->responses array.
  * @param $question object The question object.
  * @param $state object The state object.
  * @return object Object containing the seed,derivedid, and answers.
  */
 function get_correct_responses(&$question, &$state)
 {
     //get code and seed of response
     $code = base64_encode($question->code);
     $seed = $state->responses['seed'];
     $derivationid = $state->responses['derivationid'];
     //get empty answers & build answer request
     $answerarray = array();
     foreach ($state->responses as $key => $value) {
         array_push($answerarray, array('field' => $key, 'answer' => $value));
     }
     //build problem request
     $problem = array();
     $problem['code'] = $code;
     $problem['seed'] = $seed;
     //SOAP request
     $params = array();
     $params['request'] = $problem;
     $params['answers'] = $answerarray;
     //SOAP Call
     $client = new webwork_client();
     $response = $client->handler('checkAnswers', $params);
     //make the state perfect graded
     $state->raw_grade = 1;
     $state->event = $state->event == QUESTION_EVENTCLOSE ? QUESTION_EVENTCLOSEANDGRADE : QUESTION_EVENTGRADE;
     $state->penalty = 0;
     //process correct answers into fields
     $answers = $response;
     $ret = array();
     $ret['answers'] = array();
     foreach ($answers as $answer) {
         $ret['answers'][$answer['field']] = $answer;
         $ret['answers'][$answer['field']]['answer'] = $answer['correct'];
         $ret['answers'][$answer['field']]['score'] = 1;
         $ret['answers'][$answer['field']]['evaluated'] = "";
         $ret['answers'][$answer['field']]['preview'] = "";
     }
     //push the seed onto the answer array, keep track of what seed these are for.
     $ret['seed'] = $seed;
     $ret['derivationid'] = $derivationid;
     return $ret;
 }
Пример #8
0
 /**
  * @desc Retrieves the singleton instance of the webwork_client class.
  * @return The instance of the class.
  */
 public function get_instance()
 {
     if (self::$instance == NULL) {
         self::$instance = new webwork_client();
     }
     return self::$instance;
 }