Some minor improvements, see Workshop Forum.
authorrkingdon <rkingdon>
Thu, 13 Nov 2003 16:22:27 +0000 (16:22 +0000)
committerrkingdon <rkingdon>
Thu, 13 Nov 2003 16:22:27 +0000 (16:22 +0000)
mod/workshop/assessments.php
mod/workshop/lib.php
mod/workshop/restorelib.php

index bbd402f9d1138862435c91de5b2fc615f688eeb1..501644be10791479f0e1193f0678e50ab4b2ab08 100644 (file)
                        }
                
                // there can be an assessment record (for teacher submissions), if there isn't...
-               if (!$assessment = workshop_get_submission_assessment($submission, $USER)) {
+               if (!get_record("workshop_assessments", "submissionid", $submission->id, "userid", $USER->id)) {
                        $yearfromnow = time() + 365 * 86400;
                        // ...create one and set timecreated way in the future, this is reset when record is updated
                        $assessment->workshopid = $workshop->id;
                <?PHP
 
                // now show the comment
-               echo "<TR valign=top>\n";\r
-               echo "  <TD align=right><P><B>". get_string("comment", "workshop").":</B></P></TD>\n";\r
-               echo "  <TD>\n";\r
+               echo "<TR valign=top>\n";
+               echo "  <TD align=right><P><B>". get_string("comment", "workshop").":</B></P></TD>\n";
+               echo "  <TD>\n";
                echo "          <textarea name=\"comments\" rows=5 cols=75 wrap=\"virtual\">\n";
                if (isset($comment->comments)) {
                        echo $comment->comments;
                        }
-               echo "      </textarea>\n";\r
+               echo "      </textarea>\n";
                echo "  </TD></TR></TABLE>\n";
                echo "<INPUT TYPE=submit VALUE=\"".get_string("savemycomment", "workshop")."\">\n";
                echo "</CENTER></FORM>\n";
                workshop_print_assessment($workshop, $assessment);
-               }\r
+               }
 
 
        /*********************** edit assessment elements (for teachers) ***********************/
                                $elements[$i]->weight = 11;
                                }
                        }
