]> git.mjollnir.org Git - moodle.git/commitdiff
adding some capabilities to outcomes
authortoyomoyo <toyomoyo>
Wed, 25 Jul 2007 07:51:01 +0000 (07:51 +0000)
committertoyomoyo <toyomoyo>
Wed, 25 Jul 2007 07:51:01 +0000 (07:51 +0000)
grade/report/outcomes/course.html
grade/report/outcomes/course.php
grade/report/outcomes/editoutcomes.php
grade/report/outcomes/site.php

index 5a1010f32c21796f318e316a224848dd03da3710..d0761d744c1b647920aeb2d9ed3f8818c5d16db0 100755 (executable)
             </select>
         </td>
         <td>
+            <?php 
+                // only show arrows if user has privilages to manage
+               if (has_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_COURSE, $courseid))) { 
+            ?>
             <p class="arrow_button">
                 <input name="add" id="add" type="submit" value="<?php echo '&nbsp; '.$THEME->rarrow.' &nbsp; &nbsp; '.get_string('add'); ?>" title="<?php print_string('add'); ?>" />
                 <br />
                 <input name="remove" id="remove" type="submit" value="<?php echo '&nbsp;'.$THEME->larrow.' &nbsp; &nbsp; '.get_string('remove'); ?>" title="<?php print_string('remove'); ?>" />
             </p>
+            <?php } ?>
         </td>
         <td>
             <select id="removeoutcomes" size="20" name="removeoutcomes[]" multiple="multiple">
index 215ac5849173d17e3523158568d2bc8c966f2793..6419a9b758e0babcbc8ec9be6ed519dcf120c33a 100755 (executable)
@@ -18,9 +18,11 @@ if (!$course = get_record('course', 'id', $courseid)) {
 }
 
 require_login($courseid);
+require_capability('gradereport/outcomes:view', get_context_instance(CONTEXT_SYSTEM));
 
     /// form processing
     if ($deleteid && confirm_sesskey()) {
+        require_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_COURSE, $courseid));
         if ($confirm) {
             // delete all outcomes used in courses
             // delete all outcomes used in grade items
@@ -49,7 +51,7 @@ require_login($courseid);
     }
 
     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) {
@@ -136,11 +138,14 @@ print_header_simple($strgrades.':'.$stroutcomes, ':'.$strgrades, $navigation, ''
             // full name of the scale used by this outcomes
             $scale= get_record('scale', 'id', $outcome['scaleid']);
             $data[] = $scale->name;
-
+            
+            if (has_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_COURSE, $courseid))) {
             // add operations
-            $data[] = '<a href="editoutcomes.php?id='.$outcome['id'].'&amp;courseid='.$courseid.'&amp;sesskey='.sesskey().'"><img alt="Update" class="iconsmall" src="'.$CFG->wwwroot.'/pix/t/edit.gif"/></a>
+                $data[] = '<a href="editoutcomes.php?id='.$outcome['id'].'&amp;courseid='.$courseid.'&amp;sesskey='.sesskey().'"><img alt="Update" class="iconsmall" src="'.$CFG->wwwroot.'/pix/t/edit.gif"/></a>
                    <a href="course.php?deleteid='.$outcome['id'].'&amp;id='.$courseid.'&amp;sesskey='.sesskey().'"><img alt="Delete" class="iconsmall" src="'.$CFG->wwwroot.'/pix/t/delete.gif"/></a>'; // icons and links
-
+            } else {
+                $data[] = '';  
+            }
             // num of gradeitems using this
             $num = count_records('grade_items', 'outcomeid' ,$outcome['id']);
             $data[] = (int) $num;
@@ -151,9 +156,9 @@ print_header_simple($strgrades.':'.$stroutcomes, ':'.$strgrades, $navigation, ''
 
         $table->print_html();
     }
