adminconfirmdelete
admindelete
adminlist
+ analysisofassessments
calculatefinalgrades
displayfinalgrades (teachers only)
displayfinalweights
<?PHP
// now get the comment
- echo "<tr valign=\"top\">\n";\r
- echo " <td align=\"right\"><P><B>". get_string("title", "workshop").":</b></p></td>\n";\r
- echo " <td>\n";\r
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><P><B>". get_string("title", "workshop").":</b></p></td>\n";
+ echo " <td>\n";
echo " <input type=\"text\" name=\"title\" size=\"60\" maxlength=\"100\" value=\"$submission->title\">\n";
echo " </td></tr></table>\n";
echo "<input type=submit VALUE=\"".get_string("amendtitle", "workshop")."\">\n";
}
+ /*************** analysis of assessments (by teacher) ***************************/
+ elseif ($action == 'analysisofassessments') {
+
+ // timeout after 10 minutes
+ set_time_limit(600);
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+
+ // this analysis does not use bias or reliability...
+ set_field("workshop", "biasweight", 0, "id", $workshop->id);
+ set_field("workshop", "reliabilityweight", 0, "id", $workshop->id);
+ // ...and unity weights for teacher and peer assessments
+ set_field("workshop", "teacherweight", 5, "id", $workshop->id);
+ set_field("workshop", "peerweight", 5, "id", $workshop->id);
+
+ echo "<form name=\"optionsform\" method=\"post\" action=\"submissions.php\">\n";
+ echo "<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$cm->id\">\n";
+ echo "<input type=\"hidden\" name=\"action\" value=\"saveanalysisoptions\">\n";
+
+ // get the options from the database...
+ $teacherloading = get_field("workshop", "teacherloading", "id", $workshop->id);
+ $gradingweight = get_field("workshop", "gradingweight", "id", $workshop->id);
+ $assessmentstodrop = get_field("workshop", "assessmentstodrop", "id", $workshop->id);
+
+ // ...now show the options used in a table
+ print_heading_with_help(get_string("analysisofassessments", "workshop"), "analysisofassessments",
+ "workshop");
+ echo "<center><TABLE WIDTH=\"50%\" BORDER=\"1\">\n";
+ echo "<TR><td COLSPAN=\"2\" bgcolor=\"$THEME->cellheading2\"><CENTER><B>".
+ get_string("optionsusedinanalysis", "workshop")."</B></CENTER></TD></TR>\n";
+ echo "<tr><td align=\"right\">".get_string("loadingforteacherassessments", "workshop",
+ $course->teacher).":</td>\n";
+ echo "<TD>";
+ workshop_choose_from_menu($WORKSHOP_FWEIGHTS, "teacherloading", $teacherloading, "");
+ echo "</TD></TR>\n";
+ echo "<tr><td align=\"right\">".get_string("weightforgradingofassessments", "workshop").":</td>\n";
+ echo "<TD>";
+ workshop_choose_from_menu($WORKSHOP_FWEIGHTS, "gradingweight", $gradingweight, "");
+ echo "</TD></TR>\n";
+ echo "<TR><TD ALIGN=\"right\">".get_string("percentageofassessments", "workshop").":</TD>\n";
+ echo "<TD>";
+ for ($i = 0; $i <= 100; $i++) {
+ $numbers[$i] = $i;
+ }
+ choose_from_menu($numbers, "assessmentstodrop", $assessmentstodrop, "");
+ echo "</TD></TR>\n";
+ echo "</TABLE><br />\n";
+ echo "<INPUT TYPE=submit VALUE=\"".get_string("repeatanalysis", "workshop")."\">\n";
+ echo "</FORM>\n";
+
+
+ // set up the array of users who have made assessments
+ if (!$students = get_course_students($course->id, "u.lastname, u.firstname")) {
+ print_heading(get_string("nostudentsyet"));
+ print_footer($course);
+ exit;
+ }
+ $teachers = get_course_teachers($course->id);
+ $users = array_merge($students, $teachers);
+ $nassessments = 0;
+ foreach ($users as $user) {
+ if ($assessments = workshop_get_user_assessments_done($workshop, $user)) {
+ // the value put into the array element is not particularly important at this stage
+ // it will hold the user's assessment error after the first iteration
+ $n = count($assessments);
+ $assessors[$user->id] = $n;
+ $nassessments += $n;
+ }
+ }
+
+ $ntodrop = intval(($assessmentstodrop * $nassessments / 100.0) + 0.5);
+
+ // set minumim value for the variance (of the elements)
+ $minvar = 0.05;
+
+ flush();
+ // we now do up to five iterations, the first with all users. The second and subsequent if
+ // the number of assessors is not the full set. Two or three iterations with the reduced set
+ // should be enough to stablise the list of dropped assessments.
+ if ($ntodrop == 0) {
+ $loopcount = 1;
+ } else {
+ $loopcount = 7; // max loops, should finish before that loop
+ }
+ for ($loop = 0; $loop < $loopcount; $loop++) {
+ // calculate the means for each submission using just the "good" assessments
+ // on the first iteration all the assessments are included
+ unset($num);
+ unset($sum);
+ foreach ($assessors as $userid => $error) {
+ if (!$user = get_record("user", "id", $userid)) {
+ error("Analysis of assessments: User record not found");
+ }
+ $assessments = workshop_get_user_assessments_done($workshop, $user);
+ foreach ($assessments as $assessment) {
+ if (isset($drop[$assessment->id])) {
+ continue;
+ }
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error("Analysis of Assessments: submission record not found");
+ }
+ if (isset($num[$submission->id])) {
+ if (isteacher($course->id, $userid)) {
+ $num[$submission->id] += $WORKSHOP_FWEIGHTS[$workshop->teacherloading];
+ } else {
+ $num[$submission->id]++;
+ }
+ } else {
+ if (isteacher($course->id, $userid)) {
+ $num[$submission->id] = $WORKSHOP_FWEIGHTS[$workshop->teacherloading];
+ } else {
+ $num[$submission->id] = 1;
+ }
+ }
+ for ($i = 0; $i < $workshop->nelements; $i++) {
+ $grade = get_field("workshop_grades", "grade",
+ "assessmentid", $assessment->id, "elementno", $i);
+ if (isset($sum[$submission->id][$i])) {
+ if (isteacher($course->id, $userid)) {
+ $sum[$submission->id][$i] += $grade * $WORKSHOP_FWEIGHTS[$workshop->teacherloading];
+ } else {
+ $sum[$submission->id][$i] += $grade;
+ }
+ } else {
+ if (isteacher($course->id, $userid)) {
+ $sum[$submission->id][$i] = $grade * $WORKSHOP_FWEIGHTS[$workshop->teacherloading];
+ } else {
+ $sum[$submission->id][$i] = $grade;
+ }
+ }
+ }
+ }
+ }
+ reset($num);
+ if (!$loop) {
+ echo "<p>".get_string("numberofsubmissions", "workshop", count($num))."</p>\n";
+ }
+
+ // (re)calculate the means for each submission
+ foreach ($num as $submissionid => $n) {
+ for ($i = 0; $i < $workshop->nelements; $i++) {
+ $mean[$submissionid][$i] = $sum[$submissionid][$i] / $n;
+ // echo "Submission: $submissionid; Element: $i; Mean: {$mean[$submissionid][$i]}<br />\n";
+ }
+ }
+
+ // only calculate the sd's and the error from guessing once
+ if (!$loop) {
+ // now get an estimate of the standard deviation of each element in the assessment
+ $n = 0;
+ for ($i = 0; $i < $workshop->nelements; $i++) {
+ $var[$i] = 0;
+ }
+ foreach ($assessors as $userid => $error) {
+ if (!$user = get_record("user", "id", $userid)) {
+ error("Submissions: User record not found");
+ }
+ $assessments = workshop_get_user_assessments_done($workshop, $user);
+ foreach ($assessments as $assessment) {
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error("Analysis of Assessments: submission record not found");
+ }
+ $n++;
+ for ($i = 0; $i < $workshop->nelements; $i++) {
+ $grade = get_field("workshop_grades", "grade",
+ "assessmentid", $assessment->id, "elementno", $i);
+ $temp = $mean[$submission->id][$i] - $grade;
+ $var[$i] += $temp * $temp;
+ }
+ }
+ }
+ for ($i = 0; $i < $workshop->nelements; $i++) {
+ $sd[$i] = sqrt($var[$i] / ($n - 1));
+ echo get_string("standarddeviation", "workshop", $i+1)."$sd[$i]<br />";
+ if ($sd[$i] <= $minvar) {
+ get_string("standarddeviationnote", "workshop")."<br />\n";
+ }
+ }
+
+ // calculate the mean variance (error) if just guessing
+ // first get the assignment elements for maxscores...
+ $elementsraw = get_records("workshop_elements", "workshopid", $workshop->id, "elementno ASC");
+ foreach ($elementsraw as $element) {
+ $maxscore[] = $element->maxscore; // to renumber index 0,1,2...
+ $weight[] = $element->weight; // to renumber index 0,1,2...
+ }
+ $n = 0;
+ $totvar = 0;
+ foreach ($assessors as $userid => $error) {
+ if (!$user = get_record("user", "id", $userid)) {
+ error("Submissions: User record not found");
+ }
+ $assessments = workshop_get_user_assessments_done($workshop, $user);
+ foreach ($assessments as $assessment) {
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error("Analysis of Assessments: submission record not found");
+ }
+ $n++;
+ for ($i = 0; $i < $workshop->nelements; $i++) {
+ $grade = mt_rand(0, $maxscore[$i]);
+ if ($sd[$i] > $minvar) {
+ $temp = ($mean[$submission->id][$i] - $grade) *
+ $WORKSHOP_EWEIGHTS[$weight[$i]] / $sd[$i];
+ } else {
+ $temp = 0;
+ }
+ $totvar += $temp * $temp;
+ }
+ }
+ }
+ // take the average of these variances
+ $varguess = $totvar / $n;
+ }
+
+ // calculate the variance (error) for each assessment (adjusted after the first loop)
+ // and work out the user's average error with all their assessments and without
+ // the dropped assessments (their "good" assessments)
+ foreach ($assessors as $userid => $error) {
+ if (!$user = get_record("user", "id", $userid)) {
+ error("Submissions: User record not found");
+ }
+ $assessments = workshop_get_user_assessments_done($workshop, $user);
+ $n = 0;
+ $ngood = 0;
+ $totvar = 0;
+ $totvargood = 0;
+ foreach ($assessments as $assessment) {
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error("Analysis of Assessments: submission record not found");
+ }
+ $n++;
+ $var = 0;
+ for ($i = 0; $i < $workshop->nelements; $i++) {
+ $grade = get_field("workshop_grades", "grade",
+ "assessmentid", $assessment->id, "elementno", $i);
+ if ($sd[$i] > $minvar) {
+ $temp = ($mean[$submission->id][$i] - $grade) *
+ $WORKSHOP_EWEIGHTS[$weight[$i]] / $sd[$i];
+ } else {
+ $temp = 0;
+ }
+ $var += $temp * $temp;
+ }
+ // the variances are adjusted by the user's overall error (once it's calculated)
+ if ($loop) {
+ $assessmentvar[$assessment->id] = $var * $error;
+ } else {
+ $assessmentvar[$assessment->id] = $var;
+ }
+ $totvar += $var;
+ if (empty($drop[$assessment->id])) {
+ $ngood++;
+ $totvargood += $var;
+ }
+ }
+ $nsubmissions[$userid] = $n;
+ $newassessors[$userid] = $totvar / $n;
+ if ($ngood) {
+ $vargood[$userid] = $totvargood / $ngood;
+ } else {
+ $vargood[$userid] = 0;
+ }
+ // echo "$user->firstname $user->lastname Error: {$newassessors[$userid]}; n: $n<br />\n";
+ }
+
+ // echo "<hr>\n";
+
+
+ // now drop the assessments with the largest (adjusted) variances
+ $nchanged = 0;
+ if ($ntodrop) {
+ asort($assessmentvar);
+ $n = 1;
+ foreach ($assessmentvar as $assessmentid => $adjvar) {
+ if ($n <= ($nassessments - $ntodrop)) {
+ if (isset($drop[$assessmentid])) {
+ unset($drop[$assessmentid]);
+ $nchanged++;
+ }
+ } else {
+ if (empty($drop[$assessmentid])) {
+ $drop[$assessmentid] = 1;
+ $nchanged++;
+ }
+ }
+ $n++;
+ }
+ }
+
+ // reset the assessors array
+ $assessors = $newassessors;
+ // put the assessors in order (for the next iteration, if there is one)
+ asort($assessors);
+ reset($assessors);
+ $i = $loop + 1;
+ echo get_string("iteration", "workshop", "$i / $loopcount")."<br />\n";
+ echo get_string("numberofassessmentschanged", "workshop", $nchanged)."<br />\n";
+ flush();
+ if (!$nchanged) {
+ break;
+ }
+ } // end of iteration loop
+
+ // flag the assessments which were classed as outliers
+ // but first clear any existing flags
+ execute_sql("UPDATE {$CFG->prefix}workshop_assessments SET donotuse = 0
+ WHERE workshopid = $workshop->id", false);
+ if ($ntodrop) {
+ foreach ($drop as $assessmentid => $flag) {
+ if (!set_field("workshop_assessments", "donotuse", 1, "id", $assessmentid)) {
+ error("Analysis of assessments: unable to set donotuse field");
+ }
+ $userid = get_field("workshop_assessments", "userid", "id", $assessmentid);
+ if (empty($ndropped[$userid])) {
+ $ndropped[$userid] = 1;
+ } else {
+ $ndropped[$userid]++;
+ }
+ }
+ }
+
+ // echo "<p>".get_string("expectederror", "workshop", $varguess)."</p>\n";
+ print_heading(get_string("errortable", "workshop"));
+ $table->head = array(" ",get_string("name"), get_string("averageerror", "workshop"),
+ get_string("averageerror", "workshop")."<br />".
+ get_string("excludingdroppedassessments", "workshop"),
+ get_string("numberofassessments", "workshop"));
+ $table->align = array ("left","left", "center", "center", "center");
+ $table->size = array ("*", "*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+ $n = 1;
+ foreach ($assessors as $userid => $error) {
+ if (!$user = get_record("user", "id", $userid)) {
+ error("Assessment analysis: user record not found");
+ }
+ if ($vargood[$userid]) {
+ $vargoodtext = number_format($vargood[$userid] * 100 / $varguess, 2)."%";
+ } else {
+ $vargoodtext = "-";
+ }
+ if (empty($ndropped[$userid])) {
+ $numtext = "$nsubmissions[$userid]";
+ } else {
+ $numtext = "$nsubmissions[$userid] <$ndropped[$userid]>";
+ }
+ $table->data[] = array($n, "$user->firstname $user->lastname",
+ number_format($error * 100 / $varguess, 2)."%", $vargoodtext,
+ $numtext);
+ $n++;
+ }
+ print_table($table);
+ echo "<p>< > ".get_string("assessmentsexcluded", "workshop", $course->student)."</p>\n";
+ echo "<p>".get_string("submissionsused", "workshop", count($num))."</p>\n";;
+
+ // display student grades
+ print_heading(get_string("gradetable", "workshop"));
+ unset($table);
+ $table->head = array(get_string("name"), get_string("submission", "workshop"),
+ get_string("assessmentsdone", "workshop"), get_string("assessments", "workshop"),
+ get_string("studentassessments", "workshop", $course->teacher),
+ get_string("studentassessments", "workshop", $course->student),
+ get_string("submission", "workshop"), get_string("overallgrade", "workshop"));
+ $table->align = array ("left", "center", "center", "center", "center", "center", "center", "center");
+ $table->size = array ("*", "*", "*", "*", "*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+ $table->data[] = array("<b>".get_string("weight", "workshop")."</b>", " ", " ",
+ "<b>".$WORKSHOP_FWEIGHTS[$workshop->gradingweight]."</b>", " ", " ","<b>1</b>", " ");
+ $maxassessments = $workshop->nsassessments + $workshop->ntassessments;
+ foreach ($students as $user) {
+ if ($assessments = workshop_get_user_assessments_done($workshop, $user)) {
+ $n = 0;
+ foreach ($assessments as $assessment) {
+ if (!$assessment->donotuse) {
+ $n++;
+ }
+ }
+ if ($maxassessments) {
+ $assessmentgrade = ($n / $maxassessments) * $workshop->grade;
+ } else {
+ $assessmentgrade = 0;
+ }
+ } else {
+ // no assessments
+ $assessmentgrade = 0;
+ }
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ foreach ($submissions as $submission) {
+ $submissiongrade = 0;
+ $n = 0;
+ if ($assessments = workshop_get_assessments($submission)) {
+ $sum = 0;
+ foreach ($assessments as $assessment) {
+ if (!$assessment->donotuse) {
+ $n++;
+ $sum += $assessment->grade;
+ }
+ }
+ if ($n) {
+ $submissiongrade = $sum / $n;
+ }
+ }
+ $totalgrade = ($assessmentgrade * $WORKSHOP_FWEIGHTS[$workshop->gradingweight] +
+ $submissiongrade) / ($WORKSHOP_FWEIGHTS[$workshop->gradingweight] + 1.0);
+ if ($n) {
+ $table->data[] = array("$user->firstname $user->lastname",
+ workshop_print_submission_title($workshop, $submission),
+ workshop_print_user_assessments($workshop, $user),
+ number_format($assessmentgrade, 2),
+ workshop_print_submission_assessments($workshop, $submission, "teacher"),
+ workshop_print_submission_assessments($workshop, $submission, "student"),
+ number_format($submissiongrade, 2),
+ number_format($totalgrade, 2));
+ } else {
+ $table->data[] = array("$user->firstname $user->lastname",
+ workshop_print_submission_title($workshop, $submission),
+ workshop_print_user_assessments($workshop, $user),
+ number_format($assessmentgrade, 2),
+ workshop_print_submission_assessments($workshop, $submission, "teacher"),
+ workshop_print_submission_assessments($workshop, $submission, "student"),
+ "<b>".get_string("noassessments", "workshop")."</b>",
+ number_format($totalgrade, 2));
+ }
+ // save grades in submission record
+ set_field("workshop_submissions", "finalgrade", $submissiongrade, "id", $submission->id);
+ set_field("workshop_submissions", "gradinggrade", $assessmentgrade, "id",
+ $submission->id);
+ }
+ } else {
+ // no submissions
+ $totalgrade = ($assessmentgrade * $WORKSHOP_FWEIGHTS[$workshop->gradingweight]) /
+ ($WORKSHOP_FWEIGHTS[$workshop->gradingweight] + 1.0);
+ $table->data[] = array("$user->firstname $user->lastname",
+ "-", workshop_print_user_assessments($workshop, $user),
+ number_format($assessmentgrade, 2), "-", "-",
+ get_string("nosubmission", "workshop"),
+ number_format($totalgrade,2));
+ }
+ }
+ print_table($table);
+ echo "<p>< > ".get_string("assessmentdropped", "workshop")."</p>\n";
+ echo "</CENTER>";
+ print_continue("view.php?a=$workshop->id");
+ }
+
+
/*************** calculate final grades (by teacher) ***************************/
elseif ($action == 'calculatefinalgrades') {
/*************** display final grades (by teacher) ***************************/
elseif ($action == 'displayfinalgrades') {
// Get all the students
- if (!$users = get_course_students($course->id, "u.firstname, u.lastname")) {
+ if (!$users = get_course_students($course->id, "u.lastname, u.firstname")) {
print_heading(get_string("nostudentsyet"));
print_footer($course);
exit;
- }
+ }
// get the final weights from the database
$teacherweight = get_field("workshop","teacherweight", "id", $workshop->id);
// teacher grades?
if ($workshop->gradingstrategy and $teacherweight) {
$useteachersgrades = 1;
- }
+ }
else {
$useteachersgrades = 0;
- }
+ }
// peergrades?
if ($workshop->gradingstrategy and $workshop->nsassessments and $peerweight) {
$usepeergrades = 1;
- }
+ }
else {
$usepeergrades = 0;
- }
+ }
// bias grades?
if ((($workshop->ntassessments >= 3) or ($workshop->nsassessments >= 3)) and ($useteachersgrades or $usepeergrades)
and $biasweight ) {
$usebiasgrades = 1;
- }
+ }
else {
$usebiasgrades = 0;
- }
+ }
// reliability grades?
if ((($workshop->ntassessments >= 3) or ($workshop->nsassessments >= 3)) and ($useteachersgrades or $usepeergrades)
and $reliabilityweight ) {
$usereliabilitygrades = 1;
- }
+ }
else {
$usereliabilitygrades = 0;
- }
+ }
// grading grades?
if (($workshop->ntassessments or $workshop->nsassessments) and $gradingweight ) {
$usegradinggrades = 1;
- }
+ }
else {
$usegradinggrades = 0;
- }
+ }
// 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("submissions", "workshop")."</b></td>";
+ echo "<td bgcolor=\"$THEME->cellheading2\"><b>".get_string("submission", "workshop")."</b></td>";
if ($useteachersgrades) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop", $course->teachers)."</b></td>";
- }
+ }
if ($usepeergrades) {
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("assessmentsdone", "workshop")."</b></td>";
if ($usebiasgrades) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforbias", "workshop")."</b></td>";
- }
+ }
if ($usereliabilitygrades) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforreliability", "workshop")."</b></td>";
- }
+ }
if ($usegradinggrades) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforassessments", "workshop")."</b></td>";
- }
+ }
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("overallgrade", "workshop")."</b></td></TR>\n";
// now the weights
echo "<TR><td bgcolor=\"$THEME->cellheading2\"><b>".get_string("weights", "workshop")."</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b> </b></td>\n";
if ($useteachersgrades) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>$WORKSHOP_FWEIGHTS[$teacherweight]</b></td>\n";
- }
+ }
if ($usepeergrades) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>$WORKSHOP_FWEIGHTS[$peerweight]</b></td>\n";
- }
+ }
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b> </b></td>\n";
if ($usebiasgrades) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>$WORKSHOP_FWEIGHTS[$biasweight]</b></td>\n";
- }
+ }
if ($usereliabilitygrades) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>$WORKSHOP_FWEIGHTS[$reliabilityweight]</b></td>\n";
- }
+ }
if ($usegradinggrades) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>$WORKSHOP_FWEIGHTS[$gradingweight]</b></td>\n";
- }
+ }
echo "<td bgcolor=\"$THEME->cellheading2\"><b> </b></td></tr>\n";
foreach ($users as $user) {
if ($submissions = workshop_get_user_submissions($workshop, $user)) {
echo "<td>".workshop_print_submission_title($workshop, $submission)."</td>\n";
if ($useteachersgrades) {
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission, "teacher")."</td>";
- }
+ }
if ($usepeergrades) {
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission, "student")."</td>";
- }
+ }
echo "<td align=\"center\">".workshop_print_user_assessments($workshop, $user)."</td>";
if ($usebiasgrades) {
- echo "<td align=\"center\">$submission->biasgrade</td>";
- }
+ echo "<td align=\"center\">$submission->biasgrade</td>";
+ }
if ($usereliabilitygrades) {
echo "<td align=\"center\">$submission->reliabilitygrade</td>";
- }
+ }
if ($usegradinggrades) {
echo "<td align=\"center\">$submission->gradinggrade</td>";
- }
- echo "<td align=\"center\">$submission->finalgrade</td></tr>\n";
}
+ echo "<td align=\"center\">$submission->finalgrade</td></tr>\n";
}
}
+ }
echo "</table><br clear=\"all\">\n";
if ($workshop->showleaguetable) {
workshop_print_league_table($workshop);
if ($workshop->anonymous) {
echo "<p>".get_string("namesnotshowntostudents", "workshop", $course->students)."</p>\n";
- }
}
+ }
echo "<p>".get_string("allgradeshaveamaximumof", "workshop", $workshop->grade)."</p>\n";
print_continue("view.php?a=$workshop->id");
- }\r
+ }
/*************** display final weights (by teacher) ***************************/
}
+ /******************* save analysis options (for teachers only) ************************************/
+ elseif ($action == 'saveanalysisoptions' ) {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+
+ set_field("workshop", "teacherloading", $_POST['teacherloading'], "id", "$workshop->id");
+ set_field("workshop", "gradingweight", $_POST['gradingweight'], "id", "$workshop->id");
+ set_field("workshop", "assessmentstodrop", $_POST['assessmentstodrop'], "id", "$workshop->id");
+ redirect("submissions.php?id=$cm->id&action=analysisofassessments",
+ get_string("savedok", "workshop"));
+
+ }
+
+
/*************** update over allocation (by teacher) ***************************/
elseif ($action == 'updateoverallocation') {