$string['assessment'] = 'Assessment';
$string['assessmentby'] = 'Assessment by $a';
$string['assessmentdropped'] = 'Assessment Dropped';
+$string['assessmentend'] = 'End of assessments';
+$string['assessmentendevent'] = 'End of assessments for $a';
$string['assessmentgrade'] = 'Assessment Grade: $a';
$string['assessmentnotyetagreed'] = 'Assessment not yet agreed';
$string['assessmentnotyetgraded'] = 'Assessment not yet graded';
$string['assessmentsdone'] = 'Assessments Done';
$string['assessmentsexcluded'] = 'Number of Assessments excluded for this $a';
$string['assessmentsmustbeagreed'] = 'Assessments must be agreed';
+$string['assessmentstart'] = 'Start of assessments';
+$string['assessmentstartevent'] = 'Start of assessments for $a';
$string['assessmentwasagreedon'] = 'Assessment was agreed on $a';
$string['assessor'] = 'Assessor';
$string['assessthissubmission'] = 'Assess this submission';
$string['correct'] = 'Correct';
$string['count'] = 'Count';
$string['criterion'] = 'Criterion';
-$string['deadline'] = 'Deadline';
-$string['deadlineis'] = 'The Deadline is $a';
+$string['currentphase'] = 'Current phase';
+$string['deadline'] = 'Deadline for submission';
+$string['deadlineis'] = 'The Deadline for submission is $a';
$string['delete'] = 'Delete';
$string['deleting'] = 'Deleting';
$string['description'] = 'Description';
$string['hidenamesfromstudents'] = 'Hide Names from $a';
$string['includeteachersgrade'] = 'Include Teacher\'s Grade';
$string['incorrect'] = 'Incorrect';
+$string['info'] = 'Info';
+$string['invaliddates'] = 'The dates you have entered are not possible.<br />Use the browser\'s Back button to return to the form and correct the dates.';
$string['iteration'] = 'Iteration $a completed';
$string['lax'] = "Lax";
$string['leaguetable'] = 'League Table of Submitted Work';
$string['noattachments'] = 'No Attachments';
$string['nosubmission'] = 'No Submission';
$string['nosubmissionsavailableforassessment'] = 'No Submissions available for assessment';
+$string['notallowed'] = 'You are not allowed on this page at this time';
$string['notavailable'] = 'Not Available';
$string['notenoughexamplessubmitted'] = 'Not enough Examples submitted.';
$string['noteonassessmentelements'] = 'Note that grading is broken down into a number of \'Assessment Elements\'.<br />
- This makes the grading easier and more consistent. As teacher you must add these <br />
- Elements before making the assignment available to students. This is done by<br />
- clicking on the assignment in the course, if no elements are present you will be asked<br />
- to add them. You can change the number of elements using the Edit Assignment screen,<br />
- the elements themselves can be amended from the "Managing Assessment" screen. ';
+ This makes the grading easier and more consistent. As teacher you must add these <br />
+ Elements before making the assignment available to students. This is done by<br />
+ clicking on the assignment in the course, if no elements are present you will be asked<br />
+ to add them. You can change the number of elements using the Edit Assignment screen,<br />
+ the elements themselves can be amended from the "Managing Assessment" screen. ';
$string['noteonstudentassessments'] = '{Grade from Student / Grading Grade for Assessment}';
$string['notgraded'] = 'Not Graded';
$string['notitle'] = 'No Title';
$string['passwordprotectedworkshop'] = "Password Protected Workshop";
$string['percentageofassessments'] = 'Percentage of Assessments to Drop';
$string['phase'] = 'Phase';
+$string['phase0'] = 'Inactive';
+$string['phase0short'] = 'Inactive';
$string['phase1'] = 'Set Up Assignment';
$string['phase1short'] = 'Set Up';
$string['phase2'] = 'Allow $a Submissions';
$string['studentsubmissions'] = '$a Submissions';
$string['studentsubmissionsforassessment'] = '$a Student Submissions for Assessment';
$string['submission'] = 'Submission';
+$string['submissionend'] = 'End of submissions';
+$string['submissionendevent'] = 'End of submissions for $a';
$string['submissions'] = 'Submissions';
$string['submissionsnolongerallowed'] = 'Submissions no longer allowed';
+$string['submissionstart'] = 'Start of submissions';
+$string['submissionstartevent'] = 'Start of submissions for $a';
$string['submissionsused'] = '$a Submissions used in this table';
$string['submitassignment'] = 'Submit Assignment';
$string['submitassignmentusingform'] = 'Submit your Assignment using this Form';
/*************************************************
ACTIONS handled are:
- addcomment
- addstockcomment
+ addcomment
+ addstockcomment
adminconfirmdelete
- admindelete
- adminlist
- agreeassessment
- assesssubmission
- displaygradingform
- editcomment
- editelements (teachers only)
+ admindelete
+ adminlist
+ agreeassessment
+ assesssubmission
+ displaygradingform
+ editcomment
+ editelements (teachers only)
gradeallassessments (teachers only)
- gradeassessment (teachers only)
- insertcomment
- insertelements (for teachers)
- listungradedstudentsubmissions (for teachers)
- listungradedteachersubmissions (for teachers)
- listteachersubmissions
+ gradeassessment (teachers only)
+ insertcomment
+ insertelements (for teachers)
+ listungradedstudentsubmissions (for teachers)
+ listungradedteachersubmissions (for teachers)
+ listteachersubmissions
regradestudentassessments (for teachers)
- updateassessment
- updatecomment
- updategrading
- userconfirmdelete
- userdelete
- viewassessment
+ updateassessment
+ updatecomment
+ updategrading
+ userconfirmdelete
+ userdelete
+ viewassessment
************************************************/
require("lib.php");
require("locallib.php");
- require_variable($id); // Course Module ID
+ require_variable($id); // Course Module ID
// get some useful stuff...
if (! $cm = get_record("course_modules", "id", $id)) {
<a href=\"view.php?id=$cm->id\">$workshop->name</a> -> $strassessments",
"", "", true);
- //...get the action
- require_variable($action);
-
-
- /*************** add comment to assessment (by author, assessor or teacher) ***************************/
- if ($action == 'addcomment') {
-
- print_heading_with_help(get_string("addacomment", "workshop"), "addingacomment", "workshop");
- // get assessment record
- if (!$assessmentid = $_REQUEST['aid']) { // comes from link or hidden form variable
- error("Assessment id not given");
- }
- $assessment = get_record("workshop_assessments", "id", $assessmentid);
- if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
- error("Submission not found");
- }
- ?>
- <form name="commentform" action="assessments.php" method="post">
- <input type="hidden" name="action" value="insertcomment" />
- <input type="hidden" name="id" value="<?php echo $cm->id ?>" />
- <input type="hidden" name="aid" value="<?php echo $_REQUEST['aid'] ?>" />
- <center>
- <table cellpadding="5" border="1">
- <?php
-
- // now get the comment
- echo "<tr valign=\"top\">\n";
-
- echo " <td align=\"right\"><b>". get_string("comment", "workshop").":</b></td>\n";
-
- echo " <td>\n";
-
- echo " <textarea name=\"comments\" rows=\"5\" cols=\"75\">\n";
- echo "</textarea>\n";
-
- echo " </td></tr></table>\n";
- echo "<input type=\"submit\" value=\"".get_string("savemycomment", "workshop")."\" />\n";
- echo "</center></form>\n";
- echo "<center><b>".get_string("assessment", "workshop"). "</b></center>\n";
- workshop_print_assessment($workshop, $assessment);
- }
+ //...get the action
+ require_variable($action);
+
+
+ /*************** add comment to assessment (by author, assessor or teacher) ***************************/
+ if ($action == 'addcomment') {
+
+ print_heading_with_help(get_string("addacomment", "workshop"), "addingacomment", "workshop");
+ // get assessment record
+ if (!$assessmentid = $_REQUEST['aid']) { // comes from link or hidden form variable
+ error("Assessment id not given");
+ }
+ $assessment = get_record("workshop_assessments", "id", $assessmentid);
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error("Submission not found");
+ }
+ ?>
+ <form name="commentform" action="assessments.php" method="post">
+ <input type="hidden" name="action" value="insertcomment" />
+ <input type="hidden" name="id" value="<?php echo $cm->id ?>" />
+ <input type="hidden" name="aid" value="<?php echo $_REQUEST['aid'] ?>" />
+ <center>
+ <table cellpadding="5" border="1">
+ <?php
+
+ // now get the comment
+ echo "<tr valign=\"top\">\n";
+
+ echo " <td align=\"right\"><b>". get_string("comment", "workshop").":</b></td>\n";
+
+ echo " <td>\n";
+
+ echo " <textarea name=\"comments\" rows=\"5\" cols=\"75\">\n";
+ echo "</textarea>\n";
+
+ echo " </td></tr></table>\n";
+ echo "<input type=\"submit\" value=\"".get_string("savemycomment", "workshop")."\" />\n";
+ echo "</center></form>\n";
+ echo "<center><b>".get_string("assessment", "workshop"). "</b></center>\n";
+ workshop_print_assessment($workshop, $assessment);
+ }
require_variable($elementno);
if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
+ error("Only teachers can look at this page");
+ }
if (!$assessment = get_record("workshop_assessments", "id", $aid)) {
error("workshop assessment is misconfigured");
}
- $form = data_submitted("nomatch"); // probably always come from the same page, change this statement
+ $form = data_submitted("nomatch"); // probably always come from the same page, change this statement
// store the comment in the stock comments table
if ($elementno == 99) { // it's the general comment
$form->feedback_99 = $form->generalcomment;
}
- $comment->workshopid = $workshop->id;
- $comment->elementno = $elementno;
- $comment->comments = $form->{"feedback_$elementno"};
+ $comment->workshopid = $workshop->id;
+ $comment->elementno = $elementno;
+ $comment->comments = $form->{"feedback_$elementno"};
if (!(trim($comment->comments))) {
// no comment given - just redisplay assessment form
workshop_print_assessment($workshop, $assessment, true, true, $form->returnto);
exit();
}
- if (!$element->id = insert_record("workshop_stockcomments", $comment)) {
- error("Could not insert comment into comment bank");
- }
+ if (!$element->id = insert_record("workshop_stockcomments", $comment)) {
+ error("Could not insert comment into comment bank");
+ }
// now upate the assessment (just the elements, the assessment itself is not updated)
$timenow = time();
// don't fiddle about, delete all the old and add the new!
- delete_records("workshop_grades", "assessmentid", $assessment->id);
-
-
- //determine what kind of grading we have
- switch ($workshop->gradingstrategy) {
- case 0: // no grading
- // Insert all the elements that contain something
- for ($i = 0; $i < $workshop->nelements; $i++) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->feedback = $form->{"feedback_$i"};
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- $grade = 0; // set to satisfy save to db
- break;
-
- case 1: // accumulative grading
- // Insert all the elements that contain something
- foreach ($form->grade as $key => $thegrade) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $key;
- $element->feedback = $form->{"feedback_$key"};
- $element->grade = $thegrade;
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- // now work out the grade...
- $rawgrade=0;
- $totalweight=0;
- foreach ($form->grade as $key => $grade) {
- $maxscore = $elements[$key]->maxscore;
- $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
- if ($weight > 0) {
- $totalweight += $weight;
- }
- $rawgrade += ($grade / $maxscore) * $weight;
- // echo "\$key, \$maxscore, \$weight, \$totalweight, \$grade, \$rawgrade : $key, $maxscore, $weight, $totalweight, $grade, $rawgrade<br />";
- }
- $grade = 100.0 * ($rawgrade / $totalweight);
- break;
-
- case 2: // error banded graded
- // Insert all the elements that contain something
- $error = 0.0;
- for ($i =0; $i < $workshop->nelements; $i++) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->feedback = $form->{"feedback_$i"};
- $element->grade = $form->grade[$i];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- if (empty($form->grade[$i])){
- $error += $WORKSHOP_EWEIGHTS[$elements[$i]->weight];
- }
- }
- // now save the adjustment
- unset($element);
- $i = $workshop->nelements;
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->grade = $form->grade[$i];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- $grade = ($elements[intval($error + 0.5)]->maxscore + $form->grade[$i]) * 100 / $workshop->grade;
+ delete_records("workshop_grades", "assessmentid", $assessment->id);
+
+
+ //determine what kind of grading we have
+ switch ($workshop->gradingstrategy) {
+ case 0: // no grading
+ // Insert all the elements that contain something
+ for ($i = 0; $i < $workshop->nelements; $i++) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->feedback = $form->{"feedback_$i"};
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ $grade = 0; // set to satisfy save to db
+ break;
+
+ case 1: // accumulative grading
+ // Insert all the elements that contain something
+ foreach ($form->grade as $key => $thegrade) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $key;
+ $element->feedback = $form->{"feedback_$key"};
+ $element->grade = $thegrade;
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ // now work out the grade...
+ $rawgrade=0;
+ $totalweight=0;
+ foreach ($form->grade as $key => $grade) {
+ $maxscore = $elements[$key]->maxscore;
+ $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
+ if ($weight > 0) {
+ $totalweight += $weight;
+ }
+ $rawgrade += ($grade / $maxscore) * $weight;
+ // echo "\$key, \$maxscore, \$weight, \$totalweight, \$grade, \$rawgrade : $key, $maxscore, $weight, $totalweight, $grade, $rawgrade<br />";
+ }
+ $grade = 100.0 * ($rawgrade / $totalweight);
+ break;
+
+ case 2: // error banded graded
+ // Insert all the elements that contain something
+ $error = 0.0;
+ for ($i =0; $i < $workshop->nelements; $i++) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->feedback = $form->{"feedback_$i"};
+ $element->grade = $form->grade[$i];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ if (empty($form->grade[$i])){
+ $error += $WORKSHOP_EWEIGHTS[$elements[$i]->weight];
+ }
+ }
+ // now save the adjustment
+ unset($element);
+ $i = $workshop->nelements;
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->grade = $form->grade[$i];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ $grade = ($elements[intval($error + 0.5)]->maxscore + $form->grade[$i]) * 100 / $workshop->grade;
// do sanity check
if ($grade < 0) {
$grade = 0;
} elseif ($grade > 100) {
$grade = 100;
}
- echo "<b>".get_string("weightederrorcount", "workshop", intval($error + 0.5))."</b>\n";
- break;
-
- case 3: // criteria grading
- // save in the selected criteria value in element zero,
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = 0;
- $element->grade = $form->grade[0];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- // now save the adjustment in element one
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = 1;
- $element->grade = $form->grade[1];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- $grade = ($elements[$form->grade[0]]->maxscore + $form->grade[1]);
- break;
-
- case 4: // rubric grading (identical to accumulative grading)
- // Insert all the elements that contain something
- foreach ($form->grade as $key => $thegrade) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $key;
- $element->feedback = $form->{"feedback_$key"};
- $element->grade = $thegrade;
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- // now work out the grade...
- $rawgrade=0;
- $totalweight=0;
- foreach ($form->grade as $key => $grade) {
- $maxscore = $elements[$key]->maxscore;
- $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
- if ($weight > 0) {
- $totalweight += $weight;
- }
- $rawgrade += ($grade / $maxscore) * $weight;
- }
- $grade = 100.0 * ($rawgrade / $totalweight);
- break;
-
- } // end of switch
-
+ echo "<b>".get_string("weightederrorcount", "workshop", intval($error + 0.5))."</b>\n";
+ break;
+
+ case 3: // criteria grading
+ // save in the selected criteria value in element zero,
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = 0;
+ $element->grade = $form->grade[0];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ // now save the adjustment in element one
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = 1;
+ $element->grade = $form->grade[1];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ $grade = ($elements[$form->grade[0]]->maxscore + $form->grade[1]);
+ break;
+
+ case 4: // rubric grading (identical to accumulative grading)
+ // Insert all the elements that contain something
+ foreach ($form->grade as $key => $thegrade) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $key;
+ $element->feedback = $form->{"feedback_$key"};
+ $element->grade = $thegrade;
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ // now work out the grade...
+ $rawgrade=0;
+ $totalweight=0;
+ foreach ($form->grade as $key => $grade) {
+ $maxscore = $elements[$key]->maxscore;
+ $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
+ if ($weight > 0) {
+ $totalweight += $weight;
+ }
+ $rawgrade += ($grade / $maxscore) * $weight;
+ }
+ $grade = 100.0 * ($rawgrade / $totalweight);
+ break;
+
+ } // end of switch
+
// any comment?
- if (!empty($form->generalcomment)) { // update the object (no need to update the db record)
+ if (!empty($form->generalcomment)) { // update the object (no need to update the db record)
$assessment->generalcomment = $form->generalcomment;
- }
-
+ }
+
// redisplay form, going back to original returnto address
workshop_print_assessment($workshop, $assessment, true, true, $form->returnto);
}
- /******************* admin confirm delete ************************************/
- elseif ($action == 'adminconfirmdelete' ) {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
- if (empty($_GET['aid'])) {
- error("Admin confirm delete: assessment id missing");
- }
-
- notice_yesno(get_string("confirmdeletionofthisitem","workshop", get_string("assessment", "workshop")),
- "assessments.php?action=admindelete&id=$cm->id&aid=$_GET[aid]", "submissions.php?action=adminlist&id=$cm->id");
- }
-
-
- /******************* admin delete ************************************/
- elseif ($action == 'admindelete' ) {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
- if (empty($_GET['aid'])) {
- error("Admin delete: submission id missing");
- }
-
- print_string("deleting", "workshop");
- // first delete all the associated records...
- delete_records("workshop_comments", "assessmentid", $_GET['aid']);
- delete_records("workshop_grades", "assessmentid", $_GET['aid']);
- // ...now delete the assessment...
- delete_records("workshop_assessments", "id", $_GET['aid']);
-
- print_continue("submissions.php?id=$cm->id&action=adminlist");
- }
-
-
- /*********************** admin list of asssessments (of a submission) (by teachers)**************/
- elseif ($action == 'adminlist') {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
-
- if (empty($_GET['sid'])) {
- error ("Workshop asssessments: adminlist called with no sid");
- }
- $submission = get_record("workshop_submissions", "id", $_GET['sid']);
- workshop_print_assessments_for_admin($workshop, $submission);
- print_continue("submissions.php?action=adminlist&id=$cm->id");
- }
-
-
- /*********************** admin list of asssessments by a student (used by teachers only )******************/
- elseif ($action == 'adminlistbystudent') {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
-
- if (empty($_GET['userid'])) {
- error ("Workshop asssessments: adminlistbystudent called with no userid");
- }
- $user = get_record("user", "id", $_GET['userid']);
- workshop_print_assessments_by_user_for_admin($workshop, $user);
- print_continue("submissions.php?action=adminlist&id=$cm->id");
- }
-
-
- /*************** agree (to) assessment (by student) ***************************/
- elseif ($action == 'agreeassessment') {
- $timenow = time();
- // assessment id comes from link or hidden form variable
- if (!$assessment = get_record("workshop_assessments", "id", $_REQUEST['aid'])) {
- error("Assessment : agree assessment failed");
- }
- //save time of agreement
- set_field("workshop_assessments", "timeagreed", $timenow, "id", $assessment->id);
- echo "<centre><b>".get_string("savedok", "workshop")."</b></center><br />\n";
-
- add_to_log($course->id, "workshop", "agree", "assessments.php?action=viewassessment&id=$cm->id&aid=$assessment->id", "$assessment->id");
- print_continue("view.php?id=$cm->id");
- }
-
-
-
- /*************** Assess submission (by teacher or student) ***************************/
- elseif ($action == 'assesssubmission') {
-
- require_variable($sid);
-
- optional_variable($allowcomments);
- if (!isset($allowcomments)) {
- $allowcomments = false;
- }
-
- if (! $submission = get_record("workshop_submissions", "id", $sid)) {
- error("Assess submission is misconfigured - no submission record!");
- }
+ /******************* admin confirm delete ************************************/
+ elseif ($action == 'adminconfirmdelete' ) {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+ if (empty($_GET['aid'])) {
+ error("Admin confirm delete: assessment id missing");
+ }
+
+ notice_yesno(get_string("confirmdeletionofthisitem","workshop", get_string("assessment", "workshop")),
+ "assessments.php?action=admindelete&id=$cm->id&aid=$_GET[aid]", "submissions.php?action=adminlist&id=$cm->id");
+ }
+
+
+ /******************* admin delete ************************************/
+ elseif ($action == 'admindelete' ) {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+ if (empty($_GET['aid'])) {
+ error("Admin delete: submission id missing");
+ }
+
+ print_string("deleting", "workshop");
+ // first delete all the associated records...
+ delete_records("workshop_comments", "assessmentid", $_GET['aid']);
+ delete_records("workshop_grades", "assessmentid", $_GET['aid']);
+ // ...now delete the assessment...
+ delete_records("workshop_assessments", "id", $_GET['aid']);
+
+ print_continue("submissions.php?id=$cm->id&action=adminlist");
+ }
+
+
+ /*********************** admin list of asssessments (of a submission) (by teachers)**************/
+ elseif ($action == 'adminlist') {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+
+ if (empty($_GET['sid'])) {
+ error ("Workshop asssessments: adminlist called with no sid");
+ }
+ $submission = get_record("workshop_submissions", "id", $_GET['sid']);
+ workshop_print_assessments_for_admin($workshop, $submission);
+ print_continue("submissions.php?action=adminlist&id=$cm->id");
+ }
+
+
+ /*********************** admin list of asssessments by a student (used by teachers only )******************/
+ elseif ($action == 'adminlistbystudent') {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+
+ if (empty($_GET['userid'])) {
+ error ("Workshop asssessments: adminlistbystudent called with no userid");
+ }
+ $user = get_record("user", "id", $_GET['userid']);
+ workshop_print_assessments_by_user_for_admin($workshop, $user);
+ print_continue("submissions.php?action=adminlist&id=$cm->id");
+ }
+
+
+ /*************** agree (to) assessment (by student) ***************************/
+ elseif ($action == 'agreeassessment') {
+ $timenow = time();
+ // assessment id comes from link or hidden form variable
+ if (!$assessment = get_record("workshop_assessments", "id", $_REQUEST['aid'])) {
+ error("Assessment : agree assessment failed");
+ }
+ //save time of agreement
+ set_field("workshop_assessments", "timeagreed", $timenow, "id", $assessment->id);
+ echo "<centre><b>".get_string("savedok", "workshop")."</b></center><br />\n";
+
+ add_to_log($course->id, "workshop", "agree", "assessments.php?action=viewassessment&id=$cm->id&aid=$assessment->id", "$assessment->id");
+ print_continue("view.php?id=$cm->id");
+ }
+
+
+
+ /*************** Assess submission (by teacher or student) ***************************/
+ elseif ($action == 'assesssubmission') {
+
+ require_variable($sid);
- // there can be an assessment record (for teacher submissions), if there isn't...
- if (!$assessment = get_record("workshop_assessments", "submissionid", $submission->id, "userid",
+ optional_variable($allowcomments);
+ if (!isset($allowcomments)) {
+ $allowcomments = false;
+ }
+
+ if (! $submission = get_record("workshop_submissions", "id", $sid)) {
+ error("Assess submission is misconfigured - no submission record!");
+ }
+
+ // there can be an assessment record (for teacher submissions), if there isn't...
+ if (!$assessment = get_record("workshop_assessments", "submissionid", $submission->id, "userid",
$USER->id)) {
// if it's the teacher see if the user has done a self assessment if so copy it
if (isteacher($course->id) and ($assessment = get_record("workshop_assessments", "submissionid",
$assessment->userid = $USER->id;
$assessment->timecreated = $yearfromnow;
$assessment->grade = -1; // set impossible grade
- $assessment->timegraded = 0;
- $assessment->timeagreed = 0;
- $assessment->resubmission = 0;
- if (!$assessment->id = insert_record("workshop_assessments", $assessment)) {
- error("Could not insert workshop assessment!");
+ $assessment->timegraded = 0;
+ $assessment->timeagreed = 0;
+ $assessment->resubmission = 0;
+ if (!$assessment->id = insert_record("workshop_assessments", $assessment)) {
+ error("Could not insert workshop assessment!");
}
// if it's the teacher and the workshop is error banded set all the elements to Yes
if (isteacher($course->id) and ($workshop->gradingstrategy == 2)) {
- for ($i =0; $i < $workshop->nelements; $i++) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->feedback = '';
- $element->grade = 1;
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- // now set the adjustment
- unset($element);
- $i = $workshop->nelements;
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->grade = 0;
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
+ for ($i =0; $i < $workshop->nelements; $i++) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->feedback = '';
+ $element->grade = 1;
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ // now set the adjustment
+ unset($element);
+ $i = $workshop->nelements;
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->grade = 0;
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
}
}
- }
-
- print_heading_with_help(get_string("assessthissubmission", "workshop"), "grading", "workshop");
-
- // show assessment and allow changes
- workshop_print_assessment($workshop, $assessment, true, $allowcomments, $_SERVER["HTTP_REFERER"]);
+ }
+
+ print_heading_with_help(get_string("assessthissubmission", "workshop"), "grading", "workshop");
+
+ // show assessment and allow changes
+ workshop_print_assessment($workshop, $assessment, true, $allowcomments, $_SERVER["HTTP_REFERER"]);
+ }
+
+
+ /*************** display grading form (viewed by student) *********************************/
+ elseif ($action == 'displaygradingform') {
+
+ print_heading_with_help(get_string("specimenassessmentform", "workshop"), "specimen", "workshop");
+
+ workshop_print_assessment($workshop); // called with no assessment
+ print_continue("view.php?id=$cm->id");
}
- /*************** display grading form (viewed by student) *********************************/
- elseif ($action == 'displaygradingform') {
-
- print_heading_with_help(get_string("specimenassessmentform", "workshop"), "specimen", "workshop");
-
- workshop_print_assessment($workshop); // called with no assessment
- print_continue("view.php?id=$cm->id");
- }
-
-
- /*************** edit comment on assessment (by author, assessor or teacher) ***************************/
- elseif ($action == 'editcomment') {
-
- print_heading_with_help(get_string("editacomment", "workshop"), "editingacomment", "workshop");
- // get the comment record...
- if (!$comment = get_record("workshop_comments", "id", $_GET['cid'])) {
- error("Edit Comment: Comment not found");
- }
- if (!$assessment = get_record("workshop_assessments", "id", $comment->assessmentid)) {
- error("Edit Comment: Assessment not found");
- }
- if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
- error("Edit Comment: Submission not found");
- }
- ?>
- <form name="gradingform" action="assessments.php" method="post">
- <input type="hidden" name="action" value="updatecomment" />
- <input type="hidden" name="id" value="<?php echo $cm->id ?>" />
- <input type="hidden" name="cid" value="<?php echo $_GET['cid'] ?>" />
- <center>
- <table cellpadding="5" border="1">
- <?php
-
- // now show the comment
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><b>". get_string("comment", "workshop").":</b></td>\n";
- echo " <td>\n";
- echo " <textarea name=\"comments\" rows=\"5\" cols=\"75\">\n";
- if (isset($comment->comments)) {
- echo $comment->comments;
- }
- 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);
- }
-
-
- /*********************** edit assessment elements (for teachers) ***********************/
- elseif ($action == 'editelements') {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
-
- $count = count_records("workshop_grades", "workshopid", $workshop->id);
- if ($workshop->phase > 1 and $count) {
- notify(get_string("warningonamendingelements", "workshop"));
- }
- // set up heading, form and table
- print_heading_with_help(get_string("editingassessmentelements", "workshop"), "elements", "workshop");
- ?>
- <form name="form" method="post" action="assessments.php">
- <input type="hidden" name="id" value="<?php echo $cm->id ?>" />
- <input type="hidden" name="action" value="insertelements" />
- <center><table cellpadding="5" border="1">
- <?php
-
- // get existing elements, if none set up appropriate default ones
- if ($elementsraw = get_records("workshop_elements", "workshopid", $workshop->id, "elementno ASC" )) {
- foreach ($elementsraw as $element) {
- $elements[] = $element; // to renumber index 0,1,2...
- }
- }
- // check for missing elements (this happens either the first time round or when the number of elements is icreased)
- for ($i=0; $i<$workshop->nelements; $i++) {
- if (!isset($elements[$i])) {
- $elements[$i]->description = '';
- $elements[$i]->scale =0;
- $elements[$i]->maxscore = 0;
- $elements[$i]->weight = 11;
- }
- }
+ /*************** edit comment on assessment (by author, assessor or teacher) ***************************/
+ elseif ($action == 'editcomment') {
+
+ print_heading_with_help(get_string("editacomment", "workshop"), "editingacomment", "workshop");
+ // get the comment record...
+ if (!$comment = get_record("workshop_comments", "id", $_GET['cid'])) {
+ error("Edit Comment: Comment not found");
+ }
+ if (!$assessment = get_record("workshop_assessments", "id", $comment->assessmentid)) {
+ error("Edit Comment: Assessment not found");
+ }
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error("Edit Comment: Submission not found");
+ }
+ ?>
+ <form name="gradingform" action="assessments.php" method="post">
+ <input type="hidden" name="action" value="updatecomment" />
+ <input type="hidden" name="id" value="<?php echo $cm->id ?>" />
+ <input type="hidden" name="cid" value="<?php echo $_GET['cid'] ?>" />
+ <center>
+ <table cellpadding="5" border="1">
+ <?php
+
+ // now show the comment
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><b>". get_string("comment", "workshop").":</b></td>\n";
+ echo " <td>\n";
+ echo " <textarea name=\"comments\" rows=\"5\" cols=\"75\">\n";
+ if (isset($comment->comments)) {
+ echo $comment->comments;
+ }
+ 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);
+ }
+
+
+ /*********************** edit assessment elements (for teachers) ***********************/
+ elseif ($action == 'editelements') {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+
+ $count = count_records("workshop_grades", "workshopid", $workshop->id);
+ if ($count) {
+ notify(get_string("warningonamendingelements", "workshop"));
+ }
+ // set up heading, form and table
+ print_heading_with_help(get_string("editingassessmentelements", "workshop"), "elements", "workshop");
+ ?>
+ <form name="form" method="post" action="assessments.php">
+ <input type="hidden" name="id" value="<?php echo $cm->id ?>" />
+ <input type="hidden" name="action" value="insertelements" />
+ <center><table cellpadding="5" border="1">
+ <?php
+
+ // get existing elements, if none set up appropriate default ones
+ if ($elementsraw = get_records("workshop_elements", "workshopid", $workshop->id, "elementno ASC" )) {
+ foreach ($elementsraw as $element) {
+ $elements[] = $element; // to renumber index 0,1,2...
+ }
+ }
+ // check for missing elements (this happens either the first time round or when the number of elements is icreased)
+ for ($i=0; $i<$workshop->nelements; $i++) {
+ if (!isset($elements[$i])) {
+ $elements[$i]->description = '';
+ $elements[$i]->scale =0;
+ $elements[$i]->maxscore = 0;
+ $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";
+ echo " <td align=\"right\"><b>". get_string("element","workshop")." $iplus1:</b></td>\n";
+ echo "<td><textarea name=\"description[]\" rows=\"3\" cols=\"75\">".$elements[$i]->description."</textarea>\n";
+ echo " </td></tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
+ echo "</tr>\n";
+ }
+ break;
+
+ case 1: // accumulative grading
+ // set up scales name
+ foreach ($WORKSHOP_SCALES as $KEY => $SCALE) {
+ $SCALES[] = $SCALE['name'];
+ }
+ for ($i=0; $i<$workshop->nelements; $i++) {
+ $iplus1 = $i+1;
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><b>". get_string("element","workshop")." $iplus1:</b></td>\n";
+ echo "<td><textarea name=\"description[]\" rows=\"3\" cols=\"75\">".$elements[$i]->description."</textarea>\n";
+ echo " </td></tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><b>". get_string("typeofscale", "workshop"). ":</b></td>\n";
+ echo "<td valign=\"top\">\n";
+ choose_from_menu($SCALES, "scale[]", $elements[$i]->scale, "");
+ if ($elements[$i]->weight == '') { // not set
+ $elements[$i]->weight = 11; // unity
+ }
+ echo "</td></tr>\n";
+ echo "<tr valign=\"top\"><td align=\"right\"><b>".get_string("elementweight", "workshop").":</b></td><td>\n";
+ workshop_choose_from_menu($WORKSHOP_EWEIGHTS, "weight[]", $elements[$i]->weight, "");
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </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";
+ echo " <td align=\"right\"><b>". get_string("element","workshop")." $iplus1:</b></td>\n";
+ echo "<td><textarea name=\"description[$i]\" rows=\"3\" cols=\"75\">".$elements[$i]->description."</textarea>\n";
+ echo " </td></tr>\n";
+ if ($elements[$i]->weight == '') { // not set
+ $elements[$i]->weight = 11; // unity
+ }
+ echo "</tr>\n";
+ echo "<tr valign=\"top\"><td align=\"right\"><b>".get_string("elementweight", "workshop").":</b></td><td>\n";
+ workshop_choose_from_menu($WORKSHOP_EWEIGHTS, "weight[]", $elements[$i]->weight, "");
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
+ echo "</tr>\n";
+ }
+ echo "</center></table><br />\n";
+ echo "<center><b>".get_string("gradetable","workshop")."</b></center>\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 = $workshop->grade; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ for ($i=0; $i<=$workshop->nelements; $i++) {
+ echo "<tr><td align=\"CENTER\">$i</td><td align=\"CENTER\">";
+ if (!isset($elements[$i])) { // the "last one" will be!
+ $elements[$i]->description = "";
+ $elements[$i]->maxscore = 0;
+ }
+ choose_from_menu($numbers, "maxscore[$i]", $elements[$i]->maxscore, "");
+ echo "</td></tr>\n";
+ }
+ echo "</table></center>\n";
+ break;
+
+ case 3: // criterion grading
+ for ($j = 100; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ for ($i=0; $i<$workshop->nelements; $i++) {
+ $iplus1 = $i+1;
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><b>". get_string("criterion","workshop")." $iplus1:</b></td>\n";
+ echo "<td><textarea name=\"description[$i]\" rows=\"3\" cols=\"75\">".$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";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
+ echo "</tr>\n";
+ }
+ break;
+
+ case 4: // rubric
+ for ($j = 100; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ if ($rubricsraw = get_records("workshop_rubrics", "workshopid", $workshop->id)) {
+ foreach ($rubricsraw as $rubric) {
+ $rubrics[$rubric->elementno][$rubric->rubricno] = $rubric->description; // reindex 0,1,2...
+ }
+ }
+ for ($i=0; $i<$workshop->nelements; $i++) {
+ $iplus1 = $i+1;
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><b>". get_string("element","workshop")." $iplus1:</b></td>\n";
+ echo "<td><textarea name=\"description[$i]\" rows=\"3\" cols=\"75\">".$elements[$i]->description."</textarea>\n";
+ echo " </td></tr>\n";
+ echo "<tr valign=\"top\"><td align=\"right\"><b>".get_string("elementweight", "workshop").":</b></td><td>\n";
+ workshop_choose_from_menu($WORKSHOP_EWEIGHTS, "weight[]", $elements[$i]->weight, "");
+ echo " </td>\n";
+ echo "</tr>\n";
+
+ for ($j=0; $j<5; $j++) {
+ $jplus1 = $j+1;
+ if (empty($rubrics[$i][$j])) {
+ $rubrics[$i][$j] = "";
+ }
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><b>". get_string("grade","workshop")." $j:</b></td>\n";
+ echo "<td><textarea name=\"rubric[$i][$j]\" rows=\"3\" cols=\"75\">".$rubrics[$i][$j]."</textarea>\n";
+ echo " </td></tr>\n";
+ }
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
+ echo "</tr>\n";
+ }
+ break;
+ }
+ // close table and form
+
+ ?>
+ </table><br />
+ <input type="submit" value="<?php print_string("savechanges") ?>" />
+ <input type="submit" name="cancel" value="<?php print_string("cancel") ?>" />
+ </center>
+ </form>
+ <?php
+ }
+
+
+ /*************** grade all assessments (by teacher) ***************************/
+ elseif ($action == 'gradeallassessments') {
- switch ($workshop->gradingstrategy) {
- case 0: // no grading
- for ($i=0; $i<$workshop->nelements; $i++) {
- $iplus1 = $i+1;
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><b>". get_string("element","workshop")." $iplus1:</b></td>\n";
- echo "<td><textarea name=\"description[]\" rows=\"3\" cols=\"75\">".$elements[$i]->description."</textarea>\n";
- echo " </td></tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
- echo "</tr>\n";
- }
- break;
-
- case 1: // accumulative grading
- // set up scales name
- foreach ($WORKSHOP_SCALES as $KEY => $SCALE) {
- $SCALES[] = $SCALE['name'];
- }
- for ($i=0; $i<$workshop->nelements; $i++) {
- $iplus1 = $i+1;
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><b>". get_string("element","workshop")." $iplus1:</b></td>\n";
- echo "<td><textarea name=\"description[]\" rows=\"3\" cols=\"75\">".$elements[$i]->description."</textarea>\n";
- echo " </td></tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><b>". get_string("typeofscale", "workshop"). ":</b></td>\n";
- echo "<td valign=\"top\">\n";
- choose_from_menu($SCALES, "scale[]", $elements[$i]->scale, "");
- if ($elements[$i]->weight == '') { // not set
- $elements[$i]->weight = 11; // unity
- }
- echo "</td></tr>\n";
- echo "<tr valign=\"top\"><td align=\"right\"><b>".get_string("elementweight", "workshop").":</b></td><td>\n";
- workshop_choose_from_menu($WORKSHOP_EWEIGHTS, "weight[]", $elements[$i]->weight, "");
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </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";
- echo " <td align=\"right\"><b>". get_string("element","workshop")." $iplus1:</b></td>\n";
- echo "<td><textarea name=\"description[$i]\" rows=\"3\" cols=\"75\">".$elements[$i]->description."</textarea>\n";
- echo " </td></tr>\n";
- if ($elements[$i]->weight == '') { // not set
- $elements[$i]->weight = 11; // unity
- }
- echo "</tr>\n";
- echo "<tr valign=\"top\"><td align=\"right\"><b>".get_string("elementweight", "workshop").":</b></td><td>\n";
- workshop_choose_from_menu($WORKSHOP_EWEIGHTS, "weight[]", $elements[$i]->weight, "");
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
- echo "</tr>\n";
- }
- echo "</center></table><br />\n";
- echo "<center><b>".get_string("gradetable","workshop")."</b></center>\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 = $workshop->grade; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- for ($i=0; $i<=$workshop->nelements; $i++) {
- echo "<tr><td align=\"CENTER\">$i</td><td align=\"CENTER\">";
- if (!isset($elements[$i])) { // the "last one" will be!
- $elements[$i]->description = "";
- $elements[$i]->maxscore = 0;
- }
- choose_from_menu($numbers, "maxscore[$i]", $elements[$i]->maxscore, "");
- echo "</td></tr>\n";
- }
- echo "</table></center>\n";
- break;
-
- case 3: // criterion grading
- for ($j = 100; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- for ($i=0; $i<$workshop->nelements; $i++) {
- $iplus1 = $i+1;
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><b>". get_string("criterion","workshop")." $iplus1:</b></td>\n";
- echo "<td><textarea name=\"description[$i]\" rows=\"3\" cols=\"75\">".$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";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
- echo "</tr>\n";
- }
- break;
-
- case 4: // rubric
- for ($j = 100; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- if ($rubricsraw = get_records("workshop_rubrics", "workshopid", $workshop->id)) {
- foreach ($rubricsraw as $rubric) {
- $rubrics[$rubric->elementno][$rubric->rubricno] = $rubric->description; // reindex 0,1,2...
- }
- }
- for ($i=0; $i<$workshop->nelements; $i++) {
- $iplus1 = $i+1;
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><b>". get_string("element","workshop")." $iplus1:</b></td>\n";
- echo "<td><textarea name=\"description[$i]\" rows=\"3\" cols=\"75\">".$elements[$i]->description."</textarea>\n";
- echo " </td></tr>\n";
- echo "<tr valign=\"top\"><td align=\"right\"><b>".get_string("elementweight", "workshop").":</b></td><td>\n";
- workshop_choose_from_menu($WORKSHOP_EWEIGHTS, "weight[]", $elements[$i]->weight, "");
- echo " </td>\n";
- echo "</tr>\n";
-
- for ($j=0; $j<5; $j++) {
- $jplus1 = $j+1;
- if (empty($rubrics[$i][$j])) {
- $rubrics[$i][$j] = "";
- }
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><b>". get_string("grade","workshop")." $j:</b></td>\n";
- echo "<td><textarea name=\"rubric[$i][$j]\" rows=\"3\" cols=\"75\">".$rubrics[$i][$j]."</textarea>\n";
- echo " </td></tr>\n";
- }
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
- echo "</tr>\n";
- }
- break;
- }
- // close table and form
-
- ?>
- </table><br />
- <input type="submit" value="<?php print_string("savechanges") ?>" />
- <input type="submit" name="cancel" value="<?php print_string("cancel") ?>" />
- </center>
- </form>
- <?php
- }
-
-
- /*************** grade all assessments (by teacher) ***************************/
- elseif ($action == 'gradeallassessments') {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
print_heading(get_string("gradingallassessments", "workshop"));
workshop_grade_assessments($workshop);
- print_continue("view.php?id=$cm->id");
- }
-
-
- /*************** grade (student's) assessment (by teacher) ***************************/
- elseif ($action == 'gradeassessment') {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
-
- // set up coment scale
- for ($i=COMMENTSCALE; $i>=0; $i--) {
- $num[$i] = $i;
- }
-
- print_heading_with_help(get_string("gradeassessment", "workshop"), "gradingassessments", "workshop");
- // get assessment record
- if (!$assessmentid = $_GET['aid']) {
- error("Assessment id not given");
- }
- $assessment = get_record("workshop_assessments", "id", $assessmentid);
- if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
- error("Submission not found");
- }
- // get the teacher's assessment first
- if ($teachersassessment = workshop_get_submission_assessment($submission, $USER)) {
- echo "<center><b>".get_string("teacherassessments", "workshop", $course->teacher)."</b></center>\n";
- workshop_print_assessment($workshop, $teachersassessment);
- }
- // now the student's assessment (don't allow changes)
- $user = get_record("user", "id", $assessment->userid);
- echo "<center><b>".get_string("assessmentby", "workshop", $user->firstname." ".$user->lastname)."</b></center>\n";
- workshop_print_assessment($workshop, $assessment);
-
- ?>
- <form name="gradingform" action="assessments.php" method="post">
- <input type="hidden" name="action" value="updategrading" />
- <input type="hidden" name="id" value="<?php echo $cm->id ?>" />
- <input type="hidden" name="stype" value="<?php echo $_GET['stype'] ?>" />
- <input type="hidden" name="aid" value="<?php echo $_GET['aid'] ?>" />
- <center>
- <table cellpadding="5" border="1">
- <?php
-
- // now get the teacher's comment
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><b>". get_string("teacherscomment", "workshop").":</b></td>\n";
- echo " <td>\n";
- echo " <textarea name=\"teachercomment\" rows=\"5\" cols=\"75\">\n";
- if (isset($assessment->teachercomment)) {
- echo $assessment->teachercomment;
- }
- echo "</textarea>\n";
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr><td align=\"right\"><b>".get_string("gradeforstudentsassessment", "workshop")."</td><td>\n";
- choose_from_menu($num, "gradinggrade", $assessment->gradinggrade, "");
- echo "</td></tr></table>\n";
- echo "<input type=\"submit\" value=\"".get_string("savemygrading", "workshop")."\" />\n";
- echo "</center></form>\n";
- }
-
-
- /*************** insert (new) comment (by author, assessor or teacher) ***************************/
- elseif ($action == 'insertcomment') {
- $timenow = time();
-
- $form = (object)$_POST;
-
- if (!$assessment = get_record("workshop_assessments", "id", $_POST['aid'])) {
- error("Unable to insert comment");
- }
- // save the comment...
- $comment->workshopid = $workshop->id;
- $comment->assessmentid = $assessment->id;
- $comment->userid = $USER->id;
- $comment->timecreated = $timenow;
- $comment->comments = $form->comments;
- if (!$comment->id = insert_record("workshop_comments", $comment)) {
- error("Could not insert workshop comment!");
- }
-
- add_to_log($course->id, "workshop", "comment", "view.php?id=$cm->id", "$comment->id");
-
- print_continue("assessments.php?action=viewassessment&id=$cm->id&aid=$assessment->id");
- }
-
-
- /*********************** insert/update assignment elements (for teachers)***********************/
- elseif ($action == 'insertelements') {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
-
- $form = (object)$HTTP_POST_VARS;
-
- // let's not fool around here, dump the junk!
- delete_records("workshop_elements", "workshopid", $workshop->id);
-
- // determine wich type of grading
- switch ($workshop->gradingstrategy) {
- case 0: // no grading
- // Insert all the elements that contain something
- foreach ($form->description as $key => $description) {
- if ($description) {
- unset($element);
- $element->description = $description;
- $element->workshopid = $workshop->id;
- $element->elementno = $key;
- if (!$element->id = insert_record("workshop_elements", $element)) {
- error("Could not insert workshop element!");
- }
- }
- }
- break;
-
- case 1: // accumulative grading
- // Insert all the elements that contain something
- foreach ($form->description as $key => $description) {
- if ($description) {
- unset($element);
- $element->description = $description;
- $element->workshopid = $workshop->id;
- $element->elementno = $key;
- if (isset($form->scale[$key])) {
- $element->scale = $form->scale[$key];
- switch ($WORKSHOP_SCALES[$form->scale[$key]]['type']) {
- case 'radio' : $element->maxscore = $WORKSHOP_SCALES[$form->scale[$key]]['size'] - 1;
- 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...
- case 3: // ...and criterion grading
- // Insert all the elements that contain something, the number of descriptions is one less than the number of grades
- foreach ($form->maxscore as $key => $themaxscore) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->elementno = $key;
- $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
- // Insert all the elements that contain something
- foreach ($form->description as $key => $description) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->elementno = $key;
- $element->description = $description;
- $element->weight = $form->weight[$key];
- 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++) {
- for ($j=0;$j<5;$j++) {
- 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
-
- redirect("view.php?id=$cm->id", get_string("savedok","workshop"));
- }
-
-
- /*********************** list assessments for grading (Student submissions)(by teachers)***********************/
- elseif ($action == 'listungradedstudentsubmissions') {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
- workshop_list_ungraded_assessments($workshop, "student");
- print_continue("view.php?id=$cm->id");
- }
-
-
- /*********************** list assessments for grading (Teacher submissions) (by teachers)***********************/
- elseif ($action == 'listungradedteachersubmissions') {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
- workshop_list_ungraded_assessments($workshop, "teacher");
- print_continue("view.php?id=$cm->id");
- }
-
-
- /****************** list teacher submissions ***********************/
- elseif ($action == 'listteachersubmissions') {
-
- workshop_list_teacher_submissions($workshop, $USER);
- print_continue("view.php?id=$cm->id");
- }
+ print_continue("view.php?id=$cm->id");
+ }
+
+
+ /*************** grade (student's) assessment (by teacher) ***************************/
+ elseif ($action == 'gradeassessment') {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+
+ // set up coment scale
+ for ($i=COMMENTSCALE; $i>=0; $i--) {
+ $num[$i] = $i;
+ }
+
+ print_heading_with_help(get_string("gradeassessment", "workshop"), "gradingassessments", "workshop");
+ // get assessment record
+ if (!$assessmentid = $_GET['aid']) {
+ error("Assessment id not given");
+ }
+ $assessment = get_record("workshop_assessments", "id", $assessmentid);
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error("Submission not found");
+ }
+ // get the teacher's assessment first
+ if ($teachersassessment = workshop_get_submission_assessment($submission, $USER)) {
+ echo "<center><b>".get_string("teacherassessments", "workshop", $course->teacher)."</b></center>\n";
+ workshop_print_assessment($workshop, $teachersassessment);
+ }
+ // now the student's assessment (don't allow changes)
+ $user = get_record("user", "id", $assessment->userid);
+ echo "<center><b>".get_string("assessmentby", "workshop", $user->firstname." ".$user->lastname)."</b></center>\n";
+ workshop_print_assessment($workshop, $assessment);
+
+ ?>
+ <form name="gradingform" action="assessments.php" method="post">
+ <input type="hidden" name="action" value="updategrading" />
+ <input type="hidden" name="id" value="<?php echo $cm->id ?>" />
+ <input type="hidden" name="stype" value="<?php echo $_GET['stype'] ?>" />
+ <input type="hidden" name="aid" value="<?php echo $_GET['aid'] ?>" />
+ <center>
+ <table cellpadding="5" border="1">
+ <?php
+
+ // now get the teacher's comment
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><b>". get_string("teacherscomment", "workshop").":</b></td>\n";
+ echo " <td>\n";
+ echo " <textarea name=\"teachercomment\" rows=\"5\" cols=\"75\">\n";
+ if (isset($assessment->teachercomment)) {
+ echo $assessment->teachercomment;
+ }
+ echo "</textarea>\n";
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr><td align=\"right\"><b>".get_string("gradeforstudentsassessment", "workshop")."</td><td>\n";
+ choose_from_menu($num, "gradinggrade", $assessment->gradinggrade, "");
+ echo "</td></tr></table>\n";
+ echo "<input type=\"submit\" value=\"".get_string("savemygrading", "workshop")."\" />\n";
+ echo "</center></form>\n";
+ }
+
+
+ /*************** insert (new) comment (by author, assessor or teacher) ***************************/
+ elseif ($action == 'insertcomment') {
+ $timenow = time();
+
+ $form = (object)$_POST;
+
+ if (!$assessment = get_record("workshop_assessments", "id", $_POST['aid'])) {
+ error("Unable to insert comment");
+ }
+ // save the comment...
+ $comment->workshopid = $workshop->id;
+ $comment->assessmentid = $assessment->id;
+ $comment->userid = $USER->id;
+ $comment->timecreated = $timenow;
+ $comment->comments = $form->comments;
+ if (!$comment->id = insert_record("workshop_comments", $comment)) {
+ error("Could not insert workshop comment!");
+ }
+
+ add_to_log($course->id, "workshop", "comment", "view.php?id=$cm->id", "$comment->id");
+
+ print_continue("assessments.php?action=viewassessment&id=$cm->id&aid=$assessment->id");
+ }
+
+
+ /*********************** insert/update assignment elements (for teachers)***********************/
+ elseif ($action == 'insertelements') {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+
+ $form = (object)$HTTP_POST_VARS;
+
+ // let's not fool around here, dump the junk!
+ delete_records("workshop_elements", "workshopid", $workshop->id);
+
+ // determine wich type of grading
+ switch ($workshop->gradingstrategy) {
+ case 0: // no grading
+ // Insert all the elements that contain something
+ foreach ($form->description as $key => $description) {
+ if ($description) {
+ unset($element);
+ $element->description = $description;
+ $element->workshopid = $workshop->id;
+ $element->elementno = $key;
+ if (!$element->id = insert_record("workshop_elements", $element)) {
+ error("Could not insert workshop element!");
+ }
+ }
+ }
+ break;
+
+ case 1: // accumulative grading
+ // Insert all the elements that contain something
+ foreach ($form->description as $key => $description) {
+ if ($description) {
+ unset($element);
+ $element->description = $description;
+ $element->workshopid = $workshop->id;
+ $element->elementno = $key;
+ if (isset($form->scale[$key])) {
+ $element->scale = $form->scale[$key];
+ switch ($WORKSHOP_SCALES[$form->scale[$key]]['type']) {
+ case 'radio' : $element->maxscore = $WORKSHOP_SCALES[$form->scale[$key]]['size'] - 1;
+ 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...
+ case 3: // ...and criterion grading
+ // Insert all the elements that contain something, the number of descriptions is one less than the number of grades
+ foreach ($form->maxscore as $key => $themaxscore) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->elementno = $key;
+ $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
+ // Insert all the elements that contain something
+ foreach ($form->description as $key => $description) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->elementno = $key;
+ $element->description = $description;
+ $element->weight = $form->weight[$key];
+ 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++) {
+ for ($j=0;$j<5;$j++) {
+ 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
+
+ redirect("view.php?id=$cm->id", get_string("savedok","workshop"));
+ }
+
+
+ /*********************** list assessments for grading (Student submissions)(by teachers)***********************/
+ elseif ($action == 'listungradedstudentsubmissions') {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+ workshop_list_ungraded_assessments($workshop, "student");
+ print_continue("view.php?id=$cm->id");
+ }
+
+
+ /*********************** list assessments for grading (Teacher submissions) (by teachers)***********************/
+ elseif ($action == 'listungradedteachersubmissions') {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+ workshop_list_ungraded_assessments($workshop, "teacher");
+ print_continue("view.php?id=$cm->id");
+ }
+
+
+ /****************** list teacher submissions ***********************/
+ elseif ($action == 'listteachersubmissions') {
+
+ workshop_list_teacher_submissions($workshop, $USER);
+ print_continue("view.php?id=$cm->id");
+ }
/******************* regrade student assessments ************************************/
require_variable($stockcommentid);
if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
+ error("Only teachers can look at this page");
+ }
if (!$assessment = get_record("workshop_assessments", "id", $aid)) {
error("workshop assessment is misconfigured");
}
- $form = data_submitted("nomatch"); // probably always come from the same page, change this statement
-
+ $form = data_submitted("nomatch"); // probably always come from the same page, change this statement
+
// delete the comment from the stock comments table
- if (!delete_records("workshop_stockcomments", "id", $stockcommentid)) {
- error("Could not remove comment from the comment bank");
- }
+ if (!delete_records("workshop_stockcomments", "id", $stockcommentid)) {
+ error("Could not remove comment from the comment bank");
+ }
// now upate the assessment (just the elements, the assessment itself is not updated)
$timenow = time();
// don't fiddle about, delete all the old and add the new!
- delete_records("workshop_grades", "assessmentid", $assessment->id);
-
-
- //determine what kind of grading we have
- switch ($workshop->gradingstrategy) {
- case 0: // no grading
- // Insert all the elements that contain something
- for ($i =0; $i < $workshop->nelements; $i++) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->feedback = $form->{"feedback_$i"};
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- $grade = 0; // set to satisfy save to db
- break;
-
- case 1: // accumulative grading
- // Insert all the elements that contain something
- foreach ($form->grade as $key => $thegrade) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $key;
- $element->feedback = $form->{"feedback_$key"};
- $element->grade = $thegrade;
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- // now work out the grade...
- $rawgrade=0;
- $totalweight=0;
- foreach ($form->grade as $key => $grade) {
- $maxscore = $elements[$key]->maxscore;
- $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
- if ($weight > 0) {
- $totalweight += $weight;
- }
- $rawgrade += ($grade / $maxscore) * $weight;
- // echo "\$key, \$maxscore, \$weight, \$totalweight, \$grade, \$rawgrade : $key, $maxscore, $weight, $totalweight, $grade, $rawgrade<br />";
- }
- $grade = 100.0 * ($rawgrade / $totalweight);
- break;
-
- case 2: // error banded graded
- // Insert all the elements that contain something
- $error = 0.0;
- for ($i =0; $i < $workshop->nelements; $i++) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->feedback = $form->{"feedback_$i"};
- $element->grade = $form->grade[$i];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- if (empty($form->grade[$i])){
- $error += $WORKSHOP_EWEIGHTS[$elements[$i]->weight];
- }
- }
- // now save the adjustment
- unset($element);
- $i = $workshop->nelements;
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->grade = $form->grade[$i];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- $grade = ($elements[intval($error + 0.5)]->maxscore + $form->grade[$i]) * 100 / $workshop->grade;
+ delete_records("workshop_grades", "assessmentid", $assessment->id);
+
+
+ //determine what kind of grading we have
+ switch ($workshop->gradingstrategy) {
+ case 0: // no grading
+ // Insert all the elements that contain something
+ for ($i =0; $i < $workshop->nelements; $i++) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->feedback = $form->{"feedback_$i"};
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ $grade = 0; // set to satisfy save to db
+ break;
+
+ case 1: // accumulative grading
+ // Insert all the elements that contain something
+ foreach ($form->grade as $key => $thegrade) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $key;
+ $element->feedback = $form->{"feedback_$key"};
+ $element->grade = $thegrade;
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ // now work out the grade...
+ $rawgrade=0;
+ $totalweight=0;
+ foreach ($form->grade as $key => $grade) {
+ $maxscore = $elements[$key]->maxscore;
+ $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
+ if ($weight > 0) {
+ $totalweight += $weight;
+ }
+ $rawgrade += ($grade / $maxscore) * $weight;
+ // echo "\$key, \$maxscore, \$weight, \$totalweight, \$grade, \$rawgrade : $key, $maxscore, $weight, $totalweight, $grade, $rawgrade<br />";
+ }
+ $grade = 100.0 * ($rawgrade / $totalweight);
+ break;
+
+ case 2: // error banded graded
+ // Insert all the elements that contain something
+ $error = 0.0;
+ for ($i =0; $i < $workshop->nelements; $i++) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->feedback = $form->{"feedback_$i"};
+ $element->grade = $form->grade[$i];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ if (empty($form->grade[$i])){
+ $error += $WORKSHOP_EWEIGHTS[$elements[$i]->weight];
+ }
+ }
+ // now save the adjustment
+ unset($element);
+ $i = $workshop->nelements;
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->grade = $form->grade[$i];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ $grade = ($elements[intval($error + 0.5)]->maxscore + $form->grade[$i]) * 100 / $workshop->grade;
// do sanity check
if ($grade < 0) {
$grade = 0;
} elseif ($grade > 100) {
$grade = 100;
}
- echo "<b>".get_string("weightederrorcount", "workshop", intval($error + 0.5))."</b>\n";
- break;
-
- case 3: // criteria grading
- // save in the selected criteria value in element zero,
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = 0;
- $element->grade = $form->grade[0];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- // now save the adjustment in element one
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = 1;
- $element->grade = $form->grade[1];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- $grade = ($elements[$form->grade[0]]->maxscore + $form->grade[1]);
- break;
-
- case 4: // rubric grading (identical to accumulative grading)
- // Insert all the elements that contain something
- foreach ($form->grade as $key => $thegrade) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $key;
- $element->feedback = $form->{"feedback_$key"};
- $element->grade = $thegrade;
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- // now work out the grade...
- $rawgrade=0;
- $totalweight=0;
- foreach ($form->grade as $key => $grade) {
- $maxscore = $elements[$key]->maxscore;
- $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
- if ($weight > 0) {
- $totalweight += $weight;
- }
- $rawgrade += ($grade / $maxscore) * $weight;
- }
- $grade = 100.0 * ($rawgrade / $totalweight);
- break;
-
- } // end of switch
-
+ echo "<b>".get_string("weightederrorcount", "workshop", intval($error + 0.5))."</b>\n";
+ break;
+
+ case 3: // criteria grading
+ // save in the selected criteria value in element zero,
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = 0;
+ $element->grade = $form->grade[0];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ // now save the adjustment in element one
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = 1;
+ $element->grade = $form->grade[1];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ $grade = ($elements[$form->grade[0]]->maxscore + $form->grade[1]);
+ break;
+
+ case 4: // rubric grading (identical to accumulative grading)
+ // Insert all the elements that contain something
+ foreach ($form->grade as $key => $thegrade) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $key;
+ $element->feedback = $form->{"feedback_$key"};
+ $element->grade = $thegrade;
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ // now work out the grade...
+ $rawgrade=0;
+ $totalweight=0;
+ foreach ($form->grade as $key => $grade) {
+ $maxscore = $elements[$key]->maxscore;
+ $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
+ if ($weight > 0) {
+ $totalweight += $weight;
+ }
+ $rawgrade += ($grade / $maxscore) * $weight;
+ }
+ $grade = 100.0 * ($rawgrade / $totalweight);
+ break;
+
+ } // end of switch
+
// any comment?
- if (!empty($form->generalcomment)) { // update the object (no need to update the db record)
+ if (!empty($form->generalcomment)) { // update the object (no need to update the db record)
$assessment->generalcomment = $form->generalcomment;
- }
-
+ }
+
// redisplay form, going back to original returnto address
workshop_print_assessment($workshop, $assessment, true, true, $form->returnto);
$timenow = time();
// don't fiddle about, delete all the old and add the new!
- delete_records("workshop_grades", "assessmentid", $assessment->id);
-
- $form = data_submitted("nomatch"); // probably always come from the same page, change this statement
-
- //determine what kind of grading we have
- switch ($workshop->gradingstrategy) {
- case 0: // no grading
- // Insert all the elements that contain something
- for ($i = 0; $i < $workshop->nelements; $i++) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->feedback = $form->{"feedback_$i"};
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- $grade = 0; // set to satisfy save to db
- break;
-
- case 1: // accumulative grading
- // Insert all the elements that contain something
- foreach ($form->grade as $key => $thegrade) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $key;
- $element->feedback = $form->{"feedback_$key"};
- $element->grade = $thegrade;
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- // now work out the grade...
- $rawgrade=0;
- $totalweight=0;
- foreach ($form->grade as $key => $grade) {
- $maxscore = $elements[$key]->maxscore;
- $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
- if ($weight > 0) {
- $totalweight += $weight;
- }
- $rawgrade += ($grade / $maxscore) * $weight;
- // echo "\$key, \$maxscore, \$weight, \$totalweight, \$grade, \$rawgrade : $key, $maxscore, $weight, $totalweight, $grade, $rawgrade<br />";
- }
- $grade = 100.0 * ($rawgrade / $totalweight);
- break;
-
- case 2: // error banded graded
- // Insert all the elements that contain something
- $error = 0.0;
- for ($i =0; $i < $workshop->nelements; $i++) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->feedback = $form->{"feedback_$i"};
- $element->grade = $form->grade[$i];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- if (empty($form->grade[$i])){
- $error += $WORKSHOP_EWEIGHTS[$elements[$i]->weight];
- }
- }
- // now save the adjustment
- unset($element);
- $i = $workshop->nelements;
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $i;
- $element->grade = $form->grade[$i];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- $grade = ($elements[intval($error + 0.5)]->maxscore + $form->grade[$i]) * 100 / $workshop->grade;
+ delete_records("workshop_grades", "assessmentid", $assessment->id);
+
+ $form = data_submitted("nomatch"); // probably always come from the same page, change this statement
+
+ //determine what kind of grading we have
+ switch ($workshop->gradingstrategy) {
+ case 0: // no grading
+ // Insert all the elements that contain something
+ for ($i = 0; $i < $workshop->nelements; $i++) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->feedback = $form->{"feedback_$i"};
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ $grade = 0; // set to satisfy save to db
+ break;
+
+ case 1: // accumulative grading
+ // Insert all the elements that contain something
+ foreach ($form->grade as $key => $thegrade) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $key;
+ $element->feedback = $form->{"feedback_$key"};
+ $element->grade = $thegrade;
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ // now work out the grade...
+ $rawgrade=0;
+ $totalweight=0;
+ foreach ($form->grade as $key => $grade) {
+ $maxscore = $elements[$key]->maxscore;
+ $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
+ if ($weight > 0) {
+ $totalweight += $weight;
+ }
+ $rawgrade += ($grade / $maxscore) * $weight;
+ // echo "\$key, \$maxscore, \$weight, \$totalweight, \$grade, \$rawgrade : $key, $maxscore, $weight, $totalweight, $grade, $rawgrade<br />";
+ }
+ $grade = 100.0 * ($rawgrade / $totalweight);
+ break;
+
+ case 2: // error banded graded
+ // Insert all the elements that contain something
+ $error = 0.0;
+ for ($i =0; $i < $workshop->nelements; $i++) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->feedback = $form->{"feedback_$i"};
+ $element->grade = $form->grade[$i];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ if (empty($form->grade[$i])){
+ $error += $WORKSHOP_EWEIGHTS[$elements[$i]->weight];
+ }
+ }
+ // now save the adjustment
+ unset($element);
+ $i = $workshop->nelements;
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $i;
+ $element->grade = $form->grade[$i];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ $grade = ($elements[intval($error + 0.5)]->maxscore + $form->grade[$i]) * 100 / $workshop->grade;
// do sanity check
if ($grade < 0) {
$grade = 0;
} elseif ($grade > 100) {
$grade = 100;
}
- echo "<b>".get_string("weightederrorcount", "workshop", intval($error + 0.5))."</b>\n";
- break;
-
- case 3: // criteria grading
- // save in the selected criteria value in element zero,
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = 0;
- $element->grade = $form->grade[0];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- // now save the adjustment in element one
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = 1;
- $element->grade = $form->grade[1];
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- $grade = ($elements[$form->grade[0]]->maxscore + $form->grade[1]);
- break;
-
- case 4: // rubric grading (identical to accumulative grading)
- // Insert all the elements that contain something
- foreach ($form->grade as $key => $thegrade) {
- unset($element);
- $element->workshopid = $workshop->id;
- $element->assessmentid = $assessment->id;
- $element->elementno = $key;
- $element->feedback = $form->{"feedback_$key"};
- $element->grade = $thegrade;
- if (!$element->id = insert_record("workshop_grades", $element)) {
- error("Could not insert workshop grade!");
- }
- }
- // now work out the grade...
- $rawgrade=0;
- $totalweight=0;
- foreach ($form->grade as $key => $grade) {
- $maxscore = $elements[$key]->maxscore;
- $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
- if ($weight > 0) {
- $totalweight += $weight;
- }
- $rawgrade += ($grade / $maxscore) * $weight;
- }
- $grade = 100.0 * ($rawgrade / $totalweight);
- break;
-
- } // end of switch
-
- // update the time of the assessment record (may be re-edited)...
- set_field("workshop_assessments", "timecreated", $timenow, "id", $assessment->id);
-
- if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
- error ("Updateassessment: submission record not found");
- }
-
- // if the workshop does need peer agreement AND it's self assessment then set timeagreed
- if ($workshop->agreeassessments and ($submission->userid == $assessment->userid)) {
- set_field("workshop_assessments", "timeagreed", $timenow, "id", $assessment->id);
- }
-
+ echo "<b>".get_string("weightederrorcount", "workshop", intval($error + 0.5))."</b>\n";
+ break;
+
+ case 3: // criteria grading
+ // save in the selected criteria value in element zero,
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = 0;
+ $element->grade = $form->grade[0];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ // now save the adjustment in element one
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = 1;
+ $element->grade = $form->grade[1];
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ $grade = ($elements[$form->grade[0]]->maxscore + $form->grade[1]);
+ break;
+
+ case 4: // rubric grading (identical to accumulative grading)
+ // Insert all the elements that contain something
+ foreach ($form->grade as $key => $thegrade) {
+ unset($element);
+ $element->workshopid = $workshop->id;
+ $element->assessmentid = $assessment->id;
+ $element->elementno = $key;
+ $element->feedback = $form->{"feedback_$key"};
+ $element->grade = $thegrade;
+ if (!$element->id = insert_record("workshop_grades", $element)) {
+ error("Could not insert workshop grade!");
+ }
+ }
+ // now work out the grade...
+ $rawgrade=0;
+ $totalweight=0;
+ foreach ($form->grade as $key => $grade) {
+ $maxscore = $elements[$key]->maxscore;
+ $weight = $WORKSHOP_EWEIGHTS[$elements[$key]->weight];
+ if ($weight > 0) {
+ $totalweight += $weight;
+ }
+ $rawgrade += ($grade / $maxscore) * $weight;
+ }
+ $grade = 100.0 * ($rawgrade / $totalweight);
+ break;
+
+ } // end of switch
+
+ // update the time of the assessment record (may be re-edited)...
+ set_field("workshop_assessments", "timecreated", $timenow, "id", $assessment->id);
+
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error ("Updateassessment: submission record not found");
+ }
+
+ // if the workshop does need peer agreement AND it's self assessment then set timeagreed
+ if ($workshop->agreeassessments and ($submission->userid == $assessment->userid)) {
+ set_field("workshop_assessments", "timeagreed", $timenow, "id", $assessment->id);
+ }
+
// set grade...
- set_field("workshop_assessments", "grade", $grade, "id", $assessment->id);
+ set_field("workshop_assessments", "grade", $grade, "id", $assessment->id);
// ...and clear the timegraded but set the graddinggrade to maximum, may to reduced subsequently...
- set_field("workshop_assessments", "timegraded", 0, "id", $assessment->id);
- set_field("workshop_assessments", "gradinggrade", 100, "id", $assessment->id);
- // ...and the resubmission flag
+ set_field("workshop_assessments", "timegraded", 0, "id", $assessment->id);
+ set_field("workshop_assessments", "gradinggrade", 100, "id", $assessment->id);
+ // ...and the resubmission flag
set_field("workshop_assessments", "resubmission", 0, "id", $assessment->id);
// if there's examples or peer assessments clear the counter in the submission so that
}
// any comment?
- if (!empty($form->generalcomment)) {
- set_field("workshop_assessments", "generalcomment", $form->generalcomment, "id", $assessment->id);
- }
-
+ if (!empty($form->generalcomment)) {
+ set_field("workshop_assessments", "generalcomment", $form->generalcomment, "id", $assessment->id);
+ }
+
add_to_log($course->id, "workshop", "assess",
"assessments.php?action=viewassessment&id=$cm->id&aid=$assessment->id", "$assessment->id", "$cm->id");
/****************** user delete ************************************/
elseif ($action == 'userdelete' ) {
- if (empty($_GET['aid'])) {
- error("User delete: assessment id missing");
- }
-
- print_string("deleting", "workshop");
- // first delete all the associated records...
- delete_records("workshop_comments", "assessmentid", $_GET['aid']);
- delete_records("workshop_grades", "assessmentid", $_GET['aid']);
- // ...now delete the assessment...
- delete_records("workshop_assessments", "id", $_GET['aid']);
-
- print_continue("view.php?id=$cm->id");
- }
-
-
- /****************** view all assessments ***********************/
- elseif ($action == 'viewallassessments') {
-
- if (!$submission = get_record("workshop_submissions", "id", $_GET['sid'])) {
- error("View All Assessments: submission record not found");
- }
-
- if ($assessments = workshop_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- workshop_print_assessment($workshop, $assessment);
- }
- }
- // only called from list all submissions
- print_continue("submissions.php?action=listallsubmissions&id=$cm->id");
- }
-
-
- /****************** view assessment *****************************/
- elseif ($action == 'viewassessment') {
-
- optional_variable($allowcomments);
- if (!isset($allowcomments)) {
- $allowcomments = false;
- }
-
- // get the assessment record
- if (!$assessment = get_record("workshop_assessments", "id", $_GET['aid'])) {
- error("Assessment record not found");
- }
-
- // show assessment but don't allow changes
- workshop_print_assessment($workshop, $assessment, false, $allowcomments);
-
- print_continue("view.php?id=$cm->id");
- }
-
-
- /*************** no man's land **************************************/
- else {
- error("Fatal Error: Unknown Action: ".$action."\n");
- }
+ if (empty($_GET['aid'])) {
+ error("User delete: assessment id missing");
+ }
+
+ print_string("deleting", "workshop");
+ // first delete all the associated records...
+ delete_records("workshop_comments", "assessmentid", $_GET['aid']);
+ delete_records("workshop_grades", "assessmentid", $_GET['aid']);
+ // ...now delete the assessment...
+ delete_records("workshop_assessments", "id", $_GET['aid']);
+
+ print_continue("view.php?id=$cm->id");
+ }
+
+
+ /****************** view all assessments ***********************/
+ elseif ($action == 'viewallassessments') {
+
+ if (!$submission = get_record("workshop_submissions", "id", $_GET['sid'])) {
+ error("View All Assessments: submission record not found");
+ }
+
+ if ($assessments = workshop_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ workshop_print_assessment($workshop, $assessment);
+ }
+ }
+ // only called from list all submissions
+ print_continue("submissions.php?action=listallsubmissions&id=$cm->id");
+ }
+
+
+ /****************** view assessment *****************************/
+ elseif ($action == 'viewassessment') {
+
+ optional_variable($allowcomments);
+ if (!isset($allowcomments)) {
+ $allowcomments = false;
+ }
+
+ // get the assessment record
+ if (!$assessment = get_record("workshop_assessments", "id", $_GET['aid'])) {
+ error("Assessment record not found");
+ }
+
+ // show assessment but don't allow changes
+ workshop_print_assessment($workshop, $assessment, false, $allowcomments);
+
+ print_continue("view.php?id=$cm->id");
+ }
+
+
+ /*************** no man's land **************************************/
+ else {
+ error("Fatal Error: Unknown Action: ".$action."\n");
+ }
print_footer($course);
fwrite ($bf,full_tag("ANONYMOUS",4,false,$workshop->anonymous));
fwrite ($bf,full_tag("INCLUDESELF",4,false,$workshop->includeself));
fwrite ($bf,full_tag("MAXBYTES",4,false,$workshop->maxbytes));
- fwrite ($bf,full_tag("DEADLINE",4,false,$workshop->deadline));
+ fwrite ($bf,full_tag("SUBMISSIONSTART",4,false,$workshop->submissionstart));
+ fwrite ($bf,full_tag("ASSESSMENTSTART",4,false,$workshop->assessmentstart));
+ fwrite ($bf,full_tag("SUBMISSIONEND",4,false,$workshop->submissionend));
+ fwrite ($bf,full_tag("ASSESSMENTEND",4,false,$workshop->submissionstart));
fwrite ($bf,full_tag("RELEASEGRADES",4,false,$workshop->releasegrades));
fwrite ($bf,full_tag("GRADE",4,false,$workshop->grade));
fwrite ($bf,full_tag("GRADINGGRADE",4,false,$workshop->gradinggrade));
global $CFG;
if ($oldversion < 2003050400) {
- execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` CHANGE `graded` `agreeassessments` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL");
- execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` CHANGE `showgrades` `hidegrades` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL");
- execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD `timeagreed` INT(10) UNSIGNED DEFAULT '0' NOT NULL AFTER `timecreated`");
- execute_sql("
+ execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` CHANGE `graded` `agreeassessments` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL");
+ execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` CHANGE `showgrades` `hidegrades` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL");
+ execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD `timeagreed` INT(10) UNSIGNED DEFAULT '0' NOT NULL AFTER `timecreated`");
+ execute_sql("
CREATE TABLE `{$CFG->prefix}workshop_comments` (
`id` int(10) unsigned NOT NULL auto_increment,
- # workshopid not necessary just makes deleting instance easier
- `workshopid` int(10) unsigned NOT NULL default '0',
+ # workshopid not necessary just makes deleting instance easier
+ `workshopid` int(10) unsigned NOT NULL default '0',
`assessmentid` int(10) unsigned NOT NULL default '0',
`userid` int(10) unsigned NOT NULL default '0',
`timecreated` int(10) unsigned NOT NULL default '0',
- `mailed` tinyint(2) unsigned NOT NULL default '0',
+ `mailed` tinyint(2) unsigned NOT NULL default '0',
`comments` text NOT NULL,
PRIMARY KEY (`id`)
) COMMENT='Defines comments'
");
- }
-
- if ($oldversion < 2003051400) {
- execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` ADD `showleaguetable` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `gradingweight`");
- execute_sql("
- CREATE TABLE `{$CFG->prefix}workshop_rubrics` (
- `id` int(10) unsigned NOT NULL auto_increment,
- `workshopid` int(10) unsigned NOT NULL default '0',
- `elementid` int(10) unsigned NOT NULL default '0',
- `rubricno` tinyint(3) unsigned NOT NULL default '0',
- `description` text NOT NULL,
- PRIMARY KEY (`id`)
- ) COMMENT='Info about the rubrics marking scheme'
+ }
+
+ if ($oldversion < 2003051400) {
+ execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` ADD `showleaguetable` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `gradingweight`");
+ execute_sql("
+ CREATE TABLE `{$CFG->prefix}workshop_rubrics` (
+ `id` int(10) unsigned NOT NULL auto_increment,
+ `workshopid` int(10) unsigned NOT NULL default '0',
+ `elementid` int(10) unsigned NOT NULL default '0',
+ `rubricno` tinyint(3) unsigned NOT NULL default '0',
+ `description` text NOT NULL,
+ PRIMARY KEY (`id`)
+ ) COMMENT='Info about the rubrics marking scheme'
");
- }
-
- if ($oldversion < 2003082200) {
-
- execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_rubrics` CHANGE `elementid` `elementno` INT(10) UNSIGNED NOT NULL DEFAULT '0'");
- }
+ }
+
+ if ($oldversion < 2003082200) {
+
+ execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_rubrics` CHANGE `elementid` `elementno` INT(10) UNSIGNED NOT NULL DEFAULT '0'");
+ }
- if ($oldversion < 2003092500) {
- execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` ADD `overallocation` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `nsassessments`");
- }
+ if ($oldversion < 2003092500) {
+ execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` ADD `overallocation` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `nsassessments`");
+ }
if ($oldversion < 2003100200) {
-
- execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD `resubmission` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `mailed`");
- }
-
+
+ execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD `resubmission` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `mailed`");
+ }
+
if ($oldversion < 2003100800) {
// tidy up log_display entries
execute_sql("DELETE FROM `{$CFG->prefix}log_display` WHERE `module` = 'workshop'");
}
if ($oldversion < 2004081100) {
- table_column("workshop", "", "gradinggrade", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "grade");
- table_column("workshop", "", "assessmentcomps", "INTEGER", "4", "UNSIGNED", "2", "NOT NULL", "ntassessments");
+ table_column("workshop", "", "gradinggrade", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "grade");
+ table_column("workshop", "", "assessmentcomps", "INTEGER", "4", "UNSIGNED", "2", "NOT NULL", "ntassessments");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop` DROP COLUMN `gradingweight`");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop` DROP COLUMN `mergegrades`");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop` DROP COLUMN `peerweight`");
}
if ($oldversion < 2004092400) {
- table_column("workshop", "", "nattachments", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "nelements");
- table_column("workshop_submissions", "", "description", "TEXT", "", "", "", "", "mailed");
+ table_column("workshop", "", "nattachments", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "nelements");
+ table_column("workshop_submissions", "", "description", "TEXT", "", "", "", "", "mailed");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_submissions` ADD INDEX (`userid`)");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD INDEX (`submissionid`)");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD INDEX (`userid`)");
}
if ($oldversion < 2004092700) {
- table_column("workshop", "", "wtype", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "description");
- table_column("workshop", "", "usepassword", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
- table_column("workshop", "", "password", "VARCHAR", "32", "", "", "NOT NULL");
- table_column("workshop_submissions", "", "late", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
+ table_column("workshop", "", "wtype", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "description");
+ table_column("workshop", "", "usepassword", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
+ table_column("workshop", "", "password", "VARCHAR", "32", "", "", "NOT NULL");
+ table_column("workshop_submissions", "", "late", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
// update wkey value
if ($workshops = get_records("workshop")) {
}
if ($oldversion < 2004102800) {
- table_column("workshop", "", "releasegrades", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", "deadline");
- execute_sql("
+ table_column("workshop", "", "releasegrades", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", "deadline");
+ execute_sql("
CREATE TABLE `{$CFG->prefix}workshop_stockcomments` (
`id` int(10) unsigned NOT NULL auto_increment,
- `workshopid` int(10) unsigned NOT NULL default '0',
+ `workshopid` int(10) unsigned NOT NULL default '0',
`elementno` int(10) unsigned NOT NULL default '0',
`comments` text NOT NULL,
PRIMARY KEY (`id`)
) COMMENT='Defines stockcomments, the teacher comment bank'
");
- }
+ }
if ($oldversion < 2004111000) {
- table_column("workshop_elements", "", "stddev", "FLOAT", "", "", "0", "NOT NULL");
- table_column("workshop_elements", "", "totalassessments", "INTEGER", "10", "", "0", "NOT NULL");
- execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_elements` CHANGE `weight` `weight` INT(4) UNSIGNED NOT NULL DEFAULT '11'");
+ table_column("workshop_elements", "", "stddev", "FLOAT", "", "", "0", "NOT NULL");
+ table_column("workshop_elements", "", "totalassessments", "INTEGER", "10", "", "0", "NOT NULL");
+ execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_elements` CHANGE `weight` `weight` INT(4) UNSIGNED NOT NULL DEFAULT '11'");
table_column("workshop_submissions", "", "nassessments", "INTEGER", "10", "", "0", "NOT NULL");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_submissions` DROP COLUMN `teachergrade`");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_submissions` DROP COLUMN `peergrade`");
modify_database('','ALTER TABLE prefix_workshop_submissions ADD INDEX mailed (mailed);');
}
+ if ($oldversion < 2004120402) {
+ table_column('workshop', '', 'submissionstart', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'maxbytes');
+ table_column('workshop', '', 'assessmentstart', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'submissionstart');
+ table_column('workshop', 'deadline', 'submissionend', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'assessmentstart');
+ table_column('workshop', '', 'assessmentend', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'submissionend');
+
+ $workshops = get_records('workshop');
+ foreach ($workshops as $workshop) {
+ $early = (time() < $workshop->submissionend) ? 0 : $workshop->submissionend;
+ $late = (time() > $workshop->submissionend) ? 0 : $workshop->submissionend;
+ set_field('workshop', 'submissionstart', ($workshop->phase > 1) ? $early : $late, 'id', $workshop->id);
+ set_field('workshop', 'assessmentstart', ($workshop->phase > 2) ? $early : $late, 'id', $workshop->id);
+ set_field('workshop', 'submissionend', ($workshop->phase > 3) ? $early : $late, 'id', $workshop->id);
+ set_field('workshop', 'assessmentend', ($workshop->phase > 4) ? $early : $late, 'id', $workshop->id);
+ }
+ execute_sql('ALTER TABLE '. $CFG->prefix .'workshop DROP COLUMN phase');
+
+ execute_sql("UPDATE {$CFG->prefix}event SET eventtype = 'submissionend' WHERE eventtype = 'deadline' AND modulename = 'workshop'", false);
+ }
+
return true;
}
`anonymous` tinyint(2) unsigned NOT NULL default '0',
`includeself` tinyint(2) unsigned NOT NULL default '0',
`maxbytes` int(10) unsigned NOT NULL default '100000',
- `deadline` int(10) unsigned NOT NULL default '0',
+ `submissionstart` int(10) unsigned NOT NULL default '0',
+ `assessmentstart` int(10) unsigned NOT NULL default '0',
+ `submissionend` int(10) unsigned NOT NULL default '0',
+ `assessmentend` int(10) unsigned NOT NULL default '0',
`releasegrades` int(10) unsigned NOT NULL default '0',
`grade` tinyint(3) NOT NULL default '0',
`gradinggrade` tinyint(3) NOT NULL default '0',
INSERT INTO `prefix_log_display` VALUES ('workshop', 'submissions', 'workshop', 'name');
INSERT INTO `prefix_log_display` VALUES ('workshop', 'view', 'workshop', 'name');
INSERT INTO `prefix_log_display` VALUES ('workshop', 'update', 'workshop', 'name');
-
global $CFG;
if ($oldversion < 2003050400) {
- table_column("workshop","graded", "agreeassessments", "INT","2", "", "0" ,"NOT NULL");
- table_column("workshop", "showgrades","hidegrades", "INT","2", "","0", "NOT NULL");
- table_column("workshop_assessments","","timeagreed", "INT","8", "UNSIGNED", "0", "NOT NULL" );
-
- execute_sql("
+ table_column("workshop","graded", "agreeassessments", "INT","2", "", "0" ,"NOT NULL");
+ table_column("workshop", "showgrades","hidegrades", "INT","2", "","0", "NOT NULL");
+ table_column("workshop_assessments","","timeagreed", "INT","8", "UNSIGNED", "0", "NOT NULL" );
+
+ execute_sql("
CREATE TABLE {$CFG->prefix}workshop_comments (
id SERIAL8 PRIMARY KEY ,
workshopid int8 NOT NULL default '0',
assessmentid int8 NOT NULL default '0',
userid int8 NOT NULL default '0',
timecreated int8 NOT NULL default '0',
- mailed int2 NOT NULL default '0',
+ mailed int2 NOT NULL default '0',
comments text NOT NULL
)
");
if ($oldversion < 2003051400) {
table_column("workshop","","showleaguetable", "INTEGER", "4", "unsigned", "0", "not null", "gradingweight");
- execute_sql("
- CREATE TABLE {$CFG->prefix}workshop_rubrics (
- id SERIAL8 PRIMARY KEY,
- workshopid int8 NOT NULL default '0',
- elementid int8 NOT NULL default '0',
- rubricno int4 NOT NULL default '0',
- description text NOT NULL,
- )
+ execute_sql("
+ CREATE TABLE {$CFG->prefix}workshop_rubrics (
+ id SERIAL8 PRIMARY KEY,
+ workshopid int8 NOT NULL default '0',
+ elementid int8 NOT NULL default '0',
+ rubricno int4 NOT NULL default '0',
+ description text NOT NULL,
+ )
");
- }
-
- if ($oldversion < 2003082200) {
- table_column("workshop_rubrics", "elementid", "elementno", "INTEGER", "10", "unsigned", "0", "not null", "id");
- }
+ }
+
+ if ($oldversion < 2003082200) {
+ table_column("workshop_rubrics", "elementid", "elementno", "INTEGER", "10", "unsigned", "0", "not null", "id");
+ }
- if ($oldversion < 2003092500) {
+ if ($oldversion < 2003092500) {
table_column("workshop", "", "overallocation", "INTEGER", "4", "unsigned", "0", "not null", "nsassesments");
- }
+ }
if ($oldversion < 2003100200) {
-
+
table_column("workshop_assesments", "", "resubmission", "INTEGER", "4", "unsigned", "0", "not null", "mailed");
- }
-
+ }
+
if ($oldversion < 2003100800) {
// tidy up log_display entries
execute_sql("DELETE FROM {$CFG->prefix}log_display WHERE module = 'workshop'");
}
if ($oldversion < 2004081100) {
- table_column("workshop", "", "gradinggrade", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "grade");
- table_column("workshop", "", "assessmentcomps", "INTEGER", "4", "UNSIGNED", "2", "NOT NULL", "ntassessments");
+ table_column("workshop", "", "gradinggrade", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "grade");
+ table_column("workshop", "", "assessmentcomps", "INTEGER", "4", "UNSIGNED", "2", "NOT NULL", "ntassessments");
execute_sql("ALTER TABLE {$CFG->prefix}workshop DROP COLUMN gradingweight");
execute_sql("ALTER TABLE {$CFG->prefix}workshop DROP COLUMN mergegrades");
execute_sql("ALTER TABLE {$CFG->prefix}workshop DROP COLUMN peerweight");
}
if ($oldversion < 2004092400) {
- table_column("workshop", "", "nattachments", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "nelements");
- table_column("workshop_submissions", "", "description", "TEXT", "", "", "", "", "mailed");
+ table_column("workshop", "", "nattachments", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "nelements");
+ table_column("workshop_submissions", "", "description", "TEXT", "", "", "", "", "mailed");
execute_sql("CREATE INDEX {$CFG->prefix}workshop_submissions_userid_idx ON {$CFG->prefix}workshop_submissions (userid)");
execute_sql("CREATE INDEX {$CFG->prefix}workshop_assessments_submissionid_idx ON {$CFG->prefix}workshop_assessments (submissionid)");
execute_sql("CREATE INDEX {$CFG->prefix}workshop_assessments_userid_idx ON {$CFG->prefix}workshop_assessments (userid)");
}
if ($oldversion < 2004092700) {
- table_column("workshop", "", "wtype", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "description");
- table_column("workshop", "", "usepassword", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
- table_column("workshop", "", "password", "VARCHAR", "32", "", "", "NOT NULL");
- table_column("workshop_submissions", "", "late", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
+ table_column("workshop", "", "wtype", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "description");
+ table_column("workshop", "", "usepassword", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
+ table_column("workshop", "", "password", "VARCHAR", "32", "", "", "NOT NULL");
+ table_column("workshop_submissions", "", "late", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
// update wkey value
if ($workshops = get_records("workshop")) {
}
if ($oldversion < 2004102800) {
- table_column("workshop", "", "releasegrades", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", "deadline");
- execute_sql("
+ table_column("workshop", "", "releasegrades", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", "deadline");
+ execute_sql("
CREATE TABLE {$CFG->prefix}workshop_stockcomments (
id SERIAL PRIMARY KEY,
- workshopid INT8 NOT NULL default '0',
+ workshopid INT8 NOT NULL default '0',
elementno INT8 NOT NULL default '0',
comments text NOT NULL
)
");
- }
+ }
if ($oldversion < 2004111000) {
- table_column("workshop_elements", "", "stddev", "FLOAT", "", "", "0", "NOT NULL");
- table_column("workshop_elements", "", "totalassessments", "INTEGER", "10", "", "0", "NOT NULL");
- table_column("workshop_elements", "weight", "weight", "INTEGER", "4", "UNSIGNED", "11", "NOT NULL");
+ table_column("workshop_elements", "", "stddev", "FLOAT", "", "", "0", "NOT NULL");
+ table_column("workshop_elements", "", "totalassessments", "INTEGER", "10", "", "0", "NOT NULL");
+ table_column("workshop_elements", "weight", "weight", "INTEGER", "4", "UNSIGNED", "11", "NOT NULL");
table_column("workshop_submissions", "", "nassessments", "INTEGER", "10", "", "0", "NOT NULL");
execute_sql("ALTER TABLE {$CFG->prefix}workshop_submissions DROP COLUMN teachergrade");
execute_sql("ALTER TABLE {$CFG->prefix}workshop_submissions DROP COLUMN peergrade");
modify_database('','CREATE INDEX prefix_workshop_submissions_mailed_idx ON prefix_workshop_submissions (mailed);');
}
+ if ($oldversion < 2004120402) {
+ table_column('workshop', '', 'submissionstart', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'maxbytes');
+ table_column('workshop', '', 'assessmentstart', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'submissionstart');
+ table_column('workshop', 'deadline', 'submissionend', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'assessmentstart');
+ table_column('workshop', '', 'assessmentend', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'submissionend');
+
+ $workshops = get_records('workshop');
+ foreach ($workshops as $workshop) {
+ $early = (time() < $workshop->submissionend) ? 0 : $workshop->submissionend;
+ $late = (time() > $workshop->submissionend) ? 0 : $workshop->submissionend;
+ set_field('workshop', 'submissionstart', ($workshop->phase > 1) ? $early : $late, 'id', $workshop->id);
+ set_field('workshop', 'assessmentstart', ($workshop->phase > 2) ? $early : $late, 'id', $workshop->id);
+ set_field('workshop', 'submissionend', ($workshop->phase > 3) ? $early : $late, 'id', $workshop->id);
+ set_field('workshop', 'assessmentend', ($workshop->phase > 4) ? $early : $late, 'id', $workshop->id);
+ }
+ execute_sql('ALTER TABLE '. $CFG->prefix .'workshop DROP COLUMN phase');
+
+ execute_sql("UPDATE {$CFG->prefix}event SET eventtype = 'submissionend' WHERE eventtype = 'deadline' AND modulename = 'workshop'", false);
+ }
+
return true;
}
anonymous INT2 NOT NULL default '0',
includeself INT2 NOT NULL default '0',
maxbytes INT8 NOT NULL default '100000',
- deadline INT8 NOT NULL default '0',
+ submissionstart INT8 NOT NULL default '0',
+ assessmentstart INT8 NOT NULL default '0',
+ submissionend INT8 NOT NULL default '0',
+ assessmentend INT8 NOT NULL default '0',
releasegrades INT8 NOT NULL "0",
grade INT8 NOT NULL default '0',
gradinggrade INT4 NOT NULL default '0',
foreach ($workshops as $workshop) {
if (isteacher($course->id, $USER->id)) { // teacher see info (students see grade)
- switch ($workshop->phase) {
- case 0:
- case 1: $info = get_string("phase1short", "workshop");
- break;
- case 2: $info = get_string("phase2short", "workshop");
- break;
- case 3: $info = get_string("phase3short", "workshop");
- break;
- case 4: $info = get_string("phase4short", "workshop");
- break;
- case 5: $info = get_string("phase5short", "workshop");
- break;
- }
- if ($workshop->phase > 1) {
+ $info = workshop_phase($workshop, 'short');
+ if (time() > $workshop->submissionstart) {
if ($num = workshop_count_student_submissions_for_assessment($workshop, $USER)) {
$info .= " [".get_string("unassessed", "workshop", $num)."]";
}
}
}
+ $due = userdate($workshop->submissionend);
+
if ($submissions = workshop_get_user_submissions($workshop, $USER)) {
foreach ($submissions as $submission) {
- if ($submission->timecreated <= $workshop->deadline) {
+ if ($submission->timecreated <= $workshop->submissionend) {
$submitted = userdate($submission->timecreated);
}
else {
$submitted = "<font color=\"red\">".userdate($submission->timecreated)."</font>";
}
- $due = userdate($workshop->deadline);
if (!$workshop->visible) {
//Show dimmed if the mod is hidden
$link = "<a class=\"dimmed\" href=\"view.php?id=$workshop->coursemodule\">$workshop->name</a><br />";
}
else { // no submission
$submitted = get_string("no");
- $due = userdate($workshop->deadline);
if (!$workshop->visible) {
//Show dimmed if the mod is hidden
$link = "<a class=\"dimmed\" href=\"view.php?id=$workshop->coursemodule\">$workshop->name</a>";
/*** Standard Moodle functions ******************
workshop_add_instance($workshop)
+workshop_check_dates($workshop)
workshop_cron ()
workshop_delete_instance($id)
workshop_grades($workshopid)
// of the new instance.
$workshop->timemodified = time();
-
- $workshop->deadline = make_timestamp($workshop->deadlineyear,
- $workshop->deadlinemonth, $workshop->deadlineday, $workshop->deadlinehour,
- $workshop->deadlineminute);
+
+ $workshop->submissionstart = make_timestamp($workshop->submissionstartyear,
+ $workshop->submissionstartmonth, $workshop->submissionstartday, $workshop->submissionstarthour,
+ $workshop->submissionstartminute);
+
+ $workshop->assessmentstart = make_timestamp($workshop->assessmentstartyear,
+ $workshop->assessmentstartmonth, $workshop->assessmentstartday, $workshop->assessmentstarthour,
+ $workshop->assessmentstartminute);
+
+ $workshop->submissionend = make_timestamp($workshop->submissionendyear,
+ $workshop->submissionendmonth, $workshop->submissionendday, $workshop->submissionendhour,
+ $workshop->submissionendminute);
+
+ $workshop->assessmentend = make_timestamp($workshop->assessmentendyear,
+ $workshop->assessmentendmonth, $workshop->assessmentendday, $workshop->assessmentendhour,
+ $workshop->assessmentendminute);
$workshop->releasegrades = make_timestamp($workshop->releaseyear,
$workshop->releasemonth, $workshop->releaseday, $workshop->releasehour,
$workshop->releaseminute);
+
+ if (!workshop_check_dates($workshop)) {
+ return get_string('invaliddates', 'workshop');
+ }
if ($returnid = insert_record("workshop", $workshop)) {
$event = NULL;
- $event->name = $workshop->name;
+ $event->name = get_string('submissionstartevent','workshop', $workshop->name);
$event->description = $workshop->description;
$event->courseid = $workshop->course;
$event->groupid = 0;
$event->userid = 0;
$event->modulename = 'workshop';
$event->instance = $returnid;
- $event->eventtype = 'deadline';
- $event->timestart = $workshop->deadline;
+ $event->eventtype = 'submissionstart';
+ $event->timestart = $workshop->submissionstart;
$event->timeduration = 0;
+ add_event($event);
+
+ $event->name = get_string('submissionendevent','workshop', $workshop->name);
+ $event->eventtype = 'submissionend';
+ $event->timestart = $workshop->submissionend;
+ add_event($event);
+ $event->name = get_string('assessmentstartevent','workshop', $workshop->name);
+ $event->eventtype = 'assessmentstart';
+ $event->timestart = $workshop->assessmentstart;
+ add_event($event);
+
+ $event->name = get_string('assessmentendevent','workshop', $workshop->name);
+ $event->eventtype = 'assessmentend';
+ $event->timestart = $workshop->assessmentend;
add_event($event);
}
return $returnid;
}
+///////////////////////////////////////////////////////////////////////////////
+// returns true if the dates are valid, false otherwise
+function workshop_check_dates($workshop) {
+ return ($workshop->submissionstart < $workshop->submissionend and
+ $workshop->submissionstart <= $workshop->assessmentstart and
+ $workshop->assessmentstart <= $workshop->assessmentend and
+ $workshop->submissionend < $workshop->assessmentend);
+}
+
///////////////////////////////////////////////////////////////////////////////
function workshop_cron () {
///////////////////////////////////////////////////////////////////////////////
function workshop_grades($workshopid) {
/// Must return an array of grades, indexed by user, and a max grade.
-/// only returns grades in phase 2 or greater
+/// only returns grades once assessment has started
/// returns nothing if workshop is not graded
global $CFG;
$return = null;
if ($workshop = get_record("workshop", "id", $workshopid)) {
- if (($workshop->phase > 1) and $workshop->gradingstrategy) {
+ if (($workshop->assessmentstart < time()) and $workshop->gradingstrategy) {
if ($students = get_course_students($workshop->course)) {
foreach ($students as $student) {
if ($workshop->wtype) {
$moduleid = get_field('modules', 'id', 'name', 'workshop');
foreach ($workshops as $workshop) {
- $event = NULL;
- $event->name = addslashes($workshop->name);
- $event->description = addslashes($workshop->description);
- $event->timestart = $workshop->deadline;
-
- if ($event->id = get_field('event', 'id', 'modulename', 'workshop', 'instance', $workshop->id)) {
- update_event($event);
- } else {
- $event->courseid = $workshop->course;
- $event->groupid = 0;
- $event->userid = 0;
- $event->modulename = 'workshop';
- $event->instance = $workshop->id;
- $event->eventtype = 'deadline';
- $event->timeduration = 0;
- $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $workshop->id);
- add_event($event);
+ $dates = array(
+ 'submissionstart' => $workshop->submissionstart,
+ 'submissionend' => $workshop->submissionend,
+ 'assessmentstart' => $workshop->assessmentstart,
+ 'assessmentend' => $workshop->assessmentend
+ );
+
+ foreach ($dates as $type => $date) {
+
+ if ($date) {
+ if ($event = get_record('event', 'modulename', 'workshop', 'instance', $workshop->id, 'eventtype', $type)) {
+ $event->name = addslashes(get_string($type.'event','workshop', $workshop->name));
+ $event->description = addslashes($workshop->description);
+ $event->eventtype = $type;
+ $event->timestart = $date;
+ update_event($event);
+ } else {
+ $event->courseid = $workshop->course;
+ $event->modulename = 'workshop';
+ $event->instance = $workshop->id;
+ $event->name = addslashes(get_string($type.'event','workshop', $workshop->name));
+ $event->description = addslashes($workshop->description);
+ $event->eventtype = $type;
+ $event->timestart = $date;
+ $event->timeduration = 0;
+ $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $workshop->id);
+ add_event($event);
+ }
+ }
}
-
}
return true;
}
$workshop->timemodified = time();
- $workshop->deadline = make_timestamp($workshop->deadlineyear,
- $workshop->deadlinemonth, $workshop->deadlineday, $workshop->deadlinehour,
- $workshop->deadlineminute);
+ $workshop->submissionstart = make_timestamp($workshop->submissionstartyear,
+ $workshop->submissionstartmonth, $workshop->submissionstartday, $workshop->submissionstarthour,
+ $workshop->submissionstartminute);
+
+ $workshop->assessmentstart = make_timestamp($workshop->assessmentstartyear,
+ $workshop->assessmentstartmonth, $workshop->assessmentstartday, $workshop->assessmentstarthour,
+ $workshop->assessmentstartminute);
+
+ $workshop->submissionend = make_timestamp($workshop->submissionendyear,
+ $workshop->submissionendmonth, $workshop->submissionendday, $workshop->submissionendhour,
+ $workshop->submissionendminute);
+
+ $workshop->assessmentend = make_timestamp($workshop->assessmentendyear,
+ $workshop->assessmentendmonth, $workshop->assessmentendday, $workshop->assessmentendhour,
+ $workshop->assessmentendminute);
$workshop->releasegrades = make_timestamp($workshop->releaseyear,
$workshop->releasemonth, $workshop->releaseday, $workshop->releasehour,
$workshop->releaseminute);
+
+ if (!workshop_check_dates($workshop)) {
+ return get_string('invaliddates', 'workshop');
+ }
// set the workshop's type
$wtype = 0; // 3 phases, no grading grades
// encode password if necessary
if (!empty($workshop->password)) {
- $workshop->password = md5($workshop->password);
- } else {
- unset($workshop->password);
- }
+ $workshop->password = md5($workshop->password);
+ } else {
+ unset($workshop->password);
+ }
$workshop->id = $workshop->instance;
if ($returnid = update_record("workshop", $workshop)) {
- $event = NULL;
-
- if ($event->id = get_field('event', 'id', 'modulename', 'workshop', 'instance', $workshop->id)) {
-
- $event->name = $workshop->name;
- $event->description = $workshop->description;
- $event->timestart = $workshop->deadline;
-
- update_event($event);
+ $dates = array(
+ 'submissionstart' => $workshop->submissionstart,
+ 'submissionend' => $workshop->submissionend,
+ 'assessmentstart' => $workshop->assessmentstart,
+ 'assessmentend' => $workshop->assessmentend
+ );
+ $moduleid = get_field('modules', 'id', 'name', 'workshop');
+
+ foreach ($dates as $type => $date) {
+ if ($event = get_record('event', 'modulename', 'workshop', 'instance', $workshop->id, 'eventtype', $type)) {
+ $event->name = get_string($type.'event','workshop', $workshop->name);
+ $event->description = $workshop->description;
+ $event->eventtype = $type;
+ $event->timestart = $date;
+ update_event($event);
+ } else if ($date) {
+ $event = NULL;
+ $event->name = get_string($type.'event','workshop', $workshop->name);
+ $event->description = $workshop->description;
+ $event->courseid = $workshop->course;
+ $event->groupid = 0;
+ $event->userid = 0;
+ $event->modulename = 'workshop';
+ $event->instance = $workshop->instance;
+ $event->eventtype = $type;
+ $event->timestart = $date;
+ $event->timeduration = 0;
+ $event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $workshop->id);
+ add_event($event);
+ }
}
}
return $returnid;
}
-
///////////////////////////////////////////////////////////////////////////////
function workshop_user_complete($course, $user, $mod, $workshop) {
if ($submission = workshop_get_student_submission($workshop, $user)) {
workshop_list_ungraded_assessments($workshop, $stype) {
workshop_list_user_submissions($workshop, $user) {
+workshop_calculate_phase($workshop, $style='') {
workshop_print_assessment($workshop, $assessment, $allowchanges, $showcommentlinks, $returnto)
workshop_print_assessments_by_user_for_admin($workshop, $user) {
workshop_print_league_table($workshop) {
workshop_print_submission_assessments($workshop, $submission, $type) {
workshop_print_submission_title($workshop, $user) {
-workshop_print_tabbed_table($table) {
workshop_print_time_to_deadline($time) {
workshop_print_upload_form($workshop) {
workshop_print_user_assessments($workshop, $user) {
}
+
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_peer_assessments($workshop, $user) {
global $CFG;
if ($submissions = workshop_get_user_submissions($workshop, $user)) {
foreach ($submissions as $submission) {
- // allow user to edit or delete a submission if it's warm OR if the workshop is still in
- // the submission phase
- if (($submission->timecreated > ($timenow - $CFG->maxeditingtime)) or ($workshop->phase == 2)) {
+ // allow user to edit or delete a submission if it's warm OR if assessment period has not started
+ if (($submission->timecreated > ($timenow - $CFG->maxeditingtime)) or ($workshop->assessmentstart > time())) {
$action = "<a href=\"submissions.php?action=editsubmission&id=$cm->id&sid=$submission->id\">".
get_string("edit", "workshop")."</a> | ".
"<a href=\"submissions.php?action=userconfirmdelete&id=$cm->id&sid=$submission->id\">".
}
+
+///////////////////////////////////////////////////////////////////////////////
+function workshop_phase($workshop, $style='') {
+ $time = time();
+ if ($time < $workshop->submissionstart) {
+ return get_string('phase1'.$style, 'workshop');
+ }
+ else if ($time < $workshop->submissionend) {
+ if ($time < $workshop->assessmentstart) {
+ return get_string('phase2'.$style, 'workshop');
+ } else {
+ return get_string('phase3'.$style, 'workshop');
+ }
+ }
+ else if ($time < $workshop->assessmentstart) {
+ return get_string('phase0'.$style, 'workshop');
+ }
+ else if ($time < $workshop->assessmentend) {
+ return get_string('phase4'.$style, 'workshop');
+ }
+ else {
+ return get_string('phase5'.$style, 'workshop');
+ }
+ error('Something is wrong with the workshop dates');
+}
+
+
//////////////////////////////////////////////////////////////////////////////////////
function workshop_print_assessment($workshop, $assessment = false, $allowchanges = false,
$showcommentlinks = false, $returnto = '') {
error("Course Module ID was incorrect");
}
// print standard assignment heading
- $strdifference = format_time($workshop->deadline - time());
- if (($workshop->deadline - time()) < 0) {
- $strdifference = "<font color=\"red\">$strdifference</font>";
- }
- $strduedate = userdate($workshop->deadline)." ($strdifference)";
print_simple_box_start("center");
print_heading($workshop->name, "center");
print_simple_box_start("center");
- echo "<b>".get_string("duedate", "assignment")."</b>: $strduedate<br />";
+
+ // print phase and date info
+ $string = '<b>'.get_string('currentphase', 'workshop').'</b>: '.workshop_phase($workshop).'<br />';
+ $dates = array(
+ 'submissionstart' => $workshop->submissionstart,
+ 'submissionend' => $workshop->submissionend,
+ 'assessmentstart' => $workshop->assessmentstart,
+ 'assessmentend' => $workshop->assessmentend
+ );
+ foreach ($dates as $type => $date) {
+ if ($date) {
+ $strdifference = format_time($date - time());
+ if (($date - time()) < 0) {
+ $strdifference = "<font color=\"red\">$strdifference</font>";
+ }
+ $string .= '<b>'.get_string($type, 'workshop').'</b>: '.userdate($date)." ($strdifference)<br />";
+ }
+ }
+ echo $string;
+
$grade = $workshop->gradinggrade + $workshop->grade;
- echo "<b>".get_string("maximumgrade")."</b>: $grade<br />";
+ echo "<br /><b>".get_string("maximumgrade")."</b>: $grade<br />";
echo "<b>".get_string("detailsofassessment", "workshop")."</b>:
<a href=\"assessments.php?id=$cm->id&action=displaygradingform\">".
get_string("specimenassessmentform", "workshop")."</a><br />";
}
-//////////////////////////////////////////////////////////////////////////////////////
-function workshop_print_tabbed_heading($tabs) {
-// Prints a tabbed heading where one of the tabs highlighted.
-// $tabs is an object with several properties.
-// $tabs->names is an array of tab names
-// $tabs->urls is an array of links
-// $tabs->align is an array of column alignments (defaults to "center")
-// $tabs->size is an array of column sizes
-// $tabs->wrap is an array of "nowrap"s or nothing
-// $tabs->highlight is an index (zero based) of "active" heading .
-// $tabs->width is an percentage of the page (defualts to 80%)
-// $tabs->cellpadding padding on each cell (defaults to 5)
-
- global $CFG, $THEME;
-
- if (isset($tabs->names)) {
- foreach ($tabs->names as $key => $name) {
- if (!empty($tabs->urls[$key])) {
- $url =$tabs->urls[$key];
- if ($tabs->highlight == $key) {
- $tabcontents[$key] = "<b>$name</b>";
- } else {
- $tabcontents[$key] = "<a class= \"dimmed\" href=\"$url\"><b>$name</b></a>";
- }
- } else {
- $tabcontents[$key] = "<b>$name</b>";
- }
- }
- }
-
- if (empty($tabs->width)) {
- $tabs->width = "80%";
- }
-
- if (empty($tabs->cellpadding)) {
- $tabs->cellpadding = "5";
- }
-
- // print_simple_box_start("center", "$table->width", "#ffffff", 0);
- echo "<table width=\"$tabs-width\" border=\"0\" align=\"center\" ";
- echo " cellpadding=\"$tabs->cellpadding\" cellspacing=\"0\" class=\"generaltable\">\n";
-
- if (!empty($tabs->names)) {
- echo "<tr>";
- echo "<td class=\"generaltablecell\">".
- "<img width=\"10\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\" /></td>\n";
- foreach ($tabcontents as $key => $tab) {
- if (isset($align[$key])) {
- $alignment = "align=\"$align[$key]\"";
- } else {
- $alignment = "align=\"center\"";
- }
- if (isset($size[$key])) {
- $width = "width=\"$size[$key]\"";
- } else {
- $width = "";
- }
- if (isset($wrap[$key])) {
- $wrapping = "no wrap";
- } else {
- $wrapping = "";
- }
- if ($key == $tabs->highlight) {
- echo "<td valign=\"top\" class=\"generaltabselected\" $alignment $width $wrapping bgcolor=\"$THEME->cellheading2\">$tab</td>\n";
- } else {
- echo "<td valign=\"top\" class=\"generaltab\" $alignment $width $wrapping bgcolor=\"$THEME->cellheading\">$tab</td>\n";
- }
- echo "<td class=\"generaltablecell\">".
- "<img width=\"10\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\" /></td>\n";
- }
- echo "</tr>\n";
- } else {
- echo "<tr><td>No names specified</td></tr>\n";
- }
- // bottom stripe
- $ncells = count($tabs->names)*2 +1;
- $height = 2;
- echo "<tr><td colspan=\"$ncells\" bgcolor=\"$THEME->cellheading2\">".
- "<img height=\"$height\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\" /></td></tr>\n";
- echo "</table>\n";
- // print_simple_box_end();
-
- return true;
-}
function workshop_print_time_to_deadline($time) {
if ($time < 0) {
<?php
- require("$CFG->dirroot/mod/workshop/lib.php"); // for parameter arrays
+ require_once("$CFG->dirroot/mod/workshop/lib.php"); // for parameter arrays
// ...and fill the form if needed
if (empty($form->name)) {
$form->name = "";
$form->grade = 100;
}
if (!isset($form->gradingstrategy)) {
- $form->gradingstrategy = 1; // default is accumulative
- }
+ $form->gradingstrategy = 1; // default is accumulative
+ }
if (!isset($form->nelements)) {
$form->nelements = 1;
}
if (empty($form->maxbytes)) {
$form->maxbytes = "";
}
- if (empty($form->deadline)) {
- $form->deadline = "";
+ if (empty($form->submissionstart)) {
+ $form->submissionstart = time();
+ }
+ if (empty($form->assessmentstart)) {
+ $form->assessmentstart = time();
+ }
+ if (empty($form->submissionend)) {
+ $form->submissionend = time();
+ }
+ if (empty($form->assessmentend)) {
+ $form->assessmentend = time();
+ }
+ if (empty($form->releasegrades)) {
+ $form->releasegrades = time();
}
?>
<td align="right"><b><?php print_string("gradingstrategy", "workshop") ?>:</b></td>
<td>
<?php
- choose_from_menu($WORKSHOP_TYPE, "gradingstrategy", $form->gradingstrategy, "");
+ choose_from_menu($WORKSHOP_TYPE, "gradingstrategy", $form->gradingstrategy, "");
helpbutton("gradingstrategy", get_string("gradingstrategy", "workshop"), "workshop");
?>
</td>
<tr valign="top">
<td align="right"><b><?php print_string("numberofassessmentsofteachersexamples", "workshop") ?>:</b></td>
<td>
- <?php
+ <?php
unset($numbers);
- for ($i=20; $i>=0; $i--) {
- $numbers[$i] = $i;
- }
- choose_from_menu($numbers, "ntassessments", $form->ntassessments, "");
+ for ($i=20; $i>=0; $i--) {
+ $numbers[$i] = $i;
+ }
+ choose_from_menu($numbers, "ntassessments", $form->ntassessments, "");
helpbutton("nassessmentsofteachersexamples", get_string("numberofassessmentsofteachersexamples", "workshop"), "workshop");
- ?>
+ ?>
</td>
</tr>
<td align="right"><b><?php print_string("comparisonofassessments", "workshop") ?>:</b></td>
<td>
<?php
- // set up comparison names
+ // set up comparison names
foreach ($WORKSHOP_ASSESSMENT_COMPS as $KEY => $COMPARISON) {
$COMPARISONS[] = $COMPARISON['name'];
- }
+ }
choose_from_menu($COMPARISONS, "assessmentcomps", $form->assessmentcomps, "");
helpbutton("comparisonofassessments", get_string("comparisonofassessments", "workshop"), "workshop");
?>
<tr valign="top">
<td align="right"><b><?php print_string("numberofassessmentsofstudentsubmissions", "workshop") ?>:</b></td>
<td>
- <?php
+ <?php
unset($numbers);
- for ($i=20; $i>=0; $i--) {
- $numbers[$i] = $i;
- }
- choose_from_menu($numbers, "nsassessments", $form->nsassessments, "");
+ for ($i=20; $i>=0; $i--) {
+ $numbers[$i] = $i;
+ }
+ choose_from_menu($numbers, "nsassessments", $form->nsassessments, "");
helpbutton("nassessmentsofstudentsubmissions", get_string("numberofassessmentsofstudentsubmissions", "workshop"), "workshop");
- ?>
+ ?>
</td>
</tr>
<tr valign="top">
<td align="right"><b><?php print_string("weightforteacherassessments", "workshop") ?>:</b></td>
<td>
- <?php
+ <?php
unset($numbers);
- for ($i=10; $i>=0; $i--) {
- $numbers[$i] = $i;
- }
- choose_from_menu($numbers, "teacherweight", $form->teacherweight, "");
+ for ($i=10; $i>=0; $i--) {
+ $numbers[$i] = $i;
+ }
+ choose_from_menu($numbers, "teacherweight", $form->teacherweight, "");
helpbutton("teacherweight", get_string("weightforteacherassessments", "workshop"), "workshop");
- ?>
+ ?>
</td>
</tr>
<td>
<?php
$options[0] = get_string("no"); $options[1] = get_string("yes");
- choose_from_menu($options, "usepassword", $form->usepassword, "");
+ choose_from_menu($options, "usepassword", $form->usepassword, "");
helpbutton("usepassword", get_string("usepassword", "workshop"), "workshop");
?>
</td>
<td align="right"><b><?php print_string("password"); ?>:</b></td>
<td>
<input type="text" name="password" size="10" value="" alt="<?php print_string("password"); ?>" /> <?php echo " (".get_string("leavetokeep").")"; ?>
- <?php helpbutton("password", get_string("password"), "workshop"); ?>
+ <?php helpbutton("password", get_string("password"), "workshop"); ?>
</td>
</tr>
</tr>
<tr valign="top">
- <td align="right"><b><?php print_string("deadline", "workshop") ?>:</b></td>
+ <td align="right"><b><?php print_string("submissionstart", "workshop") ?>:</b></td>
+ <td><?php
+ print_date_selector("submissionstartday", "submissionstartmonth", "submissionstartyear", $form->submissionstart);
+ echo " - ";
+ print_time_selector("submissionstarthour", "submissionstartminute", $form->submissionstart);
+ helpbutton("submissionstart", get_string("submissionstart", "workshop"), "workshop");
+ ?></td>
+</tr>
+
+<tr valign="top">
+ <td align="right"><b><?php print_string("assessmentstart", "workshop") ?>:</b></td>
<td><?php
- print_date_selector("deadlineday", "deadlinemonth", "deadlineyear", $form->deadline);
- echo " - ";
- print_time_selector("deadlinehour", "deadlineminute", $form->deadline);
+ print_date_selector("assessmentstartday", "assessmentstartmonth", "assessmentstartyear", $form->assessmentstart);
+ echo " - ";
+ print_time_selector("assessmentstarthour", "assessmentstartminute", $form->assessmentstart);
+ helpbutton("assessmentstart", get_string("assessmentstart", "workshop"), "workshop");
?></td>
</tr>
+<tr valign="top">
+ <td align="right"><b><?php print_string("submissionend", "workshop") ?>:</b></td>
+ <td><?php
+ print_date_selector("submissionendday", "submissionendmonth", "submissionendyear", $form->submissionend);
+ echo " - ";
+ print_time_selector("submissionendhour", "submissionendminute", $form->submissionend);
+ helpbutton("submissionend", get_string("submissionend", "workshop"), "workshop");
+ ?></td>
+</tr>
+
+<tr valign="top">
+ <td align="right"><b><?php print_string("assessmentend", "workshop") ?>:</b></td>
+ <td><?php
+ print_date_selector("assessmentendday", "assessmentendmonth", "assessmentendyear", $form->assessmentend);
+ echo " - ";
+ print_time_selector("assessmentendhour", "assessmentendminute", $form->assessmentend);
+ helpbutton("assessmentend", get_string("assessmentend", "workshop"), "workshop");
+ ?></td>
+</tr>
<tr valign="top">
<td align="right"><b><?php print_string("releaseteachergrades", "workshop") ?>:</b></td>
<td><?php
$workshop->anonymous = backup_todb($info['MOD']['#']['ANONYMOUS']['0']['#']);
$workshop->includeself = backup_todb($info['MOD']['#']['INCLUDESELF']['0']['#']);
$workshop->maxbytes = backup_todb($info['MOD']['#']['MAXBYTES']['0']['#']);
- $workshop->deadline = backup_todb($info['MOD']['#']['DEADLINE']['0']['#']);
+ $workshop->submissionstart = backup_todb($info['MOD']['#']['SUBMISSIONSTART']['0']['#']);
+ $workshop->assessmentstart = backup_todb($info['MOD']['#']['ASSESSMENTSTART']['0']['#']);
+ $workshop->submissionend = backup_todb($info['MOD']['#']['SUBMISSIONEND']['0']['#']);
+ $workshop->assessmentend = backup_todb($info['MOD']['#']['ASSESSMENTEND']['0']['#']);
$workshop->releasegrades = backup_todb($info['MOD']['#']['RELEASEGRADES']['0']['#']);
$workshop->grade = backup_todb($info['MOD']['#']['GRADE']['0']['#']);
$workshop->gradinggrade = backup_todb($info['MOD']['#']['GRADINGGRADE']['0']['#']);
dminamendtitle
adminconfirmdelete
- admindelete
- adminlist
+ admindelete
+ adminlist
displayfinalgrades (teachers only)
editsubmission
listallsubmissions
require("lib.php");
require("locallib.php");
- require_variable($id); // Course Module ID
+ require_variable($id); // Course Module ID
// get some useful stuff...
if (! $cm = get_record("course_modules", "id", $id)) {
}
- /*************** display final grades (by teacher) ***************************/
- elseif ($action == 'displayfinalgrades') {
+ /*************** display final grades (by teacher) ***************************/
+ elseif ($action == 'displayfinalgrades') {
if (groupmode($course, $cm) == SEPARATEGROUPS) {
$groupid = get_current_group($course->id);
} else {
$groupid = 0;
}
- // Get all the students
- if (!$users = get_course_students($course->id, "u.lastname, u.firstname")) {
- print_heading(get_string("nostudentsyet"));
- print_footer($course);
- exit;
- }
-
- // show the final grades as stored in the tables...
- print_heading_with_help(get_string("displayoffinalgrades", "workshop"), "finalgrades", "workshop");
- echo "<center><table border=\"1\" width=\"90%\"><tr>
- <td bgcolor=\"$THEME->cellheading2\"><b>".$course->student."</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\"><b>".get_string("submission", "workshop")."</b></td>";
- if ($workshop->wtype) {
+ // Get all the students
+ if (!$users = get_course_students($course->id, "u.lastname, u.firstname")) {
+ print_heading(get_string("nostudentsyet"));
+ print_footer($course);
+ exit;
+ }
+
+ // show the final grades as stored in the tables...
+ print_heading_with_help(get_string("displayoffinalgrades", "workshop"), "finalgrades", "workshop");
+ echo "<center><table border=\"1\" width=\"90%\"><tr>
+ <td bgcolor=\"$THEME->cellheading2\"><b>".$course->student."</b></td>";
+ echo "<td bgcolor=\"$THEME->cellheading2\"><b>".get_string("submission", "workshop")."</b></td>";
+ if ($workshop->wtype) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsdone", "workshop").
"</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforassessments",
+ echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforassessments",
"workshop")."</b></td>";
}
- echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
+ echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
$course->teachers)."</b></td>";
- if ($workshop->wtype) {
+ if ($workshop->wtype) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
$course->students)."</b></td>";
}
- echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforsubmission",
+ echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforsubmission",
"workshop")."</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("overallgrade", "workshop").
+ echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("overallgrade", "workshop").
"</b></td></tr>\n";
foreach ($users as $user) {
continue;
}
}
- if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
$gradinggrade = workshop_gradinggrade($workshop, $user);
- foreach ($submissions as $submission) {
+ foreach ($submissions as $submission) {
$grade = workshop_submission_grade($workshop, $submission);
- echo "<tr><td>$user->firstname $user->lastname</td>";
- echo "<td>".workshop_print_submission_title($workshop, $submission)."</td>\n";
- if ($workshop->wtype) {
+ echo "<tr><td>$user->firstname $user->lastname</td>";
+ echo "<td>".workshop_print_submission_title($workshop, $submission)."</td>\n";
+ if ($workshop->wtype) {
echo "<td align=\"center\">".workshop_print_user_assessments($workshop, $user)."</td>";
- echo "<td align=\"center\">$gradinggrade</td>";
+ echo "<td align=\"center\">$gradinggrade</td>";
}
- echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
+ echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
"teacher")."</td>";
- if ($workshop->wtype) {
+ if ($workshop->wtype) {
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
"student")."</td>";
}
- echo "<td align=\"center\">$grade</td>";
- echo "<td align=\"center\">".number_format($gradinggrade + $grade, 1)."</td></tr>\n";
- }
- }
- }
- echo "</table><br clear=\"all\" />\n";
+ echo "<td align=\"center\">$grade</td>";
+ echo "<td align=\"center\">".number_format($gradinggrade + $grade, 1)."</td></tr>\n";
+ }
+ }
+ }
+ echo "</table><br clear=\"all\" />\n";
workshop_print_key($workshop);
- if ($workshop->showleaguetable) {
- workshop_print_league_table($workshop);
- if ($workshop->anonymous) {
- echo "<p>".get_string("namesnotshowntostudents", "workshop", $course->students)."</p>\n";
- }
- }
- print_continue("view.php?id=$cm->id");
- }
+ if ($workshop->showleaguetable) {
+ workshop_print_league_table($workshop);
+ if ($workshop->anonymous) {
+ echo "<p>".get_string("namesnotshowntostudents", "workshop", $course->students)."</p>\n";
+ }
+ }
+ print_continue("view.php?id=$cm->id");
+ }
- /*************** display current grades (by teacher) ***************************/
- elseif ($action == 'displaycurrentgrades') {
+ /*************** display current grades (by teacher) ***************************/
+ elseif ($action == 'displaycurrentgrades') {
if (groupmode($course, $cm) == SEPARATEGROUPS) {
$groupid = get_current_group($course->id);
} else {
$groupid = 0;
}
- print_heading_with_help(get_string("displayofcurrentgrades", "workshop"), "finalgrades", "workshop");
+ print_heading_with_help(get_string("displayofcurrentgrades", "workshop"), "finalgrades", "workshop");
if ($workshop->ntassessments) {
// display the teacher's submissions
workshop_print_key($workshop);
}
- // Get all the students
- if (!$users = get_course_students($course->id, "u.lastname, u.firstname")) {
- print_heading(get_string("nostudentsyet"));
- print_footer($course);
- exit;
- }
-
- // show the current grades as stored in the tables...
- echo "<center><table border=\"1\" width=\"90%\"><tr>
- <td bgcolor=\"$THEME->cellheading2\"><b>".$course->student."</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\"><b>".get_string("submission", "workshop")."</b></td>";
- if ($workshop->wtype) {
+ // Get all the students
+ if (!$users = get_course_students($course->id, "u.lastname, u.firstname")) {
+ print_heading(get_string("nostudentsyet"));
+ print_footer($course);
+ exit;
+ }
+
+ // show the current grades as stored in the tables...
+ echo "<center><table border=\"1\" width=\"90%\"><tr>
+ <td bgcolor=\"$THEME->cellheading2\"><b>".$course->student."</b></td>";
+ echo "<td bgcolor=\"$THEME->cellheading2\"><b>".get_string("submission", "workshop")."</b></td>";
+ if ($workshop->wtype) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsdone", "workshop").
"</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforassessments",
+ echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforassessments",
"workshop")."</b></td>";
}
- echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
+ echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
$course->teachers)."</b></td>";
- if ($workshop->wtype) {
+ if ($workshop->wtype) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
$course->students)."</b></td>";
}
- echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforsubmission",
+ echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforsubmission",
"workshop")."</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("overallgrade", "workshop").
+ echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("overallgrade", "workshop").
"</b></td></tr>\n";
foreach ($users as $user) {
continue;
}
}
- if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
$gradinggrade = workshop_gradinggrade($workshop, $user);
- foreach ($submissions as $submission) {
+ foreach ($submissions as $submission) {
$grade = workshop_submission_grade($workshop, $submission);
- echo "<tr><td>$user->firstname $user->lastname</td>";
- echo "<td>".workshop_print_submission_title($workshop, $submission)."</td>\n";
- if ($workshop->wtype) {
+ echo "<tr><td>$user->firstname $user->lastname</td>";
+ echo "<td>".workshop_print_submission_title($workshop, $submission)."</td>\n";
+ if ($workshop->wtype) {
echo "<td align=\"center\">".workshop_print_user_assessments($workshop, $user)."</td>";
- echo "<td align=\"center\">$gradinggrade</td>";
+ echo "<td align=\"center\">$gradinggrade</td>";
}
- echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
+ echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
"teacher")."</td>";
- if ($workshop->wtype) {
+ if ($workshop->wtype) {
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
"student")."</td>";
}
- echo "<td align=\"center\">$grade</td>";
- echo "<td align=\"center\">".number_format($gradinggrade + $grade, 1)."</td></tr>\n";
- }
- }
- }
- echo "</table><br clear=\"all\" />\n";
+ echo "<td align=\"center\">$grade</td>";
+ echo "<td align=\"center\">".number_format($gradinggrade + $grade, 1)."</td></tr>\n";
+ }
+ }
+ }
+ echo "</table><br clear=\"all\" />\n";
workshop_print_key($workshop);
- print_continue("view.php?id=$cm->id");
- }
+ print_continue("view.php?id=$cm->id");
+ }
/******************* edit submission ************************************/
if ($submission->userid <> $USER->id) {
error("Edit submission: Userids do not match");
}
+ if (($submission->timecreated < ($timenow - $CFG->maxeditingtime)) and ($workshop->assessmentstart < time()) {
+ error(get_string('notallowed', 'workshop'));
+ }
?>
<form name="editform" enctype="multipart/form-data" action="submissions.php" method="post">
<input type="hidden" name="action" value="updatesubmission" />
}
- /******************* list all submissions ************************************/
- elseif ($action == 'listallsubmissions' ) {
- if (!$users = get_course_students($course->id)) {
- print_heading(get_string("nostudentsyet"));
- print_footer($course);
- exit;
- }
- print_heading(get_string("listofallsubmissions", "workshop").":", "CENTER");
- workshop_list_all_submissions($workshop, $USER);
- print_continue("view.php?id=$cm->id");
-
- }
-
-
- /******************* list for assessment student (submissions) ************************************/
- elseif ($action == 'listforassessmentstudent' ) {
- if (!$users = get_course_students($course->id)) {
- print_heading(get_string("nostudentsyet"));
- print_footer($course);
- exit;
- }
- workshop_list_unassessed_student_submissions($workshop, $USER);
- print_continue("view.php?id=$cm->id");
-
- }
-
-
- /******************* list for assessment teacher (submissions) ************************************/
- elseif ($action == 'listforassessmentteacher' ) {
+ /******************* list all submissions ************************************/
+ elseif ($action == 'listallsubmissions' ) {
+ if (!$users = get_course_students($course->id)) {
+ print_heading(get_string("nostudentsyet"));
+ print_footer($course);
+ exit;
+ }
+ print_heading(get_string("listofallsubmissions", "workshop").":", "CENTER");
+ workshop_list_all_submissions($workshop, $USER);
+ print_continue("view.php?id=$cm->id");
+
+ }
+
+
+ /******************* list for assessment student (submissions) ************************************/
+ elseif ($action == 'listforassessmentstudent' ) {
+ if (!$users = get_course_students($course->id)) {
+ print_heading(get_string("nostudentsyet"));
+ print_footer($course);
+ exit;
+ }
+ workshop_list_unassessed_student_submissions($workshop, $USER);
+ print_continue("view.php?id=$cm->id");
+
+ }
+
+
+ /******************* list for assessment teacher (submissions) ************************************/
+ elseif ($action == 'listforassessmentteacher' ) {
if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
+ error("Only teachers can look at this page");
+ }
- workshop_list_unassessed_teacher_submissions($workshop, $USER);
- print_continue("view.php?id=$cm->id");
-
- }
-
+ workshop_list_unassessed_teacher_submissions($workshop, $USER);
+ print_continue("view.php?id=$cm->id");
+
+ }
+
/******************* remove (all) attachments ************************************/
elseif ($action == 'removeattachments' ) {
$submission = get_record("workshop_submissions", "id", $_GET['sid']);
workshop_print_submission($workshop, $submission);
- print_continue("view.php?id=$cm->id");
+ print_continue("view.php?id=$cm->id");
}
$newsubmission->title = $title;
$newsubmission->description = trim($form->description);
$newsubmission->timecreated = $timenow;
- if ($timenow > $workshop->deadline) {
+ if ($timenow > $workshop->submissionend) {
$newsubmission->late = 1;
}
if (!$newsubmission->id = insert_record("workshop_submissions", $newsubmission)) {
error("Workshop upload: Failure to create new submission record!");
}
// see if this is a resubmission by looking at the previous submissions...
- if ($submissions and ($workshop->phase >1)) { // ...but not teacher submissions
+ if ($submissions and ($workshop->submissionstart > time())) { // ...but not teacher submissions
// find the last submission
foreach ($submissions as $submission) {
$lastsubmission = $submission;
// This fragment is called by /admin/index.php
////////////////////////////////////////////////////////////////////////////////
-$module->version = 2004111200;
-$module->requires = 2004091700; // Requires this Moodle version
+$module->version = 2004120402;
+$module->requires = 2004052505; // Requires this Moodle version
$module->cron = 60;
?>
/*************************************************
ACTIONS handled are:
- allowassessments (for teachers)
- allowboth (for teachers)
- allowsubmissions (for teachers)
- close workshop( for teachers)
displayfinalgrade (for students)
notavailable (for students)
- setupassignment (for teachers)
studentsview
submitexample
teachersview
require("../../config.php");
require("lib.php");
require("locallib.php");
-
- require_variable($id); // Course Module ID
+
+ require_variable($id); // Course Module ID
// get some useful stuff...
if (! $cm = get_record("course_modules", "id", $id)) {
optional_variable($action);
if (isteacher($course->id)) {
- if (empty($action)) { // no action specified, either go straight to elements page else the admin page
- // has the assignment any elements
- if (count_records("workshop_elements", "workshopid", $workshop->id) >= $workshop->nelements) {
- $action = "teachersview";
- }
- else {
- redirect("assessments.php?action=editelements&id=$cm->id");
- }
- }
- }
- elseif (!isguest()) { // it's a student then
- if (!$cm->visible) {
- notice(get_string("activityiscurrentlyhidden"));
- }
- switch ($workshop->phase) {
- case 0 :
- case 1 : $action = 'notavailable'; break;
- case 2 :
- case 3 :
- case 4 : $action = 'studentsview'; break;
- case 5 : $action = 'displayfinalgrade';
- }
- }
- else { // it's a guest, oh no!
- $action = 'notavailable';
- }
-
-
- /************** 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", $cm->id);
- redirect("view.php?id=$cm->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", "allow both", "view.php?id=$cm->id", "$workshop->id", $cm->id);
- redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 3));
- }
-
-
- /************** 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 {
- if ($n = workshop_count_teacher_submissions_for_assessment($workshop, $USER)) {
- notify(get_string("teachersubmissionsforassessment", "workshop", $n));
+ if (empty($action)) { // no action specified, either go straight to elements page else the admin page
+ // has the assignment any elements
+ if (count_records("workshop_elements", "workshopid", $workshop->id) >= $workshop->nelements) {
+ $action = "teachersview";
}
- set_field("workshop", "phase", 2, "id", "$workshop->id");
- add_to_log($course->id, "workshop", "submissions", "view.php?id=$cm->id", "$workshop->id", $cm->id);
- redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 2));
- }
- }
-
+ else {
+ redirect("assessments.php?action=editelements&id=$cm->id");
+ }
+ }
+ }
+ elseif (!isguest()) { // it's a student then
+ if (!$cm->visible) {
+ notice(get_string("activityiscurrentlyhidden"));
+ }
+ if (time() < $workshop->submissionstart) {
+ $action = 'notavailable';
+ } else if (time() < $workshop->assessmentend) {
+ $action = 'studentsview';
+ } else {
+ $action = 'displayfinalgrade';
+ }
+ }
+ else { // it's a guest, oh no!
+ $action = 'notavailable';
+ }
- /****************** display final grade (for students) ************************************/
- elseif ($action == 'displayfinalgrade' ) {
-
- // show the final grades as stored in the tables...
- print_heading_with_help(get_string("displayoffinalgrades", "workshop"), "finalgrades", "workshop");
- if ($submissions = workshop_get_user_submissions($workshop, $USER)) { // any submissions from user?
- echo "<center><table border=\"1\" width=\"90%\"><tr>";
- echo "<td><b>".get_string("submissions", "workshop")."</b></td>";
+ /****************** display final grade (for students) ************************************/
+ if ($action == 'displayfinalgrade' ) {
+
+ // show the final grades as stored in the tables...
+ print_heading_with_help(get_string("displayoffinalgrades", "workshop"), "finalgrades", "workshop");
+ if ($submissions = workshop_get_user_submissions($workshop, $USER)) { // any submissions from user?
+ echo "<center><table border=\"1\" width=\"90%\"><tr>";
+ echo "<td><b>".get_string("submissions", "workshop")."</b></td>";
if ($workshop->wtype) {
echo "<td align=\"center\"><b>".get_string("assessmentsdone", "workshop")."</b></td>";
echo "<td align=\"center\"><b>".get_string("gradeforassessments", "workshop")."</b></td>";
}
- echo "<td align=\"center\"><b>".get_string("teacherassessments", "workshop",
+ echo "<td align=\"center\"><b>".get_string("teacherassessments", "workshop",
$course->teacher)."</b></td>";
if ($workshop->wtype) {
echo "<td align=\"center\"><b>".get_string("studentassessments", "workshop",
}
}
echo "</table><br clear=\"all\" />\n";
- workshop_print_key($workshop);
+ workshop_print_key($workshop);
if ($workshop->showleaguetable) {
- workshop_print_league_table($workshop);
- }
- }
-
-
- /****************** make final grades available (go to phase 5) (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 grades", "view.php?id=$cm->id", "$workshop->id", $cm->id);
- redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 5));
- }
-
-
- /****************** assignment not available (for students)***********************/
- elseif ($action == 'notavailable') {
- print_heading(get_string("notavailable", "workshop"));
- }
-
+ workshop_print_league_table($workshop);
+ }
+ }
- /****************** set up assignment (move back to phase 1) (for teachers)***********************/
- elseif ($action == 'setupassignment') {
+
+ /****************** assignment not available (for students)***********************/
+ elseif ($action == 'notavailable') {
+ print_heading(get_string("notavailable", "workshop"));
+ }
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
- set_field("workshop", "phase", 1, "id", "$workshop->id");
- add_to_log($course->id, "workshop", "set up", "view.php?id=$cm->id", "$workshop->id", $cm->id);
- redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 1));
- }
-
-
- /****************** student's view could be in 1 of 4 stages ***********************/
- elseif ($action == 'studentsview') {
+ /****************** student's view could be in 1 of 4 stages ***********************/
+ elseif ($action == 'studentsview') {
// is a password needed?
- if ($workshop->usepassword) {
- $correctpass = false;
- if (isset($_POST['userpassword'])) {
- if ($workshop->password == md5(trim($_POST['userpassword']))) {
- $USER->workshoploggedin[$workshop->id] = true;
- $correctpass = true;
- }
- } elseif (isset($USER->workshoploggedin[$workshop->id])) {
- $correctpass = true;
- }
+ if ($workshop->usepassword) {
+ $correctpass = false;
+ if (isset($_POST['userpassword'])) {
+ if ($workshop->password == md5(trim($_POST['userpassword']))) {
+ $USER->workshoploggedin[$workshop->id] = true;
+ $correctpass = true;
+ }
+ } elseif (isset($USER->workshoploggedin[$workshop->id])) {
+ $correctpass = true;
+ }
- if (!$correctpass) {
- print_simple_box_start("center");
- echo "<form name=\"password\" method=\"post\" action=\"view.php\">\n";
- echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\" />\n";
- echo "<table cellpadding=\"7px\">";
- if (isset($_POST['userpassword'])) {
- echo "<tr align=\"center\" style='color:#DF041E;'><td>".get_string("wrongpassword", "workshop").
+ if (!$correctpass) {
+ print_simple_box_start("center");
+ echo "<form name=\"password\" method=\"post\" action=\"view.php\">\n";
+ echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\" />\n";
+ echo "<table cellpadding=\"7px\">";
+ if (isset($_POST['userpassword'])) {
+ echo "<tr align=\"center\" style='color:#DF041E;'><td>".get_string("wrongpassword", "workshop").
"</td></tr>";
- }
- echo "<tr align=\"center\"><td>".get_string("passwordprotectedworkshop", "workshop", $workshop->name).
+ }
+ echo "<tr align=\"center\"><td>".get_string("passwordprotectedworkshop", "workshop", $workshop->name).
"</td></tr>";
- echo "<tr align=\"center\"><td>".get_string("enterpassword", "workshop").
+ echo "<tr align=\"center\"><td>".get_string("enterpassword", "workshop").
" <input type=\"password\" name=\"userpassword\" /></td></tr>";
-
- echo "<tr align=\"center\"><td>";
- echo "<input type=\"button\" value=\"".get_string("cancel").
+
+ echo "<tr align=\"center\"><td>";
+ echo "<input type=\"button\" value=\"".get_string("cancel").
"\" onclick=\"parent.location='../../course/view.php?id=$course->id';\"> ";
- echo "<input type=\"button\" value=\"".get_string("continue").
+ echo "<input type=\"button\" value=\"".get_string("continue").
"\" onclick=\"document.password.submit();\" />";
- echo "</td></tr></table>";
- print_simple_box_end();
- exit();
- }
- }
- workshop_print_assignment_info($workshop);
- // in Stage 1? - are there any teacher's submissions? and...
- // ...has student assessed the required number of the teacher's submissions
- if ($workshop->ntassessments and (!workshop_test_user_assessments($workshop, $USER))) {
- print_heading(get_string("pleaseassesstheseexamplesfromtheteacher", "workshop",
+ echo "</td></tr></table>";
+ print_simple_box_end();
+ exit();
+ }
+ }
+ workshop_print_assignment_info($workshop);
+ // in Stage 1? - are there any teacher's submissions? and...
+ // ...has student assessed the required number of the teacher's submissions
+ if ($workshop->ntassessments and (!workshop_test_user_assessments($workshop, $USER))) {
+ print_heading(get_string("pleaseassesstheseexamplesfromtheteacher", "workshop",
$course->teacher));
workshop_list_teacher_submissions($workshop, $USER);
}
$course->teacher));
workshop_list_teacher_submissions($workshop, $USER);
}
- // has user submitted anything yet? (only allowed in phases 2 and 3)
+ // has user submitted anything yet?
if (!workshop_get_user_submissions($workshop, $USER)) {
- if ($workshop->phase < 4) {
+ if (time() < $workshop->submissionend) {
// print upload form
print_heading(get_string("submitassignmentusingform", "workshop").":");
workshop_print_upload_form($workshop);
// prints a table if there are any submissions which have not been self assessed yet
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 > 2)) {
+ // if peer assessments are being done then show some to assess...
+ if ($workshop->nsassessments and ($workshop->assessmentstart > time() and $workshop->assessmentend < time())) {
workshop_list_student_submissions($workshop, $USER);
}
// ..and any they have already done (and have gone cold)...
print_heading(get_string("submissions", "workshop"));
workshop_list_user_submissions($workshop, $USER);
// are resubmissions allowed and the workshop is in submission/assessment phase?
- if ($workshop->resubmit and ($workshop->phase == 3)) {
+ if ($workshop->resubmit and (time() > $workshop->assessmentstart and time() < $workshop->submissionend)) {
// see if there are any cold assessments of the last submission
// if there are then print upload form
if ($submissions = workshop_get_user_submissions($workshop, $USER)) {
echo "<hr size=\"1\" noshade=\"noshade\" />";
}
}
- }
- }
- }
- }
+ }
+ }
+ }
+ }
- /****************** submission of example by teacher only***********************/
- elseif ($action == 'submitexample') {
-
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
-
- $strdifference = format_time($workshop->deadline - time());
- if (($workshop->deadline - time()) < 0) {
- $strdifference = "<font color=\"red\">$strdifference</font>";
- }
- $strduedate = userdate($workshop->deadline)." ($strdifference)";
-
- workshop_print_assignment_info($workshop);
-
- // list previous submissions from teacher
- workshop_list_user_submissions($workshop, $USER);
-
- echo "<hr size=\"1\" noshade=\"noshade\" />";
-
- // print upload form
- print_heading(get_string("submitexampleassignment", "workshop").":");
- workshop_print_upload_form($workshop);
- }
+ /****************** submission of example by teacher only***********************/
+ elseif ($action == 'submitexample') {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+
+ workshop_print_assignment_info($workshop);
+
+ // list previous submissions from teacher
+ workshop_list_user_submissions($workshop, $USER);
+
+ echo "<hr size=\"1\" noshade=\"noshade\" />";
+
+ // print upload form
+ print_heading(get_string("submitexampleassignment", "workshop").":");
+ workshop_print_upload_form($workshop);
+ }
- /****************** teacher's view - display admin page (current phase options) ************/
- elseif ($action == 'teachersview') {
+ /****************** teacher's view - display admin page ************/
+ elseif ($action == 'teachersview') {
- if (!isteacher($course->id)) {
- error("Only teachers can look at this page");
- }
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
- /// Check to see if groups are being used in this workshop
+ /// Check to see if groups are being used in this workshop
/// and if so, set $currentgroup to reflect the current group
$changegroup = isset($_GET['group']) ? $_GET['group'] : -1; // Group change requested?
$groupmode = groupmode($course, $cm); // Groups are being used?
print_group_menu($groups, $groupmode, $currentgroup, "view.php?id=$cm->id");
}
}
-
- print_heading_with_help(get_string("managingassignment", "workshop"), "managing2", "workshop");
-
- workshop_print_assignment_info($workshop);
-
- if ($workshop->wtype < 2) {
- $tabs->names = array("1. ".get_string("phase1", "workshop"),
- "2. ".get_string("phase2", "workshop", $course->student),
- "3. ".get_string("phase5", "workshop"));
- $tabs->urls = array("view.php?id=$cm->id&action=setupassignment",
- "view.php?id=$cm->id&action=allowboth",
- "view.php?id=$cm->id&action=makefinalgradesavailable");
- } else {
- $tabs->names = array("1. ".get_string("phase1", "workshop"),
- "2. ".get_string("phase2", "workshop", $course->student),
- "3. ".get_string("phase3", "workshop", $course->student),
- "4. ".get_string("phase4", "workshop", $course->student),
- "5. ".get_string("phase5", "workshop"));
- if (isteacheredit($course->id)) {
- $tabs->urls = array("view.php?id=$cm->id&action=setupassignment",
- "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=makefinalgradesavailable");
- } else {
- // non editing teachers cannot change phase
- $tabs->urls = array("view.php?id=$cm->id",
- "view.php?id=$cm->id",
- "view.php?id=$cm->id",
- "view.php?id=$cm->id",
- "view.php?id=$cm->id");
- }
+
+ print_heading_with_help(get_string("managingassignment", "workshop"), "managing2", "workshop");
+
+ workshop_print_assignment_info($workshop);
+
+ echo "<center>\n";
+
+ // if there are assessment elements show link to edit them
+ if ($workshop->nelements) {
+ echo "<br /><b><a href=\"assessments.php?id=$cm->id&action=editelements\">".
+ get_string("amendassessmentelements", "workshop")."</a></b> \n";
+ helpbutton("elements", get_string("amendassessmentelements", "workshop"), "workshop");
}
- if ($workshop->phase) { // phase 1 or more
- if ($workshop->wtype < 2) {
- $tabs->highlight = ($workshop->phase - 1) / 2;
- } else {
- $tabs->highlight = $workshop->phase - 1;
+
+ // if teacher examples show submission and assessment links
+ if ($workshop->ntassessments) {
+ // submission link for teacher examples
+ echo "<br /><b><a href=\"view.php?id=$cm->id&action=submitexample\">".
+ get_string("submitexampleassignment", "workshop")."</a></b> \n";
+ helpbutton("submissionofexamples", get_string("submitexampleassignment", "workshop"),
+ "workshop");
+ // show assessment link for teachers examples only once there are such examples
+ if ($n = workshop_count_teacher_submissions_for_assessment($workshop, $USER)) {
+ echo "<br /><b><a href=\"submissions.php?id=$cm->id&action=listforassessmentteacher\">".
+ get_string("teachersubmissionsforassessment", "workshop", $n)."</a></b> \n";
+ helpbutton("assessmentofexamples", get_string("teachersubmissionsforassessment",
+ "workshop"), "workshop");
}
- } else {
- $tabs->highlight = 0; // phase is zero
}
- workshop_print_tabbed_heading($tabs);
- echo "<center>\n";
- switch ($workshop->phase) {
- case 0:
- case 1: // set up assignment
- if ($workshop->nelements) {
- echo "<br /><b><a href=\"assessments.php?id=$cm->id&action=editelements\">".
- get_string("amendassessmentelements", "workshop")."</a></b> \n";
- helpbutton("elements", get_string("amendassessmentelements", "workshop"), "workshop");
- }
- if ($workshop->ntassessments) {
- // if teacher examples show submission and assessment links
- echo "<br /><b><a href=\"view.php?id=$cm->id&action=submitexample\">".
- get_string("submitexampleassignment", "workshop")."</a></b> \n";
- helpbutton("submissionofexamples", get_string("submitexampleassignment", "workshop"),
- "workshop");
- echo "<br /><b><a href=\"submissions.php?id=$cm->id&action=listforassessmentteacher\">".
- get_string("teachersubmissionsforassessment", "workshop",
- workshop_count_teacher_submissions_for_assessment($workshop, $USER)).
- "</a></b> \n";
- helpbutton("assessmentofexamples", get_string("teachersubmissionsforassessment",
- "workshop"), "workshop");
- }
- break;
- case 2: // submissions
- case 3: // submissions and assessments
- case 4: // assessments
- if ($workshop->ntassessments) { // if teacher examples show assessment link
- if ($n = workshop_count_teacher_submissions_for_assessment($workshop, $USER)) {
- echo "<br /><b><a href=\"submissions.php?id=$cm->id&action=listforassessmentteacher\">".
- get_string("teachersubmissionsforassessment", "workshop", $n)."</a></b> \n";
- helpbutton("assessmentofexamples", get_string("teachersubmissionsforassessment",
- "workshop"), "workshop");
- }
- }
- // only show grading assessments if there are grading grades involved
- if ($workshop->wtype) {
- echo "<br /><b><a href=\"assessments.php?id=$cm->id&action=gradeallassessments\">".
- get_string("ungradedassessments", "workshop",
- workshop_count_ungraded_assessments($workshop))."</a></b> \n";
- helpbutton("ungradedassessments",
- get_string("ungradedassessments", "workshop"), "workshop");
- }
- // don't show the assessment of student submissions in phase 2 if it's a 5 phase workshop
- if (!(($workshop->phase == 2) and ($workshop->wtype > 1))) {
- echo "<br /><b><a href=\"submissions.php?id=$cm->id&action=listforassessmentstudent\">".
- get_string("studentsubmissionsforassessment", "workshop",
- workshop_count_student_submissions_for_assessment($workshop, $USER))."</a></b> \n";
- helpbutton("gradingsubmissions",
- get_string("studentsubmissionsforassessment", "workshop"), "workshop");
- }
- print_heading("<a href=\"submissions.php?id=$cm->id&action=displaycurrentgrades\">".
- get_string("displayofcurrentgrades", "workshop")."</a>");
- break;
+ if ($workshop->wtype) {
+ // only show grading assessments if there are grading grades involved
+ if ($numberofassessments = workshop_count_ungraded_assessments($workshop)) {
+ echo "<br /><b><a href=\"assessments.php?id=$cm->id&action=gradeallassessments\">".
+ get_string("ungradedassessments", "workshop",
+ $numberofassessments)."</a></b> \n";
+ helpbutton("ungradedassessments",
+ get_string("ungradedassessments", "workshop"), "workshop");
+ }
+ }
- case 5: // Show "Final" Grades
- if ($workshop->ntassessments) { // if teacher examples show assessment link
- if ($n = workshop_count_teacher_submissions_for_assessment($workshop, $USER)) {
- echo "<br /><b><a href=\"submissions.php?id=$cm->id&action=listforassessmentteacher\">".
- get_string("teachersubmissionsforassessment", "workshop", $n)."</a></b> \n";
- helpbutton("assessmentofexamples", get_string("teachersubmissionsforassessment",
- "workshop"), "workshop");
- }
- }
- if ($workshop->wtype) {
- echo "<br /><b><a href=\"assessments.php?id=$cm->id&action=gradeallassessments\">".
- get_string("ungradedassessments", "workshop",
- workshop_count_ungraded_assessments($workshop))."</a></b> \n";
- helpbutton("ungradedassessments", get_string("ungradedassessments", "workshop"), "workshop");
- }
+ // Show link to student submissions for assessment only if assessment has started
+ if (time() > $workshop->assessmentstart) {
+ if ($numberofsubmissions = workshop_count_student_submissions_for_assessment($workshop, $USER)) {
echo "<br /><b><a href=\"submissions.php?id=$cm->id&action=listforassessmentstudent\">".
get_string("studentsubmissionsforassessment", "workshop",
- workshop_count_student_submissions_for_assessment($workshop, $USER))."</a></b> \n";
+ $numberofsubmissions)."</a></b> \n";
helpbutton("gradingsubmissions",
- get_string("studentsubmissionsforassessment", "workshop"), "workshop");
- print_heading("<a href=\"submissions.php?id=$cm->id&action=displayfinalgrades\">".
- get_string("displayoffinalgrades", "workshop")."</a>");
+ get_string("studentsubmissionsforassessment", "workshop"), "workshop");
+ }
}
- echo '</center>';
- print_heading("<a href=\"submissions.php?id=$cm->id&action=adminlist\">".
- get_string("administration")."</a>");
+
+ // Show link to current grades
+ if (time() > $workshop->assessmentstart) {
+ if (time() < $workshop->assessmentend) {
+ echo "<br /><b><a href=\"submissions.php?id=$cm->id&action=displaycurrentgrades\">".
+ get_string("displayofcurrentgrades", "workshop")."</a></b> \n";
+ } else {
+ echo "<br /><b><a href=\"submissions.php?id=$cm->id&action=displayfinalgrades\">".
+ get_string("displayoffinalgrades", "workshop")."</a></b> \n";
+ }
+ }
+
+ echo "<br /><b><a href=\"submissions.php?id=$cm->id&action=adminlist\">".
+ get_string("administration")."</a></b> \n";
+
+ echo '</center><br />';
}