From 0d4d32d1834414cd5c73770dfb231f207415ecfb Mon Sep 17 00:00:00 2001 From: rkingdon Date: Mon, 13 Oct 2003 14:56:25 +0000 Subject: [PATCH] Workshop now has 6 phases. The phase is show on the Workshops page (index.php). Administration page now excludes "hot" assessments (peer assessments which have been allocated but not yet made). --- mod/workshop/index.php | 36 ++++++++---- mod/workshop/lib.php | 16 +++++- mod/workshop/view.php | 124 +++++++++++++++++++++++++---------------- 3 files changed, 115 insertions(+), 61 deletions(-) diff --git a/mod/workshop/index.php b/mod/workshop/index.php index 522041ba53..0d2e169481 100644 --- a/mod/workshop/index.php +++ b/mod/workshop/index.php @@ -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"); @@ -34,17 +35,32 @@ $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) { @@ -64,10 +80,10 @@ "($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); } } } @@ -82,10 +98,10 @@ $link = "coursemodule\">$workshop->name"; } 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); } } } diff --git a/mod/workshop/lib.php b/mod/workshop/lib.php index 9c7f2315c0..e15823bd6e 100644 --- a/mod/workshop/lib.php +++ b/mod/workshop/lib.php @@ -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)) { diff --git a/mod/workshop/view.php b/mod/workshop/view.php index 041d41a157..fbbf3b09f7 100644 --- a/mod/workshop/view.php +++ b/mod/workshop/view.php @@ -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 @@ -85,9 +87,10 @@ 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! @@ -95,8 +98,22 @@ } - /************** 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"); @@ -104,22 +121,42 @@ // 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)); } @@ -244,16 +281,16 @@ } - /****************** 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)); } @@ -263,25 +300,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') { @@ -313,11 +331,16 @@ $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 @@ -331,7 +354,7 @@ 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)... @@ -347,8 +370,8 @@ // 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)) { @@ -411,12 +434,14 @@ $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 @@ -449,6 +474,7 @@ case 2: // submissions and assessments case 3: + case 4: if ($workshop->ntassessments) { // if teacher example show student assessments link echo "

id&action=listungradedteachersubmissions\">". get_string("ungradedassessmentsofteachersubmissions", "workshop", @@ -468,7 +494,7 @@ 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 "

id&action=listungradedteachersubmissions\">". get_string("ungradedassessmentsofteachersubmissions", "workshop", @@ -490,7 +516,7 @@ get_string("calculationoffinalgrades", "workshop").""); break; - case 5: // show final grades + case 6: // show final grades print_heading("id&action=displayfinalgrades\">". get_string("displayoffinalgrades", "workshop").""); } -- 2.39.5