+        
                switch ($workshop->gradingstrategy) {
                        case 0: // no grading
                                for ($i=0; $i<$workshop->nelements; $i++) {
                                        $iplus1 = $i+1;
-                                       echo "<TR valign=top>\n";\r
-                                       echo "  <TD ALIGN=RIGHT><P><B>". get_string("element","workshop")." $iplus1:</B></TD>\n";\r
-                                       echo "<TD><textarea name=\"description[]\" rows=3 cols=75 wrap=\"virtual\">".$elements[$i]->description."</textarea>\n";\r
+                                       echo "<TR valign=top>\n";
+                                       echo "  <TD ALIGN=RIGHT><P><B>". get_string("element","workshop")." $iplus1:</B></TD>\n";
+                                       echo "<TD><textarea name=\"description[]\" rows=3 cols=75 wrap=\"virtual\">".$elements[$i]->description."</textarea>\n";
                                        echo "  </TD></TR>\n";
-                                       echo "<TR valign=top>\n";\r
-                                       echo "  <TD colspan=2 BGCOLOR=\"$THEME->cellheading2\">&nbsp;</TD>\n";\r
+                                       echo "<TR valign=top>\n";
+                                       echo "  <TD colspan=2 BGCOLOR=\"$THEME->cellheading2\">&nbsp;</TD>\n";
                                        echo "</TR>\n";
                                        }
                                break;
                                        }
                                for ($i=0; $i<$workshop->nelements; $i++) {
                                        $iplus1 = $i+1;
-                                       echo "<TR valign=top>\n";\r
-                                       echo "  <TD ALIGN=RIGHT><P><B>". get_string("element","workshop")." $iplus1:</B></TD>\n";\r
-                                       echo "<TD><textarea name=\"description[]\" rows=3 cols=75 wrap=\"virtual\">".$elements[$i]->description."</textarea>\n";\r
+                                       echo "<TR valign=top>\n";
+                                       echo "  <TD ALIGN=RIGHT><P><B>". get_string("element","workshop")." $iplus1:</B></TD>\n";
+                                       echo "<TD><textarea name=\"description[]\" rows=3 cols=75 wrap=\"virtual\">".$elements[$i]->description."</textarea>\n";
                                        echo "  </TD></TR>\n";
                                        echo "<TR valign=top>\n";
                                        echo "  <TD align=right><P><B>". get_string("typeofscale", "workshop"). ":</B></P></TD>\n";
                                        workshop_choose_from_menu($WORKSHOP_EWEIGHTS, "weight[]", $elements[$i]->weight, "");
                                        echo "          </TD>\n";
                                        echo "</TR>\n";
-                                       echo "<TR valign=top>\n";\r
-                                       echo "  <TD colspan=2 BGCOLOR=\"$THEME->cellheading2\">&nbsp;</TD>\n";\r
+                                       echo "<TR valign=top>\n";
+                                       echo "  <TD colspan=2 BGCOLOR=\"$THEME->cellheading2\">&nbsp;</TD>\n";
                                        echo "</TR>\n";
                                        }
                                break;
                        case 2: // error banded grading
                                for ($i=0; $i<$workshop->nelements; $i++) {
                                        $iplus1 = $i+1;
-                                       echo "<TR valign=top>\n";\r
-                                       echo "  <TD ALIGN=RIGHT><P><B>". get_string("element","workshop")." $iplus1:</B></TD>\n";\r
-                                       echo "<TD><textarea name=\"description[$i]\" rows=3 cols=75 wrap=\"virtual\">".$elements[$i]->description."</textarea>\n";\r
+                                       echo "<TR valign=top>\n";
+                                       echo "  <TD ALIGN=RIGHT><P><B>". get_string("element","workshop")." $iplus1:</B></TD>\n";
+                                       echo "<TD><textarea name=\"description[$i]\" rows=3 cols=75 wrap=\"virtual\">".$elements[$i]->description."</textarea>\n";
                                        echo "  </TD></TR>\n";
                                        if ($elements[$i]->weight == '') { // not set
                                                $elements[$i]->weight = 11; // unity
                                        workshop_choose_from_menu($WORKSHOP_EWEIGHTS, "weight[]", $elements[$i]->weight, "");
                                        echo "          </TD>\n";
                                        echo "</TR>\n";
-                                       echo "<TR valign=top>\n";\r
-                                       echo "  <TD colspan=2 BGCOLOR=\"$THEME->cellheading2\">&nbsp;</TD>\n";\r
+                                       echo "<TR valign=top>\n";
+                                       echo "  <TD colspan=2 BGCOLOR=\"$THEME->cellheading2\">&nbsp;</TD>\n";
                                        echo "</TR>\n";
                                        }
                                echo "</CENTER></TABLE><BR>\n";
                                echo "<CENTER><TABLE cellpadding=5 border=1><TR><TD ALIGN=\"CENTER\">".
                                        get_string("numberofnegativeresponses", "workshop");
                                echo "</TD><TD>". get_string("suggestedgrade", "workshop")."</TD></TR>\n";
-                               for ($j = 100; $j >= 0; $j--) {
+                               for ($j = $workshop->grade; $j >= 0; $j--) {
                                        $numbers[$j] = $j;
                                        }
                                for ($i=0; $i<=$workshop->nelements; $i++) {
                                        }
                                for ($i=0; $i<$workshop->nelements; $i++) {
                                        $iplus1 = $i+1;
-                                       echo "<TR valign=top>\n";\r
-                                       echo "  <TD ALIGN=RIGHT><P><B>". get_string("criterion","workshop")." $iplus1:</B></TD>\n";\r
-                                       echo "<TD><textarea name=\"description[$i]\" rows=3 cols=75 wrap=\"virtual\">".$elements[$i]->description."</textarea>\n";\r
+                                       echo "<TR valign=top>\n";
+                                       echo "  <TD ALIGN=RIGHT><P><B>". get_string("criterion","workshop")." $iplus1:</B></TD>\n";
+                                       echo "<TD><textarea name=\"description[$i]\" rows=3 cols=75 wrap=\"virtual\">".$elements[$i]->description."</textarea>\n";
                                        echo "  </TD></TR>\n";
                                        echo "<TR><TD><B>". get_string("suggestedgrade", "workshop").":</B></TD><TD>\n";
                                        choose_from_menu($numbers, "maxscore[$i]", $elements[$i]->maxscore, "");
                                        echo "</TD></TR>\n";
-                                       echo "<TR valign=top>\n";\r
-                                       echo "  <TD colspan=2 BGCOLOR=\"$THEME->cellheading2\">&nbsp;</TD>\n";\r
+                                       echo "<TR valign=top>\n";
+                                       echo "  <TD colspan=2 BGCOLOR=\"$THEME->cellheading2\">&nbsp;</TD>\n";
                                        echo "</TR>\n";
                                        }
                                break;
                                        }
                                for ($i=0; $i<$workshop->nelements; $i++) {
                                        $iplus1 = $i+1;
-                                       echo "<TR valign=top>\n";\r
+                                       echo "<TR valign=top>\n";
                                        echo "  <TD ALIGN=RIGHT><P><B>". get_string("element","workshop")." $iplus1:</B></TD>\n";\r
                                        echo "<TD><textarea name=\"description[$i]\" rows=3 cols=75 wrap=\"virtual\">".$elements[$i]->description."</textarea>\n";\r
                                        echo "  </TD></TR>\n";
                <?PHP
 
                // now get the teacher's comment
-               echo "<TR valign=top>\n";\r
+               echo "<TR valign=top>\n";
                echo "  <TD align=right><P><B>". get_string("teacherscomment", "workshop").":</B></P></TD>\n";\r
                echo "  <TD>\n";\r
                echo "          <textarea name=\"teachercomment\" rows=5 cols=75 wrap=\"virtual\">\n";
 
                if (!isteacher($course->id)) {
                        error("Only teachers can look at this page");
-                       }
+               }
 
                $form = (object)$HTTP_POST_VARS;
                
                                                $element->elementno = $key;
                                                if (!$element->id = insert_record("workshop_elements", $element)) {
                                                        error("Could not insert workshop element!");
-                                                       }
                                                }
                                        }
