]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-9657 advanced upload assignment draft tracking now available as activity setting...
authorskodak <skodak>
Mon, 25 Feb 2008 13:34:17 +0000 (13:34 +0000)
committerskodak <skodak>
Mon, 25 Feb 2008 13:34:17 +0000 (13:34 +0000)
lang/en_utf8/assignment.php
lang/en_utf8/help/assignment/trackdrafts.html [new file with mode: 0644]
mod/assignment/db/upgrade.php
mod/assignment/type/upload/assignment.class.php
mod/assignment/version.php

index 69233bea2a5b9be335d2b4d27d14f435190636da..c55d018ffdb7d38566a5bec5ccea4ae9679d55e1 100644 (file)
@@ -117,6 +117,7 @@ $string['submitedformarking'] = 'Assignment was already submitted for marking an
 $string['submitformarking'] = 'Final submission for assignment marking';
 $string['submitted'] = 'Submitted';
 $string['submittedfiles'] = 'Submitted files';
+$string['trackdrafts'] = 'Enable Send for marking';
 $string['typeoffline'] = 'Offline activity';
 $string['typeonline'] = 'Online text';
 $string['typeupload'] = 'Advanced uploading of files';
diff --git a/lang/en_utf8/help/assignment/trackdrafts.html b/lang/en_utf8/help/assignment/trackdrafts.html
new file mode 100644 (file)
index 0000000..f8663c5
--- /dev/null
@@ -0,0 +1,3 @@
+<h1>Enable Send for marking</h1>
+
+<p>Send for marking button allows students to indicate that they finished working on assignment. Teacher may also prevent further submission or revert to draft.</p>
index a5b8101213ada305bd974c607b1859b5cb7b7a93..e49afc3759622a5cb48f877f280408589d5bddb4 100644 (file)
@@ -49,6 +49,12 @@ function xmldb_assignment_upgrade($oldversion=0) {
         $result = $result && change_field_notnull($table, $field);
     }
 
+    if ($result && $oldversion < 2007091902) {
+        // add draft tracking default to existing upload assignments
+        $sql = "UPDATE {$CFG->prefix}assignment SET var4=1 WHERE assignmenttype='upload'";
+        $result = execute_sql($sql);
+    }
+
     return $result;
 }
 
index 3d02b463a7dc5d6bd20db9929379efc4b1ee7db0..40d6aeae6bb5d10d5e84cb11644f202e803b96f9 100644 (file)
@@ -42,7 +42,7 @@ class assignment_upload extends assignment_base {
 
             $this->view_feedback();
 
-            if (!$this->isopen() or $this->is_finalized($submission)) {
+            if (!$this->drafts_tracked() or !$this->isopen() or $this->is_finalized($submission)) {
                 print_heading(get_string('submission', 'assignment'), '', 3);
             } else {
                 print_heading(get_string('submissiondraft', 'assignment'), '', 3);
@@ -202,7 +202,7 @@ class assignment_upload extends assignment_base {
         } else if (!$this->isopen()) {
             print_heading(get_string('nomoresubmissions','assignment'), '', 3);
 
-        } else if ($state = $this->is_finalized($submission)) {
+        } else if ($this->drafts_tracked() and $state = $this->is_finalized($submission)) {
             if ($state == ASSIGNMENT_STATUS_SUBMITTED) {
                 print_heading(get_string('submitedformarking','assignment'), '', 3);
             } else {
@@ -272,7 +272,7 @@ class assignment_upload extends assignment_base {
         $output = '';
 
         if ($basedir = $this->file_area($userid)) {
-            if ($this->isopen() and !$this->is_finalized($submission)) {
+            if ($this->drafts_tracked() and $this->isopen() and !$this->is_finalized($submission)) {
                 $output .= '<strong>'.get_string('draft', 'assignment').':</strong> ';
             }
 
@@ -327,7 +327,7 @@ class assignment_upload extends assignment_base {
         $candelete = $this->can_delete_files($submission);
         $strdelete   = get_string('delete');
 
-        if ($this->isopen() and !$this->is_finalized($submission) and !empty($mode)) {                 // only during grading
+        if ($this->drafts_tracked() and $this->isopen() and !$this->is_finalized($submission) and !empty($mode)) {                 // only during grading
             $output .= '<strong>'.get_string('draft', 'assignment').':</strong><br />';
         }
 
@@ -860,13 +860,20 @@ class assignment_upload extends assignment_base {
         }
     }
 
+    function drafts_tracked() {
+        return !empty($this->assignment->var4);
+    }
+
     /**
      * Returns submission status
      * @param object $submission - may be empty
      * @return string submission state - empty, ASSIGNMENT_STATUS_SUBMITTED or ASSIGNMENT_STATUS_CLOSED
      */
     function is_finalized($submission) {
-        if (empty($submission)) {
+        if (!$this->drafts_tracked()) {
+            return '';
+
+        } else if (empty($submission)) {
             return '';
 
         } else if ($submission->data2 == ASSIGNMENT_STATUS_SUBMITTED or $submission->data2 == ASSIGNMENT_STATUS_CLOSED) {
@@ -878,6 +885,9 @@ class assignment_upload extends assignment_base {
     }
 
     function can_unfinalize($submission) {
+        if (!$this->drafts_tracked()) {
+            return false;
+        }
         if (has_capability('mod/assignment:grade', $this->context)
           and $this->isopen()
           and $this->is_finalized($submission)) {
@@ -889,6 +899,9 @@ class assignment_upload extends assignment_base {
 
     function can_finalize($submission) {
         global $USER;
+        if (!$this->drafts_tracked()) {
+            return false;
+        }
 
                if ($this->is_finalized($submission)) {
                    return false;
@@ -995,6 +1008,9 @@ class assignment_upload extends assignment_base {
         $mform->setHelpButton('emailteachers', array('emailteachers', get_string('emailteachers', 'assignment'), 'assignment'));
         $mform->setDefault('emailteachers', 0);
 
+        $mform->addElement('select', 'var4', get_string("trackdrafts", "assignment"), $ynoptions);
+        $mform->setHelpButton('var4', array('trackdrafts', get_string('trackdrafts', 'assignment'), 'assignment'));
+        $mform->setDefault('trackdrafts', 1);
 
     }
 
index b0cee508b06c4b6852004800a37849ef2557ada6..7e899d744d315e825a4b3c25e5417c763322f7fb 100644 (file)
@@ -5,7 +5,7 @@
 //  This fragment is called by /admin/index.php
 ////////////////////////////////////////////////////////////////////////////////
 
-$module->version  = 2007091900;
+$module->version  = 2007091902;
 $module->requires = 2007101000;  // Requires this Moodle version
 $module->cron     = 60;