Moodle 2 Frustrations

With over ten Moodle 1.9.* installations that all need upgrading, the next few months are going to be exciting.

I have a clean Moodle 2 install, and a test 1.9 -> 2.1 install, and have been frustrated by some of the changes. I should note that I am also pleased at other changes, but those things I like will get less air-time than those I don’t, ’tis the way of things.

Some of the things I don’t like are:

Category Enrolments

I have not fully understood how these differ from Moodle 1.9 yet, though I am assured they do. Firstly, site-wide and category enrolments do not work the same – I’m not quite clear yet exactly how. There is a new enrolment plugin type called ‘Category enrolments’ that seems to be involved that supposedly restores old behaviour if enabled. This interacts with the new capability ‘category:synchronised’. I believe this specifically synchronises roles at a category down into a course level. I believe it does this as a proper enrolment rather than as an ‘other user’.

What I don’t like about this is that it has changed, I don’t understand it fully, and it becomes difficult for me to ensure desired pre-existing behaviour is maintained.

Hidden Assignments

Another thing that annoys me, is the removal of ‘hidden’ role assignments, replacing them instead with the concept of ‘other users’ in a course that will have access but not be listed as a participant.

On face value this seems to make sense, but one of the way we used to use ‘hidden’ enrolments was when enrolling site-wide users. We would set someone up with Teacher permissions site-wide, and to prevent them showing up as being a Teacher on every course we’d set the role as hidden.

If someone needs site-wide permission levels there is no way to do this as an ‘other user’. Where this Teacher role is granted site-wide because there is no ‘hidden’ option, that person is then listed on every course as a Teacher.

A solution is to tweak ‘course contacts’ so that Teachers aren’t listed as Teachers of a course, or better to duplicate the Teacher role and make sure they aren’t a ‘course contact’. Where multiple roles are used in both visible and hidden ways, this means duplicating those roles and them essentially being identical in ALL WAYS except for which are listed as ‘course contacts’. These roles may then be synchronised back down into courses if ‘Category enrolments’ and the ‘category:synchronised’ capability are enabled. I could easily see this then requiring even more duplicate roles.

Viewing Enrolled Users

In a course when I view enrolled users (course administration->users->enrolled users), I can choose to filter by enrolment method, but not by role. Ditto for ‘other users’. It isn’t easy to get a quick look at who is enrolled as a Teacher. For this functionality I specifically have to use the Participants link in the People block – which doesn’t show up ‘other users’ anyway. I can click on ‘enrol users’ to get the traditional side-by-side view of those enrolled and not enrolled. But (1) there is not a separate view per role, (2) if there are ‘too many users to show’ you’re out of luck.

Display a Directory vs Folder Resource

This is one of my largest frustrations.

In Moodle 1.9 we had a the following workflow.

  • Publications would update up to hundreds of course files (in a neat folder hierarchy) on a network drive,
  • A script would rsync these files with a folder on the Moodle 1.9 server,
  • Within an ‘all course materials’ course we would ‘display a directory’ that allowed students to navigate the neat folder hierarchy and access the hundreds of course files.
  • Because these files are synched when updated, we never need to go into Moodle and delete old files and replace with new ones.

Moodle 2 have changed the way files are handled. Repositories are a new and ‘good’ way to handle files in Moodle 2. As a consequence to the ‘new way of doing things’ the ‘display a directory’ resource. This has been replaced by a ‘folder’ resource.

When creating a ‘folder’ resource there is no way to point it to a folder within a repository. If all your hundreds of files from the server sit in a file-system repository, you can one-by-one add the files to your course ‘folder’, but not in bulk. Once a file is placed in your folder from the repository it is replicated into Moodle’s database. Presumably if the original file in the repository updates, nothing happens to Moodle’s database copy, and so every time a file is updated, you need to go into the ‘folder’ to remove the old one, and add the updated one.

What is the point of a repository if we can not update documents in there, and know that Moodle is picking up the update?

What is the point of a ‘folder’ if we can’t bulk select files from the repository? And no, adding zipfiles and unzipping them into the folder is NOT a suitable alternative.


Yesterday saw the first upgrade of the first of our live installs, and there were mixed results.

Capability – folder:view

More ‘folder’ frustration as it turned out that in my fresh M2 install, my test M2 upgrade, and the live M2 upgrade that the capability ‘folder:view’ is not set to ‘allow’ for students. What does this mean? It means that the ‘folder’ resource, presumably intended for students, is not actually visible to students!

I don’t know if this is a default Moodle 2 setting, or just something wrong at our end – but it certainly got me kicking, screaming, and pulling my hair out about folders all over again!

Capability – course:view

Going back to my frustration with site-wide and category enrolments, imagine my frustration when everyone with our ‘College Admin’ role (site wide) who had previously been able to see all courses, was suddenly unable to see any courses! It turned out that this was because their role did not have the ‘course:view’ capability. In our other 1.9 installs this role does have this capability, so either something took it off in the upgrade or this one install didn’t have it set (I don’t believe this!).


While I am pleased at some of the new features (cohorts!) of Moodle 2 I am really disappointed in the loss of some Moodle 1.9 features.