General plugins (Local): Use template on course creation

local_course_template
Maintained by Picture of Charles FultonCharles Fulton, Picture of Andrew ZitoAndrew Zito
This local plugin allows site administrators to create "template" courses which will be restored into new courses on course creation.
103 sites
139 downloads
22 fans
Current versions available: 3

This local plugin allows site administrators to create "template" courses which will be restored into new courses on course creation. The intended use case is defining common blocks and activities for a given academic term.

Usage

The administrator will need to create a "template" course which contains the desired blocks and resources. This course will need a specially-named short name. By default the plugin will search for a course with the short name Template-[TERMCODE], where [TERMCODE] is the matching value for YYYYYY. For example, if a course had the termcode 201610, the module would search for a course with the short name Template-201610.

The administrator will need to define a regular expression for extracting the term code from the course idnumber. This will be used to identify which course template (if any) should be used on creation. For example, if your courses have idnumbers in the format XXXXXX.YYYYYY, where YYYYYY is the termcode, then the regular expression /[0-9]+\.([0-9]+)/ will return YYYYYY.

The plugin listens on the \core\event\course_created event and fires immediately on course creation. Once you've given a course the necessary short name you don't need to do anything further. The plugin will create a backup of the template course and import it into the new course.

You should consider overriding Moodle's default block settings in config.php: $CFG->defaultblocks_override = '';. Otherwise you will get two sets of blocks on course creation. Manually configure the blocks in the template course instead. 

Screenshots

Screenshot #0

Contributors

Picture of Charles Fulton
Charles Fulton (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments RSS

Show comments
  • Picture of Charles Fulton
    Sat, Sep 23, 2017, 12:09 AM
    Hi Mar, I'm not really in a place to make that recommendation. The plugin works automatically so long as the correct preconditions are met. If you've been creating courses manually then it'll absolutely be faster.
  • Picture of Ranil Peiris
    Fri, Oct 27, 2017, 6:11 AM
    Dear Charles,
    Thank you for sharing your extremely useful plugin. You saved my time a lot and plugin is extremely useful for me.
    @Mar
    This is really useful. For example, I need to create many courses for students projects. Each student should have a course to collaborate with the supervisor. I created template course with predefined structures and assign a shortcode. Then, when I create a course, I enter the course template idnumber to match a template course shortcode. The plugin automatically creates the structure. Otherwise, I have to restore one by one. This is really useful if you are creating many courses with the same structure.

    @ charles
    I found a minor issue:
    The plugin can create only sections up to the number of sections in course default settings. If the course default sections are less than the number of sections of the template, extra sections will not create. If I set a number of default sections to a higher number, the plugin will create sections with default section names. This is a minor issue if someone has many course templates with a different number of sections.

    Best Regards
    Ranil
  • Picture of MapIestrip .
    Thu, Dec 28, 2017, 11:10 PM
    Hello,
    I am trying to get this plugin to work, but it has thus far not done anything for me. The plugin has installed correctly, and I can find its details in Local Plugins/Use template on course creation. I have set the term code to /^[^\d]*(\d+)/ and the shortname format to Template-[TERMCODE]

    I have created a template in the Miscelaneous category. It is titled "Certificate Template", has the shortname "Template-1", and includes a forum activity and a standard block.

    I create a new course in a separate category with a title of, let's say "foo" and a shortname of "bar". Its idea is "1-002-02". The regex code should return a "1" in this situation. However, when I view my created course, it does not look like it fits the template I created. Does anyone know why this has happened?

    Best regards,
    Mable Simons
  • Picture of Charles Fulton
    Thu, Dec 28, 2017, 11:16 PM
    That regex seems wrong to me. If you're trying to get 1 from an idnumber of 1-002-02 you'd want to return the first digit, not a later digit. Something like this ought to work: /^(\d)-\d+-\d+/

    Charles
  • Picture of MapIestrip .
    Fri, Dec 29, 2017, 4:12 PM
    Thanks Charles,
    I tried using your supplied regex, but the plugin still doesn't work. I have also tried other regex codes I found through Google (Stackexchange). I don't believe the regex is the issue here. Any other ideas what may be wrong?

    Mable Simons
  • Picture of Brian Jackson
    Wed, Jan 31, 2018, 7:13 AM
    I'm trying to get this plugin working, but having no luck so far...when I manually create a course that should match the pattern, my template content does not show up in the course.

    Course short names are as follows:
    SUBJ--NUM_YYYY-TT_SEC (ENG--900_2017-SP_01 as an example)

    Current term extraction pattern:
    /([0-9]+\-[A-Z]+)/ (should return 2017-SP for the example course short name above)

    Template name format:
    Template-[TERMCODE]

    Template Course Name:
    Template-2017-SP

    So if I create a test course with the short name ENG--900_2017-SP_01, it does not seem to be triggering the automatic restore from the template. Any thought as to what might be wrong? Maybe the regex?
  • Picture of Charles Fulton
    Wed, Jan 31, 2018, 9:56 AM
    Hi Brian, the plugin looks at the idnumber and not the shortname of a newly-created course. Please see https://github.com/LafColITS/moodle-local_course_template/wiki for specific examples.

    Charles
  • Picture of Brian Jackson
    Thu, Feb 1, 2018, 7:13 AM
    Ah, my bad - it appears to be working now, thanks for the assistance!
  • Picture of stefan weber
    Mon, Aug 20, 2018, 7:11 PM
    hi charles - is it possible to forego the regex and just use the same template for all courses? our courses are automatically created without any specific ID
  • Picture of Charles Fulton
    Mon, Aug 20, 2018, 10:10 PM
    Hi Stefan, not with the current version of the plugin. Adding an explicit configuration option to allow targeting all new courses (without regard for the idnumber) is a possible enhancement for a future release.
  • Picture of stefan weber
    Wed, Aug 22, 2018, 3:13 PM
    do you know if its possible to create a regex that always returns the same value? like "throw away all numbers and replace with CONST"
  • Picture of Pete Howard
    Tue, Nov 13, 2018, 12:16 AM
    Stefan.
    You could try:
    /().*/
    This will (I think) match every ID and return an empty string. You should then give your template course a shortname of "template-".
  • Picture of Scott Krajewski
    Thu, May 2, 2019, 4:06 AM
    I'm trying this regex https://regex101.com/r/LbPXPV/2 and the plugin says the Term code value (the regex) is not valid. Any ideas?
  • Picture of Charles Fulton
    Fri, May 3, 2019, 3:26 AM
    Scott: did you wrap your regular expression in slashes (e.g. /my-regex-here/)? The plugin expects them but doesn't add them if they're not present.
  • Picture of Scott Krajewski
    Fri, May 3, 2019, 5:04 AM
    Thanks Charles. This is what I'm using that is coming up as invalid though it works in the regex testing site I linked (without the slashes).
    /(?<=\_)(.*?)(?=\-)/
1 2
Please login to post comments