Example #1
0
    /**
     * 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;
    }
Example #2
0
 /**
  * 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;
 }