]> git.mjollnir.org Git - moodle.git/commitdiff
fixed api functions for course-reset feature
authoragrabs <agrabs>
Sat, 17 May 2008 14:10:21 +0000 (14:10 +0000)
committeragrabs <agrabs>
Sat, 17 May 2008 14:10:21 +0000 (14:10 +0000)
mod/feedback/lib.php

index 3703bdf123dd0e0a7e67cb0d0d95689105998612..1d62d25baa2c551de8f0d3a1e8789a0909b23081 100644 (file)
@@ -182,19 +182,20 @@ function feedback_scale_used ($feedbackid,$scaleid) {
     return $return;
 }
 
-/** 
- * This function is used by the remove_course_userdata function in moodlelib.
- * If this function exists, remove_course_userdata will execute it.
- * This function will remove all completeds from the specified feedback.
- * @param object $data
- * @param boolean $showfeedback
- * @return void
+/**
+ * This function is used by the reset_course_userdata function in moodlelib.
+ * This function will remove all responses from the specified feedback
+ * and clean up any related data.
+ * @param $data the data submitted from the reset course.
+ * @return array status array
  */
-function feedback_delete_userdata($data, $showfeedback=true) {
+function feedback_reset_userdata($data) {
     global $CFG;
     
     $resetfeedbacks = array();
     $dropfeedbacks = array();
+    $status = array();
+    $componentstr = get_string('modulenameplural', 'feedback');
     
     //get the relevant entries from $data
     foreach($data as $key => $value) {
@@ -216,15 +217,53 @@ function feedback_delete_userdata($data, $showfeedback=true) {
     
     //reset the selected feedbacks
     foreach($resetfeedbacks as $id) {
+        $feedback = get_record('feedback', 'id', $id);
         feedback_delete_all_completeds($id);
+        $status[] = array('component'=>$componentstr.':'.$feedback->name, 'item'=>get_string('resetting_data','feedback'), 'error'=>false);
     }
     
     //drop the selected feedbacks
-    foreach($dropfeedbacks as $id) {
-        $cm = get_coursemodule_from_instance('feedback', $id);
-        feedback_delete_instance($id);
-        feedback_delete_course_module($cm->id);
+    // foreach($dropfeedbacks as $id) {
+        // $cm = get_coursemodule_from_instance('feedback', $id);
+        // feedback_delete_instance($id);
+        // feedback_delete_course_module($cm->id);
+        // $status[] = array('component'=>$componentstr, 'item'=>get_string('drop_feedback','feedback'), 'error'=>false);
+    // }
+    return $status;
+}
+
+/**
+ * Called by course/reset.php
+ * @param $mform form passed by reference
+ */
+function feedback_reset_course_form_definition(&$mform) {
+    global $COURSE;
+    $mform->addElement('header', 'feedbackheader', get_string('modulenameplural', 'feedback'));
+    
+    if(!$feedbacks = get_records('feedback', 'course', $COURSE->id, 'name')){
+        return;
     }
+
+    $mform->addElement('static', 'hint', get_string('resetting_data','feedback'));
+    foreach($feedbacks as $feedback) {
+        $mform->addElement('checkbox', FEEDBACK_RESETFORM_RESET.$feedback->id, $feedback->name);
+        // $mform->addElement('checkbox', FEEDBACK_RESETFORM_DROP.$feedback->id, get_string('drop_feedback','feedback'));
+    }
+}
+
+/**
+ * Course reset form defaults.
+ */
+function feedback_reset_course_form_defaults($course) {
+    $return = array();
+    if(!$feedbacks = get_records('feedback', 'course', $course->id, 'name')){
+        return;
+    }
+    foreach($feedbacks as $feedback) {
+        $return[FEEDBACK_RESETFORM_RESET.$feedback->id] = true;
+        // $return[FEEDBACK_RESETFORM_DROP.$feedback->id] = false;
+    }
+    return $return;
 }
 
 /**