Merge branch 'MDL-34435-23' of git://github.com/FMCorz/moodle into MOODLE_23_STABLE
authorSam Hemelryk <sam@moodle.com>
Tue, 22 Jan 2013 22:07:40 +0000 (11:07 +1300)
committerSam Hemelryk <sam@moodle.com>
Tue, 22 Jan 2013 22:07:40 +0000 (11:07 +1300)
Conflicts:
version.php

1  2 
course/index.php
course/lib.php
version.php

diff --combined course/index.php
@@@ -67,11 -67,12 +67,11 @@@ $straction = get_string('action')
  $strfulllistofcourses = get_string('fulllistofcourses');
  
  
 -/// Unless it's an editing admin, just print the regular listing of courses/categories
 +// Unless it's an editing admin, just print the regular listing of courses/categories.
  if (!$adminediting) {
 -
 -/// Print form for creating new categories
 +    $showaddcoursebutton = true;
 +    // Print form for creating new categories.
      $countcategories = $DB->count_records('course_categories');
 -
      if ($countcategories > 1 || ($countcategories == 1 && $DB->count_records('course') > 200)) {
          $strcourses = get_string('courses');
          $strcategories = get_string('categories');
          echo $OUTPUT->header();
          echo $OUTPUT->skip_link_target();
          echo $OUTPUT->box_start('courseboxes');
 -        print_courses(0);
 +        $showaddcoursebutton = print_courses(0);
          echo $OUTPUT->box_end();
      }
  
      echo $OUTPUT->container_start('buttons');
 -    if (has_capability('moodle/course:create', $systemcontext)) {
 -    /// Print link to create a new course
 -    /// Get the 1st available category
 +    if (has_capability('moodle/course:create', $systemcontext) && $showaddcoursebutton) {
 +        // Print link to create a new course, for the 1st available category.
          $options = array('category' => $CFG->defaultrequestcategory);
          echo $OUTPUT->single_button(new moodle_url('edit.php', $options), get_string('addnewcourse'), 'get');
      }
@@@ -230,6 -232,7 +230,7 @@@ if ((!empty($moveup) or !empty($movedow
      if ($swapcategory and $movecategory) {
          $DB->set_field('course_categories', 'sortorder', $swapcategory->sortorder, array('id'=>$movecategory->id));
          $DB->set_field('course_categories', 'sortorder', $movecategory->sortorder, array('id'=>$swapcategory->id));
+         add_to_log(SITEID, "category", "move", "editcategory.php?id=$movecategory->id", $movecategory->id);
      }
  
      // finally reorder courses
diff --combined course/lib.php
@@@ -60,6 -60,7 +60,7 @@@ function make_log_url($module, $url) 
          case 'lib':
          case 'admin':
          case 'calendar':
+         case 'category':
          case 'mnet course':
              if (strpos($url, '../') === 0) {
                  $url = ltrim($url, '.');
@@@ -2457,9 -2458,7 +2458,9 @@@ function update_category_button($catego
  }
  
  /**
 - * Category is 0 (for all courses) or an object
 + * Print courses in category. If category is 0 then all courses are printed.
 + * @param int|stdClass $category category object or id.
 + * @return bool true if courses found and printed, else false.
   */
  function print_courses($category) {
      global $CFG, $OUTPUT;
              echo html_writer::start_tag('div', array('class'=>'addcoursebutton'));
              echo $OUTPUT->single_button(new moodle_url('/course/edit.php', $options), get_string("addnewcourse"));
              echo html_writer::end_tag('div');
 +            return false;
          }
      }
 +    return true;
  }
  
  /**
@@@ -2610,7 -2607,6 +2611,7 @@@ function print_course($course, $highlig
      if ($icons = enrol_get_course_info_icons($course)) {
          echo html_writer::start_tag('div', array('class'=>'enrolmenticons'));
          foreach ($icons as $icon) {
 +            $icon->attributes["alt"] .= ": ". format_string($coursename, true, array('context'=>$context));
              echo $OUTPUT->render($icon);
          }
          echo html_writer::end_tag('div'); // End of enrolmenticons div
@@@ -2879,13 -2875,6 +2880,13 @@@ function set_coursemodule_visible($id, 
      if (!$cm = $DB->get_record('course_modules', array('id'=>$id))) {
          return false;
      }
 +
 +    // Create events and propagate visibility to associated grade items if the value has changed.
 +    // Only do this if it's changed to avoid accidently overwriting manual showing/hiding of student grades.
 +    if ($cm->visible == $visible) {
 +        return true;
 +    }
 +
      if (!$modulename = $DB->get_field('modules', 'name', array('id'=>$cm->module))) {
          return false;
      }
          }
      }
  
 -    // hide the associated grade items so the teacher doesn't also have to go to the gradebook and hide them there
 +    // Hide the associated grade items so the teacher doesn't also have to go to the gradebook and hide them there.
      $grade_items = grade_item::fetch_all(array('itemtype'=>'mod', 'itemmodule'=>$modulename, 'iteminstance'=>$cm->instance, 'courseid'=>$cm->course));
      if ($grade_items) {
          foreach ($grade_items as $grade_item) {
@@@ -3156,16 -3145,13 +3157,16 @@@ function moveto_module($mod, $section, 
  
  /// Update module itself if necessary
  
 -    if ($mod->section != $section->id) {
 -        $mod->section = $section->id;
 -        $DB->update_record("course_modules", $mod);
 -        // if moving to a hidden section then hide module
 -        if (!$section->visible) {
 -            set_coursemodule_visible($mod->id, 0);
 -        }
 +    // If moving to a hidden section then hide module.
 +    if (!$section->visible && $mod->visible) {
 +        // Set this in the object because it is sent as a response to ajax calls.
 +        set_coursemodule_visible($mod->id, 0, true);
 +        $mod->visible = 0;
 +    }
 +    if ($section->visible && !$mod->visible) {
 +        set_coursemodule_visible($mod->id, 1, true);
 +        // Set this in the object because it is sent as a response to ajax calls.
 +        $mod->visible = $mod->visibleold;
      }
  
  /// Add the module into the new section
@@@ -3498,6 -3484,7 +3499,7 @@@ function category_delete_full($category
      // finally delete the category and it's context
      $DB->delete_records('course_categories', array('id'=>$category->id));
      delete_context(CONTEXT_COURSECAT, $category->id);
+     add_to_log(SITEID, "category", "delete", "index.php", "$category->name (ID $category->id)");
  
      events_trigger('course_category_deleted', $category);
  
@@@ -3553,6 -3540,7 +3555,7 @@@ function category_delete_move($category
      // finally delete the category and it's context
      $DB->delete_records('course_categories', array('id'=>$category->id));
      delete_context(CONTEXT_COURSECAT, $category->id);
+     add_to_log(SITEID, "category", "delete", "index.php", "$category->name (ID $category->id)");
  
      events_trigger('course_category_deleted', $category);
  
@@@ -3599,6 -3587,7 +3602,7 @@@ function move_courses($courseids, $cate
              }
  
              $DB->update_record('course', $course);
+             add_to_log($course->id, "course", "move", "edit.php?id=$course->id", $course->id);
  
              $context   = get_context_instance(CONTEXT_COURSE, $course->id);
              context_moved($context, $newparent);
@@@ -3631,6 -3620,7 +3635,7 @@@ function course_category_hide($category
              $DB->set_field('course', 'visible', 0, array('category' => $cat->id));
          }
      }
+     add_to_log(SITEID, "category", "hide", "editcategory.php?id=$category->id", $category->id);
  }
  
  /**
@@@ -3654,6 -3644,7 +3659,7 @@@ function course_category_show($category
              $DB->execute("UPDATE {course} SET visible = visibleold WHERE category = ?", array($cat->id));
          }
      }
+     add_to_log(SITEID, "category", "show", "editcategory.php?id=$category->id", $category->id);
  }
  
  /**
@@@ -3686,6 -3677,9 +3692,9 @@@ function move_category($category, $newp
      // now make it last in new category
      $DB->set_field('course_categories', 'sortorder', MAX_COURSES_IN_CATEGORY*MAX_COURSE_CATEGORIES, array('id'=>$category->id));
  
+     // Log action.
+     add_to_log(SITEID, "category", "move", "editcategory.php?id=$category->id", $category->id);
      // and fix the sortorders
      fix_course_sortorder();
  
diff --combined version.php
  defined('MOODLE_INTERNAL') || die();
  
  
- $version  = 2012062504.01;              // YYYYMMDD      = weekly release date of this DEV branch
 -$version  = 2012062503.10;              // YYYYMMDD      = weekly release date of this DEV branch
++$version  = 2012062504.02;              // YYYYMMDD      = weekly release date of this DEV branch
                                          //         RR    = release increments - 00 in DEV branches
                                          //           .XX = incremental changes
  
 -$release  = '2.3.3+ (Build: 20121230)'; // Human-friendly version name
 +$release  = '2.3.4+ (Build: 20130118)';  // Human-friendly version name
  
  $branch   = '23';                       // this version's branch
  $maturity = MATURITY_STABLE;            // this version's maturity level