Moodle
  1. Moodle
  2. MDL-36828

Unable to delete scorm activity from course

    Details

    • Testing Instructions:
      Hide

      */ Create a scorm activity
      */ To emulate a broken activity, delete the records in the mdl_scorm_scoes table related to the new activity.
      */ Attempt to delete the activity from the course

      Show
      */ Create a scorm activity */ To emulate a broken activity, delete the records in the mdl_scorm_scoes table related to the new activity. */ Attempt to delete the activity from the course
    • Affected Branches:
      MOODLE_23_STABLE
    • Fixed Branches:
      MOODLE_23_STABLE, MOODLE_24_STABLE
    • Pull from Repository:
    • Pull Master Branch:
    • Rank:
      46350

      Description

      The root cause is likely related to scorm packages that aren't 100% compliant with the scorm definition, but it still causes an issue that needs fixing in moodle.

      So when a scorm activity is created, and for whatever reason, there are no 'elements' in it, causing the mdl_scorm_scoes table to not get any data in it, trying to then delete the course module (afterall, its buggy) results in moodle reporting that it was unable to delete the course module. The module is then stuck in the course and selecting it results in an error as it was able to delete some of the data before returning its error.

      In the scorm_delete_instance method, it returns false if any of the various delete_records calls fails. At one point it does a get_records_select on the scorm_scoes table in order to be able to delete all its child data, now if there are no scorm_scoes records in the first place, it reports that as a fault and returns false, causing the deletion process to not remove the course_module record.

      If there are no scorm_scoes records, then realistically, the data was removed, so the end result of the delete process is the same as a successful deletion.

      My fix prevents the function returning false if it didn't find any scorm_scoes records.

        Activity

        Hide
        Dan Marsden added a comment -

        makes sense - pushing up for integration - thanks.

        Show
        Dan Marsden added a comment - makes sense - pushing up for integration - thanks.
        Hide
        Dan Poltawski added a comment -

        Thanks Dan/Adam, integrated to 23, 24 and master.

        Show
        Dan Poltawski added a comment - Thanks Dan/Adam, integrated to 23, 24 and master.
        Hide
        Ankit Agarwal added a comment -

        works as described.
        passing.
        Thanks

        Show
        Ankit Agarwal added a comment - works as described. passing. Thanks
        Hide
        Eloy Lafuente (stronk7) added a comment -

        Many thanks for your effort, the whole Moodle Community will be enjoying your great solutions starting now!

        Closing, ciao

        Show
        Eloy Lafuente (stronk7) added a comment - Many thanks for your effort, the whole Moodle Community will be enjoying your great solutions starting now! Closing, ciao

          People

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

            Dates

            • Created:
              Updated:
              Resolved: