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

Category/Course/Group calendar subscriptions are not deleted when the Category/Course/Group is deleted

    XMLWordPrintable

Details

    • Bug
    • Status: Peer review in progress
    • Minor
    • Resolution: Unresolved
    • 3.9.11, 3.10.8, 3.11.4
    • None
    • Calendar, Course
    • MOODLE_310_STABLE, MOODLE_311_STABLE, MOODLE_39_STABLE
    • MDL-73309-311
    • MDL-73309-400
    • MDL-73309-master
    • Hide
      1. Start with an unpatched Moodle version!
      2. Create a top course category "Category 1"
      3. Create a course "Course 1" within Category 1 and enrol yourself
      4. Create a group "Group 1" within Course 1
      5. In the Course Calendar, click on "Manage subscriptions"
      6. Once each for Category 1, Course 1, Group 1, import a calendar (for example the moodle release calendar https://www.google.com/calendar/ical/moodle.com_p4c2oe7hsb77ltaro5qtihb5d4%40group.calendar.google.com/public/basic.ics)
      7. Go to Site Adminstration > Courses > Manage courses and categories
      8. Delete Category 1 and choose "Move content to another category"
      9. Delete Course 1
      10. Run UPDATE mdl_event_subscriptions SET pollinterval = 1; in the DB, so you don't have to wait.
      11. Run cron
      12. Verify that the output for \core\task\calendar_cron_task shows an error for each of the three calendar subscriptions
      13. Verify that the SQL-Query SELECT id, name, categoryid, eventtype FROM mdl_event; still return events for the deleted category.
      14. Now patch and upgrade Moodle.
      15. Run cron
      16. Verify that the output for \core\task\calendar_cron_task does not list the Calendar Subscriptions anymore.
      17. Verify that the SQL-Query SELECT id, name, categoryid, eventtype FROM mdl_event; does not return events for the deleted category.
      18. Repeat Steps 2 - 11
      19. Verify that the output for \core\task\calendar_cron_task does not list the Calendar Subscriptions.
      20. Verify that the SQL-Query SELECT id, name, categoryid, eventtype FROM mdl_event; does not return events for the deleted category.
      Show
      Start with an  unpatched Moodle version! Create a top course category "Category 1" Create a course "Course 1" within Category 1 and enrol yourself Create a group "Group 1" within Course 1 In the Course Calendar, click on "Manage subscriptions" Once each for Category 1, Course 1, Group 1, import a calendar (for example the moodle release calendar https://www.google.com/calendar/ical/moodle.com_p4c2oe7hsb77ltaro5qtihb5d4%40group.calendar.google.com/public/basic.ics ) Go to Site Adminstration > Courses > Manage courses and categories Delete Category 1 and choose "Move content to another category" Delete Course 1 Run UPDATE mdl_event_subscriptions SET pollinterval = 1; in the DB, so you don't have to wait. Run cron Verify that the output for \core\task\calendar_cron_task shows an error for each of the three calendar subscriptions Verify that the SQL-Query SELECT id, name, categoryid, eventtype FROM mdl_event; still return events for the deleted category. Now patch and upgrade Moodle. Run cron Verify that the output for \core\task\calendar_cron_task does not list the Calendar Subscriptions anymore. Verify that the SQL-Query SELECT id, name, categoryid, eventtype FROM mdl_event; does not return events for the deleted category. Repeat Steps 2 - 11 Verify that the output for \core\task\calendar_cron_task does not list the Calendar Subscriptions. Verify that the SQL-Query SELECT id, name, categoryid, eventtype FROM mdl_event; does not return events for the deleted category.

    Description

      Category events itself also remain untouched in the database, when the category is deleted and courses within are moved.

      The orphaned event subscriptions cause \core\task\calendar_cron_task to show these errors.

      Execute scheduled task: Send calendar notifications (core\task\calendar_cron_task)
      ... started 23:55:24. Current memory use 60.8MB.
      Updating calendar subscription Course Subscription in course 11
      Error updating calendar subscription: Can't find data record in database table course. (SELECT id,category FROM {course} WHERE id = ?
      [array (
        0 => '11',
      )])
      Updating calendar subscription Group Subscription in course 11
      Error updating calendar subscription: Can't find data record in database table course. (SELECT id,category FROM {course} WHERE id = ?
      [array (
        0 => '11',
      )])
      Updating calendar subscription Category Subscription in course 0
      Error updating calendar subscription: Can't find data record in database table course_categories. (SELECT id,parent FROM {course_categories} WHERE id = ?
      [array (
        0 => '4',
      )])

      Replicating steps:

      1. Create a top course category "Category 1"
      2. Create a course "Course 1" within Category 1 and enrol yourself
      3. Create a group "Group 1" within Course 1
      4. In the Course Calendar, click on "Manage subscriptions"
      5. Once each for Category 1, Course 1, Group 1, import a calendar (for example the moodle release calendar https://www.google.com/calendar/ical/moodle.com_p4c2oe7hsb77ltaro5qtihb5d4%40group.calendar.google.com/public/basic.ics)
      6. Go to Site Adminstration > Courses > Manage courses and categories
      7. Delete Category 1 and choose "Move content to another category"
      8. Delete Course 1
      9. Run UPDATE mdl_event_subscriptions SET pollinterval = 1; in the DB, so you don't have to wait.
      10. Run cron
      11. The output for \core\task\calendar_cron_task shows the error for each of the three calendar subscriptions
      12. The category events are still in the event table.

      Attachments

        Activity

          People

            justusdieckmann Justus Dieckmann
            justusdieckmann Justus Dieckmann
            Laurent David Laurent David
            Andrew Lyons, Huong Nguyen, Jun Pataleta, Michael Hawkins, Shamim Rezaie, Simey Lameze, Stevani Andolo, Amaia Anabitarte, Carlos Escobedo, Ferran Recio, Ilya Tregubov, Laurent David, Raquel Ortega, Sara Arjona (@sarjona)
            Votes:
            24 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated: