Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.3.2, 2.4
    • Fix Version/s: 2.3.5, 2.4.2
    • Component/s: Gradebook
    • Labels:
    • Database:
      MySQL
    • Testing Instructions:
      Hide
      • As an admin, Enable outcomes in "Site administration > Advanced features"
      • If don't already have an outcome export file create one. Go to Site Administration > Grades > Outcomes and click "Export all outcomes".
      • As a teacher, try to import outcomes from an export file by going to a course grade book and selecting import outcomes from the gradebook navigation drop down.
        You should be able to import those outcomes
      • As admin, go back to the outcome import screen. You should have the option to import it either a custom or standard outcome.
        The import should proceed without error although you may be told the outcome already exists so no importing was actually done
      Show
      As an admin, Enable outcomes in "Site administration > Advanced features" If don't already have an outcome export file create one. Go to Site Administration > Grades > Outcomes and click "Export all outcomes". As a teacher, try to import outcomes from an export file by going to a course grade book and selecting import outcomes from the gradebook navigation drop down. You should be able to import those outcomes As admin, go back to the outcome import screen. You should have the option to import it either a custom or standard outcome. The import should proceed without error although you may be told the outcome already exists so no importing was actually done
    • Workaround:
      Hide

      Import outcomes as an administrator

      Show
      Import outcomes as an administrator
    • Affected Branches:
      MOODLE_23_STABLE, MOODLE_24_STABLE
    • Fixed Branches:
      MOODLE_23_STABLE, MOODLE_24_STABLE
    • Pull 2.4 Branch:
      MDL-36128-moodle24
    • Pull Master Branch:
      MDL-36128-master
    • Rank:
      44899

      Description

      Attempting to import an outcomes file as a teacher into the latest 2.3.2 fails, with the message:

      "An error occurred, this script wasn't called with the right parameters."

      The file imports without any problem when I'm logged in as an admin.

        Issue Links

          Activity

          Hide
          Lesli Smith added a comment -

          Hi. I'm getting this exact error in 2.3, but only when logged in as a teacher. If I'm logged in as an admin, the files import fine. I'm trying to create templates for teachers to import into their courses on their own as custom outcomes (in the pic, it says standards because that is what they want the outcomes called on that site). I looked at permissions and can't figure out if there is some permission amiss. Thanks for any assistance.

          Show
          Lesli Smith added a comment - Hi. I'm getting this exact error in 2.3, but only when logged in as a teacher. If I'm logged in as an admin, the files import fine. I'm trying to create templates for teachers to import into their courses on their own as custom outcomes (in the pic, it says standards because that is what they want the outcomes called on that site). I looked at permissions and can't figure out if there is some permission amiss. Thanks for any assistance.
          Hide
          Lesli Smith added a comment -

          Reproduced on my very basic desktop, vanilla install, normal roles version, too.

          Show
          Lesli Smith added a comment - Reproduced on my very basic desktop, vanilla install, normal roles version, too.
          Hide
          Mary Cooch added a comment -

          I have just tested this out on my own local install Moodle 2.3.3+ (Build: 20121018) and I have the same error message.

          Show
          Mary Cooch added a comment - I have just tested this out on my own local install Moodle 2.3.3+ (Build: 20121018) and I have the same error message.
          Hide
          Dan Poltawski added a comment -

          I think this is the fix, but I have just guessed from code, not tested

          diff --git a/grade/edit/outcome/import.php b/grade/edit/outcome/import.php
          index c10a858..3cb3a39 100644
          --- a/grade/edit/outcome/import.php
          +++ b/grade/edit/outcome/import.php
          @@ -32,7 +32,7 @@ $courseid = optional_param('courseid', 0, PARAM_INT);
           $action   = optional_param('action', '', PARAM_ALPHA);
           $scope    = optional_param('scope', 'global', PARAM_ALPHA);
           
          -$PAGE->set_url('/grade/edit/outcome/import.php', array('courseid' => $courseid));
          +$PAGE->set_url('/grade/edit/outcome/import.php', array('courseid' => $courseid, 'scope' => $scope));
           
           /// Make sure they can even access this course
           if ($courseid) {
          
          Show
          Dan Poltawski added a comment - I think this is the fix, but I have just guessed from code, not tested diff --git a/grade/edit/outcome/ import .php b/grade/edit/outcome/ import .php index c10a858..3cb3a39 100644 --- a/grade/edit/outcome/ import .php +++ b/grade/edit/outcome/ import .php @@ -32,7 +32,7 @@ $courseid = optional_param('courseid', 0, PARAM_INT); $action = optional_param('action', '', PARAM_ALPHA); $scope = optional_param('scope', 'global', PARAM_ALPHA); -$PAGE->set_url('/grade/edit/outcome/ import .php', array('courseid' => $courseid)); +$PAGE->set_url('/grade/edit/outcome/ import .php', array('courseid' => $courseid, 'scope' => $scope)); /// Make sure they can even access this course if ($courseid) {
          Hide
          Mary Cooch added a comment -

          just removing 2.3.3 since we never had it

          Show
          Mary Cooch added a comment - just removing 2.3.3 since we never had it
          Hide
          bunwich added a comment -

          Hi Everyone,

          Two possible choices to fix this issue, I'll leave it up to the maintainer to pick the best.

          On the outcomes import page.
          Admins can choose custom scope or global scope.
          Teachers do not have a choice, and should always be uploading outcomes to a course.

          This means that by default the scope should always be 'custom'.

          Option 1:

          change Line 33 ./grade/edit/outcome/import.php
          $scope    = optional_param('scope', 'global', PARAM_ALPHA);
          to 
          $scope    = optional_param('scope', 'custom', PARAM_ALPHA);
          
          

          Option 2:
          Change the form creation so that scope is always passed in the form. Right now scope is only passed when a user has system wide capabilities. If they only have course capabilities for importing outcomes, no scope is passed hence then confusion.

          diff --git a/grade/edit/outcome/import_outcomes_form.php b/grade/edit/outcome/import_outcomes_form.php
          index 4a263c8..978550e 100644
          --- a/grade/edit/outcome/import_outcomes_form.php
          +++ b/grade/edit/outcome/import_outcomes_form.php
          @@ -45,6 +45,8 @@ class import_outcomes_form extends moodleform {
                       $mform->addElement('radio', 'scope', get_string('importcustom', 'grades'), null, 'custom');
                       $mform->addElement('radio', 'scope', get_string('importstandard', 'grades'), null, 'global');
                       $mform->setDefault('scope', 'custom');
          +        } else {
          +               $mform->addElement('hidden', 'scope', 'custom');
                   }
          
                   $mform->addElement('filepicker', 'userfile', get_string('importoutcomes', 'grades'));
          
          
          Show
          bunwich added a comment - Hi Everyone, Two possible choices to fix this issue, I'll leave it up to the maintainer to pick the best. On the outcomes import page. Admins can choose custom scope or global scope. Teachers do not have a choice, and should always be uploading outcomes to a course. This means that by default the scope should always be 'custom'. Option 1: change Line 33 ./grade/edit/outcome/import.php $scope = optional_param('scope', 'global', PARAM_ALPHA); to $scope = optional_param('scope', 'custom', PARAM_ALPHA); Option 2: Change the form creation so that scope is always passed in the form. Right now scope is only passed when a user has system wide capabilities. If they only have course capabilities for importing outcomes, no scope is passed hence then confusion. diff --git a/grade/edit/outcome/import_outcomes_form.php b/grade/edit/outcome/import_outcomes_form.php index 4a263c8..978550e 100644 --- a/grade/edit/outcome/import_outcomes_form.php +++ b/grade/edit/outcome/import_outcomes_form.php @@ -45,6 +45,8 @@ class import_outcomes_form extends moodleform { $mform->addElement('radio', 'scope', get_string('importcustom', 'grades'), null, 'custom'); $mform->addElement('radio', 'scope', get_string('importstandard', 'grades'), null, 'global'); $mform->setDefault('scope', 'custom'); + } else { + $mform->addElement('hidden', 'scope', 'custom'); } $mform->addElement('filepicker', 'userfile', get_string('importoutcomes', 'grades'));
          Hide
          Lesli Smith added a comment -

          Thanks! I'm not sure which one the maintainer of my site picked, but it is now working for my teachers.

          Show
          Lesli Smith added a comment - Thanks! I'm not sure which one the maintainer of my site picked, but it is now working for my teachers.
          Hide
          Jean-Philippe Gaudreau added a comment -

          Hi guys,

          I'll take it from here and go with "Option 1" since I think it's the cleanest way to fix the bug.

          Thx for patch!

          Show
          Jean-Philippe Gaudreau added a comment - Hi guys, I'll take it from here and go with "Option 1" since I think it's the cleanest way to fix the bug. Thx for patch!
          Hide
          Andrew Davis added a comment -

          I've been able to replicate this in the latest version so it's still an issue. The patch looks great. I've filled out the testing instructions a bit. Putting this up for integration review.

          Show
          Andrew Davis added a comment - I've been able to replicate this in the latest version so it's still an issue. The patch looks great. I've filled out the testing instructions a bit. Putting this up for integration review.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week.

          TIA and ciao

          Show
          Eloy Lafuente (stronk7) added a comment - The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week. TIA and ciao
          Hide
          Jean-Philippe Gaudreau added a comment -

          Branches rebased!

          Thx

          Show
          Jean-Philippe Gaudreau added a comment - Branches rebased! Thx
          Hide
          Sam Hemelryk added a comment -

          Thanks everyone, this has been integrated now.

          Show
          Sam Hemelryk added a comment - Thanks everyone, this has been integrated now.
          Hide
          Jason Fowler added a comment -

          All good Jean-Philippe, thanks.

          Show
          Jason Fowler added a comment - All good Jean-Philippe, thanks.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          This is valid for unlimited entries to the, soon to be unveiled, Moodle Codebase Gardens. It includes free access to all facilities.

          Personal and non-transferable to all assignees, reviewers and testers in this issue. Valid until switching to Blackboard (100000€ penalization will be applied).

          Thanks, closing as fixed!

          Show
          Eloy Lafuente (stronk7) added a comment - This is valid for unlimited entries to the, soon to be unveiled, Moodle Codebase Gardens. It includes free access to all facilities. Personal and non-transferable to all assignees, reviewers and testers in this issue. Valid until switching to Blackboard (100000€ penalization will be applied). Thanks, closing as fixed!

            People

            • Votes:
              6 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: