-
Improvement
-
Resolution: Fixed
-
Minor
-
3.6.3, Future Dev
-
MOODLE_36_STABLE
-
MOODLE_39_STABLE
-
master_
MDL-64843_course_copy_ui -
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:
|
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:
|
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:
|
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:
|
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 |
|
As an admin/manager/teacher, I can only execute one course copy action per user per course at a time |
|
As an admin/manager/teacher, I am notified when the course copy action has completed |
|
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
- caused a regression
-
MDL-68780 Windows unit tests failures caused by backup controllers not being destroyed
- Closed
- has a non-specific relationship to
-
MDL-69381 Course copy progress bar CSS selector in the javascript file is not specific enough
- Closed
-
MDL-28505 Asynchronous course backup / restore
- Closed
- has a QA test
-
MDLQA-14792 An admin can create a copy of a course
- Open
-
MDLQA-15441 CLONE - An admin can create a copy of a course
- Passed
-
MDLQA-16026 CLONE - An admin can create a copy of a course
- Passed
-
MDLQA-16657 CLONE - An admin can create a copy of a course
- Passed
-
MDLQA-17273 CLONE - An admin can create a copy of a course
- Passed
-
MDLQA-17855 CLONE - An admin can create a copy of a course
- Passed
-
MDLQA-18358 CLONE - An admin can create a copy of a course
- Passed
-
MDLQA-18847 CLONE - An admin can create a copy of a course
- Passed
-
MDLQA-19308 CLONE - An admin can create a copy of a course
- Passed
- has been marked as being related by
-
MDL-74548 Course copy controllers can be instantiated in an invalid state
- Closed
- Testing discovered
-
MDL-68978 Message not received when asynchronous backup or restore completes
- Closed
- will help resolve
-
MDL-56537 Duplicate course button in course and category management frontend
- Closed