If I have missed this in the forum I apologize. I’ve not been able to find any guidance on how one should best go about creating custom permanent database entries.
The need for this is because our school does reporting differently than the GIbbon system is designed to handle, and I would like to store long term calculated data (such as semester exams and quarterly grades) in the system. I have no problem managing SQL, but I want to be sure I implement it in a way that bolts IN to the current system, rather than feeling bolted ON.
Morning Nate! A good place to start is Gibbon’s Custom Fields (Admin > System Admin), which use some existing database fields to store data in JSON objects. I suspect this might not be quite what you are looking for.
One option is always to simply make core changes that you want, but this will feel bolted on for sure, and you’ll loose changes on your next update. You could contribute your changes back to the Gibbon core, and we’ve got a Slack channel for developers where we can help you plan your work.
A final option is to build your own custom module. This could take the form of a core module, like Formal Assessment, that you take and amend.
Hopefully this helps,
Let’s have a go with the custom fields to start. I’ll do some exploring of my own, but I’m more than happy to take any pointers you have at your convenience.
If possible, I’d love to join the Slack channel.
Since you’re looking to store marks-related data, I wonder if an automated system to create and store internal assessment marks may be more robust than custom fields, and would allow you more options for extracting and adding those fields to reports. Feel free to give a shout on Slack if you have any coded solutions to check out : )
I have completed the coding for extracting and calculating markbook data, and storing it in a custom database table. Unfortunately, it’s quite specific to our school.
That sounds great Nate. These things tend to be very school-specific, which is one reason we’ve not built them into the Gibbon core.