Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: DEV backlog
    • Fix Version/s: 2.1
    • Component/s: SCORM
    • Labels:
      None

      Gliffy Diagrams

        Activity

        Hide
        nebgor Aparup Banerjee added a comment -

        mod/scorm/db/upgrade.php references a 'grademethodfixed' flag , if on, $scorm->grademethod = $scorm->grademethod%10;
        its for 'fix bad usage of whatgrade/grading method.'

        backed up scorm modules don't carry this flag, how then do we transform a scorm 1.9 backup reliably?

        is scorm->grademethod a constant or just a number?

        Show
        nebgor Aparup Banerjee added a comment - mod/scorm/db/upgrade.php references a 'grademethodfixed' flag , if on, $scorm->grademethod = $scorm->grademethod%10; its for 'fix bad usage of whatgrade/grading method.' backed up scorm modules don't carry this flag, how then do we transform a scorm 1.9 backup reliably? is scorm->grademethod a constant or just a number?
        Hide
        danmarsden Dan Marsden added a comment -

        that whole grading method thing was a mess - it tried to store the value of 2 separate config options into one field but it didn't work reliably in the first place - I'd just pretend it was always 2 seperate options.

        from memory the whatgrade field was added in Moodle 1.9.3 so the handling will only apply to backups prior to 1.9.3 and SCORM was crap in previous versions so people using earlier versions of Moodle will find SCORM doesn't work anyway.

        hope that helps.

        Show
        danmarsden Dan Marsden added a comment - that whole grading method thing was a mess - it tried to store the value of 2 separate config options into one field but it didn't work reliably in the first place - I'd just pretend it was always 2 seperate options. from memory the whatgrade field was added in Moodle 1.9.3 so the handling will only apply to backups prior to 1.9.3 and SCORM was crap in previous versions so people using earlier versions of Moodle will find SCORM doesn't work anyway. hope that helps.
        Hide
        nebgor Aparup Banerjee added a comment -

        i'll await a api call to get the moodle_version that backup was made in, that'll help decide running the data fix

        Show
        nebgor Aparup Banerjee added a comment - i'll await a api call to get the moodle_version that backup was made in, that'll help decide running the data fix
        Hide
        nebgor Aparup Banerjee added a comment -
        Show
        nebgor Aparup Banerjee added a comment - see also: https://github.com/mudrd8mz/moodle/pull/3
        Hide
        nebgor Aparup Banerjee added a comment -

        attached scorm test backup

        Show
        nebgor Aparup Banerjee added a comment - attached scorm test backup
        Hide
        nebgor Aparup Banerjee added a comment -

        just notes on (@todo) migrating the scorm file:
        ref: https://github.com/mudrd8mz/moodle/commit/671c870b513bbb4dc0330f73af02786b2d65129d

        (14:56:10) david: In your process_scorm() method (or whatever name of your root method is) you will want something like
        $this->fileman = $this->converter->get_file_manager($contextid, 'mod_scorm');
        (14:58:20) david: then, to convert zip/pif $scorm->reference
        (14:59:57) david:
        $this->fileman->filearea = 'package';
        $this->fileman->migrate_file($scorm->reference);
        (15:01:53) david: sorry, the migrate_file() needs full path like:
        $this->get_converter->get_tempdir_path().'/'.$scorm->reference
        (15:03:16) david: Just look at the moodle1_file_manager class - it uses some public properties that you can set and then call either migrate_file() or migrate_directory() methods
        (15:04:25) david: those public properties form the artificial file record: contextid, component, filearea, itemid and userid. the initial values can be set by constructor
        (15:05:05) david: and then on </MOD> just dump the filerefs into inforef.xml

        thanks David,i should get around to this soon.
        cheers,
        Aparup

        Show
        nebgor Aparup Banerjee added a comment - just notes on (@todo) migrating the scorm file: ref: https://github.com/mudrd8mz/moodle/commit/671c870b513bbb4dc0330f73af02786b2d65129d (14:56:10) david: In your process_scorm() method (or whatever name of your root method is) you will want something like $this->fileman = $this->converter->get_file_manager($contextid, 'mod_scorm'); (14:58:20) david: then, to convert zip/pif $scorm->reference (14:59:57) david: $this->fileman->filearea = 'package'; $this->fileman->migrate_file($scorm->reference); (15:01:53) david: sorry, the migrate_file() needs full path like: $this->get_converter->get_tempdir_path().'/'.$scorm->reference (15:03:16) david: Just look at the moodle1_file_manager class - it uses some public properties that you can set and then call either migrate_file() or migrate_directory() methods (15:04:25) david: those public properties form the artificial file record: contextid, component, filearea, itemid and userid. the initial values can be set by constructor (15:05:05) david: and then on </MOD> just dump the filerefs into inforef.xml thanks David,i should get around to this soon. cheers, Aparup
        Hide
        mudrd8mz David Mudrak added a comment -

        Looking good so far. Please note I added a section http://docs.moodle.org/en/Development:Backup_1.9_conversion_for_developers#Files_migration explaining the files conversion a bit. Ping me anytime should you face some blockades. Cheers!

        Show
        mudrd8mz David Mudrak added a comment - Looking good so far. Please note I added a section http://docs.moodle.org/en/Development:Backup_1.9_conversion_for_developers#Files_migration explaining the files conversion a bit. Ping me anytime should you face some blockades. Cheers!
        Hide
        nebgor Aparup Banerjee added a comment -

        David, i've added handling the scorm file migration. please have a look (created github pull too)

        Show
        nebgor Aparup Banerjee added a comment - David, i've added handling the scorm file migration. please have a look (created github pull too)
        Hide
        mudrd8mz David Mudrak added a comment -

        Hi Apu. Looks pretty good! I've got some cosmetic comments though.

        • Please see my in-line comments on the pull request: a "workshop" is mentioned in a comment, there is one extra space and a missing blank line (purist am I right? )
        • Please move the generation of the file inforef.xml to the on_scorm_end(). See the wiki tutorial on how to get the id of the migrated file. The point is that once we start implementing user data support, the inforef.xml will contain references to users, roles, scales etc. And the data needed for that may be available not before the </MOD>.
        Show
        mudrd8mz David Mudrak added a comment - Hi Apu. Looks pretty good! I've got some cosmetic comments though. Please see my in-line comments on the pull request: a "workshop" is mentioned in a comment, there is one extra space and a missing blank line (purist am I right? ) Please move the generation of the file inforef.xml to the on_scorm_end(). See the wiki tutorial on how to get the id of the migrated file. The point is that once we start implementing user data support, the inforef.xml will contain references to users, roles, scales etc. And the data needed for that may be available not before the </MOD>.
        Hide
        nebgor Aparup Banerjee added a comment -

        Thanks David,

        • purified
        • inforef.xml generation made future friendly

        tested fine too, it should be all good now (dance)

        Show
        nebgor Aparup Banerjee added a comment - Thanks David, purified inforef.xml generation made future friendly tested fine too, it should be all good now (dance)
        Hide
        mudrd8mz David Mudrak added a comment -

        Thanks Apu, looks good.

        Show
        mudrd8mz David Mudrak added a comment - Thanks Apu, looks good.
        Hide
        mudrd8mz David Mudrak added a comment -

        Merged into the pre-integration branch.

        Show
        mudrd8mz David Mudrak added a comment - Merged into the pre-integration branch.

          People

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

            Dates

            • Created:
              Updated:
              Resolved:
              Fix Release Date:
              1/Jul/11