Summer 2024 Hack/Doc Fest at Bryn Mawr

CLAMP held its Summer 2024 Hack/Doc Fest at Bryn Mawr College in Bryn Mawr, Pennsylvania. The primary focus of the event was evaluating Moodle 4.4. We’re happy to report that we encountered no major issues and no blockers to upgrading to Moodle 4.4 over the summer. Please read on below for for details of the various issues we discussed.


Activity cards

Icons with descriptive text
Activity icons in Moodle 4.2
Icons with descriptive text
Activity icons in Moodle 4.4

We tracked the improvement in activity cards and icons from Moodle 4.2 to Moodle 4.3 at the Connecticut College Hack/Doc Fest last January and we’re pleased to report that Moodle has made additional improvements. Whitespace is tighter and the icons themselves are smaller and more distinctive.

Default text editor

Moodle HQ has confirmed that Moodle 4.5 will be the last version of Moodle to include the Atto text editor. Support for TinyMCE has improved significantly over the last few releases. The Moodle plugins repository has over a dozen plugins available for TinyMCE now, and we didn’t encounter any problems working with it at Bryn Mawr.

Brickfield accessibility tool

We took another look at the free version of the Brickfield accessibility tool that is included with Moodle. The paid version offers feature parity with Anthology Ally. The free version scans the HTML of the course page. For experienced users, it can usefully call out issues such as outdated HTML tags (for example, <i> instead of <em>), missing alternative text, or missing descriptive link text. If you don’t know what you’re doing with accessibility, it can be overwhelming. For instance, Swarthmore tested in a continually-imported/exported course and found around 1,800 “errors,” which were mostly <i> or <b> or where that is the required notation for that discipline but it returned it as an error.

Accessibility Filescan

Swarthmore’s internally-developed accessibility filescan tool is now available on the Moodle plugins repository. This new version no longer requires a standalone processing server. The plugin scans PDFs in a course checking for language, text as text (as opposed to images of text), title, and tags. Used by itself, the Accessibility Filescan gives a snapshot of the PDF documents in your Moodle course and where you stand in terms of their accessibility to anyone who prefers to co-read, read with their ears, navigate without a mouse, etc. Used in tandem with Brickfield, it could provide useful overall knowledge-building when it comes to digital accessibility.

Use Screen Reader to test grading activities

Jen Moore at Swarthmore used NVDA to evaluate the accessibility of grading activities. The testing went well and concerns about emojis turned out to be unfounded. See the following links for videos of the testing:

For reference:

Database activity as syllabus host

Row definitions for a database
Sample definition of database fields to describe courses

Lafayette is exploring using a Moodle platform to create a centralized repository of course syllabi to assist with course shopping during registration windows. Requirements for this project include that it be searchable, that authentication is required, no restrictions on file types, and that the student information system remain the system of record. Lafayette explored using the database activity to deliver this capability. We created a database activity with fields for course code, name, description, prerequisites, and syllabus document, and then pre-populated all but the latter from our SIS.

We identified the following challenges with using the database activity:

  • We’d like a permissions model where students have read-only access, and faculty can upload files but not alter the rest of the metadata. The default fields do not support that level of granularity.
  • The file field type only supports one uploaded file. For courses with multiple sections taught by multiple instructors it’s likely that we would want to allow multiple files.

The database activity is pluggable via the datafield type; Lafayette experimented with creating versions of the text and url fields that support “locking” via a separate permission. That approach could also allow creating a “files” field that supports multiple uploads.

As an alternative, Jeff Hopkins at Bryn Mawr demonstrated using Airtable to create a database submission form searchable through Moodle.

Asynchronous backups

We looked at asynchronous backups when Moodle 3.7 was released (Summer 2019 Hack/Doc). We revisited because it’s now the default behavior for new installations in Moodle 4.4. Bucknell University already uses this setting in its production environment. When you launch the backup or restore (after choosing all the relevant settings), the task is handed off to ad-hoc task processing, and you can continue with editing your Moodle course. You are no longer locked out of Moodle until the process finishes, as you were in earlier versions of Moodle.

If you stay on the page, you will see a progress bar as the task is being completed behind the scenes. For the backup process (if you stay on the page), you can download the backup from the results page, and you can also restore it to a new course. If you navigate away from the page (for a backup procedure), you can click on the “Restore” link in the original course to find the backup file that you created. For the “Restore” process, if you stay on the page, you will be taken directly to the restored course. If you navigate away from the page, you can just look for the new course in the list of courses, or you can wait for the confirmation email that you will receive when the task is complete. The confirmation email message will have a direct link to the new course.

One issue Bucknell have discovered is that if there ever is a backlog of tasks to be processed, the backup/restore tasks get hung up as well. In other words, if several of your ad-hoc tasks are taking a long time to process, and if you haven’t increased the number of concurrent tasks that are allowed to run on your Moodle server, it’s possible that the backup/restore process can be delayed until those other processes finish.

Backup and Restore best practices

There was a general discussion about “best practices” around backup and restore. Schools were surveyed for their policies to course retention, and several examples are given below:

  • Kalamazoo: Three years hidden, available to faculty only
  • Lafayette: Five years available plus two years hidden from faculty as well.
  • Haverford: Courses available for past three academic years–although may be hidden by faculty. Available upon request for eight years. Older courses deleted. Private archives recommended.
  • Swarthmore: Moodle Retention Policy retains academic courses for 7 years on the Moodle server, then deleted; snapshot backup for 10 years

