~ubuntu-branches/ubuntu/jaunty/moodle/jaunty

« back to all changes in this revision

Viewing changes to mod/assignment/type/offline/assignment.class.php

  • Committer: Bazaar Package Importer
  • Author(s): Jordan Mantha, Matt Oquist
  • Date: 2009-02-25 15:16:22 UTC
  • mfrom: (1.1.11 upstream)
  • Revision ID: james.westby@ubuntu.com-20090225151622-0ekt1liwhv2obfza
Tags: 1.9.4.dfsg-0ubuntu1
* Merge with Debian git (Closes LP: #322961, #239481, #334611):
  - use Ubuntu's smarty lib directory for linking
  - use internal yui library 
  - add update-notifier support back in

[Matt Oquist]
  * renamed prerm script
  * significantly rewrote postinst and other maintainer scripts to improve
    user experience and package maintainability
    (Closes LP: #225662, #325450, #327843, #303078, #234609)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php // $Id: assignment.class.php,v 1.7.14.1 2007/02/15 08:15:59 toyomoyo Exp $
 
1
<?php // $Id: assignment.class.php,v 1.12.2.2 2008/02/20 17:49:59 skodak Exp $
2
2
 
3
3
/**
4
4
 * Extend the base assignment class for offline assignments
6
6
 */
7
7
class assignment_offline extends assignment_base {
8
8
 
9
 
    function assignment_offline($cmid=0) {
10
 
        parent::assignment_base($cmid);
 
9
    function assignment_offline($cmid='staticonly', $assignment=NULL, $cm=NULL, $course=NULL) {
 
10
        parent::assignment_base($cmid, $assignment, $cm, $course);
 
11
        $this->type = 'offline';
11
12
    }
12
13
 
13
14
    function display_lateness($timesubmitted) {
16
17
    function print_student_answer($studentid){
17
18
        return '';//does nothing!
18
19
    }
19
 
    
 
20
 
20
21
    function prepare_new_submission($userid) {
21
 
        $submission = new Object; 
 
22
        $submission = new Object;
22
23
        $submission->assignment   = $this->assignment->id;
23
24
        $submission->userid       = $userid;
24
25
        $submission->timecreated  = time(); // needed for offline assignments
34
35
        $submission->mailed       = 0;
35
36
        return $submission;
36
37
    }
37
 
    
 
38
 
38
39
    // needed for the timemodified override
39
40
    function process_feedback() {
40
 
 
41
 
        global $USER;
 
41
        global $CFG, $USER;
 
42
        require_once($CFG->libdir.'/gradelib.php');
42
43
 
43
44
        if (!$feedback = data_submitted()) {      // No incoming data?
44
45
            return false;
55
56
            return false;
56
57
        }
57
58
 
 
59
        $grading_info = grade_get_grades($this->course->id, 'mod', 'assignment', $this->assignment->id, $feedback->userid);
 
60
 
 
61
        // store outcomes if needed
 
62
        $this->process_outcomes($feedback->userid);
 
63
 
58
64
        $submission = $this->get_submission($feedback->userid, true);  // Get or make one
59
65
 
60
 
        $submission->grade      = $feedback->grade;
61
 
        $submission->submissioncomment    = $feedback->submissioncomment;
62
 
        $submission->format     = $feedback->format;
63
 
        $submission->teacher    = $USER->id;
64
 
        $submission->mailed     = 0;       // Make sure mail goes out (again, even)
65
 
        $submission->timemarked = time();
66
 
 
67
 
        unset($submission->data1);  // Don't need to update this.
68
 
        unset($submission->data2);  // Don't need to update this.
69
 
 
70
 
        if (empty($submission->timemodified)) {   // eg for offline assignments
71
 
            $submission->timemodified = time();
72
 
        }
73
 
 
74
 
        if (! update_record('assignment_submissions', $submission)) {
75
 
            return false;
76
 
        }
77
 
 
78
 
        add_to_log($this->course->id, 'assignment', 'update grades', 
79
 
                   'submissions.php?id='.$this->assignment->id.'&user='.$feedback->userid, $feedback->userid, $this->cm->id);
80
 
        
 
66
        if (!$grading_info->items[0]->grades[$feedback->userid]->locked and
 
67
            !$grading_info->items[0]->grades[$feedback->userid]->overridden) {
 
68
 
 
69
            $submission->grade      = $feedback->grade;
 
70
            $submission->submissioncomment    = $feedback->submissioncomment;
 
71
            $submission->format     = $feedback->format;
 
72
            $submission->teacher    = $USER->id;
 
73
            $mailinfo = get_user_preferences('assignment_mailinfo', 0);
 
74
            if (!$mailinfo) {
 
75
                $submission->mailed = 1;       // treat as already mailed
 
76
            } else {
 
77
                $submission->mailed = 0;       // Make sure mail goes out (again, even)
 
78
            }
 
79
            $submission->timemarked = time();
 
80
 
 
81
            unset($submission->data1);  // Don't need to update this.
 
82
            unset($submission->data2);  // Don't need to update this.
 
83
 
 
84
            if (empty($submission->timemodified)) {   // eg for offline assignments
 
85
                $submission->timemodified = time();
 
86
            }
 
87
 
 
88
            if (! update_record('assignment_submissions', $submission)) {
 
89
                return false;
 
90
            }
 
91
 
 
92
            // triger grade event
 
93
            $this->update_grade($submission);
 
94
 
 
95
            add_to_log($this->course->id, 'assignment', 'update grades',
 
96
                       'submissions.php?id='.$this->assignment->id.'&user='.$feedback->userid, $feedback->userid, $this->cm->id);
 
97
        }
 
98
 
81
99
        return $submission;
82
100
 
83
101
    }