Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-34711

Single discussion forums can not be added

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.4
    • Fix Version/s: 2.4
    • Component/s: Forum
    • Labels:
    • Testing Instructions:
      Hide
      1. As an admin or teacher go to a course
      2. As an admin or teacher create a forum instance with "Forum type" set as "A single simple discussion"
      3. You SHOULD be able to create the forum instance without any exceptions thrown
      Show
      As an admin or teacher go to a course As an admin or teacher create a forum instance with "Forum type" set as "A single simple discussion" You SHOULD be able to create the forum instance without any exceptions thrown
    • Affected Branches:
      MOODLE_24_STABLE
    • Fixed Branches:
      MOODLE_24_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      MDL-34711_master

      Description

      When trying to add a forum instance with "single discussion" as forum type moodle throws a "Can not find data record in database table course_modules" exception. It seems a regression caused by MDL-32229

      The course module is not set until MODULENAME_add_instance() finishes. forum_trigger_content_uploaded_event() should only be called if there is a course module id

      Debug info: SELECT id,course FROM {course_modules} WHERE id IS NULL
      [array (
      )]
      Error code: invalidrecord
      Stack trace:
      line 1321 of /lib/dml/moodle_database.php: dml_missing_record_exception thrown
      line 1297 of /lib/dml/moodle_database.php: call to moodle_database->get_record_select()
      line 6783 of /lib/accesslib.php: call to moodle_database->get_record()
      line 4572 of /mod/forum/lib.php: call to context_module::instance()
      line 4440 of /mod/forum/lib.php: call to forum_trigger_content_uploaded_event()
      line 96 of /mod/forum/lib.php: call to forum_add_discussion()
      line 447 of /course/modedit.php: call to forum_add_instance()
      Output buffer: Notice: Trying to get property of non-object in /home/davidm/Desktop/moodlecode/master/mod/forum/lib.php on line 4572 Call Stack: 0.0011 1025336 1. {main}() /home/davidm/Desktop/moodlecode/master/course/modedit.php:0 0.3279 54118680 2. forum_add_instance() /home/davidm/Desktop/moodlecode/master/course/modedit.php:447 0.5536 54207760 3. forum_add_discussion() /home/davidm/Desktop/moodlecode/master/mod/forum/lib.php:96 0.7051 54313000 4. forum_trigger_content_uploaded_event() /home/davidm/Desktop/moodlecode/master/mod/forum/lib.php:4440

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            dmonllao David Monllaó added a comment -

            Adding pull branch, only master

            Show
            dmonllao David Monllaó added a comment - Adding pull branch, only master
            Hide
            poltawski Dan Poltawski added a comment -

            Hi David,

            Your fix makes sense, but adding Dan Marsden here, because it makes me wonder if we added the plagarism check at the wrong place, or will this prevent the initial forum post from being checked when it should be?

            Show
            poltawski Dan Poltawski added a comment - Hi David, Your fix makes sense, but adding Dan Marsden here, because it makes me wonder if we added the plagarism check at the wrong place, or will this prevent the initial forum post from being checked when it should be?
            Hide
            danmarsden Dan Marsden added a comment -

            Thanks Dan/David - yeah that suggests we've got it in the wrong place... not sure how I missed that one... I'll take a look

            Show
            danmarsden Dan Marsden added a comment - Thanks Dan/David - yeah that suggests we've got it in the wrong place... not sure how I missed that one... I'll take a look
            Hide
            danmarsden Dan Marsden added a comment -

            ah - I see now, although I do see a TODO in that function:

            TODO: Fix the calling code so that there always is a $cm when this function is called.
            (and various other !empty($cm->id) checks in that same function.

            creation of a new forum isn't an event that should be handled by a plagiarism event so my +1 for Davids commit - thanks David.

            Show
            danmarsden Dan Marsden added a comment - ah - I see now, although I do see a TODO in that function: TODO: Fix the calling code so that there always is a $cm when this function is called. (and various other !empty($cm->id) checks in that same function. creation of a new forum isn't an event that should be handled by a plagiarism event so my +1 for Davids commit - thanks David.
            Hide
            stronk7 Eloy Lafuente (stronk7) added a comment -

            Integrated, thanks!

            Show
            stronk7 Eloy Lafuente (stronk7) added a comment - Integrated, thanks!
            Hide
            abgreeve Adrian Greeve added a comment -

            Tested in master.
            No problems found.
            Test passed.

            Show
            abgreeve Adrian Greeve added a comment - Tested in master. No problems found. Test passed.
            Hide
            stronk7 Eloy Lafuente (stronk7) added a comment -

            Fixed STOP Closed STOP Thanks STOP

            Yay, imagination! Ciao

            Show
            stronk7 Eloy Lafuente (stronk7) added a comment - Fixed STOP Closed STOP Thanks STOP Yay, imagination! Ciao

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  3/Dec/12