The problem of restoring courses larger than the web server’s upload limit was discussed. Several schools manually transfer the backups to their Moodle server, then use Moodle’s command line tools to restore the backup file.

Moodle gradebook video tutorial scripts

There is a growing need to help instructors become better acquainted with Moodle Gradebook. A recent CLAC email thread shows this lack of love for Moodle Gradebook is growing among our peer schools. We’ve developed a set of video tutorial scripts for basic Moodle Gradebook functionality. There are nine altogether, ranging from “Assigning Weights to Categories” to “Creating Ungraded Items in the Gradebook.” Each would be no longer than five minutes. See Gradebook Video Tutorial Scripts for all the scripts.

Explore Outcomes for alternate grading

We looked at ways to facilitate alternate grading methods in Moodle such as Specs Grading and Un-grading, etc. We tried to use the Outcomes feature of Moodle to accommodate this need. If it is not feasible, perhaps we can design a better way to make this work.

Outcomes differ from Competencies in that Outcomes can be created by teachers at the course level. You can assign a custom scale to an Outcome and then associate that outcome with any number of assignments. You can then use that scale to assess students for any of the assignments associated with that Outcome. Those Outcomes still show up as grade items in the gradebook, but you cannot weight those outcomes. That’s not going to work out well for Specs Charts. We didn’t get a chance to test whether you can get around that limitation by putting the outcome in a category and then weighting the category.

Button for LaTex conversion

Swarthmore is encouraging faculty to post .tex files—as opposed to PDFs of .tex files—to Moodle for a most-accessible outcome for students, as they can choose their output preference. In other words, if they download the .tex, they can open it in their preferred .tex reader and then render, or convert, it to whatever output they prefer—PDF, HTML, something else? The challenge is that process for converting a .tex file into an HTML file using PANDOC is fiddly, involving multiple steps on the command line. CLAMP has published documentation for this (Converting LaTeX to HTML using PANDOC) derived from Swarthmore’s testing.

Brickfield supports .tex files, but we did not have access to the paid version in order to test remediation. We did have access to Anthology Ally but it has no options for converting a .tex file. There are no plugins on the Moodle Plugins repository offering LaTeX conversion. SensusAccess can convert a .tex file to an .html file, though the output lacked headings. It might be possible to build a local plugin that wrapped PANDOC and converted .tex files on the Moodle server itself, but there were challenges with that approach. The consensus at Hack/Doc was that working with faculty to remediate their files locally would be more fruitful.

Send course welcome message for self/manual enrollments

There is a new feature that allows you to customize a welcome email when users are added with self-enrollment or manual enrollment method. The default is that this is on and the welcome message comes from the teacher in the course. This default can be changed in the admin settings so that no message is sent at all.

Default grade export method

It’s now possible to configure the default grade export method. This is done in Site administration > Grades > General settings. The default is OpenDocument spreadsheet; other options are Plain text file (CSV), Excel spreadsheet, or XML file. Microsoft schools should probably choose Excel.

Let a quiz have multiple total grades (e.g. for each section)

This works! You can divide questions between sections and create separate grades for each section. You also can move questions between sections, even after students have started taking the quiz.

Add option to user tours to make them always show

There is a new feature in Moodle 4.4 that allows you to set a user tour so that it will always appear. This feature does work as advertised, but we were at a loss to come up with a use case for our institutions.

Add bulk actions to the”Browse list of users” page

The browse list of users page was rebuilt as a system report in Moodle 4.4 and bulk actions are now available there, instead of building the filter and then switching to the bulk users actions page in prior versions.

Switching Edit mode returns one to the top

We flagged a pair of navigational issues, one fixed and one not. We’d noted that in Moodle 4.2 using the back button to return from an activity to the main course page you were returned to the top of the course page, even if you’d been in the middle of the page. That issue was fixed in Moodle 4.3. A similar but related issue is that toggling edit mode returns you to the top of the page, instead of scrolling to your original position. Moodle HQ will not fix the issue.

Bulk processing of Drops via ILP on Moodle

Ellucian is investigating large numbers of student drops not making it to Moodle. Additional concerns were raised about what happens to manually enrolled people who are supposed to be in the course (TAs, Writing Assistants, etc)

Macalester ITS tested this functionality and found that in the default settings of a bulk load, as compared to the live change processing of ILP), drops are not processed. That being said, in the interface there is an option to process drops. Selecting the toggle in the ILP bulk load creation tool for “Process inactive or dropped enrollments” causes ILP to send deletes for users who were at one point registered and no longer are.

Macalester tested this functionality on their test site:

  1. Manually enrolled six users on our Moodle test site.
  2. Disabled live transactions between our test Banner instance and test Moodle instance.
  3. Via Banner we processed a drop for a user.
  4. Executed a test bulk load without the “Process inactive or dropped enrollments” enabled. The user and all six of our manually-enrolled folks stayed in the course.
  5. We then manually deleted the user from Moodle.
  6. Executed a second test bulk load with “Process inactive or dropped enrollments” enabled. We saw in the ILP logs that it send a DELETE command for the users and there were no errors on Moodle or ILP reports due to the user already having been removed. We then processed a new user drop in Banner, processed another bulk load with the ILP toggle active and saw that user removed from the Moodle page.

Conclusion: ILP bulk loads with the “Process inactive or dropped enrollments” toggle active will process drops that weren’t processed by the real time messaging of ILP and leave in place manually enrolled TAs, etc. Depending on the scale of the failing drops Macalester may schedule bulk loads for overnight processing to ensure drops are processed correctly in Fall 2024.