Example #1
0
function xmldb_journal_upgrade($oldversion = 0)
{
    global $CFG, $DB;
    $dbman = $DB->get_manager();
    $result = true;
    // No DB changes since 1.9.0
    // Add journal instances to the gradebook
    if ($oldversion < 2010120300) {
        journal_update_grades();
        upgrade_mod_savepoint(true, 2010120300, 'journal');
    }
    // Change assessed field for grade
    if ($result && $oldversion < 2011040600) {
        // Rename field assessed on table journal to grade
        $table = new xmldb_table('journal');
        $field = new xmldb_field('assessed', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, null, '0', 'days');
        // Launch rename field grade
        $dbman->rename_field($table, $field, 'grade');
        // journal savepoint reached
        upgrade_mod_savepoint(true, 2011040600, 'journal');
    }
    if ($result && $oldversion < 2012032001) {
        // Changing the default of field rating on table journal_entries to drop it
        $table = new xmldb_table('journal_entries');
        $field = new xmldb_field('rating', XMLDB_TYPE_INTEGER, '10', null, null, null, null, 'format');
        // Launch change of default for field rating
        $dbman->change_field_default($table, $field);
        // Updating the non-marked entries with rating = NULL
        $entries = $DB->get_records('journal_entries', array('timemarked' => 0));
        if ($entries) {
            foreach ($entries as $entry) {
                $entry->rating = NULL;
                $DB->update_record('journal_entries', $entry);
            }
        }
        // journal savepoint reached
        upgrade_mod_savepoint(true, 2012032001, 'journal');
    }
    return $result;
}
Example #2
0
            $newentry->timemarked = $timenow;
            $newentry->mailed = 0;
            // Make sure mail goes out (again, even)
            $newentry->id = $num;
            if (!$DB->update_record("journal_entries", $newentry)) {
                notify("Failed to update the journal feedback for user {$entry->userid}");
            } else {
                $count++;
            }
            $entrybyuser[$entry->userid]->rating = $vals['r'];
            $entrybyuser[$entry->userid]->entrycomment = $vals['c'];
            $entrybyuser[$entry->userid]->teacher = $USER->id;
            $entrybyuser[$entry->userid]->timemarked = $timenow;
            $journal = $DB->get_record("journal", array("id" => $entrybyuser[$entry->userid]->journal));
            $journal->cmidnumber = $cm->idnumber;
            journal_update_grades($journal, $entry->userid);
        }
    }
    // Trigger module feedback updated event.
    $event = \mod_journal\event\feedback_updated::create(array('objectid' => $journal->id, 'context' => $context));
    $event->add_record_snapshot('course_modules', $cm);
    $event->add_record_snapshot('course', $course);
    $event->add_record_snapshot('journal', $journal);
    $event->trigger();
    notify(get_string("feedbackupdated", "journal", "{$count}"), "notifysuccess");
} else {
    // Trigger module viewed event.
    $event = \mod_journal\event\entries_viewed::create(array('objectid' => $journal->id, 'context' => $context));
    $event->add_record_snapshot('course_modules', $cm);
    $event->add_record_snapshot('course', $course);
    $event->add_record_snapshot('journal', $journal);
Example #3
0
/**
 * Update journal grades in 1.9 gradebook
 *
 * @param object   $journal      if is null, all journals
 * @param int      $userid       if is false al users
 * @param boolean  $nullifnone   return null if grade does not exist
 */
function journal_update_grades($journal = null, $userid = 0, $nullifnone = true)
{
    global $CFG, $DB;
    if (!function_exists('grade_update')) {
        //workaround for buggy PHP versions
        require_once $CFG->libdir . '/gradelib.php';
    }
    if ($journal != null) {
        if ($grades = journal_get_user_grades($journal, $userid)) {
            journal_grade_item_update($journal, $grades);
        } else {
            if ($userid && $nullifnone) {
                $grade = new object();
                $grade->userid = $userid;
                $grade->rawgrade = NULL;
                journal_grade_item_update($journal, $grade);
            } else {
                journal_grade_item_update($journal);
            }
        }
    } else {
        $sql = "SELECT j.*, cm.idnumber as cmidnumber\n                FROM {course_modules} cm\n                JOIN {modules} m ON m.id = cm.module\n                JOIN {journal} j ON cm.instance = j.id\n                WHERE m.name = 'journal'";
        if ($recordset = $DB->get_records_sql($sql)) {
            foreach ($recordset as $journal) {
                if ($journal->grade != false) {
                    journal_update_grades($journal);
                } else {
                    journal_grade_item_update($journal);
                }
            }
        }
    }
}