+                               }
                                break;
                                
                        case 1: // accumulative grading
                                                                                                                break;
                                                                case 'selection' :      $element->maxscore = $WORKSHOP_SCALES[$form->scale[$key]]['size'];
                                                                                                                break;
-                                                               }
                                                        }
+                                               }
                                                if (isset($form->weight[$key])) {
                                                        $element->weight = $form->weight[$key];
-                                                       }
+                                               }
                                                if (!$element->id = insert_record("workshop_elements", $element)) {
                                                        error("Could not insert workshop element!");
-                                                       }
                                                }
                                        }
+                               }
                                break;
                                
                        case 2: // error banded grading...
                                        $element->maxscore = $themaxscore;
                                        if (isset($form->description[$key])) {
                                                $element->description   = $form->description[$key];
-                                               }
+                                       }
                                        if (isset($form->weight[$key])) {
                                                $element->weight = $form->weight[$key];
-                                               }
+                                       }
                                        if (!$element->id = insert_record("workshop_elements", $element)) {
                                                error("Could not insert workshop element!");
-                                               }
                                        }
+                               }
                                break;
                                
                        case 4: // ...and criteria grading
                                        for ($j=0;$j<5;$j++) {
                                                if (empty($form->rubric[$key][$j]))
                                                        break;
-                                               }
+                                       }
                                        $element->maxscore = $j - 1;
                                        if (!$element->id = insert_record("workshop_elements", $element)) {
                                                error("Could not insert workshop element!");
-                                               }
                                        }
+                               }
                                // let's not fool around here, dump the junk!
                                delete_records("workshop_rubrics", "workshopid", $workshop->id);
                                for ($i=0;$i<$workshop->nelements;$i++) {
                                                unset($element);
                                                if (empty($form->rubric[$i][$j])) {  // OK to have an element with fewer than 5 items
                                                         break;
-                                                        }
+                                                }
                                                $element->workshopid = $workshop->id;
                                                $element->elementno = $i;
                                                $element->rubricno = $j;
                                                $element->description   = $form->rubric[$i][$j];
                                                if (!$element->id = insert_record("workshop_rubrics", $element)) {
                                                        error("Could not insert workshop element!");
-                                                       }
                                                }
                                        }
+                               }
                                break;
-                       } // end of switch
+               } // end of switch
 
-               echo "<P>\n";
-               notice_yesno(get_string("amendassessmentelements","workshop")." ".get_string("again"), 
-                       "assessments.php?id=$cm->id&action=editelements", "view.php?id=$cm->id");
-               }
+               redirect("view.php?id=$cm->id", get_string("savedok","workshop"));
+       }
 
 
        /*********************** list assessments for grading (Student submissions)(by teachers)***********************/
                                if (!$element->id = insert_record("workshop_grades", $element)) {
                                        error("Could not insert workshop element!");
                                }
-                               $grade = ($elements[intval($error + 0.5)]->maxscore + $form->grade[$i]) * 
-                    $workshop->grade / 100;
+                               $grade = ($elements[intval($error + 0.5)]->maxscore + $form->grade[$i]);
                                echo "<P><B>".get_string("weightederrorcount", "workshop", intval($error + 0.5))."</B>\n";
                                break;
                        
                // show grade if grading strategy is not zero
                if ($workshop->gradingstrategy) {
                        redirect($returnto, get_string("thegradeis", "workshop").": ".number_format($grade, 2).
-                    "% (".get_string("maximumgrade")." ".number_format($workshop->grade)."%)");
+                    " (".get_string("maximumgrade")." ".number_format($workshop->grade).")");
                }
                else {
                        redirect($returnto);
index adcd0325152086f4c8f9292b931ea603796d020e..c2ea3023f64ba4ddf284fca221ea33a117c75a22 100644 (file)
@@ -97,7 +97,13 @@ function workshop_cron () {
         foreach ($assessments as $assessment) {
 
                        echo "Processing workshop assessment $assessment->id\n";
-                       if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
+            
+            // only process the entry once
+                       if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
+                               echo "Could not update the mailed field for id $assessment->id\n";
+                       }
+                       
+            if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
                                echo "Could not find submission $assessment->submissionid\n";
                                continue;
                        }
@@ -129,7 +135,10 @@ function workshop_cron () {
                         $assessmentowner->id)) {
                                continue;  // Not an active participant
                        }
