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

Enable drag and drop of imported items into position in new course



    • Type: Improvement
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 3.4.1
    • Fix Version/s: None
    • Component/s: Backup
    • Affected Branches:




      Moodle import can be improved to let people indicate where to place each item on a Moodle course and whether or not to add section headers and summaries as a label to the new section. 
      This would greatly improve the process of moving material into a new course template, containing section headings, summaries and blocks that provide consistency for students and staff.
      Currently the import process is very time consuming and messy. Items come in to the new course in whichever section they happened to be in the old course and section titles and summaries that are coming to the sections already populated in the new course are lost completely. Ideally, users importing items could choose where each item is moved to during the import process, rather than having to move it afterwards. And lost summaries and titles need to be manually copied over later.
      Often the new Moodle course being imported into is a template course pre-populated with section headings and descriptions in section summaries and pages, as well as some default activities such as Assignments for student submissions, which improves consistency across a student's courses.
      I propose the import page where you select what to import now shows: * 2 columns. The items being imported on the left and the new course things are being imported into on the right. Ideally the user could drag and drop the items into place from left to right, including headings and summaries (each as a separate label). Therefore, when you click import everything ends up in the correct location, rather than needing to be moved afterwards.

      A second page will let staff drag and drop blocks on to the page: * E.g. blocks to import (not showing duplicate blocks where only 1 block of that type can be added and it already exists on the new page).
      Staff can then again drag and drop the blocks to where they want them to appear on the new page.

      Lastly the other elements that can be imported can be selected. These can continue to operate as they do now and then be cleaned up afterwards: * Include filters

      • Include calendar events
      • Include question bank
      • Include groups and groupings
      • Include competencies




      • Project size: medium
      • Audience: primary schools, universities, work places
      • Target users: teachers, administrators


      • simplify the import process.
      • speed the import process.
      • make migration to new departmental course templates less problematic to implement, especially when there are many to migrate.
      • support importing a template Moodle course to an existing course, or the other way around, importing items into a Moodle template course, which will determine which course maintains its section headings and descriptions (nice to have feature, but not essential).


      User Stories 

      User stories should be specific to each requirement and provide a clear view of what you want the improvement/new feature to accomplish.

      • As a teacher or admin, I should be able to drag and drop items from one course into the correct location on the other course during the import process so I don't need to re-arrange everything afterwards. Items should grey out once imported, to avoid duplication.

      • As a teacher or admin, during the import process I should be able to see the course being imported from alongside the course being imported to, so I can determine what to import and where to place each item.
      • As a teacher or admin, during the import process, I should be able to choose which course is the template which determines which section headings to maintain. E.g. either the course being imported from, or the course being imported to (default) - optional feature.

        Links to existing tracker issues, forum discussions, contrib plugins

      The original tracker ticket is here: MDL-40964

      This would also resolve the following tracker tickets - these all seem to have been closed as duplicates and one as ' not a bug', without any of them remaining open as the primary source:


      Step by step instructions on how the new import process would work are:

      1. Navigate to your course.
      2. Choose import from the Course Administration menu. A warning should notify staff to backup their course before proceeding (with a link to course backups) so they are able to restore from backup if necessary. 
      3. Select the course you would like to import elements from.
      4. Select the course to use as a template. E.g.

      Which course do you want to use as the template? This will determine which headings will be kept. Headings (and their summaries) from the other course will be converted to labels so they are not lost. If unsure, use the default 'course being imported to' as the template.

      5. Either

      5a. If the user selected the course being imported as the template then push all the existing sections and their content down the page to a new orphaned section, with the new sections above. Blocks from the template will also be brought in. This will allow the user to drag and drop existing content back into the correct sections in the new format.
      5. If the user selected the existing course as the template then nothing will be automatically brought into the course and they will be able to drag and drop items from left to right (bulk selecting by section where easier).

      6. Items can be moved (dragged and dropped), deleted and section title text edited directly from the right of the page. Moving across an entire section will convert the title (if selected) to a sub heading (h3) if a section heading already exists on the right. Otherwise the selected title and description from the left will be used to populate the empty section title and description. 

      6a. When items are moved across they will be greyed out and made inactive from the left side so they can't be dragged in multiple times. This means if the course being imported is the template, then all of it will be greyed out and the left side should auto minimise so staff can concentrate on moving items into place on the right.
      6b. If something is deleted it will re-appear (reactivated) on the left. Therefore, upon delete the left hand side should be shown so users can see their items reactivated.
      6c. If items are deleted from the existing course they will appear in a holding area (like in wordpress) so they can be readded if necessary.

      7. If a new section is required this will need to be added on the right and optionally a title added.


      The ability to:

      • view the old course items alongside the new course layout, side by side, in a 2 column layout.
      • drag and drop elements (activities, resources, section headings,  section summaries, blocks) from the imported course into the correct location of the importing course, so there is no need to move items to the correct location  after the import takes place (which can be very confusing and time consuming).
      • drag and drop items into place, one by one.
      • as items as dragged in they become greyed out and inactive from the left hand side.
      • drag an entire section from one course into another.
      • a button to select all items in topic area to drag and drop (deselects possible)
      • import a section title and its summary text as a label into the new course, with an appropriate heading tag applied to the title (h3), so it is not lost when you drag it to a section with a title and description already defined, AND where a section title and description is blank replace the section title and description with the one being dragged in.
      • add new sections to the course being imported into.
      • edit section titles.

      Optional requirements (not essential, but nice to have): * select multiple items, (headings and descriptions?) from various sections on a course and drag and drop into one place on the new course.

      • minimise sections to make moving easier, showing only section headings.
      • auto-maximise sections on hover to enable fine grained placement of items.
      • view all sections expanded as a preview.
      • show/hide left side to simplify the interface once items have been moved over and they just need to be re-arranged on the course being imported into.
      • select which course is the the template. This will determine which headings will be kept. Headings (and their summaries) from the other course will be converted to labels so they are not lost:
      • If the user selects the course being imported from as the template then push all the existing sections and their content down the page to a new orphaned section, with the new sections above. Blocks from the template will also be brought in.
      • If the user selects the course being imported to as the template then this course will appear on the right and they will be able to drag and drop items from left to right (bulk selecting by section where easier).


      Further reading

      An example of a Moodle template course is provided here as a downloadable PDF guide:




            Unassigned Unassigned
            jgramp Jess Gramp (old account)
            Component watchers:
            Adrian Greeve, Jake Dallimore, Mathew May, Mihail Geshoski, Peter Dias, Sujith Haridasan
            1 Vote for this issue
            4 Start watching this issue