]> git.mjollnir.org Git - moodle.git/commitdiff
fixing course outcomes edit page to not use user preference but proper grade_outcomes...
authortoyomoyo <toyomoyo>
Tue, 31 Jul 2007 04:09:00 +0000 (04:09 +0000)
committertoyomoyo <toyomoyo>
Tue, 31 Jul 2007 04:09:00 +0000 (04:09 +0000)
grade/edit/courseoutcomes/form.html
grade/edit/courseoutcomes/index.php
lang/en_utf8/grades.php

index e95ea0adb3e5b2dd97142bbd814f08f0e08cf7b9..63278b4340b162751f1f88235493da5329a70fcc 100755 (executable)
@@ -9,6 +9,9 @@
 
             <?php
             foreach ($outcomes as $outcome) {
+                if (in_array($outcome->id, array_keys($courseoutcomes))) {
+                    continue;
+                }
                 echo '<option value="'.$outcome->id.'">'.$outcome->get_name().'</option>';
             }
             ?>
             </p>
         </td>
         <td>
-            <label for="removeoutcomes"><?php print_string('favoutcomes', 'grades'); ?></label>
+            <label for="removeoutcomes"><?php print_string('courseoutcomes', 'grades'); ?></label>
             <br />
             <select id="removeoutcomes" size="20" name="removeoutcomes[]" multiple="multiple">
             <?php
-            foreach ($favoutcomes as $outcome) {
+            foreach ($courseoutcomes as $outcome) {
                 echo '<option value="'.$outcome->id.'">'.$outcome->get_name().'</option>';
             }
             ?>
index c367900829a209c7cda64dc268c483df1e73b0ba..9dfe277e51741ebbe442124486d5907d1eb9cb56 100644 (file)
@@ -15,69 +15,59 @@ require_login($course);
 $context = get_context_instance(CONTEXT_COURSE, $course->id);
 require_capability('moodle/course:update', $context);
 
+/// form processing
+if ($data = data_submitted()) {
+    require_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_COURSE, $courseid));
+    if (!empty($data->add) && !empty($data->addoutcomes)) {
+    /// add all selected to course list
+        foreach ($data->addoutcomes as $add) {
+            $goc -> courseid = $courseid;
+            $goc -> outcomeid = $add;
+            insert_record('grade_outcomes_courses', $goc);
+        }
+    } else if (!empty($data->remove) && !empty($data->removeoutcomes)) {
+    /// remove all selected from course outcomes list
+        foreach ($data->removeoutcomes as $remove) {
+            delete_records('grade_outcomes_courses', 'courseid', $courseid, 'outcomeid', $remove);
+        }
+    }
+}
+
 /// return tracking object
 $gpr = new grade_plugin_return(array('type'=>'edit', 'plugin'=>'favoutcomes', 'courseid'=>$courseid));
 
 $strgrades = get_string('grades');
-$pagename  = get_string('favoutcomes', 'grades');
+$pagename  = get_string('courseoutcomes', 'grades');
 
 $navlinks = array(array('name'=>$strgrades, 'link'=>$CFG->wwwroot.'/grade/index.php?id='.$courseid, 'type'=>'misc'),
                   array('name'=>$pagename, 'link'=>'', 'type'=>'misc'));
 $navigation = build_navigation($navlinks);
 
-if ($fav_outcomes_ids = get_user_preferences('grade_favourite_outcomes', null)) {
-    $fav_outcomes_ids = unserialize($fav_outcomes_ids);
-} else {
-    $fav_outcomes_ids = array();
-}
-
 $outcomes = grade_outcome::fetch_all_global();
-$favoutcomes = array();
-foreach($outcomes as $outcome) {
-    if (in_array($outcome->id, $fav_outcomes_ids)) {
-        unset($outcomes[$outcome->id]);
-        $favoutcomes[$outcome->id] = $outcome;
+$courseoutcomes = array();
+if ($coutcomes = get_records_sql('SELECT go.id, go.fullname
+                                       FROM '.$CFG->prefix.'grade_outcomes_courses goc,
+                                            '.$CFG->prefix.'grade_outcomes go
+                                        WHERE goc.courseid = '.$courseid.'
+                                       AND goc.outcomeid = go.id')) {
+    foreach ($coutcomes as $id=>$coutcome) {
+        $courseoutcomes[$id] = new grade_outcome(array('id'=>$id));     
     }
 }
 
-// store user preferences
-if ($data = data_submitted()) {
-    if (!empty($data->add) && !empty($data->addoutcomes)) {
-    /// add all selected to favourite list
-        foreach ($data->addoutcomes as $add) {
-            if (isset($outcomes[$add])) {
-                $outcome = $outcomes[$add];
-                unset($outcomes[$outcome->id]);
-                $favoutcomes[$outcome->id] = $outcome;
-            }
-        }
-    } else if (!empty($data->remove) && !empty($data->removeoutcomes)) {
-    /// remove all selected from favourites
-        foreach ($data->removeoutcomes as $remove) {
-            if (isset($favoutcomes[$remove])) {
-                $outcome = $favoutcomes[$remove];
-                unset($favoutcomes[$outcome->id]);
-                $outcomes[$outcome->id] = $outcome;
-            }
-        }
-    }
-
-    $pref = array_keys($favoutcomes);
-    $pref = serialize($pref);
-    set_user_preference('grade_favourite_outcomes', $pref);
+if (empty($courseoutcomes)) {
+    $courseoutcomes = grade_outcome::fetch_all(array('courseid'=>$courseid));
+} elseif ($mcourseoutcomes = grade_outcome::fetch_all(array('courseid'=>$courseid))) {
+    $courseoutcomes += $mcourseoutcomes;
 }
-
 /// Print header
 print_header_simple($strgrades.': '.$pagename, ': '.$strgrades, $navigation, '', '', true, '', navmenu($course));
 
 /// Print the plugin selector at the top
-print_grade_plugin_selector($courseid, 'edit', 'favoutcomes');
-
+print_grade_plugin_selector($courseid, 'edit', 'courseoutcomes');
 
 check_theme_arrows();
 include_once('form.html');
 
 print_footer($course);
-
-
-?>
+?>
\ No newline at end of file
index dca315f6e9416cb3ebffce46e4f400d614d6d836..d4fdd635f3fc9072d93490ef7194817bca58b954 100644 (file)
@@ -75,6 +75,7 @@ $string['configshowuserimage'] = 'Whether to show the user\'s profile image next
 $string['configstudentsperpage'] = 'The number of students to display per page in the grader report.';
 $string['configstudentsperpagedefault'] = 'The number of students to display per page in the grader report. Leave this field empty to use the site default (currently $a).';
 $string['contract'] = 'Contract Category';
+$string['courseoutcomes'] = 'Course outcomes';
 $string['createcategory'] = 'Create Category';
 $string['createcategoryerror'] = 'Could not create a new category';
 $string['creatinggradebooksettings'] = 'Creating Gradebook settings';
@@ -118,6 +119,7 @@ $string['finalgrade'] = 'Final grade';
 $string['forelementtypes'] = ' for the selected $a';
 $string['forstudents'] = 'For Students';
 $string['full'] = 'Full';
+$string['globaloutcomes'] = 'Global outcomes';
 $string['grade'] = 'Grade';
 $string['gradebook'] = 'Gradebook';
 $string['gradebookhiddenerror'] = 'The gradebook is currently set to hide everything from students.';