-       
+            // don't sent self assessment
+               if ($submissionowner->id == $assessmentowner->id) {
+                continue;
+            }
                        $strworkshops = get_string("modulenameplural", "workshop");
                        $strworkshop  = get_string("modulename", "workshop");
        
@@ -139,11 +148,11 @@ function workshop_cron () {
                        // "Your assignment \"$submission->title\" has been assessed by"
                        if (isstudent($course->id, $assessmentowner->id)) {
                                $msg = get_string("mail1", "workshop", $submission->title)." a $course->student.\n";
-                               }
+                       }
                        else {
                                $msg = get_string("mail1", "workshop", $submission->title).
                     " $assessmentowner->firstname $assessmentowner->lastname.\n";
-                               }
+                       }
                        // "The comments and grade can be seen in the workshop assignment '$workshop->name'
                        $msg .= get_string("mail2", "workshop", $workshop->name)."\n\n";
        
@@ -156,31 +165,28 @@ function workshop_cron () {
                        $posttext .= "   $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
                        $posttext .= "---------------------------------------------------------------------\n";
                        if ($sendto->mailformat == 1) {  // HTML
-                               $posthtml = "<P><FONT FACE=sans-serif>".
-                         "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
-                         "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
-                         "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
-                         $posthtml .= "<HR><FONT FACE=sans-serif>";
-                         $posthtml .= "<P>$msg</P>";
-                         $posthtml .= "<P>".get_string("mail3", "workshop").
-                                 " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
+                           $posthtml = "<P><FONT FACE=sans-serif>".
+                               "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
+                               "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
+                               "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
+                           $posthtml .= "<HR><FONT FACE=sans-serif>";
+                           $posthtml .= "<P>$msg</P>";
+                           $posthtml .= "<P>".get_string("mail3", "workshop").
+                                   " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
                        } else {
-                         $posthtml = "";
+                           $posthtml = "";
                        }
        
                        if (!$teacher = get_teacher($course->id)) {
                                echo "Error: can not find teacher for course $course->id!\n";
-                               }
+                       }
                                
                        if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
                                echo "Error: workshop cron: Could not send out mail for id $submission->id to 
                     user $sendto->id ($sendto->email)\n";
-                               }
-                       if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
-                               echo "Could not update the mailed field for id $assessment->id\n";
-                               }
                        }
                }
+       }
                
        // look for new assessments of resubmissions
        if ($assessments = workshop_get_unmailed_resubmissions($cutofftime)) {
@@ -189,7 +195,13 @@ function workshop_cron () {
         foreach ($assessments as $assessment) {
 
                        echo "Processing workshop assessment $assessment->id\n";
-                       if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
+            
+            // only process the entry once
+                       if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
+                               echo "Could not update the mailed field for id $assessment->id\n";
+                       }
+                       
+            if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
                                echo "Could not find submission $assessment->submissionid\n";
                                continue;
                        }
@@ -263,9 +275,6 @@ function workshop_cron () {
                                echo "Error: workshop cron: Could not send out mail for id $submission->id to 
                     user $sendto->id ($sendto->email)\n";
                        }
-                       if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
-                               echo "Could not update the mailed field for id $assessment->id\n";
-                       }
                }
        }
        
