Exemple #1
0
 /**
  * Test deleting submissions related data on workshop reset.
  */
 public function test_reset_userdata_submissions()
 {
     global $DB;
     $this->resetAfterTest(true);
     $student1 = $this->getDataGenerator()->create_user();
     $student2 = $this->getDataGenerator()->create_user();
     $this->getDataGenerator()->enrol_user($student1->id, $this->workshop->course->id);
     $this->getDataGenerator()->enrol_user($student2->id, $this->workshop->course->id);
     $workshopgenerator = $this->getDataGenerator()->get_plugin_generator('mod_workshop');
     $subid1 = $workshopgenerator->create_submission($this->workshop->id, $student1->id);
     $subid2 = $workshopgenerator->create_submission($this->workshop->id, $student2->id);
     $asid1 = $workshopgenerator->create_assessment($subid1, $student2->id);
     $asid2 = $workshopgenerator->create_assessment($subid2, $student1->id);
     $settings = (object) array('reset_workshop_submissions' => 1);
     $status = $this->workshop->reset_userdata($settings);
     foreach ($status as $result) {
         $this->assertFalse($result['error']);
     }
     $this->assertEquals(0, $DB->count_records('workshop_submissions', array('workshopid' => $this->workshop->id)));
     $this->assertEquals(0, $DB->count_records('workshop_assessments'));
 }
Exemple #2
0
/**
 * Performs the reset of all workshop instances in the course.
 *
 * @param stdClass $data The actual course reset settings.
 * @return array List of results, each being array[(string)component, (string)item, (string)error]
 */
function workshop_reset_userdata(stdClass $data) {
    global $CFG, $DB;

    if (empty($data->reset_workshop_submissions)
            and empty($data->reset_workshop_assessments)
            and empty($data->reset_workshop_phase) ) {
        // Nothing to do here.
        return array();
    }

    $workshoprecords = $DB->get_records('workshop', array('course' => $data->courseid));

    if (empty($workshoprecords)) {
        // What a boring course - no workshops here!
        return array();
    }

    require_once($CFG->dirroot . '/mod/workshop/locallib.php');

    $course = $DB->get_record('course', array('id' => $data->courseid), '*', MUST_EXIST);
    $status = array();

    foreach ($workshoprecords as $workshoprecord) {
        $cm = get_coursemodule_from_instance('workshop', $workshoprecord->id, $course->id, false, MUST_EXIST);
        $workshop = new workshop($workshoprecord, $cm, $course);
        $status = array_merge($status, $workshop->reset_userdata($data));
    }

    return $status;
}