Thank you for the explanation of git policy.
Thank you also for your blog page fixing-bug-in-moodle-core-mechanics.html. The step-by-step process their is quite helpful as a compliment to a wider understanding of how things work.
I've done further testing and refinement, including implementing a "search by tags" subclass, and running Code Checker. I have a question about:
> Also, it would be easier for me if you could share your changes on github.
> Feel free to ask if you want help with that. It is really worth scaling the git learning-curve.
I've read three requirements or requests which seem to contradict:
1) Share a new feature / fix as a single commit
2) Do not combine commits after pushing them to github
3) (From this thread) share a "draft" version on github
#2, from the Git book, was validated when I tried combining commits via git rebase -i HEAD~3. That was a nightmare. It seems the book is right - you shouldn't muck with commits after PUSH.
How do you get to #1, share the "final" version as one commit, without violating #2? The only way I know of is to hold off on commit and push until it's ready. That doesn't allow for #3.
I'll get you something to look at that works fine in my testing as soon as I know how to do so without causing breakage of my Git in regards to #1 and #2.
Although as Tim said there's no perfect way to do that, let me point out three things that may be helpful.
Option 1:
There are a couple of different reports in mod/quiz/report/. You could probably use one of them as a starting point to author a new report with the information you want.
Option 2:
We are planning to achieve the same goal by using different vocabulary. We create a Topic with several Quizzes, but treat the category as one quiz and each Quiz as a subsection. Each section covers one category. In Gradebook, we'll create a calculated grade for the entire "quiz", which is actually a Topic. In the end, that gives grades for each subsection as well as a combined grade.
Option 3:
Tim posted that OU is planning to implement subsections within quizzes, though initially without grading the subsections. The response indicated many people would like subsections to be graded, so that will feature will probably be added in the not-too-distant future, and you could help make that happen. One could have each subsection cover a category and achieve your goal.
Tim and OU are staying quite busy with improvements, aren't you.
We've had requests for sections (with subgrades) and for question dependencies, so it would be great to see those implemented. In fact we're doing hackish sections right now, creating a Topic with multiple quizzes in it, then using gradebook to create a combined grade.
> If they click that button, then they can try the question again within the same attempt,
> and if it is a random question, they will see a different variant.
If they want to retry the question, it would be a very nice option if they didn't get a different, random question.
Random questions solve most of the backup and restore issues, which is the only way to import / export. If you have a development server and a production server, every quiz needs to be exported from development and imported on production, so as far as we can see all quizzes pretty much need to be all random questions in such an environment. That changes this:
> If they click that button, then they can try the question again within the same attempt,
To this:
> If they click that button, then they can try a different question within the same attempt
If you have Moodle, that IS the source code. PHP is an interpreted language - there is no compiler, and therefore no version other than the source code. See also the developer docs linked at the top of this page, under Development.
Moodle development is not easy, so if you are entirely unfamiliar with PHP at this point you've got quite a task ahead of you. To start learning PHP, you might want to start with something much, much simpler / smaller than Moodle. (Moodle is larger than several complete operating systems.)