@@ -276,7 +285,13 @@ function workshop_cron () {
         foreach ($comments as $comment) {
 
                        echo "Processing workshop comment $comment->id\n";
-                       if (! $assessment = get_record("workshop_assessments", "id", "$comment->assessmentid")) {
+            
+            // only process the entry once
+                       if (! set_field("workshop_comments", "mailed", "1", "id", "$comment->id")) {
+                               echo "Could not update the mailed field for comment id $comment->id\n";
+                       }
+                       
+            if (! $assessment = get_record("workshop_assessments", "id", "$comment->assessmentid")) {
                                echo "Could not find assessment $comment->assessmentid\n";
                                continue;
                        }
@@ -361,9 +376,6 @@ function workshop_cron () {
                                        echo "Error: workshop cron: Could not send out mail for id $submission->id to user 
                         $sendto->id ($sendto->email)\n";
                                        }
-                               if (! set_field("workshop_comments", "mailed", "1", "id", "$comment->id")) {
-                                       echo "Could not update the mailed field for comment id $comment->id\n";
-                                       }
                                }
                        // see if the assessor needs to to told
                        if ($comment->userid != $assessment->userid) {
@@ -425,6 +437,11 @@ function workshop_cron () {
         foreach ($assessments as $assessment) {
 
             echo "Processing workshop assessment $assessment->id (graded)\n";
+            
+            // only process the entry once
+            if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
+                echo "Could not update the mailed field for id $assessment->id\n";
+            }
 
                        if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
                 echo "Could not find submission $assessment->submissionid\n";
@@ -500,9 +517,6 @@ function workshop_cron () {
                 echo "Error: workshop cron: Could not send out mail for id $submission->id to user 
                     $sendto->id ($sendto->email)\n";
             }
-            if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
-                echo "Could not update the mailed field for id $assessment->id\n";
-            }
         }
     }
 
@@ -1541,8 +1555,11 @@ function workshop_get_student_submissions($workshop, $order = "title") {
 
 //////////////////////////////////////////////////////////////////////////////////////
 function workshop_get_submission_assessment($submission, $user) {
-       // Return the user's assessment for this submission
-       return get_record("workshop_assessments", "submissionid", $submission->id, "userid", $user->id);
+       // Return the user's assessment for this submission (cold or warm, not hot)
+    
+    $timenow = time();
+       return get_record_select("workshop_assessments", "submissionid = $submission->id AND 
+            userid = $user->id AND timecreated < $timenow");
 }
 
 
@@ -2046,6 +2063,7 @@ function workshop_list_student_submissions($workshop, $user) {
        // of assessments are show first
        global $CFG;
        
+    $timenow = time();
        if (! $course = get_record("course", "id", $workshop->course)) {
         error("Course is misconfigured");
         }
@@ -2066,8 +2084,12 @@ function workshop_list_student_submissions($workshop, $user) {
        if ($nassessed < $workshop->nsassessments) {
                // count the number of assessments for each student submission
                if ($submissions = workshop_get_student_submissions($workshop)) {
-                       srand ((float)microtime()*1000000); // initialise random number generator
+                       // srand ((float)microtime()*1000000); // now done automatically in PHP 4.2.0->
                        foreach ($submissions as $submission) {
+                // process only cold submissions
+                if (($submission->timecreated + $CFG->maxeditingtime) > $timenow) {
+                    continue;
+                }
                                $n = count_records("workshop_assessments", "submissionid", $submission->id);
                                // ...OK to have zero, we add a small random number to randomise things
                                $nassessments[$submission->id] = $n + rand(0, 98) / 100;
@@ -2085,7 +2107,8 @@ function workshop_list_student_submissions($workshop, $user) {
                                        // skip submission if it belongs to this user
                                        if ($submission->userid != $user->id) {
                                                // add a "hot" assessment record if user has NOT already assessed this submission
-                                               if (!$assessment = workshop_get_submission_assessment($submission, $user)) {
+                                               if (!get_record("workshop_assessments", "submissionid", $submission->id, "userid",
+                                    $user->id)) {
                                                        $yearfromnow = time() + 365 * 86400;
                                                        // ...create one and set timecreated way in the future, this is reset when record is updated
                                                        $assessment->workshopid = $workshop->id;
@@ -2246,7 +2269,7 @@ function workshop_list_submissions_for_admin($workshop, $order) {
                                        $title .= $submission->title;
                                        // test for allocated assesments which have not been done
                                        if ($assessment->timecreated < $timenow) {
-                                               $title .= " {".number_format($assessment->grade, 0)."%";
+                                               $title .= " {".number_format($assessment->grade, 0);
                                        }
                                        else { // assessment record created but user has not yet assessed this submission
                                                $title .= " {-";
@@ -2406,7 +2429,8 @@ function workshop_list_teacher_submissions($workshop, $user) {
                        foreach ($nassessments as $submissionid => $n) { // break out of loop when we allocated enough assessments...
                                $submission = get_record("workshop_submissions", "id", $submissionid);
                                // ... provided the user has NOT already assessed that submission...
-                               if (!$assessment = workshop_get_submission_assessment($submission, $user)) {
+                               if (!get_record("workshop_assessments", "submissionid", $submission->id, "userid",
+                                    $user->id)) {
                                        $yearfromnow = time() + 365 * 86400;
                                        // ...create one and set timecreated way in the future, this is reset when record is updated
                                        $assessment->workshopid = $workshop->id;
@@ -2723,8 +2747,8 @@ function workshop_print_assessment($workshop, $assessment = false, $allowchanges
                        
                // only show the grade if grading strategy > 0 and the grade is positive
                if ($showgrades and $assessment->grade >= 0) { 
-                       echo "<CENTER><B>".get_string("thegradeis", "workshop").": ".number_format($assessment->grade, 2)."% (".
-                               get_string("maximumgrade")." ".number_format($workshop->grade, 0)."%)</B></CENTER><BR CLEAR=ALL>\n";
+                       echo "<CENTER><B>".get_string("thegradeis", "workshop").": ".number_format($assessment->grade, 2)." (".
+                               get_string("maximumgrade")." ".number_format($workshop->grade, 0).")</B></CENTER><BR CLEAR=ALL>\n";
                        }
                }
                
@@ -2986,7 +3010,8 @@ function workshop_print_assessment($workshop, $assessment = false, $allowchanges
                                        }
                                }
                        echo "</TABLE></CENTER>\n";
-                       echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD>".get_string("adjustment", "workshop")."</TD><TD>\n";
+                       echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD><b>".get_string("optionaladjustment", 
+                    "workshop")."</b></TD><TD>\n";
                        unset($numbers);
                        for ($j = 20; $j >= -20; $j--) {
                                $numbers[$j] = $j;
@@ -3027,7 +3052,8 @@ function workshop_print_assessment($workshop, $assessment = false, $allowchanges
                                echo "<TD align=center>{$elements[$i]->maxscore}</TD></TR>\n";
                                }
                        echo "</TABLE></CENTER>\n";
-                       echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD>".get_string("adjustment", "workshop")."</TD><TD>\n";
+                       echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD><b>".get_string("optionaladjustment", 
+                    "workshop")."</b></TD><TD>\n";
                        unset($numbers);
                        for ($j = 20; $j >= -20; $j--) {
                                $numbers[$j] = $j;
@@ -3102,7 +3128,15 @@ function workshop_print_assessment($workshop, $assessment = false, $allowchanges
        
        // now get the general comment (present in all types)
        echo "<tr valign=\"top\">\n";
-       echo "  <td align=\"right\"><P><B>". get_string("generalcomment", "workshop").":</B></P></TD>\n";
+       switch ($workshop->gradingstrategy) {
+               case 0:
+               case 1:
+               case 4 : // no grading, accumulative and rubic
+                       echo "  <td align=\"right\"><P><B>". get_string("generalcomment", "workshop").":</B></P></TD>\n";
+                       break; 
+               default : 
+                       echo "  <td align=\"right\"><P><B>". get_string("reasonforadjustment", "workshop").":</B></P></TD>\n";
+               }
        echo "  <td>\n";
        if ($allowchanges) {
                echo "          <textarea name=\"generalcomment\" rows=5 cols=75 wrap=\"virtual\">\n";
@@ -3354,7 +3388,7 @@ function workshop_print_submission_assessments($workshop, $submission, $type) {
                                foreach ($assessments as $assessment) {
                                        if (isteacher($workshop->course, $assessment->userid)) {
                                                $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">[";
-                                               $str .= number_format($assessment->grade, 0)."%";
+                                               $str .= number_format($assessment->grade, 0);
                                                if ($assessment->gradinggrade) { // funny, teacher is grading self!
                                                        $str .= "/".number_format($assessment->gradinggrade*100/COMMENTSCALE, 0)."%";
                                                        }
@@ -3369,7 +3403,7 @@ function workshop_print_submission_assessments($workshop, $submission, $type) {
                                foreach ($assessments as $assessment) {
                                        if (isstudent($workshop->course, $assessment->userid)) {
                                                $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">{";
-                                               $str .= number_format($assessment->grade, 0)."%";
+                                               $str .= number_format($assessment->grade, 0);
                                                if ($assessment->gradinggrade) {
                                                        $str .= "/".number_format($assessment->gradinggrade*100/COMMENTSCALE, 0)."%";
                                                        }
index f1b7c9427974099a470e5aa8bda931102e0cc5c4..a5af6b73f040bb3b336c5473e5a43356996e973d 100644 (file)
 
         $status = true;
 
-        //Get the workshop_rubrics array
-        $rubrics = $info['#']['RUBRICS']['0']['#']['RUBRIC'];
-
-        //Iterate over workshop_rubrics
-        for($i = 0; $i < sizeof($rubrics); $i++) {
-            $rub_info = $rubrics[$i];
-            //traverse_xmlize($rub_info);                                                                 //Debug
-            //print_object ($GLOBALS['traverse_array']);                                                  //Debug
-            //$GLOBALS['traverse_array']="";                                                              //Debug
-
-            //Now, build the WORKSHOP_RUBRICS record structure
-            $rubric->workshopid = $workshop_id;
-            $rubric->elementno = $elementno;
-            $rubric->rubricno = backup_todb($rub_info['#']['RUBRICNO']['0']['#']);
-            $rubric->description = backup_todb($rub_info['#']['DESCRIPTION']['0']['#']);
-
-            //The structure is equal to the db, so insert the workshop_rubrics
-            $newid = insert_record ("workshop_rubrics",$rubric);
-
-            //Do some output
-            if (($i+1) % 10 == 0) {
-                echo ".";
-                if (($i+1) % 200 == 0) {
-                    echo "<br>";
+        //Get the workshop_rubrics array (optional)
+        if (isset($info['#']['RUBRICS']['0']['#']['RUBRIC'])) {
+            $rubrics = $info['#']['RUBRICS']['0']['#']['RUBRIC'];
+
+            //Iterate over workshop_rubrics
+            for($i = 0; $i < sizeof($rubrics); $i++) {
+                $rub_info = $rubrics[$i];
+                //traverse_xmlize($rub_info);                             //Debug
+                //print_object ($GLOBALS['traverse_array']);              //Debug
+                //$GLOBALS['traverse_array']="";                          //Debug
+
+                //Now, build the WORKSHOP_RUBRICS record structure
+                $rubric->workshopid = $workshop_id;
+                $rubric->elementno = $elementno;
+                $rubric->rubricno = backup_todb($rub_info['#']['RUBRICNO']['0']['#']);
+                $rubric->description = backup_todb($rub_info['#']['DESCRIPTION']['0']['#']);
+
+                //The structure is equal to the db, so insert the workshop_rubrics
+                $newid = insert_record ("workshop_rubrics",$rubric);
+
+                //Do some output
+                if (($i+1) % 10 == 0) {
+                    echo ".";
+                    if (($i+1) % 200 == 0) {
+                        echo "<br>";
+                    }
+                    backup_flush(300);
                 }
-                backup_flush(300);
-            }
 
-            if (!$newid) {
-                $status = false;
+                if (!$newid) {
+                    $status = false;
+                }
             }
         }
         return $status;
         //Iterate over submissions
         for($i = 0; $i < sizeof($submissions); $i++) {
             $sub_info = $submissions[$i];
-            //traverse_xmlize($sub_info);                                                                 //Debug
-            //print_object ($GLOBALS['traverse_array']);                                                  //Debug
-            //$GLOBALS['traverse_array']="";                                                              //Debug
+            //traverse_xmlize($sub_info);                                     //Debug
+            //print_object ($GLOBALS['traverse_array']);                      //Debug
+            //$GLOBALS['traverse_array']="";                                  //Debug
 
             //We'll need this later!!
             $oldid = backup_todb($sub_info['#']['ID']['0']['#']);
 
         $status = true;
 
-        //Get the comments array
-        $comments = $info['#']['COMMENTS']['0']['#']['COMMENT'];
-
-        //Iterate over comments
-        for($i = 0; $i < sizeof($comments); $i++) {
-            $com_info = $comments[$i];
-            //traverse_xmlize($com_info);                                                                 //Debug
-            //print_object ($GLOBALS['traverse_array']);                                                  //Debug
-            //$GLOBALS['traverse_array']="";                                                              //Debug
-
-            //We'll need this later!!
-            $olduserid = backup_todb($com_info['#']['USERID']['0']['#']);
-
-            //Now, build the WORKSHOP_COMMENTS record structure
-            $comment->workshopid = $new_workshop_id;
-            $comment->assessmentid = $new_assessment_id;
-            $comment->userid = backup_todb($com_info['#']['USERID']['0']['#']);
-            $comment->timecreated = backup_todb($com_info['#']['TIMECREATED']['0']['#']);
-            $comment->mailed = backup_todb($com_info['#']['MAILED']['0']['#']);
-            $comment->comments = backup_todb($com_info['#']['COMMENT_TEXT']['0']['#']);
-
-            //We have to recode the userid field
-            $user = backup_getid($restore->backup_unique_code,"user",$olduserid);
-            if ($user) {
-                $comment->userid = $user->new_id;
-            }
+        //Get the comments array (optional)
+        if (isset($info['#']['COMMENTS']['0']['#']['COMMENT'])) {
+            $comments = $info['#']['COMMENTS']['0']['#']['COMMENT'];
+
+            //Iterate over comments
+            for($i = 0; $i < sizeof($comments); $i++) {
+                $com_info = $comments[$i];
+                //traverse_xmlize($com_info);                            //Debug
+                //print_object ($GLOBALS['traverse_array']);             //Debug
+                //$GLOBALS['traverse_array']="";                         //Debug
+
+                //We'll need this later!!
+                $olduserid = backup_todb($com_info['#']['USERID']['0']['#']);
+
+                //Now, build the WORKSHOP_COMMENTS record structure
+                $comment->workshopid = $new_workshop_id;
+                $comment->assessmentid = $new_assessment_id;
+                $comment->userid = backup_todb($com_info['#']['USERID']['0']['#']);
+                $comment->timecreated = backup_todb($com_info['#']['TIMECREATED']['0']['#']);
+                $comment->mailed = backup_todb($com_info['#']['MAILED']['0']['#']);
+                $comment->comments = backup_todb($com_info['#']['COMMENT_TEXT']['0']['#']);
+
+                //We have to recode the userid field
+                $user = backup_getid($restore->backup_unique_code,"user",$olduserid);
+                if ($user) {
+                    $comment->userid = $user->new_id;
+                }
 
-            //The structure is equal to the db, so insert the workshop_comment
-            $newid = insert_record ("workshop_comments",$comment);
+                //The structure is equal to the db, so insert the workshop_comment
+                $newid = insert_record ("workshop_comments",$comment);
 
-            //Do some output
-            if (($i+1) % 50 == 0) {
-                echo ".";
-                if (($i+1) % 1000 == 0) {
-                    echo "<br>";
+                //Do some output
+                if (($i+1) % 50 == 0) {
+                    echo ".";
+                    if (($i+1) % 1000 == 0) {
+                        echo "<br>";
+                    }
+                    backup_flush(300);
                 }
-                backup_flush(300);
-            }
 
-            if (!$newid) {
-                $status = false;
+                if (!$newid) {
+                    $status = false;
+                }
             }
         }
 
 
         $status = true;
 
-        //Get the grades array
-        $grades = $info['#']['GRADES']['0']['#']['GRADE'];
-
-        //Iterate over grades
-        for($i = 0; $i < sizeof($grades); $i++) {
-            $gra_info = $grades[$i];
-            //traverse_xmlize($gra_info);                                                                 //Debug
-            //print_object ($GLOBALS['traverse_array']);                                                  //Debug
-            //$GLOBALS['traverse_array']="";                                                              //Debug
-
-            //Now, build the WORKSHOP_GRADES record structure
-            $grade->workshopid = $new_workshop_id;
-            $grade->assessmentid = $new_assessment_id;
-            $grade->elementno = backup_todb($gra_info['#']['ELEMENTNO']['0']['#']);
-            $grade->feedback = backup_todb($gra_info['#']['FEEDBACK']['0']['#']);
-            $grade->grade = backup_todb($gra_info['#']['GRADE_VALUE']['0']['#']);
-
-            //The structure is equal to the db, so insert the workshop_grade
-            $newid = insert_record ("workshop_grades",$grade);
-
-            //Do some output
-            if (($i+1) % 50 == 0) {
-                echo ".";
-                if (($i+1) % 1000 == 0) {
-                    echo "<br>";
+        //Get the grades array (optional)
+        if (isset($info['#']['GRADES']['0']['#']['GRADE'])) {
+            $grades = $info['#']['GRADES']['0']['#']['GRADE'];
+
+            //Iterate over grades
+            for($i = 0; $i < sizeof($grades); $i++) {
+                $gra_info = $grades[$i];
+                //traverse_xmlize($gra_info);                             //Debug
+                //print_object ($GLOBALS['traverse_array']);              //Debug
+                //$GLOBALS['traverse_array']="";                          //Debug
+
+                //Now, build the WORKSHOP_GRADES record structure
+                $grade->workshopid = $new_workshop_id;
+                $grade->assessmentid = $new_assessment_id;
+                $grade->elementno = backup_todb($gra_info['#']['ELEMENTNO']['0']['#']);
+                $grade->feedback = backup_todb($gra_info['#']['FEEDBACK']['0']['#']);
+                $grade->grade = backup_todb($gra_info['#']['GRADE_VALUE']['0']['#']);
+
+                //The structure is equal to the db, so insert the workshop_grade
+                $newid = insert_record ("workshop_grades",$grade);
+
+                //Do some output
+                if (($i+1) % 50 == 0) {
+                    echo ".";
+                    if (($i+1) % 1000 == 0) {
+                        echo "<br>";
+                    }
+                    backup_flush(300);
                 }
-                backup_flush(300);
-            }
 
-            if (!$newid) {
-                $status = false;
+                if (!$newid) {
+                    $status = false;
+                }
             }
         }