Moodle
  1. Moodle
  2. MDL-33775

Fix redirect to course/section in paged mode

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 2.3
    • Fix Version/s: 2.3
    • Component/s: Course
    • Labels:
    • Testing Instructions:
      Hide
      1. Edit a course and set it to 'one section per page'
      2. Enable editing mode on the index page of the section
      3. Add a resource and an activity
      4. Make sure that if you cancel, you're redirected back where you were.
      5. Make sure that if you 'Save and return to course', you're redirected back where you were.
      6. Go to a section page, and repeat steps 3, 4, 5
      Show
      Edit a course and set it to 'one section per page' Enable editing mode on the index page of the section Add a resource and an activity Make sure that if you cancel, you're redirected back where you were. Make sure that if you 'Save and return to course', you're redirected back where you were. Go to a section page, and repeat steps 3, 4, 5
    • Affected Branches:
      MOODLE_23_STABLE
    • Fixed Branches:
      MOODLE_23_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      MDL-33775-master-integration
    • Rank:
      41819

      Description

      When in paged mode, viewing the index page with editing on:

      • Adding a resource/activity does not redirect to course main page, but section
      • Same behaviour when cancelling cancel
      • Same behaviour when editing an existing resource/activity

        Issue Links

          Activity

          Hide
          Jason Fowler added a comment -

          looks good Fred

          Show
          Jason Fowler added a comment - looks good Fred
          Hide
          Dan Poltawski added a comment -

          If it was me, I wouldn't have added $sectionreturnlink as it makes the diff more obvious, but thats very trivial

          Show
          Dan Poltawski added a comment - If it was me, I wouldn't have added $sectionreturnlink as it makes the diff more obvious, but thats very trivial
          Hide
          Dan Poltawski added a comment -

          Sorry fred, but it doesn't seem to be working on single section page mode.

          Url is:
          http://dan.moodle.local/integration/course/modedit.php?add=lesson&type=&course=4&section=3&return=0&sr=0

          Show
          Dan Poltawski added a comment - Sorry fred, but it doesn't seem to be working on single section page mode. Url is: http://dan.moodle.local/integration/course/modedit.php?add=lesson&type=&course=4&section=3&return=0&sr=0
          Hide
          Frédéric Massart added a comment -

          Did you try to add in the default section? If yes, it is a know issue linked to MDL-33767.
          The default section always gets 0 as the section return.

          Show
          Frédéric Massart added a comment - Did you try to add in the default section? If yes, it is a know issue linked to MDL-33767 . The default section always gets 0 as the section return.
          Hide
          Dan Poltawski added a comment -

          No, that was section 3 (see url)

          Show
          Dan Poltawski added a comment - No, that was section 3 (see url)
          Hide
          Frédéric Massart added a comment -

          Fixed and updated. Submitting for integration straight away, and to facilitate integrator's lifes, this was the diff introduced.

          diff --git a/course/lib.php b/course/lib.php
          index c6ea7db..75bba78 100644
          --- a/course/lib.php
          +++ b/course/lib.php
          @@ -1887,10 +1887,11 @@ function print_section_add_menus($course, $section, $modnames, $vertical=false,
            * @param object $course The Course
            * @param array $modnames An array containing the list of modules and their
            * names
          + * @param int $sectionreturn The section to return to
            * @return array A list of stdClass objects containing metadata about each
            * module
            */
          -function get_module_metadata($course, $modnames) {
          +function get_module_metadata($course, $modnames, $sectionreturn = 0) {
               global $CFG, $OUTPUT;
           
               // get_module_metadata will be called once per section on the page and courses may show
          @@ -1901,7 +1902,7 @@ function get_module_metadata($course, $modnames) {
               }
           
               $return = array();
          -    $urlbase = "/course/mod.php?id=$course->id&sesskey=".sesskey().'&add=';
          +    $urlbase = "/course/mod.php?id=$course->id&sesskey=".sesskey().'&sr='.$sectionreturn.'&add=';
               foreach($modnames as $modname => $modnamestr) {
                   if (!course_allowed_module($course, $modname)) {
                       continue;
          diff --git a/course/view.php b/course/view.php
          index e0f295b..e4a18cd 100644
          --- a/course/view.php
          +++ b/course/view.php
          @@ -270,7 +270,7 @@
               if (include_course_ajax($course, $modnamesused)) {
                   // Add the module chooser
                   $renderer = $PAGE->get_renderer('core', 'course');
          -        echo $renderer->course_modchooser(get_module_metadata($course, $modnames), $course);
          +        echo $renderer->course_modchooser(get_module_metadata($course, $modnames, $displaysection), $course);
               }
           
               echo $OUTPUT->footer();
          
          Show
          Frédéric Massart added a comment - Fixed and updated. Submitting for integration straight away, and to facilitate integrator's lifes, this was the diff introduced. diff --git a/course/lib.php b/course/lib.php index c6ea7db..75bba78 100644 --- a/course/lib.php +++ b/course/lib.php @@ -1887,10 +1887,11 @@ function print_section_add_menus($course, $section, $modnames, $vertical=false, * @param object $course The Course * @param array $modnames An array containing the list of modules and their * names + * @param int $sectionreturn The section to return to * @return array A list of stdClass objects containing metadata about each * module */ -function get_module_metadata($course, $modnames) { +function get_module_metadata($course, $modnames, $sectionreturn = 0) { global $CFG, $OUTPUT; // get_module_metadata will be called once per section on the page and courses may show @@ -1901,7 +1902,7 @@ function get_module_metadata($course, $modnames) { } $return = array(); - $urlbase = "/course/mod.php?id=$course->id&sesskey=".sesskey().'&add='; + $urlbase = "/course/mod.php?id=$course->id&sesskey=".sesskey().'&sr='.$sectionreturn.'&add='; foreach($modnames as $modname => $modnamestr) { if (!course_allowed_module($course, $modname)) { continue; diff --git a/course/view.php b/course/view.php index e0f295b..e4a18cd 100644 --- a/course/view.php +++ b/course/view.php @@ -270,7 +270,7 @@ if (include_course_ajax($course, $modnamesused)) { // Add the module chooser $renderer = $PAGE->get_renderer('core', 'course'); - echo $renderer->course_modchooser(get_module_metadata($course, $modnames), $course); + echo $renderer->course_modchooser(get_module_metadata($course, $modnames, $displaysection), $course); } echo $OUTPUT->footer();
          Hide
          Dan Poltawski added a comment -

          Thanks Fred, integrated now.

          Show
          Dan Poltawski added a comment - Thanks Fred, integrated now.
          Hide
          Dan Poltawski added a comment -

          Tested and passed!

          Show
          Dan Poltawski added a comment - Tested and passed!
          Hide
          Eloy Lafuente (stronk7) added a comment -

          And this has been spread to every git and cvs repository out there, just in time to roll Moodle 2.3beta!

          Thanks! Closing, ciao

          Show
          Eloy Lafuente (stronk7) added a comment - And this has been spread to every git and cvs repository out there, just in time to roll Moodle 2.3beta! Thanks! Closing, ciao

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: