]> git.mjollnir.org Git - moodle.git/commitdiff
Workshop now has 6 phases. The phase is show on the Workshops page (index.php).
authorrkingdon <rkingdon>
Mon, 13 Oct 2003 14:56:25 +0000 (14:56 +0000)
committerrkingdon <rkingdon>
Mon, 13 Oct 2003 14:56:25 +0000 (14:56 +0000)
Administration page now excludes "hot" assessments (peer assessments which have been allocated but not yet made).

mod/workshop/index.php
mod/workshop/lib.php
mod/workshop/view.php

index 522041ba537b6cc2c187533ddd499cd1a9247325..0d2e1694813f767fbc7a867e1b27730c77552c55 100644 (file)
@@ -21,6 +21,7 @@
     $strweek = get_string("week");
     $strtopic = get_string("topic");
     $strname = get_string("name");
+    $strphase = get_string("phase", "workshop");
     $strdeadline = get_string("deadline", "workshop");
        $strsubmitted = get_string("submitted", "assignment");
 
     $timenow = time();
 
     if ($course->format == "weeks") {
-        $table->head  = array ($strweek, $strname, $strsubmitted, $strdeadline);
-        $table->align = array ("CENTER", "LEFT", "LEFT", "LEFT");
+        $table->head  = array ($strweek, $strname, $strphase, $strsubmitted, $strdeadline);
+        $table->align = array ("CENTER", "LEFT", "LEFT", "LEFT", "LEFT");
     } elseif ($course->format == "topics") {
-        $table->head  = array ($strtopic, $strname, $strsubmitted, $strdeadline);
-        $table->align = array ("CENTER", "LEFT", "LEFT", "LEFT");
+        $table->head  = array ($strtopic, $strname, $strphase, $strsubmitted, $strdeadline);
+        $table->align = array ("CENTER", "LEFT", "left", "LEFT", "LEFT");
     } else {
-        $table->head  = array ($strname, $strsubmitted, $strdeadline);
-        $table->align = array ("LEFT", "LEFT", "LEFT");
+        $table->head  = array ($strname, $strphase, $strsubmitted, $strdeadline);
+        $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
     }
 
     foreach ($workshops as $workshop) {
+        switch ($workshop->phase) {
+            case 0:
+            case 1: $phase = get_string("phase1short", "workshop");
+                    break;
+            case 2: $phase = get_string("phase2short", "workshop");
+                    break;
+            case 3: $phase = get_string("phase3short", "workshop");
+                    break;
+            case 4: $phase = get_string("phase4short", "workshop");
+                    break;
+            case 5: $phase = get_string("phase5short", "workshop");
+                    break;
+            case 6: $phase = get_string("phase6short", "workshop");
+                    break;
+        }
         if ($submissions = workshop_get_user_submissions($workshop, $USER)) {
                        foreach ($submissions as $submission) {
                                if ($submission->timecreated <= $workshop->deadline) {
                                            "($submission->title)";
                 }
                                if ($course->format == "weeks" or $course->format == "topics") {
-                                       $table->data[] = array ($workshop->section, $link, $submitted, $due);
+                                       $table->data[] = array ($workshop->section, $link, $phase, $submitted, $due);
                        } 
                                else {
-                               $table->data[] = array ($link, $submitted, $due);
+                               $table->data[] = array ($link, $phase, $submitted, $due);
                                }
                        }
                }
                 $link = "<A HREF=\"view.php?id=$workshop->coursemodule\">$workshop->name</A>";
             }
                        if ($course->format == "weeks" or $course->format == "topics") {
-                               $table->data[] = array ($workshop->section, $link, $submitted, $due);
+                               $table->data[] = array ($workshop->section, $link, $phase, $submitted, $due);
                        } 
                        else {
-                               $table->data[] = array ($link, $submitted, $due);
+                               $table->data[] = array ($link, $phase, $submitted, $due);
                        }
                }
        }
index 9c7f2315c031b8b1aa9155638b8299c441cf542f..e15823bd6e279a62e5cf26ff14c51d09e5512bb8 100644 (file)
@@ -1686,12 +1686,23 @@ function workshop_get_unmailed_resubmissions($cutofftime) {
 
 //////////////////////////////////////////////////////////////////////////////////////
 function workshop_get_user_assessments($workshop, $user) {
-       // Return all the  user's assessments, newest first, oldest last
+// Return all the  user's assessments, newest first, oldest last (hot, warm and cold ones)
        return get_records_select("workshop_assessments", "workshopid = $workshop->id AND userid = $user->id", 
                                "timecreated DESC");
 }
 
 
+//////////////////////////////////////////////////////////////////////////////////////
+function workshop_get_user_assessments_done($workshop, $user) {
+// Return all the  user's assessments, newest first, oldest last (warm and cold ones only)
+// ignores maxeditingtime
+    $timenow = time();
+       return get_records_select("workshop_assessments", "workshopid = $workshop->id AND userid = $user->id
+                AND timecreated < $timenow", 
+                               "timecreated DESC");
+}
+
+
 //////////////////////////////////////////////////////////////////////////////////////
 function workshop_get_user_submissions($workshop, $user) {
        // return real submissions of user newest first, oldest last. Ignores the dummy submissions
@@ -2220,7 +2231,8 @@ function workshop_list_submissions_for_admin($workshop, $order) {
                $table->cellpadding = 2;
                $table->cellspacing = 0;
                foreach ($users as $user) {
-                       if ($assessments = workshop_get_user_assessments($workshop, $user)) {
+            // list the assessments which have been done (exclude the hot ones)
+                       if ($assessments = workshop_get_user_assessments_done($workshop, $user)) {
                                $title ='';
                                foreach ($assessments as $assessment) {
                                        if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
index 041d41a1578254dc723bccffff8a64f867c9ac80..fbbf3b09f7f7d2af9bd6b1b74c786fcde87e7088 100644 (file)
@@ -3,10 +3,12 @@
 /*************************************************
        ACTIONS handled are:
 
-       close workshop( for teachers)
+       allowassessments (for teachers)
+    allowboth (for teachers)
+    allowsubmissions (for teachers)
+    close workshop( for teachers)
        displayfinalgrade (for students)
        notavailable (for students)
-       open workshop (for teachers)
        setupassignment (for teachers)
        studentsview
        submitassignment 
                        case 0 :
                        case 1 : $action = 'notavailable'; break;
                        case 2 :
-                       case 3: $action = 'studentsview'; break;
-                       case 4 : $action = 'notavailable'; break;
-                       case 5 : $action = 'displayfinalgrade';
+                       case 3 :
+                       case 4 : $action = 'studentsview'; break;
+                       case 5 : $action = 'notavailable'; break;
+                       case 6 : $action = 'displayfinalgrade';
                }
        }
        else { // it's a guest, oh no!
        }
        
        
-       /************** allow peer assessments (move to phase 3) (for teachers)**/
-       if ($action == 'allowpeerassessments') {
+       /************** allow (peer) assessments only (move to phase 4) (for teachers)**/
+       if ($action == 'allowassessments') {
+
+               if (!isteacher($course->id)) {
+                       error("Only teachers can look at this page");
+               }
+
+               // move to phase 4
+               set_field("workshop", "phase", 4, "id", "$workshop->id");
+               add_to_log($course->id, "workshop", "assessments only", "view.php?id=$cm->id", "$workshop->id");
+               redirect("view.php?a=$workshop->id", get_string("movingtophase", "workshop", 4));
+       }
+       
+
+       /************** allow both (submissions and assessments) (move to phase 3) (for teachers)**/
+       if ($action == 'allowboth') {
 
                if (!isteacher($course->id)) {
                        error("Only teachers can look at this page");
 
                // move to phase 3
                set_field("workshop", "phase", 3, "id", "$workshop->id");
-               add_to_log($course->id, "workshop", "assessments", "view.php?id=$cm->id", "$workshop->id");
+               add_to_log($course->id, "workshop", "allow both", "view.php?id=$cm->id", "$workshop->id");
                redirect("view.php?a=$workshop->id", get_string("movingtophase", "workshop", 3));
        }
        
 
-       /****************** close workshop for student assessments/submissions (move to phase 4) (for teachers)**/
+       /************** allow submissions only (move to phase 2) (for teachers)**/
+       if ($action == 'allowsubmissions') {
+
+               if (!isteacher($course->id)) {
+                       error("Only teachers can look at this page");
+               }
+
+        // move to phase 2, check that teacher has made enough submissions
+               if (workshop_count_teacher_submissions($workshop) < $workshop->ntassessments) {
+                       redirect("view.php?id=$cm->id", get_string("notenoughexamplessubmitted", "workshop", 
+                        $course->teacher));
+               }
+               else {
+                       set_field("workshop", "phase", 2, "id", "$workshop->id");
+                       add_to_log($course->id, "workshop", "submissions", "view.php?id=$cm->id", "$workshop->id");
+                       redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 2));
+               }
+       }
+       
+
+       /****************** close workshop for student assessments/submissions (move to phase 5) (for teachers)**/
        elseif ($action == 'closeworkshop') {
 
                if (!isteacher($course->id)) {
                        error("Only teachers can look at this page");
                }
 
-               // move to phase 4
-               set_field("workshop", "phase", 4, "id", "$workshop->id");
+               // move to phase 5
+               set_field("workshop", "phase", 5, "id", "$workshop->id");
                add_to_log($course->id, "workshop", "close", "view.php?id=$cm->id", "$workshop->id");
-               redirect("view.php?a=$workshop->id", get_string("movingtophase", "workshop", 4));
+               redirect("view.php?a=$workshop->id", get_string("movingtophase", "workshop", 5));
        }
        
 
        }
 
 
-       /****************** make final grades available (for teachers only)**************/
+       /****************** make final grades available (go to phase 6) (for teachers only)********/
        elseif ($action == 'makefinalgradesavailable') {
 
                if (!isteacher($course->id)) {
                        error("Only teachers can look at this page");
                }
 
-               set_field("workshop", "phase", 5, "id", "$workshop->id");
-               add_to_log($course->id, "workshop", "display", "view.php?id=$cm->id", "$workshop->id");
-               redirect("view.php?a=$workshop->id", get_string("movingtophase", "workshop", 5));
+               set_field("workshop", "phase", 6, "id", "$workshop->id");
+               add_to_log($course->id, "workshop", "display grades", "view.php?id=$cm->id", "$workshop->id");
+               redirect("view.php?a=$workshop->id", get_string("movingtophase", "workshop", 6));
        }
        
        
        }
 
 
-       /****************** open workshop for student assessments (move to phase 2) (for teachers)**/
-       elseif ($action == 'openworkshop') {
-
-               if (!isteacher($course->id)) {
-                       error("Only teachers can look at this page");
-               }
-
-               // move to phase 2, check that teacher has made enough submissions
-               if (workshop_count_teacher_submissions($workshop) < $workshop->ntassessments) {
-                       redirect("view.php?id=$cm->id", get_string("notenoughexamplessubmitted", "workshop", $course->teacher));
-               }
-               else {
-                       set_field("workshop", "phase", 2, "id", "$workshop->id");
-                       add_to_log($course->id, "workshop", "submissions", "view.php?id=$cm->id", "$workshop->id");
-                       redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 2));
-               }
-       }
-
-
        /****************** set up assignment (move back to phase 1) (for teachers)***********************/
        elseif ($action == 'setupassignment') {
 
                             $course->teacher));
                                workshop_list_teacher_submissions($workshop, $USER);
                        }
+            // has user submitted anything yet? (only allowed in phases 2 and 3)
                        if (!workshop_get_user_submissions($workshop, $USER)) {
-                               // print upload form
-                               print_heading(get_string("submitassignmentusingform", "workshop").":");
-                               workshop_print_upload_form($workshop);
-                               }
+                               if ($workshop->phase < 4) {
+                    // print upload form
+                                   print_heading(get_string("submitassignmentusingform", "workshop").":");
+                                   workshop_print_upload_form($workshop);
+                               } else {
+                    print_heading(get_string("submissionsnolongerallowed", "workshop"));
+                }
+            }   
                        // in stage 3? - grade other student's submissions, resubmit and list all submissions
                        else {
                                // list any assessments by teachers
                                        workshop_list_self_assessments($workshop, $USER);
                                }
                                // if peer assessments are being done and workshop is in phase 3 then show some  to assess...
-                               if ($workshop->nsassessments and ($workshop->phase == 3)) {  
+                               if ($workshop->nsassessments and ($workshop->phase > 2)) {  
                                        workshop_list_student_submissions($workshop, $USER);
                                }
                                // ..and any they have already done (and have gone cold)...
                                // list previous submissions
                                print_heading(get_string("submissions", "workshop"));
                                workshop_list_user_submissions($workshop, $USER);
-                               // are resubmissions allowed?
-                if ($workshop->resubmit) {
+                               // are resubmissions allowed and the workshop is in submission phases (2 and 3)?
+                if ($workshop->resubmit and ($workshop->phase < 4)) {
                                        // see if there are any cold (warm included as well) assessments of the last submission
                     // if there are then print upload form
                     if ($submissions = workshop_get_user_submissions($workshop, $USER)) {
                
                $tabs->names = array("1. ".get_string("phase1", "workshop"), 
                         "2. ".get_string("phase2", "workshop", $course->student), 
-                                   "3. ".get_string("phase3", "workshop"), 
-                        "4. ".get_string("phase4", "workshop"), 
-                        "5. ".get_string("phase5", "workshop"));
+                                   "3. ".get_string("phase3", "workshop", $course->student), 
+                        "4. ".get_string("phase4", "workshop", $course->student), 
+                        "5. ".get_string("phase5", "workshop"),
+                        "6. ".get_string("phase6", "workshop"));
                $tabs->urls = array("view.php?id=$cm->id&action=setupassignment", 
-                       "view.php?id=$cm->id&action=openworkshop",
-                       "view.php?id=$cm->id&action=allowpeerassessments",
+                       "view.php?id=$cm->id&action=allowsubmissions",
+                       "view.php?id=$cm->id&action=allowboth",
+                       "view.php?id=$cm->id&action=allowassessments",
                        "view.php?id=$cm->id&action=closeworkshop",
                        "view.php?id=$cm->id&action=makefinalgradesavailable");
                if ($workshop->phase) { // phase 1 or more
                                        
                                case 2: // submissions and assessments
                                case 3:
+                case 4:
                                        if ($workshop->ntassessments) { // if teacher example show student assessments link
                                                echo "<p><b><a href=\"assessments.php?id=$cm->id&action=listungradedteachersubmissions\">".
                                                  get_string("ungradedassessmentsofteachersubmissions", "workshop", 
                             get_string("studentsubmissionsforassessment", "workshop"), "workshop");
                                        break;
                                        
-                               case 4: // calculate final grades
+                               case 5: // calculate final grades
                                        if ($workshop->ntassessments) { // if teacher example show student assessments link
                                                echo "<p><b><a href=\"assessments.php?id=$cm->id&action=listungradedteachersubmissions\">".
                                                  get_string("ungradedassessmentsofteachersubmissions", "workshop", 
                                                  get_string("calculationoffinalgrades", "workshop")."</a>");
                                        break;
                                        
-                               case 5: // show final grades
+                               case 6: // show final grades
                                        print_heading("<A HREF=\"submissions.php?id=$cm->id&action=displayfinalgrades\">".
                                                  get_string("displayoffinalgrades", "workshop")."</A>");
                }