Major (Moodle) requirements for BIM 2.0

The next step in the development of BIM 2.0 is identifying the list of major (Moodle) requirements that need to be implemented. BIM is a Moodle activity module. Moodle has a range of expectations that such modules are meant to meet. The following is an attempt to identify what needs to be done.

It has resulted in a renewed effort to use the github issue list to record and manage what needs to be done. Not only have I started adding issues for BIM 2.0, I’ve also been through the old issues and decided which apply to BIM 2.0

In short, some major work to be done to get backup/restore migrated. Some minor tweaks (it appears) to get gradebook integration working. Logging is working as is.

Summary of the requirements

A summary of what was found follows. It includes some compulsory/important type requirements:

And also some that would be nice future additions:

What has changed?

Now to find out what has changed in the requirements that have to be addressed now.

Backup and restore

This has definitely been changed. It’s listed in the migrating CONTRIB code document.

backuplib.php is now replaced with a backup directory. It also appears to be a more OO-based approach. Some major re-work to be done here. Will leave this to another post.


This isn’t working. Any attempt to turn on the BIM gradebook integration generates an error on line 313 of lib.php due to a problem with a database insert

Debug info: Column ‘grademax’ cannot be null
INSERT INTO mdl_grade_items

The question will be whether this is a problem in BIM or evidence that the Gradebook API has changed significantly.

According to the Gradebook API there should be a mod/bim/grade.php file. Certainly not one in BIM 1.0. But then the forum module doesn’t have one either and yet it does use the gradebook, so it would appear to be optional.

grademax can be changed in the gradebook, but the help text located there suggests it should be set on the activity settings page. i.e. I need to add the ability to set grademax on the BIM config screen.

This has identified that the problem is because the existing BIM code is does not have a value for the grademax field for the gradebook. It appears that the Moodle 2.x code has required that this be not null.

Actually, the BIM 1.0 code doesn’t seem to have this set. A mystery change? Perhaps some boilerplate with a search and replace I put in place when setting up BIM 2.0? Moodle 1.9 doesn’t seem to have required a grademax value. So what does grademax imply?

Common sense would seem to imply the maximum value that can be entered into the gradebook for this component. BIM currently asks for maximums for each question, so a grademax could be calculated. The problem is that BIM only uses the maximums to generate a warning, it doesn’t enforce it. If the gradebook enforces grademax, then this could create some dissonance with BIM’s operation.

As it happens the hard coding of grademax to 10 results in gradebook integration. Or at least the activity being added to the gradebook. When I try to release some results (which includes adding marks to gradebook) I get a coding error which I’ll need to fix. Have added this to the to do list.

Will leave working on this until later.

It also suggests that in lib.php the bim_supports function should report that it has FEATURE_GRADE_HAS_GRADE. I’ll add that for now.

There are also a few examples that provide some extra code missing from BIM. Will add that as well.


The logging API in Moodle is likely to be replaced in a little while as part of an increasing importance of logging, analytics etc. The new work includes some references which could be used to inform a rethinking about BIM logging. This is one of my areas of interest.

But at the moment, the current BIM logging is working. At least there are BIM entries being added into the dummy course that I’ve been testing with.

One thought on “Major (Moodle) requirements for BIM 2.0

  1. Pingback: Major (Moodle) requirements for BIM 2.0 « The Weblog of (a) David ... | elearning stuff |

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s