";
- }
- }
-
return $content;
}
@@ -642,6 +638,17 @@ function workshop_grades($workshopid) {
return $return;
}
+
+function workshop_log_info($log) {
+ global $CFG;
+ return get_record_sql("SELECT a.name, u.firstname, u.lastname
+ FROM {$CFG->prefix}workshop a,
+ {$CFG->prefix}user u
+ WHERE a.id = '$log->info'
+ AND u.id = '$log->userid'");
+}
+
+
//////////////////////////////////////////////////////////////////////////////////////
/*** Functions for the workshop module ******
@@ -693,7 +700,7 @@ function workshop_list_ungraded_assessments($workshop, $stype) {
function workshop_list_user_submissions($workshop, $user) {
-function workshop_print_assessment($workshop, $assessment, $allowchanges)
+function workshop_print_assessment($workshop, $assessment, $allowchanges, $showcommentlinks)
function workshop_print_difference($time) {
function workshop_print_feedback($course, $submission) {
function workshop_print_submission_assessments($workshop, $submission, $type) {
@@ -1014,10 +1021,6 @@ function workshop_get_student_submissions($workshop, $order = "title") {
ORDER BY $order");
}
-function workshop_get_submission() {
-// Just a stub
- return NULL;
-}
function workshop_get_submission_assessment($submission, $user) {
// Return the user's assessment for this submission
@@ -1073,7 +1076,7 @@ function workshop_get_ungraded_assessments_student($workshop) {
AND a.submissionid = s.id
AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
AND a.timecreated < $cutofftime
- ORDER BY a.timecreated DESC");
+ ORDER BY a.timecreated ASC");
}
@@ -1090,7 +1093,7 @@ function workshop_get_ungraded_assessments_teacher($workshop) {
AND a.submissionid = s.id
AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
AND a.timecreated < $cutofftime
- ORDER BY a.timecreated DESC");
+ ORDER BY a.timecreated ASC");
}
@@ -1306,8 +1309,13 @@ function workshop_list_assessed_submissions($workshop, $user) {
$comment = "";
$submission = get_record("workshop_submissions", "id", $assessment->submissionid);
if (($timenow - $assessment->timecreated) > $CFG->maxeditingtime) {
- $action = "id&aid=$assessment->id\">".
+ $action = "id&aid=$assessment->id&".
+ "allowcomments=$workshop->agreeassessments\">".
get_string("view", "workshop")."";
+ if ($workshop->agreeassessments and !$assessment->timeagreed) {
+ $action .= " | id&sid=$submission->id\">".
+ get_string("reassess", "workshop")."";
+ }
}
else { // there's still time left to edit...
$action = "id&sid=$submission->id\">".
@@ -1360,7 +1368,8 @@ function workshop_list_peer_assessments($workshop, $user) {
if (isstudent($workshop->course, $assessment->userid)) { // assessments by students only
$timenow = time();
if (($timenow - $assessment->timecreated) > $CFG->maxeditingtime) {
- $action = "id&aid=$assessment->id\">".
+ $action = "id&aid=$assessment->id&".
+ "allowcomments=$workshop->agreeassessments\">".
get_string("view", "workshop")."";
$comment = get_string("assessedon", "workshop", userdate($assessment->timecreated));
// has teacher commented on user's assessment?
@@ -1412,23 +1421,31 @@ function workshop_list_student_submissions($workshop, $user) {
// count the number of assessments for each student submission
if ($submissions = workshop_get_student_submissions($workshop)) {
+ srand ((float)microtime()*1000000); // initialise random number generator
foreach ($submissions as $submission) {
$n = count_records("workshop_assessments", "submissionid", $submission->id);
- // OK to have zero
- $nassessments[$submission->id] = $n;
+ // ...OK to have zero, we add a small random number to randomise things
+ $nassessments[$submission->id] = $n + rand(0, 99) / 100;
}
// put the submissions with the lowest number of assessments first
asort($nassessments);
reset($nassessments);
- $comment = "";
+ $nsassessments = $workshop->nsassessments;
+ if ($workshop->includeself) { // add one if self assessment flag is set
+ $nsassessments++;
+ }
foreach ($nassessments as $submissionid =>$n) {
+ $comment = "";
$submission = get_record("workshop_submissions", "id", $submissionid);
if (($submission->userid != $user->id) or $workshop->includeself) {
// add if user has NOT already assessed this submission
if (!$assessment = get_record_select("workshop_assessments", "submissionid = $submissionid
AND userid = $user->id")) {
- if ($nassessed < $workshop->nsassessments) {
+ if ($submission->userid == $user->id) {
+ $comment = get_string("ownwork", "workshop");
+ }
+ if ($nassessed < $nsassessments) {
$action = "id&sid=$submission->id\">".
get_string("assess", "workshop")."";
$table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
@@ -1468,28 +1485,30 @@ function workshop_list_submissions_for_admin($workshop, $order) {
if ($submissions = workshop_get_teacher_submissions($workshop)) {
foreach ($submissions as $submission) {
+ $action = "id&sid=$submission->id\">".
+ get_string("amendtitle", "workshop")."";
// has user already assessed this submission
if ($assessment = get_record_select("workshop_assessments", "submissionid = $submission->id
AND userid = $USER->id")) {
$curtime = time();
if (($curtime - $assessment->timecreated) > $CFG->maxeditingtime) {
- $action = "id&aid=$assessment->id\">"
+ $action .= " | id&aid=$assessment->id\">"
.get_string("reassess", "workshop")."";
}
else { // there's still time left to edit...
- $action = "id&sid=$submission->id\">".
+ $action .= " | id&sid=$submission->id\">".
get_string("edit", "workshop")."";
}
}
else { // user has not graded this submission
- $action = "id&sid=$submission->id\">".
+ $action .= " | id&sid=$submission->id\">".
get_string("assess", "workshop")."";
}
if ($assessments = workshop_get_assessments($submission)) {
- $action .= " | "."id&sid=$submission->id\">".
+ $action .= " | id&sid=$submission->id\">".
get_string("listassessments", "workshop")."";
}
- $action .= " | "."id&sid=$submission->id\">".
+ $action .= " | id&sid=$submission->id\">".
get_string("delete", "workshop")."";
$table->data[] = array(workshop_print_submission_title($workshop, $submission), $course->teacher, $action);
}
@@ -1518,21 +1537,23 @@ function workshop_list_submissions_for_admin($workshop, $order) {
if (!$user = get_record("user", "id", $submission->userid)) {
error("workshop_list_submissions_for_admin: failure to get user record");
}
+ $action = "id&sid=$submission->id\">".
+ get_string("amendtitle", "workshop")."";
// has teacher already assessed this submission
if ($assessment = get_record_select("workshop_assessments", "submissionid = $submission->id
AND userid = $USER->id")) {
$curtime = time();
if (($curtime - $assessment->timecreated) > $CFG->maxeditingtime) {
- $action = "id&aid=$assessment->id\">".
+ $action .= " | id&aid=$assessment->id\">".
get_string("reassess", "workshop")."";
}
else { // there's still time left to edit...
- $action = "id&sid=$submission->id\">".
+ $action .= " | id&sid=$submission->id\">".
get_string("edit", "workshop")."";
}
}
else { // user has not assessed this submission
- $action = "id&sid=$submission->id\">".
+ $action .= " | id&sid=$submission->id\">".
get_string("assess", "workshop")."";
}
if ($assessments = workshop_get_assessments($submission)) {
@@ -1607,65 +1628,74 @@ function workshop_list_teacher_submissions($workshop, $user) {
// get the number of assessments this user has done
$nassessed = count_records_select("workshop_assessments", "workshopid = $workshop->id
AND userid = $user->id");
- // count the number of assessments for each teacher submission
- if ($submissions = workshop_get_teacher_submissions($workshop)) {
- foreach ($submissions as $submission) {
- $n = count_records("workshop_assessments", "submissionid", $submission->id);
- // OK to have zero
- $nassessments[$submission->id] = $n;
- }
+ if ($nassessed < $workshop->ntassessments) {
+ // if user has not successfully assessed enough display one of the teacher submissions...
+ // ... first count the number of assessments for each teacher submission...
+ if ($submissions = workshop_get_teacher_submissions($workshop)) {
+ srand ((float)microtime()*1000000); // initialise random number generator
+ foreach ($submissions as $submission) {
+ $n = count_records("workshop_assessments", "submissionid", $submission->id);
+ // ...OK to have zero, we add a small random number to randomise things
+ $nassessments[$submission->id] = $n + rand(0, 99) / 100;
+ }
+ // put the submissions with the lowest number of assessments first
+ asort($nassessments);
+ reset($nassessments);
+
+ echo "
";
+ print_r($nassessments);
- // put the submissions with the lowest number of assessments first
- asort($nassessments);
- reset($nassessments);
- $comment = "";
- foreach ($nassessments as $submissionid => $n) {
- $comment = '';
- $submission = get_record("workshop_submissions", "id", $submissionid);
- // add if user has NOT already assessed this submission
- if (!$assessment = get_record_select("workshop_assessments", "submissionid = $submissionid
- AND userid = $user->id")) {
- if ($nassessed < $workshop->ntassessments) {
+ reset($nassessments);
+ $comment = "";
+ foreach ($nassessments as $submissionid => $n) { // actually only the first one is displayed...
+ $comment = '';
+ $submission = get_record("workshop_submissions", "id", $submissionid);
+ // ... provided the user has NOT already assessed that submission
+ if (!$assessment = get_record_select("workshop_assessments", "submissionid = $submissionid
+ AND userid = $user->id")) {
$action = "id&sid=$submission->id\">".
get_string("assess", "workshop")."";
$table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
- $nassessed++;
- }
- else {
break;
}
}
}
- // now list user's assessments (but only list those which come from teacher submissions)
- if ($assessments = workshop_get_user_assessments($workshop, $user)) {
- $timenow = time();
- foreach ($assessments as $assessment) {
- if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
- error ("workshop_list_teacher_submissions: unable to get submission");
+ }
+ // now list user's assessments (but only list those which come from teacher submissions)
+ if ($assessments = workshop_get_user_assessments($workshop, $user)) {
+ $timenow = time();
+ foreach ($assessments as $assessment) {
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error ("workshop_list_teacher_submissions: unable to get submission");
+ }
+ // submission from a teacher?
+ if (isteacher($workshop->course, $submission->userid)) {
+ $comment = '';
+ // user assessment has three states: still fresh; graded but not passed; and static (may or may not be graded
+ if (($timenow - $assessment->timecreated) < $CFG->maxeditingtime) { // there's still time left to edit...
+ $action = "id&sid=$submission->id\">".
+ get_string("edit", "workshop")."";
}
- // submission from a teacher?
- if (isteacher($workshop->course, $submission->userid)) {
- $comment = '';
- if (($timenow - $assessment->timecreated) > $CFG->maxeditingtime) {
- $action = "id&aid=$assessment->id\">"
- .get_string("view", "workshop")."";
- // has teacher graded user's assessment?
- if ($assessment->timegraded) {
- if (($timenow - $assessment->timegraded) > $CFG->maxeditingtime) {
- $comment .= get_string("gradedbyteacher", "workshop", $course->teacher);
- }
- }
- }
- else { // there's still time left to edit...
- $action = "id&sid=$submission->id\">".
- get_string("edit", "workshop")."";
- }
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
+ // has teacher graded user's assessment and it has not passed?
+ elseif ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime) and
+ ($assessment->gradinggrade < PASSGRADE)) { // allow the user to have another go
+ $action = "id&sid=$submission->id\">"
+ .get_string("reassess", "workshop")."";
+ }
+ else {
+ $action = "id&aid=$assessment->id\">"
+ .get_string("view", "workshop")."";
+ }
+ // see if teacher has graded assessment
+ if ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
+ $comment .= get_string("gradedbyteacher", "workshop", $course->teacher);
+ $comment .= " (".number_format($assessment->gradinggrade*100/COMMENTSCALE,0)."%)";
}
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
}
}
- print_table($table);
}
+ print_table($table);
}
@@ -1747,9 +1777,9 @@ function workshop_list_ungraded_assessments($workshop, $stype) {
global $CFG;
// lists all the assessments of student submissions for grading by teacher
- $table->head = array (get_string("title", "workshop"), get_string("timeassessed", "workshop"), get_string("action", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
+ $table->head = array (get_string("title", "workshop"), get_string("name"),get_string("timeassessed", "workshop"), get_string("action", "workshop"));
+ $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*", "*");
$table->cellpadding = 2;
$table->cellspacing = 0;
$timenow = time();
@@ -1774,8 +1804,9 @@ function workshop_list_ungraded_assessments($workshop, $stype) {
get_string("grade", "workshop")."";
}
$submission = get_record("workshop_submissions", "id", $assessment->submissionid);
+ $user = get_record("user", "id", $assessment->userid);
$table->data[] = array(workshop_print_submission_title($workshop, $submission),
- userdate($assessment->timecreated), $action);
+ $user->firstname." ".$user->lastname, userdate($assessment->timecreated), $action);
}
}
if (isset($table->data)) {
@@ -1802,7 +1833,9 @@ function workshop_list_user_submissions($workshop, $user) {
}
-function workshop_print_assessment($workshop, $assessment = FALSE, $showcommentlinks = FALSE) {
+function workshop_print_assessment($workshop, $assessment = false, $allowchanges = false,
+ $showcommentlinks = false) {
+ // $allowchanges added 14/7/03
global $CFG, $THEME, $USER, $WORKSHOP_SCALES, $WORKSHOP_EWEIGHTS;
if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
@@ -1814,7 +1847,6 @@ function workshop_print_assessment($workshop, $assessment = FALSE, $showcommentl
$timenow = time();
// reset the internal flags
- $allowchanges = false;
if ($assessment) {
$showgrades = false;
}
@@ -1824,10 +1856,6 @@ function workshop_print_assessment($workshop, $assessment = FALSE, $showcommentl
if ($assessment) {
// set the internal flag is necessary
- if (($assessment->userid == $USER->id) and ((($timenow - $assessment->timecreated) < $CFG->maxeditingtime) or
- !$assessment->timeagreed)) {
- $allowchanges = true;
- }
if ($allowchanges or !$workshop->agreeassessments or !$workshop->hidegrades or $assessment->timeagreed) {
$showgrades = true;
}
@@ -2265,8 +2293,9 @@ function workshop_print_assessment($workshop, $assessment = FALSE, $showcommentl
if ($allowchanges) {
echo "\n";
}
- // ...if user is author, assessment not agreed and there are no comments and it's not self assessment then show some buttons
- if (($submission->userid == $USER->id) and !$assessment->timeagreed and !$comments and
+ // ...if user is author, assessment not agreed, there's no comments, the showcommentlinks flag is set and
+ // it's not self assessment then show some buttons!
+ if (($submission->userid == $USER->id) and !$assessment->timeagreed and !$comments and $showcommentlinks and
$submission->userid != $assessment->userid) {
echo "\n";
@@ -2452,14 +2481,14 @@ function workshop_test_user_assessments($workshop, $user) {
// see if user has passed the required number of assessments of teachers submissions
global $CFG;
- $result = TRUE;
+ $result = true;
$n = 0;
$timenow =time();
if ($workshop->ntassessments) { // they have to pass some!
if ($submissions = workshop_get_teacher_submissions($workshop)) {
foreach ($submissions as $submission) {
if ($assessment = workshop_get_submission_assessment($submission, $user)) {
- if (($assessment->gradinggrade >= COMMENTSCALE*0.4) and
+ if (($assessment->gradinggrade >= PASSGRADE) and
(($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
$n++;
}
@@ -2467,7 +2496,7 @@ function workshop_test_user_assessments($workshop, $user) {
}
}
if ($n < min($workshop->ntassessments, workshop_count_teacher_submissions($workshop))) {
- $result = FALSE;
+ $result = false;
}
}
return $result;
diff --git a/mod/workshop/submissions.php b/mod/workshop/submissions.php
index 92724543ce..f4b493f24c 100644
--- a/mod/workshop/submissions.php
+++ b/mod/workshop/submissions.php
@@ -73,7 +73,40 @@
/******************* admin confirm delete ************************************/
- if ($action == 'adminconfirmdelete' ) {
+ if ($action == 'adminamendtitle' ) {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+ if (empty($_GET['sid'])) {
+ error("Admin Amend Title: submission id missing");
+ }
+
+ $submission = get_record("workshop_submissions", "id", $_GET['sid']);
+ print_heading(get_string("amendtitle", "workshop"));
+ ?>
+
\n";
+
+ }
+
+
+ /******************* admin confirm delete ************************************/
+ elseif ($action == 'adminconfirmdelete' ) {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
@@ -141,6 +174,23 @@
}
+ /******************* admin update title ************************************/
+ elseif ($action == 'adminupdatetitle' ) {
+
+ if (!isteacher($course->id)) {
+ error("Only teachers can look at this page");
+ }
+ if (empty($_POST['sid'])) {
+ error("Admin Update Title: submission id missing");
+ }
+
+ if (set_field("workshop_submissions", "title", $_POST['title'], "id", $_POST['sid'])) {
+ print_heading(get_string("amendtitle", "workshop")." ".get_string("ok"));
+ }
+ print_continue("submissions.php?id=$cm->id&action=adminlist");
+ }
+
+
/*************** calculate final grades (by teacher) ***************************/
elseif ($action == 'calculatefinalgrades') {
@@ -716,7 +766,7 @@
}
if ($workshop->phase != 3) { // is this at the expected phase?
- echo "
\n";
}
// in stage 2? - submit own first attempt
else {
if ($workshop->ntassessments) { // display message if student had to assess the teacher's examples
- echo "
\n";
+ print_heading("id\">".
+ get_string("assessmentsareok", "workshop")."");
}
if (!workshop_get_user_submissions($workshop, $USER)) {
// print upload form
- print_heading(get_string("submitassignment", "assignment").":", "CENTER");
+ print_heading(get_string("submitassignment", "assignment").":");
workshop_print_upload_form($workshop);
}
// in stage 3? - grade other student's submissions, resubmit and list all submissions
else {
// list any assessments by teachers
if (workshop_count_teacher_assessments($workshop, $USER)) {
- echo "
\n";
+ print_heading(get_string("assessmentsby", "workshop", $course->teachers));
workshop_list_teacher_assessments($workshop, $USER);
}
// if student assessments show any to assess...
if ($workshop->nsassessments) { // if there are student assessments display them...
workshop_list_student_submissions($workshop, $USER);
// ..and any they have already done...
- echo "
".get_string("yourassessments", "workshop")."
\n";
+ print_heading(get_string("yourassessments", "workshop"));
workshop_list_assessed_submissions($workshop, $USER);
// ... and show peer assessments
if (workshop_count_peer_assessments($workshop, $USER)) {
- echo "