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

        Issue Links

          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 Mudrák 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 Mudrák 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 Mudrák 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 Mudrák 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 Mudrák added a comment -

          Thanks Apu, looks good.

          Show
          mudrd8mz David Mudrák added a comment - Thanks Apu, looks good.
          Hide
          mudrd8mz David Mudrák added a comment -

          Merged into the pre-integration branch.

          Show
          mudrd8mz David Mudrák 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