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

Course Copy User Interface

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide

      Setup:

      1. Enable asynchronous backups and notifications:
        1. Go to "Site administration > Courses > Backups > Asynchronous backup/restore"
        2. Check "Enable asynchronous backups" and "Enable message notifcations".
      2. Create a new user in Moodle
      3. Create a test course in Moodle
        1. This course should contain activities and resources
        2. This course should contain user generated data. Such as forum posts and assignment submissions.
        3. This course should contain users with various roles, manager, teacher, student etc.
      4. Give the created user the Manager role in the course
      5. Give the created user the Manager role in the category that contains the course
      6. Log into Moodle as the created Manager user

      Copying from source course:

      1. Log into Moodle as the user with the Manager role
      2. Navigate to the course you created in setup
      3. From the course context menu select "Copy course"
      4. Fill out the form
      5. Click "copy and view"
      6. Observe the copy process progress
      7. Run the following command from the command line:

        php admin/cli/cron.php
        

      8. Copy process should complete without error (This may take a little bit of time).
      9. Access the newly copied course from the destination column of the table (that will now be a link)
      10. Check that the newly copied course setup (dates, users, enrolments etc.) match what was entered in the copy form
      11. Check that you received a notification that the course was copied
      • Repeat the above steps except at step 5 click "copy and return". You should be returned to the source course instead. Make sure to run the cron mentioned at step 7.
        1. Check that you receive a notification when the course copy completes.
      • Repeat the above steps varying the options (course start date, course visibility, Keep user data) in the copy form.
        1. Check that the resulting copied course content and settings match the form for different combinations.
      • Course copy in progress message:
        1. Copy a course and click "copy and return" at step 5.
        2. Create a copy of the same source course again.
        3. Check that you see a notification on the course copy form that there is already a course copy operation in progress for this course.

      Copying from course management:

      1. Log into Moodle as the user with the Manager role
      2. Navigate to course and category management (/course/management.php)
      3. Click the "copy course icon" on the right hand side of the course listing for the test course you created.
      4. Fill out the form (that should appear in a modal window)
      5. Click "copy and view"
      6. Observe the copy process progress
      7. Run the following command from the command line:

        php admin/cli/cron.php
        

      8. Copy process should complete without error
      9. Access the newly copied course from the destination column of the table (that will now be a link)
      10. Check that the newly copied course setup (dates, users, enrolments etc.) match what was entered in the copy form
      11. Check that you received a notification that the course was copied
      • Repeat the above steps except at step 5 click "copy and return". You should be returned to the source course instead. Make sure to run the cron mentioned at step 7.
        1. Check that you receive a notification when the course copy completes.
      • Repeat the above steps varying the options (course start date, course visibility, Keep user data) in the copy form.
        1. Check that the resulting copied course content and settings match the form for different combinations.
      • Course copy in progress message:
        1. Copy a course and click "copy and return" at step 5.
        2. Create a copy of the same source course again.
        3. Check that you see a notification on the course copy form that there is already a course copy operation in progress for this course.
      Show
      Setup: Enable asynchronous backups and notifications: Go to "Site administration > Courses > Backups > Asynchronous backup/restore" Check "Enable asynchronous backups" and "Enable message notifcations". Create a new user in Moodle Create a test course in Moodle This course should contain activities and resources This course should contain user generated data. Such as forum posts and assignment submissions. This course should contain users with various roles, manager, teacher, student etc. Give the created user the Manager role in the course Give the created user the Manager role in the category that contains the course Log into Moodle as the created Manager user Copying from source course: Log into Moodle as the user with the Manager role Navigate to the course you created in setup From the course context menu select "Copy course" Fill out the form Click "copy and view" Observe the copy process progress Run the following command from the command line: php admin/cli/cron.php Copy process should complete without error (This may take a little bit of time). Access the newly copied course from the destination column of the table (that will now be a link) Check that the newly copied course setup (dates, users, enrolments etc.) match what was entered in the copy form Check that you received a notification that the course was copied Repeat the above steps except at step 5 click "copy and return". You should be returned to the source course instead. Make sure to run the cron mentioned at step 7. Check that you receive a notification when the course copy completes. Repeat the above steps varying the options (course start date, course visibility, Keep user data) in the copy form. Check that the resulting copied course content and settings match the form for different combinations. Course copy in progress message: Copy a course and click "copy and return" at step 5. Create a copy of the same source course again. Check that you see a notification on the course copy form that there is already a course copy operation in progress for this course. Copying from course management: Log into Moodle as the user with the Manager role Navigate to course and category management (/course/management.php) Click the "copy course icon" on the right hand side of the course listing for the test course you created. Fill out the form (that should appear in a modal window) Click "copy and view" Observe the copy process progress Run the following command from the command line: php admin/cli/cron.php Copy process should complete without error Access the newly copied course from the destination column of the table (that will now be a link) Check that the newly copied course setup (dates, users, enrolments etc.) match what was entered in the copy form Check that you received a notification that the course was copied Repeat the above steps except at step 5 click "copy and return". You should be returned to the source course instead. Make sure to run the cron mentioned at step 7. Check that you receive a notification when the course copy completes. Repeat the above steps varying the options (course start date, course visibility, Keep user data) in the copy form. Check that the resulting copied course content and settings match the form for different combinations. Course copy in progress message: Copy a course and click "copy and return" at step 5. Create a copy of the same source course again. Check that you see a notification on the course copy form that there is already a course copy operation in progress for this course.
    • Affected Branches:
      MOODLE_36_STABLE
    • Fixed Branches:
      MOODLE_39_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      master_MDL-64843_course_copy_ui

      Description

      THIS IS AN MUA PROJECT PROPOSAL THAT WILL BE SUBMITTED FOR POSSIBLE MUA FUNDING. ANY EXISTING TRACKER ITEMS THAT THIS MIGHT DUPLICATE SHOULD BE LINKED TO BELOW.

       

       Prototype site to try out the feature (Work-In-Progress): https://copy-demo.catalyst-au.net/login/index.php

       

      === Agreed project spec ===

      To copy a course currently users have to use the course backup and restore functions. This project aims to simplify the process by avoiding having to manually instigate a course backup and restore, and provide a dedicated UI for copying of courses.

      Notes: 

      • Behind the scenes the copy function will make use of the existing course backup and restore functionality but will streamline this through a single interface.
      • The course copy functionality will use the asynchronous backup and restore processes. Moodle 3.9 will by default turn on asynchronous backup and restore.

      User stories

      Admin/manager

      User stories for an admin or manager using the course and category management interface:

      User story  Acceptance Criteria / Confirmation
      As an admin or manager, I can copy a course It is possible to initiate copying a course by clicking a copy icon in the course management interface.
      As an admin or manager, when copying a course, I can specify the course name and category location In the course copy interface there are fields for:
      • Course full name
      • Course short name
      • Course category
      As an admin I can assign a manager or teacher the capability to copy a course Capabilities can be assigned or revoked that allow / disallow course copying (this will be the combination of existing backup/restore capabilities)

      Teacher

      User stories for a teacher for copying a course when in the course:

      User story  Acceptance Criteria / Confirmation
      As a teacher with the course copy capability I can copy a course It is possible to initiate copying a course by clicking on the settings cog and selecting the Copy option.
      As a teacher, when copying a course, I can specify the course name and category location In the course copy interface there are fields for:
      • Course full name
      • Course short name
      • Course category (limited to those I can access and edit)

      Common Admin / Manager / Teacher user stories

      User stories that apply to all three user types:

      User story  Acceptance Criteria / Confirmation
      As an admin/manager/teacher, when copying a course, I can specify whether the user data is copied or not In the course copy interface there is an option to select whether or not to copy the user data
      As an admin/manager/teacher, when copying a course, I can specify the course start and end date In the course copy interface there are date fields to specify:
      • Course start date
      • Course end date
      As an admin/manager/teacher, when copying a course, I can specify a course ID number In the course copy interface there is a field to enter a course ID number (not displayed on the course/site and only used to match against external systems)
      As an admin/manager/teacher, when copying a course, I can specify whether the course is visible or hidden from students In the course copy interface there is a field to select whether the course is hidden or visible
      As an admin/manager/teacher, when copying a course, I can specify whether to keep manual role enrolments In the course copy interface there is a field to select whether manual enrolments are to be copied across in the new course for:
      • Manager
      • Teacher
      • Non-editing teacher
      • Student

       

      As an admin/manager/teacher, when copying a course, all the other default backup and restore settings will apply The default backup and restore settings are used to copy the course, unless they are overridden by any of the options that are configurable in the course copy user interface (user data, start/end date, course ID, visibility, enrolments)
      As an admin/manager/teacher, when copying a course, I can track it’s progress
      • A progress bar is shown on a separate page
      • Once complete I can navigate to and display the copied course
      As an admin/manager/teacher, I can only execute one course copy action per user per course at a time
      • A warning will be displayed when I attempt to copy or edit a course that is being copied
      As an admin/manager/teacher, I am notified when the course copy action has completed
      • A notification is sent via message / email

       

      Draft mock-ups as per below

      Note that; 

      • the order of fields will be kept the same as the course creation form (e.g. moving the “Keep user data” field down the order)
      • Course copy will take some time, so rather than “Copy and return” and “Copy and display” a page with progress bar will be shown after which the user can return to the course management page or navigate to the copied course.

      /=== Agreed project spec ===**

       

      Original MUA Proposal below

      Overview

      A course copy function is working already in Moodle, but there is no user interface for it so far, we at BFH / Bern suggest such an interface to be implemented.--- Some work has already be done in MDL-56537. There's working code which has to be polished and finalized.
      The course copy user interface will provide the possibility to copy a course with or without user data. It will have a workflow similar to the backup / restore wizard, but which is streamlined for copying a course.

      User Interface Elements could look like this:


      Summary

      Project size: small
      Audience: all
      Target users: administrators / managers

      Goals

      A user interface for course copying is to be implemented. Goal is to be able to copy directly, without the backup/restore process or CSV upload.

      This reduces the required steps for copying a course from 2 to 1 and especially there will be less data clutter (i.e. the forgotten .mbz files of backup/restore-process on the server) to purge. The same counts for creating a course and importing some content.

      User Stories

      1) As an admin/manager, I should be able to copy a course within the "course and category management" interface e.g.:
      .../course/management.php?categoryid=...  action-menue for a course should have an additional entry for copying the course. Followed in the workflow by the obligation to choose the name / location of the copy. And a similar workflow sequence as for the backup process.

      2) As a teacher (if given the capability), I should be able to copy a course to a course category I'm allowed to by using the cog menu.

      Links to existing tracker issues, forum discussions, contrib plugins

      https://tracker.moodle.org/browse/MDL-56537

        Attachments

        1. course-copy.png
          course-copy.png
          58 kB
        2. image-2020-07-25-18-42-54-739.png
          image-2020-07-25-18-42-54-739.png
          29 kB
        3. MDL-64843.jpg
          MDL-64843.jpg
          66 kB
        4. MDL-64843.png
          MDL-64843.png
          348 kB
        5. MDL-64843 (2).jpg
          MDL-64843 (2).jpg
          54 kB
        6. MDL-64843 (3).jpg
          MDL-64843 (3).jpg
          56 kB
        7. MDL-64843 (4).jpg
          MDL-64843 (4).jpg
          61 kB
        8. MDL-64843-01.png
          MDL-64843-01.png
          62 kB
        9. MDL-64843-02.png
          MDL-64843-02.png
          63 kB
        10. Screenshot_2020-05-15 Course and category management.png
          Screenshot_2020-05-15 Course and category management.png
          31 kB
        11. Screenshot_2020-05-15 Course and category management(1).png
          Screenshot_2020-05-15 Course and category management(1).png
          120 kB

          Issue Links

            Activity

              People

              Assignee:
              mattp@catalyst-au.net Matt Porritt
              Reporter:
              ahediger Andreas Hediger
              Peer reviewer:
              Dmitrii Metelkin
              Integrator:
              Adrian Greeve
              Tester:
              Anna Carissa Sadia
              Participants:
              Component watchers:
              Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski, Peter Dias, Amaia Anabitarte, Carlos Escobedo, Ferran Recio, Sara Arjona (@sarjona)
              Votes:
              12 Vote for this issue
              Watchers:
              39 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Fix Release Date:
                15/Jun/20

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 4 days, 6 hours, 25 minutes
                  4d 6h 25m