]> git.mjollnir.org Git - moodle.git/commitdiff
Some plays with submission, to do
authorDavid Mudrak <david.mudrak@gmail.com>
Mon, 4 Jan 2010 17:42:37 +0000 (17:42 +0000)
committerDavid Mudrak <david.mudrak@gmail.com>
Mon, 4 Jan 2010 17:42:37 +0000 (17:42 +0000)
mod/workshop/submission.php
mod/workshop/submission_form.php

index b4bd15c1d0419bf71546d8a046e3f903ba65e805..454d4db9b39adae14207bfd4424fe22ba5d02078 100644 (file)
@@ -26,6 +26,7 @@
 
 require_once(dirname(dirname(dirname(__FILE__))).'/config.php');
 require_once(dirname(__FILE__).'/lib.php');
+require_once(dirname(__FILE__).'/locallib.php');
 require_once(dirname(__FILE__).'/submission_form.php');
 
 $cmid = required_param('cmid', PARAM_INT);            // course module id
@@ -51,17 +52,21 @@ if (!$workshop = $DB->get_record('workshop', array('id' => $cm->instance))) {
     print_error('invalidid', 'workshop');
 }
 
-if ($id) { // if submission is specified
+if ($id) { // submission is specified
     if (!$submission = $DB->get_record('workshop_submissions', array('id' => $id, 'workshopid' => $workshop->id))) {
         print_error('invalidsubmissionid', 'workshop');
     }
     // todo check access rights
-
-} else { // new submission
-    //require_capability('mod/workshop:submit', $context);
-    $submission = new object();
-    $submission->id = null;
+    //require_capability('mod/workshop:submit', $context) or user has cap edit all submissions?
+
+} else { // no submission specified
+    //todo require_capability('mod/workshop:submit', $context);
+    if (!$submission = workshop_get_user_submission($workshop->id, $USER->id)) {
+        $submission = new object();
+        $submission->id = null;
+    } 
 }
+unset($id); // not needed anymore
 
 $maxfiles = $workshop->nattachments;
 $maxbytes = $workshop->maxbytes;
@@ -80,6 +85,7 @@ $mform = new workshop_submission_form(null, array('current' => $submission, 'cm'
                                                  'dataoptions' => $dataoptions, 'attachmentoptions'=>$attachmentoptions));
 
 if ($mform->is_cancelled()){
+    die();
     if ($id){
         redirect("view.php?id=$cm->id");
     } else {
@@ -104,21 +110,17 @@ if ($mform->is_cancelled()){
     $submission->datatrust          = 0;           // updated later
 
     if (empty($submission->id)) {
-        //new submission
         $submission->id = $DB->insert_record('workshop_submissions', $submission);
         // todo add to log
-
-    } else {
-        //existing submission
-        $DB->update_record('workshop_submissions', $submission);
-        // todo add to log
     }
 
     // save and relink embedded images and save attachments
-    $submission = file_postupdate_standard_editor($submission, 'data', $dataoptions, $context, 'workshop_submission', $submission->id);
-    $submission = file_postupdate_standard_filemanager($submission, 'attachment', $attachmentoptions, $context, 'workshop_attachment', $submission->id);
+    $submission = file_postupdate_standard_editor($submission, 'data', $dataoptions, $context, 
+                                                    'workshop_submission', $submission->id);
+    $submission = file_postupdate_standard_filemanager($submission, 'attachment', $attachmentoptions, $context, 
+                                                    'workshop_attachment', $submission->id);
 
-    // store the updated value values
+    // store the updated values or re-save the new submission
     $DB->update_record('workshop_submissions', $submission);
 
     redirect("view.php?id=$cm->id");
index 8991652d5e364cdca92e89a3d6bceb72bc62b89d..45be3e62b530bc29f0917be9bc664c4c58521fef 100644 (file)
@@ -49,8 +49,11 @@ class workshop_submission_form extends moodleform {
         $mform->addElement('editor', 'data_editor', get_string('submissiondata', 'workshop'), null, $dataoptions);
         $mform->setType('data_editor', PARAM_RAW);
 
-        $mform->addElement('filemanager', 'attachment_filemanager', get_string('submissionattachment', 'workshop'), 
-                            null, $attachmentoptions);
+        if ($workshop->nattachments > 0) {
+            $mform->addElement('static', 'filemanagerinfo', get_string('nattachments', 'workshop'), $workshop->nattachments);
+            $mform->addElement('filemanager', 'attachment_filemanager', get_string('submissionattachment', 'workshop'), 
+                                null, $attachmentoptions);
+        }
 
         $mform->addElement('hidden', 'id');
         $mform->addElement('hidden', 'cmid');