Details

    • Type: Sub-task Sub-task
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.0
    • Fix Version/s: 2.0
    • Component/s: Backup
    • Labels:
      None
    • Affected Branches:
      MOODLE_20_STABLE
    • Fixed Branches:
      MOODLE_20_STABLE
    • Rank:
      32791

      Description

      We should implement all these:

      assignment: already done with subplugin support.
      chat: already done
      choice: already done
      data: already done not using subplugin support. Also see MDL-22558
      feedback: already done
      folder: already done
      forum: already done
      glossary: already done
      hotpot: requires work on module - halted
      imscp: already done
      label
      lesson: already done
      page: already done
      quiz: already done
      resource (file): already done
      scorm: already done
      survey: already done
      url (andrew): already done
      wiki (ludo):already done
      workshop (david): done including subplugin support

      Legend:

      implemented
      reserved / in progress
      todo
      cannot be done yet - requires backup stuff
      cannot be done yet - requires bug fixing

      1. 20100507_urlbackup.patch
        7 kB
        Andrew Davis
      2. 20100511_urlbackup.patch
        6 kB
        Andrew Davis
      3. chat_backup.v1.patch
        8 kB
        Dongsheng Cai
      4. chat_backup.v2.patch
        7 kB
        Dongsheng Cai
      5. lesson.20100504.MDL-22151.patch
        12 kB
        Sam Hemelryk
      6. lesson.20100505.MDL-22151.patch
        11 kB
        Sam Hemelryk

        Issue Links

          Activity

          Hide
          Sam Hemelryk added a comment -

          Hi Eloy,

          I've just attached a patch to implement backup for the lesson module could you please check it out and let me know if I've missed anything.

          Cheers
          Sam

          Show
          Sam Hemelryk added a comment - Hi Eloy, I've just attached a patch to implement backup for the lesson module could you please check it out and let me know if I've missed anything. Cheers Sam
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Hi Sam, some comments about the lesson backup:

          1) First of all, the encode_content_links() function. I must confess I never had seen that. Do we really need that complexity. All the rest of modules look really simpler. Do we need to have encoded versions of links like "edit one page" or so? I cannot imagine where one teacher could be interested into using that URL. In any case, if you consider it works and have the restore code under control, no problem here but one observation:

          As far as that static method is executed for every content being included in backup. I'd suggest to cache (static vars) both $pattern and $replacement mainly to avoid them being calculated zillions of times.

          2) About the structure, I think it's well defined, both the elements (always using the intermediate "plural" as extra level) and their parent-child relationship. One little detail is that I use to avoid duplicates in names like, for example, one final element named "answer" under the nested element "answer". No sure if it could be renamed, for example, to "answer_text" if it's one text or so. If you need to change the name of one element from its DB name to an alternative one you can use the $element->set_source_alias('dbname', 'xmlname') method.

          3) About the sources. I think you are "using too many condiitons". For example, the $attempt source. There, you are adding conditions to "grand-grand-parent" $page->id and with "grand-grand-grand-parent" $lesson->id. And that's unnecessary completely! If one $attempt only belongs to only one $answer, it's 100% enough to use only the first condition (PARENT_ID) as far and that's the valid FK to fetch all the attempts for the given answer. The extra conditions won't hurt, but won't add anything from a relational pov. Note that this os only true if the condition "belongs to only one parent" is true. In the model you can find elements that need more than the PARENT_ID condition, but as far as Moodle is so-so id-oriented, I think 99% of sources can be expressed in that way (simple condition).

          Also note, as a side effect of this, that, when the condition "belongs to only one parent" is true, there is no need to include those FK fields at all in the child element, so the "answerid" in attempt isn't necessary at all, for example, that should give you a hint that only one condition is necessary. It seems that you have followed that rule ok and your structure is clean of child FK fields.

          4) About ID annotations, I've seen a bunch of them related to users, cool. One quick question is... if you've declared the "answers" table as being part of the "userinfo" being exluded... where is the corresponding "user" annotation in that table? Seems that something is wrong as far as each "userinfo" table should be providing some "user annotation". Note I haven't verified it, jut surprised me. Also about annotations... I guess you've looked for all them but only have found "user" ones, correct? No scales/outcomes/groups/groupings... correct?

          5) About file annotations... I really don't know if those are all the ones allowed by the lesson activity. In theory, any field able to be used by the html-editor uses to be a candidate to have its own file area. Only those two are the ones along all the tables (usually text fields) ? For example answers and response cannot have their own images and so on?

          Apart of that, I really think you have missed one file_area, a pretty obvious one (common in all the modules). I won't give you more clues... lol.

          It's looking great! sure in next iteration it's 100% perfect, thanks!

          Ciao

          Show
          Eloy Lafuente (stronk7) added a comment - Hi Sam, some comments about the lesson backup: 1) First of all, the encode_content_links() function. I must confess I never had seen that. Do we really need that complexity. All the rest of modules look really simpler. Do we need to have encoded versions of links like "edit one page" or so? I cannot imagine where one teacher could be interested into using that URL. In any case, if you consider it works and have the restore code under control, no problem here but one observation: As far as that static method is executed for every content being included in backup. I'd suggest to cache (static vars) both $pattern and $replacement mainly to avoid them being calculated zillions of times. 2) About the structure, I think it's well defined, both the elements (always using the intermediate "plural" as extra level) and their parent-child relationship. One little detail is that I use to avoid duplicates in names like, for example, one final element named "answer" under the nested element "answer". No sure if it could be renamed, for example, to "answer_text" if it's one text or so. If you need to change the name of one element from its DB name to an alternative one you can use the $element->set_source_alias('dbname', 'xmlname') method. 3) About the sources. I think you are "using too many condiitons". For example, the $attempt source. There, you are adding conditions to "grand-grand-parent" $page->id and with "grand-grand-grand-parent" $lesson->id. And that's unnecessary completely! If one $attempt only belongs to only one $answer, it's 100% enough to use only the first condition (PARENT_ID) as far and that's the valid FK to fetch all the attempts for the given answer. The extra conditions won't hurt, but won't add anything from a relational pov. Note that this os only true if the condition "belongs to only one parent" is true. In the model you can find elements that need more than the PARENT_ID condition, but as far as Moodle is so-so id-oriented, I think 99% of sources can be expressed in that way (simple condition). Also note, as a side effect of this, that, when the condition "belongs to only one parent" is true, there is no need to include those FK fields at all in the child element, so the "answerid" in attempt isn't necessary at all, for example, that should give you a hint that only one condition is necessary. It seems that you have followed that rule ok and your structure is clean of child FK fields. 4) About ID annotations, I've seen a bunch of them related to users, cool. One quick question is... if you've declared the "answers" table as being part of the "userinfo" being exluded... where is the corresponding "user" annotation in that table? Seems that something is wrong as far as each "userinfo" table should be providing some "user annotation". Note I haven't verified it, jut surprised me. Also about annotations... I guess you've looked for all them but only have found "user" ones, correct? No scales/outcomes/groups/groupings... correct? 5) About file annotations... I really don't know if those are all the ones allowed by the lesson activity. In theory, any field able to be used by the html-editor uses to be a candidate to have its own file area. Only those two are the ones along all the tables (usually text fields) ? For example answers and response cannot have their own images and so on? Apart of that, I really think you have missed one file_area, a pretty obvious one (common in all the modules). I won't give you more clues... lol. It's looking great! sure in next iteration it's 100% perfect, thanks! Ciao
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Hi Ludo,

          are you going to work in the wiki backup? If so, I reserve it for you, would be great to have it ready in < 1 week (I really think it's a matter of 2-3 hours). I can do it but I'd prefer other developers to use the new backup php api in order to get some feedback about it. I'll support you 100%, np if you find problems in the implementation. yes / no?

          Show
          Eloy Lafuente (stronk7) added a comment - Hi Ludo, are you going to work in the wiki backup? If so, I reserve it for you, would be great to have it ready in < 1 week (I really think it's a matter of 2-3 hours). I can do it but I'd prefer other developers to use the new backup php api in order to get some feedback about it. I'll support you 100%, np if you find problems in the implementation. yes / no?
          Hide
          Sam Hemelryk added a comment -

          Hi Eloy,

          Thanks for checking out the patch for me, I've just attached a revised patch now lesson.20100505.MDL-22151.patch could you please have a look at that for me.
          The changes I have made:

          • Revised encode_content_links it is now a simple method with fixed strings, excuse the first function I was playing around to see if I could write a method that turned a description of the page request structure into the necessary regex's but it really need end up more complex than it needed to be.
          • Got rid of the additional conditions for FK's to grand parents. The lesson module is indeed written in a relational manner despite it's database design being quirky and having the fields relating to grand parents, upon inspection of the database calls it looks like it was done to reduce the complexity of queries and will be something I will look to clean up in the future if I get a chance.
          • Moved answers out of the userinfo if, quite right it doesn't bear relationship to the user

          What I havn't done:

          • I wasn't too sure what you mean by avoiding duplicates on the answer table? I have two nested elements answers and answer. Could you please clarify this for me.
          • I've double checked the file areas used by the lesson module but I believe it is just those two? for the obvious one were you thinking of the module_intro field? if so the lesson module doesn't use one

          Cheers
          Sam

          Show
          Sam Hemelryk added a comment - Hi Eloy, Thanks for checking out the patch for me, I've just attached a revised patch now lesson.20100505. MDL-22151 .patch could you please have a look at that for me. The changes I have made: Revised encode_content_links it is now a simple method with fixed strings, excuse the first function I was playing around to see if I could write a method that turned a description of the page request structure into the necessary regex's but it really need end up more complex than it needed to be. Got rid of the additional conditions for FK's to grand parents. The lesson module is indeed written in a relational manner despite it's database design being quirky and having the fields relating to grand parents, upon inspection of the database calls it looks like it was done to reduce the complexity of queries and will be something I will look to clean up in the future if I get a chance. Moved answers out of the userinfo if, quite right it doesn't bear relationship to the user What I havn't done: I wasn't too sure what you mean by avoiding duplicates on the answer table? I have two nested elements answers and answer. Could you please clarify this for me. I've double checked the file areas used by the lesson module but I believe it is just those two? for the obvious one were you thinking of the module_intro field? if so the lesson module doesn't use one Cheers Sam
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Hi Sam,

          0) thanks 4 the new patch will look to it asap

          1) I just say that within answer element, you've one also-named answer "field", and just suggested it could be better (from a XML POV) to modify that inner answer tag by something more meaningful and different from the outer tag. Just a side comment (and one reference to the glossary to see 2 examples of that (alias->alias_text and rating->value).

          2) Aha, if you have reviewed all the fareas in use, that's enough, I just detected that there were some more text DB fields in the implementation and automatically they turned into candidates in mind. About the missing one, yeah, I was thinking in the hypothetical lesson_intro farea. Puke to know we have exceptions. NP, anyway.

          Thanks a lot... ciao

          Show
          Eloy Lafuente (stronk7) added a comment - Hi Sam, 0) thanks 4 the new patch will look to it asap 1) I just say that within answer element, you've one also-named answer "field", and just suggested it could be better (from a XML POV) to modify that inner answer tag by something more meaningful and different from the outer tag. Just a side comment (and one reference to the glossary to see 2 examples of that (alias->alias_text and rating->value). 2) Aha, if you have reviewed all the fareas in use, that's enough, I just detected that there were some more text DB fields in the implementation and automatically they turned into candidates in mind. About the missing one, yeah, I was thinking in the hypothetical lesson_intro farea. Puke to know we have exceptions. NP, anyway. Thanks a lot... ciao
          Hide
          Sam Hemelryk added a comment -

          Awesome thanks Eloy

          1) I understand what you are getting at with number 1 now, I'll rename that to answer_text as you suggested that makes good sense.

          2) I know.... Lesson module needs a fair amount of TLC at present!

          Cheers
          Sam

          Show
          Sam Hemelryk added a comment - Awesome thanks Eloy 1) I understand what you are getting at with number 1 now, I'll rename that to answer_text as you suggested that makes good sense. 2) I know.... Lesson module needs a fair amount of TLC at present! Cheers Sam
          Hide
          Eloy Lafuente (stronk7) added a comment - - edited

          Hi Sam,

          just quick reviewed your 20100505 patch. Everything is looking ok, but:

          1) http\://sam\.moodle\.local/m20dev3 hacoded? LOL!
          2) just a reminder of answer_text pending to be modified.
          3) side comment: are you allergic to comments? RE-LOL!

          99.9% perfect, I'd say. Thanks!

          Edited: Uhm also... when viewing patterns like this:

          $pattern = ... ... mod/lesson/report\.php\?id=([0-9]+)(&pageid=([0-9]+))?#';
          

          that are trying to encode 2 or more parameters in the request... just guessing if we should be handling also '&amp;pageid=' situations, as far as I'm sure we can find URLs written in that (XHTML correct) way. Perhaps something to add as optional in the pattern above?

          Show
          Eloy Lafuente (stronk7) added a comment - - edited Hi Sam, just quick reviewed your 20100505 patch. Everything is looking ok, but: 1) http\://sam\.moodle\.local/m20dev3 hacoded? LOL! 2) just a reminder of answer_text pending to be modified. 3) side comment: are you allergic to comments? RE-LOL! 99.9% perfect, I'd say. Thanks! Edited: Uhm also... when viewing patterns like this: $pattern = ... ... mod/lesson/report\.php\?id=([0-9]+)(&pageid=([0-9]+))?#'; that are trying to encode 2 or more parameters in the request... just guessing if we should be handling also '&amp;pageid=' situations, as far as I'm sure we can find URLs written in that (XHTML correct) way. Perhaps something to add as optional in the pattern above?
          Hide
          Ludo ( Marc Alier) added a comment -

          Hi Eloy,
          yes, we are going to work in the backup. We will put the backup thing on the top of the list. We will ask for assitance.
          BTW can you give access to head for my user? (granludo), rigth now only pigui has got it

          Show
          Ludo ( Marc Alier) added a comment - Hi Eloy, yes, we are going to work in the backup. We will put the backup thing on the top of the list. We will ask for assitance. BTW can you give access to head for my user? (granludo), rigth now only pigui has got it
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Perms granted Ludo.

          About backup there there is one tutorial:

          http://docs.moodle.org/en/Development:Backup_2.0_for_developers

          And all the rest of already implemented modules are good working examples too.

          Also, as commented, feel free to share any question... ciao

          Show
          Eloy Lafuente (stronk7) added a comment - Perms granted Ludo. About backup there there is one tutorial: http://docs.moodle.org/en/Development:Backup_2.0_for_developers And all the rest of already implemented modules are good working examples too. Also, as commented, feel free to share any question... ciao
          Hide
          Sam Hemelryk added a comment -

          Haha thanks Eloy, was testing you there.... you passed, preventing my takeover attempt of the world one lesson backup at a time.

          I've fixed up the hard-coded regular expressions (oops), changed the answer final element to answer_text and called set_source_alias on the answer element, and have commented everything!
          I assume at this point seeing as PR1 has been rolled it was OK to commit and have done so however let me know if you spot anything else.

          Cheers
          Sam

          Show
          Sam Hemelryk added a comment - Haha thanks Eloy, was testing you there.... you passed, preventing my takeover attempt of the world one lesson backup at a time. I've fixed up the hard-coded regular expressions (oops), changed the answer final element to answer_text and called set_source_alias on the answer element, and have commented everything ! I assume at this point seeing as PR1 has been rolled it was OK to commit and have done so however let me know if you spot anything else. Cheers Sam
          Hide
          Dongsheng Cai added a comment -

          Eloy, can you please review chat backup.

          thanks.

          Show
          Dongsheng Cai added a comment - Eloy, can you please review chat backup. thanks.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Perfect, Sam!

          Looking chat right now Dongsheng!

          Show
          Eloy Lafuente (stronk7) added a comment - Perfect, Sam! Looking chat right now Dongsheng!
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Hi Dongsheng, some comments about your chat-backup v1:

          1) If the module is not going to have any setting... perhaps it's better to take out the backup_chat_settingslib.php file completely (I know it's in the tutorial, my fault, but better to keep it out).

          2) Viewing your structure... what happens with the "chat_messages_current" information? Is it lost? Or, when inserting, are messages inserted into both tables? About the "chat_users" table, I guess we don't need it as far it's only used for "current" users (somehow a cache) correct?

          3) When defining the source of the $mesage element, you've opted by specifying the complete SQL instead of using the shorter $message->set_source_table() alternative. No problem with that, just want to be sure you know the shorter is the recommended one when we don't need one SQL.

          4) Tag names collision: In the resulting XML, there will be one "message" tag containing one "message" tag. That doesn't look "perfect" for one XML file. Plz take a look to "backuplib.php" (old 1.9 backup) to see how that inner "message" tag is renamed and use the set_source_alias() method to define the mapping between DB field and XML tag. For some uses of that, you can take a look both to glossary and lesson where some changes are being applied.

          5) Files: Your comment: "chat don't use files, so no files need to be processed here" seems incorrect. Are you sure? 100% ? I think I've been able to add some files to my test chat here. Do you imagine where?

          That's all (basically minor details). Great work! Ciao

          Show
          Eloy Lafuente (stronk7) added a comment - Hi Dongsheng, some comments about your chat-backup v1: 1) If the module is not going to have any setting... perhaps it's better to take out the backup_chat_settingslib.php file completely (I know it's in the tutorial, my fault, but better to keep it out). 2) Viewing your structure... what happens with the "chat_messages_current" information? Is it lost? Or, when inserting, are messages inserted into both tables? About the "chat_users" table, I guess we don't need it as far it's only used for "current" users (somehow a cache) correct? 3) When defining the source of the $mesage element, you've opted by specifying the complete SQL instead of using the shorter $message->set_source_table() alternative. No problem with that, just want to be sure you know the shorter is the recommended one when we don't need one SQL. 4) Tag names collision: In the resulting XML, there will be one "message" tag containing one "message" tag. That doesn't look "perfect" for one XML file. Plz take a look to "backuplib.php" (old 1.9 backup) to see how that inner "message" tag is renamed and use the set_source_alias() method to define the mapping between DB field and XML tag. For some uses of that, you can take a look both to glossary and lesson where some changes are being applied. 5) Files: Your comment: "chat don't use files, so no files need to be processed here" seems incorrect. Are you sure? 100% ? I think I've been able to add some files to my test chat here. Do you imagine where? That's all (basically minor details). Great work! Ciao
          Hide
          Dongsheng Cai added a comment -


          2) Viewing your structure... what happens with the "chat_messages_current" information? Is it lost? Or, when inserting, are messages inserted into both tables? About the "chat_users" table, I guess we don't need it as far it's only used for "current" users (somehow a cache) correct?

          chat_message table have got all the chat logs, so I think it doesn't make sense to copy the chat log again

          When defining the source of the $mesage element, you've opted by specifying the complete SQL instead of using the shorter $message->set_source_table() alternative. No problem with that, just want to be sure you know the shorter is the recommended one when we don't need one SQL.

          ok

          4) Tag names collision: In the resulting XML, there will be one "message" tag containing one "message" tag. That doesn't look "perfect" for one XML file. Plz take a look to "backuplib.php" (old 1.9 backup) to see how that inner "message" tag is renamed and use the set_source_alias() method to define the mapping between DB field and XML tag. For some uses of that, you can take a look both to glossary and lesson where some changes are being applied.

          got it, will change this

          5) Files: Your comment: "chat don't use files, so no files need to be processed here" seems incorrect. Are you sure? 100% ? I think I've been able to add some files to my test chat here. Do you imagine where?

          I completely forgot chat_intro area, is this the one you are talking about?

          Show
          Dongsheng Cai added a comment - 2) Viewing your structure... what happens with the "chat_messages_current" information? Is it lost? Or, when inserting, are messages inserted into both tables? About the "chat_users" table, I guess we don't need it as far it's only used for "current" users (somehow a cache) correct? chat_message table have got all the chat logs, so I think it doesn't make sense to copy the chat log again When defining the source of the $mesage element, you've opted by specifying the complete SQL instead of using the shorter $message->set_source_table() alternative. No problem with that, just want to be sure you know the shorter is the recommended one when we don't need one SQL. ok 4) Tag names collision: In the resulting XML, there will be one "message" tag containing one "message" tag. That doesn't look "perfect" for one XML file. Plz take a look to "backuplib.php" (old 1.9 backup) to see how that inner "message" tag is renamed and use the set_source_alias() method to define the mapping between DB field and XML tag. For some uses of that, you can take a look both to glossary and lesson where some changes are being applied. got it, will change this 5) Files: Your comment: "chat don't use files, so no files need to be processed here" seems incorrect. Are you sure? 100% ? I think I've been able to add some files to my test chat here. Do you imagine where? I completely forgot chat_intro area, is this the one you are talking about?
          Hide
          Dongsheng Cai added a comment -

          Or, when inserting, are messages inserted into both tables?

          yes, and chat_messages_current will be clear by cron, chat_messages has complete records.


          About the "chat_users" table, I guess we don't need it as far it's only used for "current" users (somehow a cache) correct?

          That's currect, it stores users for each session.

          Show
          Dongsheng Cai added a comment - Or, when inserting, are messages inserted into both tables? yes, and chat_messages_current will be clear by cron, chat_messages has complete records. About the "chat_users" table, I guess we don't need it as far it's only used for "current" users (somehow a cache) correct? That's currect, it stores users for each session.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Cool, Dongsheng. Awaiting for your next version. Thanks!

          Show
          Eloy Lafuente (stronk7) added a comment - Cool, Dongsheng. Awaiting for your next version. Thanks!
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Wow, that's light-speed Dong!

          Looks perfect! +1 to commit if you've tested it and results are ok.

          Thanks and ciao

          Show
          Eloy Lafuente (stronk7) added a comment - Wow, that's light-speed Dong! Looks perfect! +1 to commit if you've tested it and results are ok. Thanks and ciao
          Hide
          Andrew Davis added a comment -

          Patch to back up the url module is attached for review.

          Show
          Andrew Davis added a comment - Patch to back up the url module is attached for review.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Hi Andrew, thanks! Some comments:

          • As far as we aren't allowing custom settings by activity, I think it's better to keep the backup_url_settingslib.php file out for now.
          • You are missing the encode_content_links() function. At least it must support two encodings (see other modules <> lesson/forum:
            • link to list of urls
            • link to one url
          • It's true the url module is quite simple (haven't id annotations, userinfo...) If so, it's ok to comment that, but, plz don't keep code from other modules commented (answers, choice...). Just say: // url has not id annotation or so instead.
          • like Dong above (chat module), you are missing one file area, so you need to annotate it. I won't say which one

          Thanks and ciao

          Show
          Eloy Lafuente (stronk7) added a comment - Hi Andrew, thanks! Some comments: As far as we aren't allowing custom settings by activity, I think it's better to keep the backup_url_settingslib.php file out for now. You are missing the encode_content_links() function. At least it must support two encodings (see other modules <> lesson/forum: link to list of urls link to one url It's true the url module is quite simple (haven't id annotations, userinfo...) If so, it's ok to comment that, but, plz don't keep code from other modules commented (answers, choice...). Just say: // url has not id annotation or so instead. like Dong above (chat module), you are missing one file area, so you need to annotate it. I won't say which one Thanks and ciao
          Hide
          Andrew Davis added a comment -

          URL backup patch attempt 2 attached

          Show
          Andrew Davis added a comment - URL backup patch attempt 2 attached
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Hi Andrew, perfect!

          Only to really-small comments:

          • There is one {@link YOUR_URL_GOES_HERE}

            in the PHPdocs.

          • Delete the commented require_once(). We don't need it there.

          Feel free to commit once changed. Thanks a lot!

          Show
          Eloy Lafuente (stronk7) added a comment - Hi Andrew, perfect! Only to really-small comments: There is one {@link YOUR_URL_GOES_HERE} in the PHPdocs. Delete the commented require_once(). We don't need it there. Feel free to commit once changed. Thanks a lot!
          Hide
          Andrew Davis added a comment -

          Fixed those two things and committed

          Show
          Andrew Davis added a comment - Fixed those two things and committed
          Hide
          David Mudrak added a comment -

          Just started to work on Workshop core backup/moodle2 support.

          Show
          David Mudrak added a comment - Just started to work on Workshop core backup/moodle2 support.
          Hide
          Ludo ( Marc Alier) added a comment -

          done!

          Show
          Ludo ( Marc Alier) added a comment - done!
          Hide
          David Mudrak added a comment -

          Workshop and its subplugins now support backup/moodle2

          Show
          David Mudrak added a comment - Workshop and its subplugins now support backup/moodle2
          Hide
          David Mudrak added a comment -

          See http://docs.moodle.org/en/Development:Workshop for XML schema of Workshop backup

          Show
          David Mudrak added a comment - See http://docs.moodle.org/en/Development:Workshop for XML schema of Workshop backup
          Hide
          Martin Dougiamas added a comment -

          What's the story currently about subplugin support?

          Show
          Martin Dougiamas added a comment - What's the story currently about subplugin support?
          Hide
          Martin Dougiamas added a comment -

          Assignment should be working.

          Show
          Martin Dougiamas added a comment - Assignment should be working.
          Hide
          Martin Dougiamas added a comment -

          /mod/data looks like the major missing bit here.

          Show
          Martin Dougiamas added a comment - /mod/data looks like the major missing bit here.
          Hide
          Eloy Lafuente (stronk7) added a comment -

          I've data module backup working here, but until now I only've seen support for the "intro" and "content" file areas. Was waiting for MDL-22558 to see if templates and other parts of the module are needing both new file areas and new "formatxxxxx" fields.

          Ciao

          Show
          Eloy Lafuente (stronk7) added a comment - I've data module backup working here, but until now I only've seen support for the "intro" and "content" file areas. Was waiting for MDL-22558 to see if templates and other parts of the module are needing both new file areas and new "formatxxxxx" fields. Ciao
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Just committed the data module backup & restore a few minutes ago. It isn't using subplugins support as far as, for now, no field is using custom DB structures.

          Also, very important, note that it's handling only the current existing file areas (data->intro and content->content). If new file areas arrive due to MDL-22558, they will have to be added to backup & restore.

          Ciao

          PS: I'm 95% on quizzes now (with all their categories/question labyrinth).

          Show
          Eloy Lafuente (stronk7) added a comment - Just committed the data module backup & restore a few minutes ago. It isn't using subplugins support as far as, for now, no field is using custom DB structures. Also, very important, note that it's handling only the current existing file areas (data->intro and content->content). If new file areas arrive due to MDL-22558 , they will have to be added to backup & restore. Ciao PS: I'm 95% on quizzes now (with all their categories/question labyrinth).
          Hide
          Martin Dougiamas added a comment -

          Closing this now! There is another issue open regarding questions and categories. MDL-22138

          Show
          Martin Dougiamas added a comment - Closing this now! There is another issue open regarding questions and categories. MDL-22138
          Hide
          Eloy Lafuente (stronk7) added a comment -

          Finally quiz landed to HEAD!

          Show
          Eloy Lafuente (stronk7) added a comment - Finally quiz landed to HEAD!
          Hide
          Ashley Holman added a comment -

          Hi Eloy,

          Here is a backup file I made with 2.0 RC1 (Build: 20100921)

          There is a quiz in Section 4 named "Quizzle" which doesn't restore.

          When you run through the restore process, it shows up on the Summary page, but then when you get to the Schema section it's not there. The resulting course gets restored with everything except the quiz and questions.

          Ashley

          Show
          Ashley Holman added a comment - Hi Eloy, Here is a backup file I made with 2.0 RC1 (Build: 20100921) There is a quiz in Section 4 named "Quizzle" which doesn't restore. When you run through the restore process, it shows up on the Summary page, but then when you get to the Schema section it's not there. The resulting course gets restored with everything except the quiz and questions. Ashley
          Hide
          Andrew Davis added a comment -

          Hi Ashley. I think the issue you're seeing might be MDL-22138 its in progress now. Eloy will be online in a few hours and he will know more than I do. Assuming that is the issue you're seeing you'd be better off commenting on that issue as Eloy is working on it now.

          Show
          Andrew Davis added a comment - Hi Ashley. I think the issue you're seeing might be MDL-22138 its in progress now. Eloy will be online in a few hours and he will know more than I do. Assuming that is the issue you're seeing you'd be better off commenting on that issue as Eloy is working on it now.

            People

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

              Dates

              • Created:
                Updated:
                Resolved: