Gradebook percentage in moodle

Jul 14, 2011


I am testing articulate products. Now I have a problem about creating a scorm package with articulate presenter.

I have used this configuration in publish menu of presenter:

- SCORM 1.2 package

- Tracking of slides viewed

I have imported the zipped scorm in moodle and alls ok except the percentage in gradebook. If a have a scorm with a 10 slides and a student have viewed 6 slides, the gradebook don't show 60%, the gradebook shows empty column of percentage. The percentage column only shows the percentage of activitys fully completed, that is 100%

What is the problem?

Exists a tutorial/configuration that explains how publish a scorm from articulate presenter to moodle?

Maybe is a problem of moodle configuration?

I hope somebody can help me.

Thanks in advance and sorry for my poor english.

22 Replies
Juanjo Baeza

OK, I'm using scorm 1.2 and the grading method is learning objects. The detail of scorm status is

In this example there are 7 slides viewed, and i think that the LMS must show a 70% at the gradebook.

Exists something method (doing with scorm 2004, other grading method) about the LMS shows the partial percentage of a scorm in moodle.

Sorry for my pertinacy but i'm sure that this is possible.

Thanks for your time

Stefano Posti

Hello there,

personally I wouldn't go further on testing, You will never see 70% in your gradebook if you have viewed 7 slides on 10.

It's a moodle problem, actually. Articulate simply writes those cmi data you showed, and they are correct!

I strongly reccomend to use test/quiz scores to track progress, instead.

For example, I often build my moodle courses like this:

I set my course to be divided in ARGUMENTS; I call moodle arguments "modules"

The very first argument can be text or an introduction html page;

Then the second argument is a SCORM package published by Quizmaker : it's the assessment test you need to prove the effectiveness and efficiency later, at the end of the course. You can often use the same test you use at the end of the course!

Then I put several arguments, they are all SCORM Articulate presenter packages which have a Quizmaker test at the end; when publishing, I choose "Track by quiz result" option, not "track by viewed slides"; 

If you can use conditional activities, this is great: you force students to attend all modules and pass each module's test to gain access to the following module. That'a how you really track the progress ...

then I don't use gradebook; I payed an It company to develop a certifications php module for each course... what I got is a beatiful report with name, lastname, email, first access date/time, last access date/time, time spent on the couurse, general progress, scores fore each module, and the score for the final test;; this is very similar to the Articulate Online report....

hope it helps!


Phil Mayor

Thanks Stefano, As I said before, I have been using moodle now for over three years and cannot get it to give a % of slide viewed in the gradebook

if you want to track by slides viewed learning objects is the best solution.

I think the problem with moodle is that it cannot translate what is being sent from articulate


Juanjo Baeza

Thanks Stefano

As you say the data is in the database. Now I think to work in two ways:

1. Use test/quiz scores ¿can you send me or post an example of quizmaker project for this? I supose that you use this tool for that.

2. I'll try to modify the moodle code of gradebook page for calculate the percentages.

Many thanks

Juanjo Baeza

function get_studentshtml

Line 784 approx. of /grade/report/grader/lib.php

//IF finalgrade is null, must be calculated
                if ($grade->finalgrade=="") {
                    $sql="SELECT t.value FROM mdl_scorm_scoes_track t, mdl_grade_items g where".$grade->itemid." and
                    t.userid=".$grade->userid." and g.itemmodule='scorm' and g.iteminstance=t.scormid and t.element='cmi.suspend_data'
                    order by t.timemodified desc limit 1";
                    $rs = get_recordset_sql($sql);

                    while ($datos = rs_fetch_next_record($rs)) {
                        $registros=explode("|", $datos->value, 3);

                    if ($posicionIni!=false) {
                        $Diapos=explode(",", $strDiapos);
                    $grade->finalgrade=($numDiapos * 100) / $totalDiapos;

This code mus be applied in other scripts where the partial percentaje is empty