-
-    echo '<a href="editoutcomes.php?courseid='.$courseid.'">Add a new outcome</a>';    
-
+    if (has_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_COURSE, $courseid))) {
+        echo '<a href="editoutcomes.php?courseid='.$courseid.'">Add a new outcome</a>';    
+    }
     print_footer();
     
 /** 
index 73237059f5e3dbf75f0e9e442e71aa47a772a376..dd43ca3fc0424fbb6728f74a8e09545fdefc3b43 100755 (executable)
@@ -14,11 +14,11 @@ class edit_outcomes_form extends moodleform {
 
         $mform->addElement('text', 'shortname', get_string('shortname'));
         $mform->addRule('shortname', get_string('required'), 'required');
-        $mform->setType('id', PARAM_TEXT);
+        $mform->setType('shortname', PARAM_TEXT);
 
         $mform->addElement('text', 'fullname', get_string('fullname'));
         $mform->addRule('fullname', get_string('required'), 'required');
-        $mform->setType('id', PARAM_TEXT);
+        $mform->setType('fullname', PARAM_TEXT);
 
         $scalearr = array();
         if ($scales = get_records('scale')) {
@@ -44,9 +44,11 @@ $id = optional_param('id', 0, PARAM_INT); // id of the outcome
 if ($courseid = optional_param('courseid', 0, PARAM_INT)) {
     // optional course id, if set, editting from course
     require_login($courseid);
+    require_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_COURSE, $courseid));
     $returnurl = $CFG->wwwroot."/grade/report/outcomes/course.php?id=$courseid";
 } else {
     // admin editting site level outcomes
+    require_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_SYSTEM));    
     $returnurl = $CFG->wwwroot."/grade/report/outcomes/site.php";
 }
 // form processing
@@ -66,6 +68,10 @@ if ($mform->is_cancelled()) {
     redirect($returnurl);
 }
 if ($data = $mform->get_data()) {
+    if ($data->courseid == 0) {
+        $data->courseid = NULL;  
+    }
+  
     if ($data->id) {
         update_record('grade_outcomes', $data);
     } else {
index 43fd0481fd7cd3a16fbe1a0e1745d4decdd6f899..22ed25dd862ca91d0df080989cd3e58c40aaaf8f 100755 (executable)
@@ -9,7 +9,7 @@ require_once($CFG->libdir.'/tablelib.php');
 
 // setting up params
 $courseid = optional_param('id', SITEID, PARAM_INT); // course id
-
+require_capability('gradereport/outcomes:view', get_context_instance(CONTEXT_SYSTEM)); 
 /// check capability
 
 $page = optional_param('page', 0, PARAM_INT); // current page
@@ -20,13 +20,13 @@ $perpage = 30;
 
     // form processing
     if ($deleteid && confirm_sesskey()) {
+        require_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_SYSTEM));
         if ($confirm) {
             // delete all outcomes used in courses
             // delete all outcomes used in grade items
             delete_records('grade_outcomes_courses', 'outcomeid', $deleteid);
             delete_records('grade_outcomes', 'id', $deleteid);
-        } else {
-          
+        } else {          
             $strgrades = get_string('grades');
             $stroutcomes = get_string('outcomes', 'grades');
             $navlinks = array();
@@ -98,9 +98,14 @@ $perpage = 30;
             }
 
             // add operations
-            $data[] = '<a href="editoutcomes.php?id='.$outcome['id'].'&amp;sesskey='.sesskey().'"><img alt="Update" class="iconsmall" src="'.$CFG->wwwroot.'/pix/t/edit.gif"/></a>
+            if (has_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_SYSTEM))) {
+            
+                $data[] = '<a href="editoutcomes.php?id='.$outcome['id'].'&amp;sesskey='.sesskey().'"><img alt="Update" class="iconsmall" src="'.$CFG->wwwroot.'/pix/t/edit.gif"/></a>
                    <a href="site.php?deleteid='.$outcome['id'].'&amp;sesskey='.sesskey().'"><img alt="Delete" class="iconsmall" src="'.$CFG->wwwroot.'/pix/t/delete.gif"/></a>'; // icons and links
-
+            
+            } else {
+                $data[] = '';  
+            }
             // num of gradeitems using this
             $num = count_records('grade_items', 'outcomeid' ,$outcome['id']);
             $data[] = (int) $num;
@@ -114,9 +119,9 @@ $perpage = 30;
 
         $table->print_html();
     }
-
-    echo '<a href="editoutcomes.php">Add a new outcome</a>';
-
+    if (has_capability('gradereport/outcomes:manage', get_context_instance(CONTEXT_SYSTEM))) {
+        echo '<a href="editoutcomes.php">Add a new outcome</a>';
+    }
     // print the footer, end of page
     admin_externalpage_print_footer();
 ?>