/** * Updates a new assignment activity * * Given an object containing all the necessary data, * (defined by the form in mod_form.php) this function * will update the assignment instance and return the id number * The due date is updated in the calendar * This is common to all assignment types. * * @global object * @global object * @param object $assignment The data from the form on mod_form.php * @return bool success */ function update_instance($assignment) { global $COURSE, $DB; $assignment->timemodified = time(); $assignment->id = $assignment->instance; $assignment->courseid = $assignment->course; $DB->update_record('assignment', $assignment); if ($assignment->timedue) { $event = new stdClass(); if ($event->id = $DB->get_field('event', 'id', array('modulename'=>'assignment', 'instance'=>$assignment->id))) { $event->name = $assignment->name; $event->description = format_module_intro('assignment', $assignment, $assignment->coursemodule); $event->timestart = $assignment->timedue; $calendarevent = calendar_event::load($event->id); $calendarevent->update($event); } else { $event = new stdClass(); $event->name = $assignment->name; $event->description = format_module_intro('assignment', $assignment, $assignment->coursemodule); $event->courseid = $assignment->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'assignment'; $event->instance = $assignment->id; $event->eventtype = 'due'; $event->timestart = $assignment->timedue; $event->timeduration = 0; calendar_event::create($event); } } else { $DB->delete_records('event', array('modulename'=>'assignment', 'instance'=>$assignment->id)); } // get existing grade item assignment_grade_item_update($assignment); return true; }
/** * Updates a new assignment activity * * Given an object containing all the necessary data, * (defined by the form in mod.html) this function * will update the assignment instance and return the id number * The due date is updated in the calendar * This is common to all assignment types. * * @param $assignment object The data from the form on mod.html * @return int The assignment id */ function update_instance($assignment) { global $COURSE; $assignment->timemodified = time(); $assignment->id = $assignment->instance; $assignment->courseid = $assignment->course; if (!update_record('assignment', $assignment)) { return false; } if ($assignment->timedue) { $event = new object(); if ($event->id = get_field('event', 'id', 'modulename', 'assignment', 'instance', $assignment->id)) { $event->name = $assignment->name; $event->description = $assignment->description; $event->timestart = $assignment->timedue; update_event($event); } else { $event = new object(); $event->name = $assignment->name; $event->description = $assignment->description; $event->courseid = $assignment->course; $event->groupid = 0; $event->userid = 0; $event->modulename = 'assignment'; $event->instance = $assignment->id; $event->eventtype = 'due'; $event->timestart = $assignment->timedue; $event->timeduration = 0; add_event($event); } } else { delete_records('event', 'modulename', 'assignment', 'instance', $assignment->id); } // get existing grade item $assignment = stripslashes_recursive($assignment); assignment_grade_item_update($assignment); return true; }