if (! $userfrom = get_record("user", "id", "$entry->userid")) {
echo "Could not find user $entry->userid\n";
continue;
- }
- // get conversation record
- if(!$conversation = get_record("dialogue_conversations", "id", $entry->conversationid)) {
- echo "Could not find conversation $entry->conversationid\n";
- }
- if ($userfrom->id == $conversation->userid) {
- if (!$userto = get_record("user", "id", $conversation->recipientid)) {
- echo "Could not find use $conversation->recipientid\n";
- }
- }
- else {
- if (!$userto = get_record("user", "id", $conversation->userid)) {
- echo "Could not find use $conversation->userid\n";
- }
- }
+ }
+ // get conversation record
+ if(!$conversation = get_record("dialogue_conversations", "id", $entry->conversationid)) {
+ echo "Could not find conversation $entry->conversationid\n";
+ }
+ if ($userfrom->id == $conversation->userid) {
+ if (!$userto = get_record("user", "id", $conversation->recipientid)) {
+ echo "Could not find use $conversation->recipientid\n";
+ }
+ }
+ else {
+ if (!$userto = get_record("user", "id", $conversation->userid)) {
+ echo "Could not find use $conversation->userid\n";
+ }
+ }
$USER->lang = $userto->lang;
if (! $dialogue = get_record("dialogue", "id", $conversation->dialogueid)) {
echo "Could not find dialogue id $conversation->dialogueid\n";
continue;
- }
- if (! $course = get_record("course", "id", "$dialogue->course")) {
+ }
+ if (! $course = get_record("course", "id", "$dialogue->course")) {
echo "Could not find course $dialogue->course\n";
continue;
- }
- if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
- echo "Course Module ID was incorrect\n";
- }
+ }
+ if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
+ echo "Course Module ID was incorrect\n";
+ }
if (! isstudent($course->id, $userfrom->id) and !isteacher($course->id, $userfrom->id)) {
continue; // Not an active participant
continue; // Not an active participant
}
- $strdialogues = get_string("modulenameplural", "dialogue");
- $strdialogue = get_string("modulename", "dialogue");
-
+ $strdialogues = get_string("modulenameplural", "dialogue");
+ $strdialogue = get_string("modulename", "dialogue");
+
unset($dialogueinfo);
$dialogueinfo->userfrom = "$userfrom->firstname $userfrom->lastname";
$dialogueinfo->dialogue = "$dialogue->name";
function dialogue_print_recent_activity($course, $isteacher, $timestart) {
global $CFG;
- // have a look for new entries
+ // have a look for new entries
$addentrycontent = false;
- if ($logs = dialogue_get_add_entry_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->dialogueid;
- //Obtain the visible property from the instance
- if (instance_is_visible("dialogue",$tempmod)) {
- $addentrycontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($addentrycontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("newdialogueentries", "dialogue").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->dialogueid;
- //Obtain the visible property from the instance
- if (instance_is_visible("dialogue",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
- echo "\"<a href=\"$CFG->wwwroot/mod/dialogue/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
-
- // have a look for open conversations
+ if ($logs = dialogue_get_add_entry_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->dialogueid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("dialogue",$tempmod)) {
+ $addentrycontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($addentrycontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("newdialogueentries", "dialogue").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->dialogueid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("dialogue",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
+ echo "\"<a href=\"$CFG->wwwroot/mod/dialogue/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+
+ // have a look for open conversations
$opencontent = false;
- if ($logs = dialogue_get_open_conversations($course)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->dialogueid;
- //Obtain the visible property from the instance
- if (instance_is_visible("dialogue",$tempmod)) {
- $opencontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($opencontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("opendialogueentries", "dialogue").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->dialogueid;
- //Obtain the visible property from the instance
- if (instance_is_visible("dialogue",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
- echo "\"<a href=\"$CFG->wwwroot/mod/dialogue/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
-
- // have a look for closed conversations
- $closedcontent = false;
+ if ($logs = dialogue_get_open_conversations($course)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->dialogueid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("dialogue",$tempmod)) {
+ $opencontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($opencontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("opendialogueentries", "dialogue").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->dialogueid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("dialogue",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
+ echo "\"<a href=\"$CFG->wwwroot/mod/dialogue/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+
+ // have a look for closed conversations
+ $closedcontent = false;
if ($logs = dialogue_get_closed_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->dialogueid;
- //Obtain the visible property from the instance
- if (instance_is_visible("dialogue",$tempmod)) {
- $closedcontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($closedcontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("modulenameplural", "dialogue").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->dialogueid;
- //Obtain the visible property from the instance
- if (instance_is_visible("dialogue",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- echo "<p><font size=1>$date - ".get_string("namehascloseddialogue", "dialogue",
- "$log->firstname $log->lastname")."<br />";
- echo "\"<a href=\"$CFG->wwwroot/mod/dialogue/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->dialogueid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("dialogue",$tempmod)) {
+ $closedcontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($closedcontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("modulenameplural", "dialogue").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->dialogueid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("dialogue",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ echo "<p><font size=1>$date - ".get_string("namehascloseddialogue", "dialogue",
+ "$log->firstname $log->lastname")."<br />";
+ echo "\"<a href=\"$CFG->wwwroot/mod/dialogue/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
return $addentrycontent or $closedcontent;
}
function dialogue_user_complete($course, $user, $mod, $dialogue) {
if ($conversations = dialogue_get_conversations($dialogue, $user)) {
- print_simple_box_start();
- $table->head = array (get_string("dialoguewith", "dialogue"),
+ print_simple_box_start();
+ $table->head = array (get_string("dialoguewith", "dialogue"),
get_string("numberofentries", "dialogue"), get_string("lastentry", "dialogue"),
get_string("status", "dialogue"));
- $table->width = "100%";
- $table->align = array ("left", "center", "left", "left");
- $table->size = array ("*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- foreach ($conversations as $conversation) {
- if ($user->id != $conversation->userid) {
- if (!$with = get_record("user", "id", $conversation->userid)) {
- error("User's record not found");
- }
- }
- else {
- if (!$with = get_record("user", "id", $conversation->recipientid)) {
- error("User's record not found");
- }
- }
- $total = dialogue_count_entries($dialogue, $conversation);
- $byuser = dialogue_count_entries($dialogue, $conversation, $user);
- if ($conversation->closed) {
- $status = get_string("closed", "dialogue");
- } else {
- $status = get_string("open", "dialogue");
- }
- $table->data[] = array("$with->firstname $with->lastname", $byuser." ".
+ $table->width = "100%";
+ $table->align = array ("left", "center", "left", "left");
+ $table->size = array ("*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ foreach ($conversations as $conversation) {
+ if ($user->id != $conversation->userid) {
+ if (!$with = get_record("user", "id", $conversation->userid)) {
+ error("User's record not found");
+ }
+ }
+ else {
+ if (!$with = get_record("user", "id", $conversation->recipientid)) {
+ error("User's record not found");
+ }
+ }
+ $total = dialogue_count_entries($dialogue, $conversation);
+ $byuser = dialogue_count_entries($dialogue, $conversation, $user);
+ if ($conversation->closed) {
+ $status = get_string("closed", "dialogue");
+ } else {
+ $status = get_string("open", "dialogue");
+ }
+ $table->data[] = array("$with->firstname $with->lastname", $byuser." ".
get_string("of", "dialogue")." ".$total, userdate($conversation->timemodified), $status);
- }
- print_table($table);
- print_simple_box_end();
- }
+ }
+ print_table($table);
+ print_simple_box_end();
+ }
else {
print_string("noentry", "dialogue");
}
function dialogue_user_outline($course, $user, $mod, $dialogue) {
if ($entries = dialogue_get_user_entries($dialogue, $user)) {
$result->info = count($entries);
- foreach ($entries as $entry) {
- // dialogue_get_user_entries returns the most recent entry first
- $result->time = $entry->timecreated;
- break;
- }
+ foreach ($entries as $entry) {
+ // dialogue_get_user_entries returns the most recent entry first
+ $result->time = $entry->timecreated;
+ break;
+ }
return $result;
}
return NULL;
// function requested by Williams Castillo 17 Oct 2003
global $USER;
- if ($user) {
- return count_records_select("dialogue_conversations", "(userid = $user->id OR
+ if ($user) {
+ return count_records_select("dialogue_conversations", "(userid = $user->id OR
recipientid = $user->id) AND lastid != $user->id AND closed = 0");
} else {
- return count_records_select("dialogue_conversations", "(userid = $USER->id OR
+ return count_records_select("dialogue_conversations", "(userid = $USER->id OR
recipientid = $USER->id) AND lastid != $USER->id AND closed = 0");
- }
+ }
}
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_count_closed($dialogue, $user) {
-
- return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
+
+ return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
(userid = $user->id OR recipientid = $user->id) AND closed = 1");
- }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_count_entries($dialogue, $conversation, $user = '') {
-
- if (empty($user)) {
- return count_records_select("dialogue_entries", "conversationid = $conversation->id");
- }
- else {
- return count_records_select("dialogue_entries", "conversationid = $conversation->id AND
+
+ if (empty($user)) {
+ return count_records_select("dialogue_entries", "conversationid = $conversation->id");
+ }
+ else {
+ return count_records_select("dialogue_entries", "conversationid = $conversation->id AND
userid = $user->id");
- }
+ }
}
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_count_open($dialogue, $user) {
-
- return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
+
+ return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
(userid = $user->id OR recipientid = $user->id) AND closed = 0");
}
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_count_needing_replies_other($dialogue, $user) {
-// count [conversations] needing replies [from] other [person]
- return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
+// count [conversations] needing replies [from] other [person]
+ return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
(userid = $user->id OR recipientid = $user->id) AND lastid = $user->id AND closed = 0");
}
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_count_needing_replies_self($dialogue, $user) {
// count [conversations] needing replies [from] self
-
- return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
+
+ return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
(userid = $user->id OR recipientid = $user->id) AND lastid != $user->id AND closed = 0");
}
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_get_available_students($dialogue) {
global $USER;
-
+
if (! $course = get_record("course", "id", $dialogue->course)) {
error("Course is misconfigured");
}
// get the students on this course...
- if ($users = get_course_students($course->id, "u.firstname, u.lastname")) {
- foreach ($users as $otheruser) {
- // ...exclude self and...
- if ($USER->id != $otheruser->id) {
- // ...any already in any open conversations unless multiple conversations allowed
- if ($dialogue->multipleconversations or count_records_select("dialogue_conversations",
+ if ($users = get_course_students($course->id, "u.firstname, u.lastname")) {
+ foreach ($users as $otheruser) {
+ // ...exclude self and...
+ if ($USER->id != $otheruser->id) {
+ // ...any already in any open conversations unless multiple conversations allowed
+ if ($dialogue->multipleconversations or count_records_select("dialogue_conversations",
"dialogueid = $dialogue->id AND
((userid = $USER->id AND recipientid = $otheruser->id) OR
(userid = $otheruser->id AND recipientid = $USER->id)) AND closed = 0") == 0) {
- $names[$otheruser->id] = "$otheruser->firstname $otheruser->lastname";
- }
- }
- }
- }
+ $names[$otheruser->id] = "$otheruser->firstname $otheruser->lastname";
+ }
+ }
+ }
+ }
if (isset($names)) {
return $names;
}
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_get_available_teachers($dialogue) {
global $USER;
-
+
if (! $course = get_record("course", "id", $dialogue->course)) {
error("Course is misconfigured");
}
// get the teachers on this course...
- if ($users = get_course_teachers($course->id, "u.firstname, u.lastname")) {
- // $names[0] = "-----------------------";
- foreach ($users as $otheruser) {
+ if ($users = get_course_teachers($course->id, "u.firstname, u.lastname")) {
+ // $names[0] = "-----------------------";
+ foreach ($users as $otheruser) {
// ...exclude self and ...
- if ($USER->id != $otheruser->id) {
+ if ($USER->id != $otheruser->id) {
// ...any already in open conversations unless multiple conversations allowed
- if ($dialogue->multipleconversations or count_records_select("dialogue_conversations",
+ if ($dialogue->multipleconversations or count_records_select("dialogue_conversations",
"dialogueid = $dialogue->id AND ((userid = $USER->id AND
recipientid = $otheruser->id) OR (userid = $otheruser->id AND
recipientid = $USER->id)) AND closed = 0") == 0) {
- $names[$otheruser->id] = "$otheruser->firstname $otheruser->lastname";
- }
- }
- }
- }
- if (isset($names)) {
- return $names;
- }
- return;
+ $names[$otheruser->id] = "$otheruser->firstname $otheruser->lastname";
+ }
+ }
+ }
+ }
+ if (isset($names)) {
+ return $names;
+ }
+ return;
}
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_get_conversations($dialogue, $user, $condition = '', $order = '') {
global $CFG;
-
- if (!empty($condition)) {
+
+ if (!empty($condition)) {
$condition = ' AND '.$condition;
}
if (empty($order)) {
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_get_add_entry_logs($course, $timestart) {
- // get the "add entry" entries and add the first and last names, we are not interested in the entries
- // make by this user (the last condition)!
- global $CFG, $USER;
+ // get the "add entry" entries and add the first and last names, we are not interested in the entries
+ // make by this user (the last condition)!
+ global $CFG, $USER;
+ if (empty($USER->id)) {
+ return false;
+ }
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, e.dialogueid, d.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}dialogue d,
- {$CFG->prefix}dialogue_conversations c,
+ {$CFG->prefix}dialogue d,
+ {$CFG->prefix}dialogue_conversations c,
{$CFG->prefix}dialogue_entries e,
{$CFG->prefix}user u
WHERE l.time > $timestart AND l.course = $course->id AND l.module = 'dialogue'
- AND l.action = 'add entry'
- AND e.id = l.info
- AND c.id = e.conversationid
+ AND l.action = 'add entry'
+ AND e.id = l.info
+ AND c.id = e.conversationid
AND (c.userid = $USER->id or c.recipientid = $USER->id)
- AND d.id = e.dialogueid
- AND u.id = e.userid
- AND e.userid != $USER->id");
+ AND d.id = e.dialogueid
+ AND u.id = e.userid
+ AND e.userid != $USER->id");
}
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_get_open_conversations($course) {
- // get the conversations which are waiting for a response for this user.
+ // get the conversations which are waiting for a response for this user.
// Add the first and last names of the other participant
- global $CFG, $USER;
+ global $CFG, $USER;
+ if (empty($USER->id)) {
+ return false;
+ }
if ($conversations = get_records_sql("SELECT d.name dialoguename, c.id, c.dialogueid, c.timemodified, c.lastid
FROM {$CFG->prefix}dialogue d, {$CFG->prefix}dialogue_conversations c
WHERE d.course = $course->id
$entry[$conversation->id]->firstname = $user->firstname;
$entry[$conversation->id]->lastname = $user->lastname;
$entry[$conversation->id]->name = $conversation->dialoguename;
- }
+ }
return $entry;
}
return;
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_get_closed_logs($course, $timestart) {
- // get the "closed" entries and add the first and last names, we are not interested in the entries
- // make by this user (the last condition)!
- global $CFG, $USER;
+ // get the "closed" entries and add the first and last names, we are not interested in the entries
+ // make by this user (the last condition)!
+ global $CFG, $USER;
+ if (empty($USER->id)) {
+ return false;
+ }
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, c.dialogueid, d.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}dialogue d,
- {$CFG->prefix}dialogue_conversations c,
+ {$CFG->prefix}dialogue d,
+ {$CFG->prefix}dialogue_conversations c,
{$CFG->prefix}user u
WHERE l.time > $timestart AND l.course = $course->id AND l.module = 'dialogue'
- AND l.action = 'closed'
- AND c.id = l.info
+ AND l.action = 'closed'
+ AND c.id = l.info
AND (c.userid = $USER->id or c.recipientid = $USER->id)
- AND d.id = c.dialogueid
- AND u.id = c.lastid
- AND c.lastid != $USER->id");
+ AND d.id = c.dialogueid
+ AND u.id = c.lastid
+ AND c.lastid != $USER->id");
}
function dialogue_list_conversations_closed($dialogue) {
// list the closed for the current user
global $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
+
+ if (! $course = get_record("course", "id", $dialogue->course)) {
error("Course is misconfigured");
}
if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
error("Course Module ID was incorrect");
}
-
+
if ($conversations = dialogue_get_conversations($dialogue, $USER, "closed = 1")) {
// reorder the conversations by (other) name
foreach ($conversations as $conversation) {
- if ($USER->id != $conversation->userid) {
- if (!$with = get_record("user", "id", $conversation->userid)) {
- error("User's record not found");
- }
- }
- else {
- if (!$with = get_record("user", "id", $conversation->recipientid)) {
- error("User's record not found");
- }
- }
+ if ($USER->id != $conversation->userid) {
+ if (!$with = get_record("user", "id", $conversation->userid)) {
+ error("User's record not found");
+ }
+ }
+ else {
+ if (!$with = get_record("user", "id", $conversation->recipientid)) {
+ error("User's record not found");
+ }
+ }
$names[$conversation->id] = "$with->firstname $with->lastname";
}
asort($names);
- print_simple_box_start();
- $table->head = array (get_string("dialoguewith", "dialogue"), get_string("subject", "dialogue"),
+ print_simple_box_start();
+ $table->head = array (get_string("dialoguewith", "dialogue"), get_string("subject", "dialogue"),
get_string("numberofentries", "dialogue"), get_string("lastentry", "dialogue"),
get_string("status", "dialogue"));
- $table->width = "100%";
- $table->align = array ("left", "left", "center", "left", "left");
- $table->size = array ("*", "*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
+ $table->width = "100%";
+ $table->align = array ("left", "left", "center", "left", "left");
+ $table->size = array ("*", "*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
- foreach ($names as $cid=>$name) {
+ foreach ($names as $cid=>$name) {
if (!$conversation = get_record("dialogue_conversations", "id", $cid)) {
error("Closed conversations: could not find conversation record");
}
- $total = dialogue_count_entries($dialogue, $conversation);
- $byuser = dialogue_count_entries($dialogue, $conversation, $USER);
- if ($conversation->closed) {
- $status = get_string("closed", "dialogue");
- } else {
- $status = get_string("open", "dialogue");
- }
- $table->data[] = array("<a href=\"dialogues.php?id=$cm->id&action=showdialogues&cid=$conversation->id\">".
- "$name</a>", $conversation->subject, $byuser." ".get_string("of", "dialogue")." ".$total,
- userdate($conversation->timemodified), $status);
- }
- print_table($table);
- print_simple_box_end();
- }
+ $total = dialogue_count_entries($dialogue, $conversation);
+ $byuser = dialogue_count_entries($dialogue, $conversation, $USER);
+ if ($conversation->closed) {
+ $status = get_string("closed", "dialogue");
+ } else {
+ $status = get_string("open", "dialogue");
+ }
+ $table->data[] = array("<a href=\"dialogues.php?id=$cm->id&action=showdialogues&cid=$conversation->id\">".
+ "$name</a>", $conversation->subject, $byuser." ".get_string("of", "dialogue")." ".$total,
+ userdate($conversation->timemodified), $status);
+ }
+ print_table($table);
+ print_simple_box_end();
+ }
}
function dialogue_list_conversations_other($dialogue) {
// list the conversations of the current user awaiting response from the other person
global $THEME, $USER;
-
- if (!$course = get_record("course", "id", $dialogue->course)) {
+
+ if (!$course = get_record("course", "id", $dialogue->course)) {
error("Course is misconfigured");
}
if (!$cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
error("Course Module ID was incorrect");
}
-
+
$timenow = time();
if ($conversations = dialogue_get_conversations($dialogue, $USER, "lastid = $USER->id AND closed = 0")) {
// reorder the conversations by (other) name
foreach ($conversations as $conversation) {
- if ($USER->id != $conversation->userid) {
- if (!$with = get_record("user", "id", $conversation->userid)) {
- error("User's record not found");
- }
- }
- else {
- if (!$with = get_record("user", "id", $conversation->recipientid)) {
- error("User's record not found");
- }
- }
+ if ($USER->id != $conversation->userid) {
+ if (!$with = get_record("user", "id", $conversation->userid)) {
+ error("User's record not found");
+ }
+ }
+ else {
+ if (!$with = get_record("user", "id", $conversation->recipientid)) {
+ error("User's record not found");
+ }
+ }
$names[$conversation->id] = "$with->firstname $with->lastname";
}
asort($names);
- print_simple_box_start();
- $table->head = array (get_string("dialoguewith", "dialogue"), get_string("subject", "dialogue"),
+ print_simple_box_start();
+ $table->head = array (get_string("dialoguewith", "dialogue"), get_string("subject", "dialogue"),
get_string("numberofentries", "dialogue"), get_string("lastentry", "dialogue"),
get_string("status", "dialogue"));
- $table->width = "100%";
- $table->align = array ("left", "left", "center", "left", "left");
- $table->size = array ("*", "*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
+ $table->width = "100%";
+ $table->align = array ("left", "left", "center", "left", "left");
+ $table->size = array ("*", "*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
- foreach ($names as $cid=>$name) {
+ foreach ($names as $cid=>$name) {
if (!$conversation = get_record("dialogue_conversations", "id", $cid)) {
error("Closed conversations: could not find conversation record");
}
- $total = dialogue_count_entries($dialogue, $conversation);
- $byuser = dialogue_count_entries($dialogue, $conversation, $USER);
- if ($conversation->seenon) {
- $status = get_string("seen", "dialogue", format_time($timenow - $conversation->seenon));
- } else {
- $status = get_string("notyetseen", "dialogue");
- }
- $table->data[] = array("<a href=\"dialogues.php?id=$cm->id&action=printdialogue&cid=$conversation->id\">".
- "$name</a>", $conversation->subject, $byuser." ".get_string("of", "dialogue")." ".$total,
- userdate($conversation->timemodified), $status);
- }
- print_table($table);
- print_simple_box_end();
- }
+ $total = dialogue_count_entries($dialogue, $conversation);
+ $byuser = dialogue_count_entries($dialogue, $conversation, $USER);
+ if ($conversation->seenon) {
+ $status = get_string("seen", "dialogue", format_time($timenow - $conversation->seenon));
+ } else {
+ $status = get_string("notyetseen", "dialogue");
+ }
+ $table->data[] = array("<a href=\"dialogues.php?id=$cm->id&action=printdialogue&cid=$conversation->id\">".
+ "$name</a>", $conversation->subject, $byuser." ".get_string("of", "dialogue")." ".$total,
+ userdate($conversation->timemodified), $status);
+ }
+ print_table($table);
+ print_simple_box_end();
+ }
}
function dialogue_list_conversations_self($dialogue) {
// list open conversations of the current user awaiting their reply
global $THEME, $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
+
+ if (! $course = get_record("course", "id", $dialogue->course)) {
error("Course is misconfigured");
}
if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
error("Course Module ID was incorrect");
}
-
- $timenow = time();
- $showbutton = false;
- $showemoticon = false; // never show emoticons for now - need to close or reload the popup
+
+ $timenow = time();
+ $showbutton = false;
+ $showemoticon = false; // never show emoticons for now - need to close or reload the popup
// window to get the focus into the correct textarea on the second time round
-
- echo "<form name=\"replies\" method=\"post\" action=\"dialogues.php\">\n";
- echo "<input type=\"hidden\" name=\"action\" value=\"insertentries\">\n";
- echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\">\n";
- echo "<input type=\"hidden\" name=\"pane\" value=\"1\">\n";
-
- // list the conversations requiring a resonse from this user in full
- if ($conversations = dialogue_get_conversations($dialogue, $USER, "lastid != $USER->id AND closed = 0")) {
- $showbutton = true;
- print_simple_box_start("center");
- foreach ($conversations as $conversation) {
+
+ echo "<form name=\"replies\" method=\"post\" action=\"dialogues.php\">\n";
+ echo "<input type=\"hidden\" name=\"action\" value=\"insertentries\">\n";
+ echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\">\n";
+ echo "<input type=\"hidden\" name=\"pane\" value=\"1\">\n";
+
+ // list the conversations requiring a resonse from this user in full
+ if ($conversations = dialogue_get_conversations($dialogue, $USER, "lastid != $USER->id AND closed = 0")) {
+ $showbutton = true;
+ print_simple_box_start("center");
+ foreach ($conversations as $conversation) {
// set seenon if required
if (!$conversation->seenon) {
if (!set_field("dialogue_conversations", "seenon", $timenow, "id", $conversation->id)) {
error("List conversations self: could not set seenon");
}
}
- echo "<center><table border=\"1\" cellspacing=\"0\" valign=\"top\" cellpadding=\"4\"
+ echo "<center><table border=\"1\" cellspacing=\"0\" valign=\"top\" cellpadding=\"4\"
width=\"100%\">\n";
- echo "<tr><TD BGCOLOR=\"$THEME->cellheading2\" valign=\"top\">\n";
- if ($conversation->userid == $USER->id) {
- if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
- error("User not found");
- }
- }
- else {
- if (!$otheruser = get_record("user", "id", $conversation->userid)) {
- error("User not found");
- }
- }
- // print_user_picture($user->id, $course->id, $user->picture);
- echo "<b>".get_string("dialoguewith", "dialogue", "$otheruser->firstname $otheruser->lastname").
+ echo "<tr><TD BGCOLOR=\"$THEME->cellheading2\" valign=\"top\">\n";
+ if ($conversation->userid == $USER->id) {
+ if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
+ error("User not found");
+ }
+ }
+ else {
+ if (!$otheruser = get_record("user", "id", $conversation->userid)) {
+ error("User not found");
+ }
+ }
+ // print_user_picture($user->id, $course->id, $user->picture);
+ echo "<b>".get_string("dialoguewith", "dialogue", "$otheruser->firstname $otheruser->lastname").
"</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\"><i>$conversation->subject </i><br />\n";
+ echo "<td bgcolor=\"$THEME->cellheading2\"><i>$conversation->subject </i><br />\n";
echo "<div align=\"right\">\n";
- if (!$conversation->subject) {
+ if (!$conversation->subject) {
// conversation does not have a subject, show add subject link
echo "<a href=\"dialogues.php?action=getsubject&id=$cm->id&cid=$conversation->id&pane=2\">".
- get_string("addsubject", "dialogue")."</a>\n";
- helpbutton("addsubject", get_string("addsubject", "dialogue"), "dialogue");
+ get_string("addsubject", "dialogue")."</a>\n";
+ helpbutton("addsubject", get_string("addsubject", "dialogue"), "dialogue");
echo " | ";
}
- if (dialogue_count_entries($dialogue, $conversation)) {
- echo "<a href=\"dialogues.php?action=confirmclose&id=$cm->id&cid=$conversation->id&pane=1\">".
- get_string("close", "dialogue")."</a>\n";
- helpbutton("closedialogue", get_string("close", "dialogue"), "dialogue");
- }
- else {
- echo " ";
- }
- echo "<div></td></tr>";
-
- if ($entries = get_records_select("dialogue_entries", "conversationid = $conversation->id", "id")) {
- foreach ($entries as $entry) {
- if ($entry->userid == $USER->id) {
- echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
+ if (dialogue_count_entries($dialogue, $conversation)) {
+ echo "<a href=\"dialogues.php?action=confirmclose&id=$cm->id&cid=$conversation->id&pane=1\">".
+ get_string("close", "dialogue")."</a>\n";
+ helpbutton("closedialogue", get_string("close", "dialogue"), "dialogue");
+ }
+ else {
+ echo " ";
+ }
+ echo "<div></td></tr>";
+
+ if ($entries = get_records_select("dialogue_entries", "conversationid = $conversation->id", "id")) {
+ foreach ($entries as $entry) {
+ if ($entry->userid == $USER->id) {
+ echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
+ echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
userdate($entry->timecreated)).":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- else {
- echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
+ echo "</td></tr>\n";
+ }
+ else {
+ echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
+ echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
userdate($entry->timecreated)." ".$otheruser->firstname).
":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- }
- }
-
- echo "<tr><td colspan=\"2\" align=\"center\" valign=\"top\">\n";
- if ($entries) {
- echo "<i>".get_string("typereply", "dialogue")."</i>\n";
- }
- else {
- echo "<i>".get_string("typefirstentry", "dialogue")."</i>\n";
- }
- echo "</td></tr>\n";
- echo "<tr><td valign=\"top\" align=\"right\">\n";
- helpbutton("writing", get_string("helpwriting"), "dialogue", true, true);
- echo "<br />";
- if ($showemoticon) {
- emoticonhelpbutton("replies", "reply$conversation->id");
- $showemoticon = false;
- }
- echo "</td><td>\n";
- // use a cumbersome name on the textarea as the emoticonhelp doesn't like an "array" name
- echo "<textarea name=\"reply$conversation->id\" rows=\"5\" cols=\"60\" wrap=\"virtual\">";
- echo "</textarea>\n";
- echo "</td></tr>";
- echo "</table></center><br />\n";
- }
- print_simple_box_end();
- if ($showbutton) {
- echo "<hr />\n";
- echo "<b>".get_string("sendmailmessages", "dialogue").":</b> \n";
- if ($dialogue->maildefault) {
- echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\" checked> \n";
- }
- else {
- echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\"> \n";
- }
- helpbutton("sendmail", get_string("sendmailmessages", "dialogue"), "dialogue");
- echo "<br /><input type=\"submit\" value=\"".get_string("addmynewentries", "dialogue")."\">\n";
- }
- echo "</form>\n";
- }
+ echo "</td></tr>\n";
+ }
+ }
+ }
+
+ echo "<tr><td colspan=\"2\" align=\"center\" valign=\"top\">\n";
+ if ($entries) {
+ echo "<i>".get_string("typereply", "dialogue")."</i>\n";
+ }
+ else {
+ echo "<i>".get_string("typefirstentry", "dialogue")."</i>\n";
+ }
+ echo "</td></tr>\n";
+ echo "<tr><td valign=\"top\" align=\"right\">\n";
+ helpbutton("writing", get_string("helpwriting"), "dialogue", true, true);
+ echo "<br />";
+ if ($showemoticon) {
+ emoticonhelpbutton("replies", "reply$conversation->id");
+ $showemoticon = false;
+ }
+ echo "</td><td>\n";
+ // use a cumbersome name on the textarea as the emoticonhelp doesn't like an "array" name
+ echo "<textarea name=\"reply$conversation->id\" rows=\"5\" cols=\"60\" wrap=\"virtual\">";
+ echo "</textarea>\n";
+ echo "</td></tr>";
+ echo "</table></center><br />\n";
+ }
+ print_simple_box_end();
+ if ($showbutton) {
+ echo "<hr />\n";
+ echo "<b>".get_string("sendmailmessages", "dialogue").":</b> \n";
+ if ($dialogue->maildefault) {
+ echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\" checked> \n";
+ }
+ else {
+ echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\"> \n";
+ }
+ helpbutton("sendmail", get_string("sendmailmessages", "dialogue"), "dialogue");
+ echo "<br /><input type=\"submit\" value=\"".get_string("addmynewentries", "dialogue")."\">\n";
+ }
+ echo "</form>\n";
+ }
}
function dialogue_print_conversation($dialogue, $conversation) {
// print a conversation and allow a new entry
global $THEME, $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
+
+ if (! $course = get_record("course", "id", $dialogue->course)) {
error("Course is misconfigured");
}
if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
error("Course Module ID was incorrect");
}
-
- $timenow = time();
- $showbutton = false;
- $showemoticon = false; // never show emoticons for now - need to close or reload the popup
+
+ $timenow = time();
+ $showbutton = false;
+ $showemoticon = false; // never show emoticons for now - need to close or reload the popup
// window to get the focus into the correct textarea on the second time round
-
- echo "<form name=\"replies\" method=\"post\" action=\"dialogues.php\">\n";
- echo "<input type=\"hidden\" name=\"action\" value=\"insertentries\">\n";
- echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\">\n";
- echo "<input type=\"hidden\" name=\"pane\" value=\"2\">\n";
+
+ echo "<form name=\"replies\" method=\"post\" action=\"dialogues.php\">\n";
+ echo "<input type=\"hidden\" name=\"action\" value=\"insertentries\">\n";
+ echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\">\n";
+ echo "<input type=\"hidden\" name=\"pane\" value=\"2\">\n";
$showbutton = true;
print_simple_box_start("center", "", $THEME->cellcontent2);
echo "</textarea>\n";
echo "</td></tr>";
echo "</table></center><br />\n";
- print_simple_box_end();
- if ($showbutton) {
- echo "<hr />\n";
- echo "<b>".get_string("sendmailmessages", "dialogue").":</b> \n";
- if ($dialogue->maildefault) {
- echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\" checked> \n";
- }
- else {
- echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\"> \n";
- }
- helpbutton("sendmail", get_string("sendmailmessages", "dialogue"), "dialogue");
- echo "<br /><input type=\"submit\" value=\"".get_string("addmynewentry", "dialogue")."\">\n";
- }
- echo "</form>\n";
+ print_simple_box_end();
+ if ($showbutton) {
+ echo "<hr />\n";
+ echo "<b>".get_string("sendmailmessages", "dialogue").":</b> \n";
+ if ($dialogue->maildefault) {
+ echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\" checked> \n";
+ }
+ else {
+ echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\"> \n";
+ }
+ helpbutton("sendmail", get_string("sendmailmessages", "dialogue"), "dialogue");
+ echo "<br /><input type=\"submit\" value=\"".get_string("addmynewentry", "dialogue")."\">\n";
+ }
+ echo "</form>\n";
}
function dialogue_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;
-
+// $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>";
- }
+ $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->names)) {
echo "<tr>";
- echo "<td class=\"generaltablecell\">".
- "<img width=\"10\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\"></td>\n";
+ 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=\"$align[$key]\"";
+ } else {
$alignment = "align=\"center\"";
}
if (isset($size[$key])) {
$width = "width=\"$size[$key]\"";
} else {
- $width = "";
- }
+ $width = "";
+ }
if (isset($wrap[$key])) {
- $wrapping = "no wrap";
- } else {
+ $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";
+ 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 "<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();
+ // print_simple_box_end();
return true;
}
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_show_conversation($dialogue, $conversation) {
global $THEME, $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
+
+ if (! $course = get_record("course", "id", $dialogue->course)) {
error("Course is misconfigured");
}
if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
error("Course Module ID was incorrect");
}
-
- $timenow = time();
- print_simple_box_start("center");
- echo "<center><TABLE BORDER=1 CELLSPACING=0 valign=top cellpadding=4 width=\"100%\">\n";
-
- echo "<tr>";
- echo "<td bgcolor=\"$THEME->cellheading2\" valign=\"top\">\n";
- if ($conversation->userid == $USER->id) {
- if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
- error("User not found");
- }
- }
- else {
- if (!$otheruser = get_record("user", "id", $conversation->userid)) {
- error("User not found");
- }
- }
- // print_user_picture($user->id, $course->id, $user->picture);
- echo "<b>".get_string("dialoguewith", "dialogue", "$otheruser->firstname $otheruser->lastname").
+
+ $timenow = time();
+ print_simple_box_start("center");
+ echo "<center><TABLE BORDER=1 CELLSPACING=0 valign=top cellpadding=4 width=\"100%\">\n";
+
+ echo "<tr>";
+ echo "<td bgcolor=\"$THEME->cellheading2\" valign=\"top\">\n";
+ if ($conversation->userid == $USER->id) {
+ if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
+ error("User not found");
+ }
+ }
+ else {
+ if (!$otheruser = get_record("user", "id", $conversation->userid)) {
+ error("User not found");
+ }
+ }
+ // print_user_picture($user->id, $course->id, $user->picture);
+ echo "<b>".get_string("dialoguewith", "dialogue", "$otheruser->firstname $otheruser->lastname").
"</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\" valign=\"top\"><i>$conversation->subject </i></td></tr>";
+ echo "<td bgcolor=\"$THEME->cellheading2\" valign=\"top\"><i>$conversation->subject </i></td></tr>";
- if ($entries = get_records_select("dialogue_entries", "conversationid = $conversation->id", "id")) {
- foreach ($entries as $entry) {
- if ($entry->userid == $USER->id) {
- echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
+ if ($entries = get_records_select("dialogue_entries", "conversationid = $conversation->id", "id")) {
+ foreach ($entries as $entry) {
+ if ($entry->userid == $USER->id) {
+ echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
+ echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
userdate($entry->timecreated)).
- ":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- else {
- echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
+ ":</font><br />".$entry->text);
+ echo "</td></tr>\n";
+ }
+ else {
+ echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
+ echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
userdate($entry->timecreated)." ".$otheruser->firstname).":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- }
- }
- echo "</TABLE></center><BR CLEAR=ALL>\n";
- print_simple_box_end();
- print_continue("view.php?id=$cm->id&pane=3");
+ echo "</td></tr>\n";
+ }
+ }
+ }
+ echo "</TABLE></center><BR CLEAR=ALL>\n";
+ print_simple_box_end();
+ print_continue("view.php?id=$cm->id&pane=3");
}
function dialogue_show_other_conversations($dialogue, $conversation) {
// prints the other CLOSED conversations for this pair of users
global $THEME;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
+
+ if (! $course = get_record("course", "id", $dialogue->course)) {
error("Course is misconfigured");
}
if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
error("Course Module ID was incorrect");
}
-
- if (!$user = get_record("user", "id", $conversation->userid)) {
- error("User not found");
- }
- if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
- error("User not found");
- }
-
- if ($conversations = get_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
- ((userid = $user->id AND recipientid = $otheruser->id) OR (userid = $otheruser->id AND
+
+ if (!$user = get_record("user", "id", $conversation->userid)) {
+ error("User not found");
+ }
+ if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
+ error("User not found");
+ }
+
+ if ($conversations = get_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
+ ((userid = $user->id AND recipientid = $otheruser->id) OR (userid = $otheruser->id AND
recipientid = $user->id)) AND closed = 1", "timemodified DESC")) {
- if (count($conversations) > 1) {
- $timenow = time();
- foreach ($conversations as $otherconversation) {
- if ($conversation->id != $otherconversation->id) {
- // for this conversation work out which is the other user
+ if (count($conversations) > 1) {
+ $timenow = time();
+ foreach ($conversations as $otherconversation) {
+ if ($conversation->id != $otherconversation->id) {
+ // for this conversation work out which is the other user
if ($otherconversation->userid == $user->id) {
if (!$otheruser = get_record("user", "id", $otherconversation->recipientid)) {
error("Show other conversations: could not get user record");
}
}
print_simple_box_start("center");
- echo "<center><TABLE BORDER=1 CELLSPACING=0 valign=top cellpadding=4 width=\"100%\">\n";
-
- echo "<TR>";
- echo "<TD BGCOLOR=\"$THEME->cellheading2\" VALIGN=TOP>\n";
- // print_user_picture($otheruser->id, $course->id, $otheruser->picture);
- echo "<b>".get_string("dialoguewith", "dialogue",
+ echo "<center><TABLE BORDER=1 CELLSPACING=0 valign=top cellpadding=4 width=\"100%\">\n";
+
+ echo "<TR>";
+ echo "<TD BGCOLOR=\"$THEME->cellheading2\" VALIGN=TOP>\n";
+ // print_user_picture($otheruser->id, $course->id, $otheruser->picture);
+ echo "<b>".get_string("dialoguewith", "dialogue",
"$otheruser->firstname $otheruser->lastname")."</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\" valign=\"top\"><i>$otherconversation->subject </i></td></tr>";
- if ($entries = get_records_select("dialogue_entries",
+ if ($entries = get_records_select("dialogue_entries",
"conversationid = $otherconversation->id", "id")) {
- foreach ($entries as $entry) {
- if ($entry->userid == $user->id) {
- echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
+ foreach ($entries as $entry) {
+ if ($entry->userid == $user->id) {
+ echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
+ echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
userdate($entry->timecreated)).":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- else {
- echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
+ echo "</td></tr>\n";
+ }
+ else {
+ echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
+ echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
userdate($entry->timecreated)." ".$otheruser->firstname).
":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- }
- }
-
- echo "</TABLE></center><BR CLEAR=ALL>\n";
- print_simple_box_end();
- }
+ echo "</td></tr>\n";
+ }
+ }
+ }
+
+ echo "</TABLE></center><BR CLEAR=ALL>\n";
+ print_simple_box_end();
+ }
}
- print_continue("view.php?id=$cm->id&pane=3");
+ print_continue("view.php?id=$cm->id&pane=3");
}
- }
+ }
}
1 => get_string("accumulative", "exercise"),
2 => get_string("errorbanded", "exercise"),
3 => get_string("criterion", "exercise"),
- 4 => get_string("rubric", "exercise") );
+ 4 => get_string("rubric", "exercise") );
$EXERCISE_SCALES = array(
- 0 => array( 'name' => get_string("scaleyes", "exercise"), 'type' => 'radio', 'size' => 2, 'start' => get_string("yes"), 'end' => get_string("no")),
- 1 => array( 'name' => get_string("scalepresent", "exercise"), 'type' => 'radio', 'size' => 2, 'start' => get_string("present", "exercise"), 'end' => get_string("absent", "exercise")),
- 2 => array( 'name' => get_string("scalecorrect", "exercise"), 'type' => 'radio', 'size' => 2, 'start' => get_string("correct", "exercise"), 'end' => get_string("incorrect", "exercise")),
- 3 => array( 'name' => get_string("scalegood3", "exercise"), 'type' => 'radio', 'size' => 3, 'start' => get_string("good", "exercise"), 'end' => get_string("poor", "exercise")),
- 4 => array( 'name' => get_string("scaleexcellent4", "exercise"), 'type' => 'radio', 'size' => 4, 'start' => get_string("excellent", "exercise"), 'end' => get_string("verypoor", "exercise")),
- 5 => array( 'name' => get_string("scaleexcellent5", "exercise"), 'type' => 'radio', 'size' => 5, 'start' => get_string("excellent", "exercise"), 'end' => get_string("verypoor", "exercise")),
- 6 => array( 'name' => get_string("scaleexcellent7", "exercise"), 'type' => 'radio', 'size' => 7, 'start' => get_string("excellent", "exercise"), 'end' => get_string("verypoor", "exercise")),
- 7 => array( 'name' => get_string("scale10", "exercise"), 'type' => 'selection', 'size' => 10),
- 8 => array( 'name' => get_string("scale20", "exercise"), 'type' => 'selection', 'size' => 20),
- 9 => array( 'name' => get_string("scale100", "exercise"), 'type' => 'selection', 'size' => 100));
+ 0 => array( 'name' => get_string("scaleyes", "exercise"), 'type' => 'radio', 'size' => 2, 'start' => get_string("yes"), 'end' => get_string("no")),
+ 1 => array( 'name' => get_string("scalepresent", "exercise"), 'type' => 'radio', 'size' => 2, 'start' => get_string("present", "exercise"), 'end' => get_string("absent", "exercise")),
+ 2 => array( 'name' => get_string("scalecorrect", "exercise"), 'type' => 'radio', 'size' => 2, 'start' => get_string("correct", "exercise"), 'end' => get_string("incorrect", "exercise")),
+ 3 => array( 'name' => get_string("scalegood3", "exercise"), 'type' => 'radio', 'size' => 3, 'start' => get_string("good", "exercise"), 'end' => get_string("poor", "exercise")),
+ 4 => array( 'name' => get_string("scaleexcellent4", "exercise"), 'type' => 'radio', 'size' => 4, 'start' => get_string("excellent", "exercise"), 'end' => get_string("verypoor", "exercise")),
+ 5 => array( 'name' => get_string("scaleexcellent5", "exercise"), 'type' => 'radio', 'size' => 5, 'start' => get_string("excellent", "exercise"), 'end' => get_string("verypoor", "exercise")),
+ 6 => array( 'name' => get_string("scaleexcellent7", "exercise"), 'type' => 'radio', 'size' => 7, 'start' => get_string("excellent", "exercise"), 'end' => get_string("verypoor", "exercise")),
+ 7 => array( 'name' => get_string("scale10", "exercise"), 'type' => 'selection', 'size' => 10),
+ 8 => array( 'name' => get_string("scale20", "exercise"), 'type' => 'selection', 'size' => 20),
+ 9 => array( 'name' => get_string("scale100", "exercise"), 'type' => 'selection', 'size' => 100));
$EXERCISE_EWEIGHTS = array( 0 => -4.0, 1 => -2.0, 2 => -1.5, 3 => -1.0, 4 => -0.75, 5 => -0.5, 6 => -0.25,
- 7 => 0.0, 8 => 0.25, 9 => 0.5, 10 => 0.75, 11=> 1.0, 12 => 1.5, 13=> 2.0, 14 => 4.0);
+ 7 => 0.0, 8 => 0.25, 9 => 0.5, 10 => 0.75, 11=> 1.0, 12 => 1.5, 13=> 2.0, 14 => 4.0);
$EXERCISE_FWEIGHTS = array( 0 => 0, 1 => 0.1, 2 => 0.25, 3 => 0.5, 4 => 0.75, 5 => 1.0, 6 => 1.5,
- 7 => 2.0, 8 => 3.0, 9 => 5.0, 10 => 7.5, 11=> 10.0);
+ 7 => 2.0, 8 => 3.0, 9 => 5.0, 10 => 7.5, 11=> 10.0);
if (!defined("COMMENTSCALE")) {
- define("COMMENTSCALE", 20);
- }
+ define("COMMENTSCALE", 20);
+ }
/*** Standard Moodle functions ******************
function exercise_add_instance($exercise)
$exercise->timemodified = time();
$exercise->deadline = make_timestamp($exercise->deadlineyear,
- $exercise->deadlinemonth, $exercise->deadlineday, $exercise->deadlinehour,
- $exercise->deadlineminute);
+ $exercise->deadlinemonth, $exercise->deadlineday, $exercise->deadlinehour,
+ $exercise->deadlineminute);
return insert_record("exercise", $exercise);
}
if ($value == $selected) {
$output .= " SELECTED";
}
- // stop zero label being replaced by array index value
+ // stop zero label being replaced by array index value
// if ($label) {
// $output .= ">$label</OPTION>\n";
// } else {
// $output .= ">$value</OPTION>\n";
- // }
- $output .= ">$label</OPTION>\n";
+ // }
+ $output .= ">$label</OPTION>\n";
}
}
$cutofftime = time() - $CFG->maxeditingtime;
- // look for new assessments
- if ($assessments = exercise_get_unmailed_assessments($cutofftime)) {
+ // look for new assessments
+ if ($assessments = exercise_get_unmailed_assessments($cutofftime)) {
$timenow = time();
foreach ($assessments as $assessment) {
- echo "Processing exercise assessment $assessment->id\n";
- if (! $submission = get_record("exercise_submissions", "id", "$assessment->submissionid")) {
- echo "Could not find submission $assessment->submissionid\n";
- continue;
- }
- if (! $exercise = get_record("exercise", "id", $submission->exerciseid)) {
- echo "Could not find exercise record for id $submission->exerciseid\n";
- continue;
- }
- if (! $course = get_record("course", "id", "$exercise->course")) {
- echo "Could not find course $exercise->course\n";
- continue;
- }
+ echo "Processing exercise assessment $assessment->id\n";
+ if (! $submission = get_record("exercise_submissions", "id", "$assessment->submissionid")) {
+ echo "Could not find submission $assessment->submissionid\n";
+ continue;
+ }
+ if (! $exercise = get_record("exercise", "id", $submission->exerciseid)) {
+ echo "Could not find exercise record for id $submission->exerciseid\n";
+ continue;
+ }
+ if (! $course = get_record("course", "id", "$exercise->course")) {
+ echo "Could not find course $exercise->course\n";
+ continue;
+ }
if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
error("Course Module ID was incorrect");
continue;
}
- if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
- echo "Could not find user $submission->userid\n";
- continue;
- }
- if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
- echo "Could not find user $assessment->userid\n";
- continue;
- }
- if (! isstudent($course->id, $submissionowner->id) and !isteacher($course->id, $submissionowner->id)) {
- continue; // Not an active participant
- }
- if (! isstudent($course->id, $assessmentowner->id) and !isteacher($course->id, $assessmentowner->id)) {
- continue; // Not an active participant
- }
-
- $strexercises = get_string("modulenameplural", "exercise");
- $strexercise = get_string("modulename", "exercise");
-
- // it's an assessment, tell the submission owner
- $USER->lang = $submissionowner->lang;
- $sendto = $submissionowner;
- // "Your assignment \"$submission->title\" has been assessed by"
- $msg = get_string("mail1", "exercise", $submission->title)." $assessmentowner->firstname $assessmentowner->lastname.\n";
- // "The comments and grade can be seen in the exercise assignment '$exercise->name'
- $msg .= get_string("mail2", "exercise", $exercise->name)."\n\n";
-
- $postsubject = "$course->shortname: $strexercises: $exercise->name";
- $posttext = "$course->shortname -> $strexercises -> $exercise->name\n";
- $posttext .= "---------------------------------------------------------------------\n";
- $posttext .= $msg;
- // "You can see it in your exercise assignment"
- $posttext .= get_string("mail3", "exercise").":\n";
- $posttext .= " $CFG->wwwroot/mod/exercise/view.php?id=$cm->id\n";
- $posttext .= "---------------------------------------------------------------------\n";
- if ($sendto->mailformat == 1) { // HTML
- $posthtml = "<P><FONT FACE=sans-serif>".
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/exercise/index.php?id=$course->id\">$strexercises</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/exercise/view.php?id=$cm->id\">$exercise->name</A></FONT></P>";
- $posthtml .= "<HR><FONT FACE=sans-serif>";
- $posthtml .= "<P>$msg</P>";
- $posthtml .= "<P>".get_string("mail3", "exercise").
- " <A HREF=\"$CFG->wwwroot/mod/exercise/view.php?id=$cm->id\">$exercise->name</A>.</P></FONT><HR>";
- } else {
- $posthtml = "";
- }
-
- if (!$teacher = get_teacher($course->id)) {
- echo "Error: can not find teacher for course $course->id!\n";
- }
-
- if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
- echo "Error: exercise cron: Could not send out mail for id $submission->id to user $sendto->id ($sendto->email)\n";
- }
- if (! set_field("exercise_assessments", "mailed", "1", "id", "$assessment->id")) {
- echo "Could not update the mailed field for id $assessment->id\n";
- }
- }
- }
-
- // look for new gradings
- if ($assessments = exercise_get_unmailed_graded_assessments($cutofftime)) {
+ if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
+ echo "Could not find user $submission->userid\n";
+ continue;
+ }
+ if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
+ echo "Could not find user $assessment->userid\n";
+ continue;
+ }
+ if (! isstudent($course->id, $submissionowner->id) and !isteacher($course->id, $submissionowner->id)) {
+ continue; // Not an active participant
+ }
+ if (! isstudent($course->id, $assessmentowner->id) and !isteacher($course->id, $assessmentowner->id)) {
+ continue; // Not an active participant
+ }
+
+ $strexercises = get_string("modulenameplural", "exercise");
+ $strexercise = get_string("modulename", "exercise");
+
+ // it's an assessment, tell the submission owner
+ $USER->lang = $submissionowner->lang;
+ $sendto = $submissionowner;
+ // "Your assignment \"$submission->title\" has been assessed by"
+ $msg = get_string("mail1", "exercise", $submission->title)." $assessmentowner->firstname $assessmentowner->lastname.\n";
+ // "The comments and grade can be seen in the exercise assignment '$exercise->name'
+ $msg .= get_string("mail2", "exercise", $exercise->name)."\n\n";
+
+ $postsubject = "$course->shortname: $strexercises: $exercise->name";
+ $posttext = "$course->shortname -> $strexercises -> $exercise->name\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ $posttext .= $msg;
+ // "You can see it in your exercise assignment"
+ $posttext .= get_string("mail3", "exercise").":\n";
+ $posttext .= " $CFG->wwwroot/mod/exercise/view.php?id=$cm->id\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ if ($sendto->mailformat == 1) { // HTML
+ $posthtml = "<P><FONT FACE=sans-serif>".
+ "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/exercise/index.php?id=$course->id\">$strexercises</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/exercise/view.php?id=$cm->id\">$exercise->name</A></FONT></P>";
+ $posthtml .= "<HR><FONT FACE=sans-serif>";
+ $posthtml .= "<P>$msg</P>";
+ $posthtml .= "<P>".get_string("mail3", "exercise").
+ " <A HREF=\"$CFG->wwwroot/mod/exercise/view.php?id=$cm->id\">$exercise->name</A>.</P></FONT><HR>";
+ } else {
+ $posthtml = "";
+ }
+
+ if (!$teacher = get_teacher($course->id)) {
+ echo "Error: can not find teacher for course $course->id!\n";
+ }
+
+ if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
+ echo "Error: exercise cron: Could not send out mail for id $submission->id to user $sendto->id ($sendto->email)\n";
+ }
+ if (! set_field("exercise_assessments", "mailed", "1", "id", "$assessment->id")) {
+ echo "Could not update the mailed field for id $assessment->id\n";
+ }
+ }
+ }
+
+ // look for new gradings
+ if ($assessments = exercise_get_unmailed_graded_assessments($cutofftime)) {
$timenow = time();
foreach ($assessments as $assessment) {
echo "Processing exercise assessment $assessment->id (graded)\n";
- if (! $submission = get_record("exercise_submissions", "id", "$assessment->submissionid")) {
+ if (! $submission = get_record("exercise_submissions", "id", "$assessment->submissionid")) {
echo "Could not find submission $assessment->submissionid\n";
continue;
}
- if (! $exercise = get_record("exercise", "id", $submission->exerciseid)) {
- echo "Could not find exercise record for id $submission->exerciseid\n";
- continue;
- }
- if (! $course = get_record("course", "id", "$exercise->course")) {
- echo "Could not find course $exercise->course\n";
- continue;
- }
+ if (! $exercise = get_record("exercise", "id", $submission->exerciseid)) {
+ echo "Could not find exercise record for id $submission->exerciseid\n";
+ continue;
+ }
+ if (! $course = get_record("course", "id", "$exercise->course")) {
+ echo "Could not find course $exercise->course\n";
+ continue;
+ }
if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
error("Course Module ID was incorrect");
continue;
}
- if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
+ if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
echo "Could not find user $assessment->userid\n";
continue;
}
$strexercises = get_string("modulenameplural", "exercise");
$strexercise = get_string("modulename", "exercise");
- // it's a grading tell the assessment owner
- $USER->lang = $assessmentowner->lang;
- $sendto = $assessmentowner;
- // Your assessment of the assignment \"$submission->title\" has by reviewed
- $msg = get_string("mail6", "exercise", $submission->title).".\n";
- // The comments given by the $course->teacher can be seen in the exercise Assignment
- $msg .= get_string("mail7", "exercise", $course->teacher)." '$exercise->name'.\n\n";
+ // it's a grading tell the assessment owner
+ $USER->lang = $assessmentowner->lang;
+ $sendto = $assessmentowner;
+ // Your assessment of the assignment \"$submission->title\" has by reviewed
+ $msg = get_string("mail6", "exercise", $submission->title).".\n";
+ // The comments given by the $course->teacher can be seen in the exercise Assignment
+ $msg .= get_string("mail7", "exercise", $course->teacher)." '$exercise->name'.\n\n";
- $postsubject = "$course->shortname: $strexercises: $exercise->name";
+ $postsubject = "$course->shortname: $strexercises: $exercise->name";
$posttext = "$course->shortname -> $strexercises -> $exercise->name\n";
$posttext .= "---------------------------------------------------------------------\n";
$posttext .= $msg;
- // "You can see it in your exercise assignment"
- $posttext .= get_string("mail3", "exercise").":\n";
- $posttext .= " $CFG->wwwroot/mod/exercise/view.php?id=$cm->id\n";
+ // "You can see it in your exercise assignment"
+ $posttext .= get_string("mail3", "exercise").":\n";
+ $posttext .= " $CFG->wwwroot/mod/exercise/view.php?id=$cm->id\n";
$posttext .= "---------------------------------------------------------------------\n";
if ($sendto->mailformat == 1) { // HTML
- $posthtml = "<P><FONT FACE=sans-serif>".
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/exercise/index.php?id=$cm->id\">$strexercises</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/exercise/view.php?a=$exercise->id\">$exercise->name</A></FONT></P>";
- $posthtml .= "<HR><FONT FACE=sans-serif>";
- $posthtml .= "<P>$msg</P>";
- $posthtml .= "<P>".get_string("mail3", "exercise").
- " <A HREF=\"$CFG->wwwroot/mod/exercise/view.php?id=$cm->id\">$exercise->name</A>.</P></FONT><HR>";
+ $posthtml = "<P><FONT FACE=sans-serif>".
+ "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/exercise/index.php?id=$cm->id\">$strexercises</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/exercise/view.php?a=$exercise->id\">$exercise->name</A></FONT></P>";
+ $posthtml .= "<HR><FONT FACE=sans-serif>";
+ $posthtml .= "<P>$msg</P>";
+ $posthtml .= "<P>".get_string("mail3", "exercise").
+ " <A HREF=\"$CFG->wwwroot/mod/exercise/view.php?id=$cm->id\">$exercise->name</A>.</P></FONT><HR>";
} else {
$posthtml = "";
}
- if (!$teacher = get_teacher($course->id)) {
- echo "Error: can not find teacher for course $course->id!\n";
- }
-
+ if (!$teacher = get_teacher($course->id)) {
+ echo "Error: can not find teacher for course $course->id!\n";
+ }
+
if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
echo "Error: exercise cron: Could not send out mail for id $submission->id to user $sendto->id ($sendto->email)\n";
}
if (! $exercise = get_record("exercise", "id", "$id")) {
return false;
}
-
- // delete all the associated records in the exercise tables, start positive...
+
+ // delete all the associated records in the exercise tables, start positive...
$result = true;
if (! delete_records("exercise_grades", "exerciseid", "$exercise->id")) {
function exercise_grades($exerciseid) {
/// Must return an array of grades, indexed by user, and a max grade.
global $EXERCISE_FWEIGHTS;
-
- if (!$exercise = get_record("exercise", "id", $exerciseid)) {
- error("Exercise record not found");
- }
- if (! $course = get_record("course", "id", $exercise->course)) {
+
+ if (!$exercise = get_record("exercise", "id", $exerciseid)) {
+ error("Exercise record not found");
+ }
+ if (! $course = get_record("course", "id", $exercise->course)) {
error("Course is misconfigured");
}
- // calculate scaling factor
- $scaling = $exercise->grade / (100.0 * ($EXERCISE_FWEIGHTS[$exercise->gradingweight] +
- $EXERCISE_FWEIGHTS[$exercise->teacherweight]));
- // how to handle multiple submissions?
- if ($exercise->usemaximum) {
- // first get the teacher's grade for the best submission
- if ($bestgrades = exercise_get_best_submission_grades($exercise)) {
- foreach ($bestgrades as $grade) {
- $usergrade[$grade->userid] = $grade->grade *
- $EXERCISE_FWEIGHTS[$exercise->teacherweight] * $scaling;
- }
- }
- }
- else { // use mean values
- if ($meangrades = exercise_get_mean_submission_grades($exercise)) {
- foreach ($meangrades as $grade) {
- $usergrade[$grade->userid] = $grade->grade *
- $EXERCISE_FWEIGHTS[$exercise->teacherweight] * $scaling;
- }
- }
- }
- // now get the users grading grades
- if ($assessments = exercise_get_teacher_submission_assessments($exercise)) {
- foreach ($assessments as $assessment) {
- // add the grading grade if the student's work has been assessed
- if (isset($usergrade[$assessment->userid])) {
- $usergrade[$assessment->userid] += $assessment->gradinggrade *
- $EXERCISE_FWEIGHTS[$exercise->gradingweight] * $scaling * 100.0 / COMMENTSCALE;
- }
- }
- }
+ // calculate scaling factor
+ $scaling = $exercise->grade / (100.0 * ($EXERCISE_FWEIGHTS[$exercise->gradingweight] +
+ $EXERCISE_FWEIGHTS[$exercise->teacherweight]));
+ // how to handle multiple submissions?
+ if ($exercise->usemaximum) {
+ // first get the teacher's grade for the best submission
+ if ($bestgrades = exercise_get_best_submission_grades($exercise)) {
+ foreach ($bestgrades as $grade) {
+ $usergrade[$grade->userid] = $grade->grade *
+ $EXERCISE_FWEIGHTS[$exercise->teacherweight] * $scaling;
+ }
+ }
+ }
+ else { // use mean values
+ if ($meangrades = exercise_get_mean_submission_grades($exercise)) {
+ foreach ($meangrades as $grade) {
+ $usergrade[$grade->userid] = $grade->grade *
+ $EXERCISE_FWEIGHTS[$exercise->teacherweight] * $scaling;
+ }
+ }
+ }
+ // now get the users grading grades
+ if ($assessments = exercise_get_teacher_submission_assessments($exercise)) {
+ foreach ($assessments as $assessment) {
+ // add the grading grade if the student's work has been assessed
+ if (isset($usergrade[$assessment->userid])) {
+ $usergrade[$assessment->userid] += $assessment->gradinggrade *
+ $EXERCISE_FWEIGHTS[$exercise->gradingweight] * $scaling * 100.0 / COMMENTSCALE;
+ }
+ }
+ }
// tidy the numbers and set up the return array
if (isset($usergrade)) {
foreach ($usergrade as $userid => $g) {
function exercise_print_recent_activity($course, $isteacher, $timestart) {
global $CFG;
- // have a look for new submissions (only show to teachers)
+ // have a look for new submissions (only show to teachers)
$submitcontent = false;
- if ($isteacher) {
- if ($logs = exercise_get_submit_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->exerciseid;
- //Obtain the visible property from the instance
- if (instance_is_visible("exercise",$tempmod)) {
- $submitcontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($submitcontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("exercisesubmissions", "exercise").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->exerciseid;
- //Obtain the visible property from the instance
- if (instance_is_visible("exercise",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
- echo "\"<a href=\"$CFG->wwwroot/mod/exercise/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
- }
-
- // have a look for new assessment gradings for this user
+ if ($isteacher) {
+ if ($logs = exercise_get_submit_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->exerciseid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("exercise",$tempmod)) {
+ $submitcontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($submitcontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("exercisesubmissions", "exercise").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->exerciseid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("exercise",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
+ echo "\"<a href=\"$CFG->wwwroot/mod/exercise/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+ }
+
+ // have a look for new assessment gradings for this user
$gradecontent = false;
- if ($logs = exercise_get_grade_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->exerciseid;
- //Obtain the visible property from the instance
- if (instance_is_visible("exercise",$tempmod)) {
- $gradecontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($gradecontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("exercisefeedback", "exercise").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->exerciseid;
- //Obtain the visible property from the instance
- if (instance_is_visible("exercise",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
- echo "\"<a href=\"$CFG->wwwroot/mod/exercise/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
-
- // have a look for new assessments for this user
+ if ($logs = exercise_get_grade_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->exerciseid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("exercise",$tempmod)) {
+ $gradecontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($gradecontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("exercisefeedback", "exercise").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->exerciseid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("exercise",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
+ echo "\"<a href=\"$CFG->wwwroot/mod/exercise/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+
+ // have a look for new assessments for this user
$assesscontent = false;
- if (!$isteacher) { // teachers only need to see submissions
- if ($logs = exercise_get_assess_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->exerciseid;
- //Obtain the visible property from the instance
- if (instance_is_visible("exercise",$tempmod)) {
- $assesscontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($assesscontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("exerciseassessments", "exercise").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->exerciseid;
- //Obtain the visible property from the instance
- if (instance_is_visible("exercise",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
- echo "\"<a href=\"$CFG->wwwroot/mod/exercise/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
- }
+ if (!$isteacher) { // teachers only need to see submissions
+ if ($logs = exercise_get_assess_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->exerciseid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("exercise",$tempmod)) {
+ $assesscontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($assesscontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("exerciseassessments", "exercise").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->exerciseid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("exercise",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
+ echo "\"<a href=\"$CFG->wwwroot/mod/exercise/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+ }
return $submitcontent or $gradecontent or $assesscontent;
}
$exercise->timemodified = time();
$exercise->deadline = make_timestamp($exercise->deadlineyear,
- $exercise->deadlinemonth, $exercise->deadlineday, $exercise->deadlinehour,
- $exercise->deadlineminute);
+ $exercise->deadlinemonth, $exercise->deadlineday, $exercise->deadlinehour,
+ $exercise->deadlineminute);
$exercise->id = $exercise->instance;
function exercise_user_complete($course, $user, $mod, $exercise) {
if ($submissions = exercise_get_user_submissions($exercise, $user)) {
print_simple_box_start();
- $table->head = array (get_string("submission", "exercise"), get_string("submitted", "exercise"),
- get_string("assessed", "exercise"), get_string("grade"));
- $table->width = "100%";
- $table->align = array ("left", "left", "left", "center");
- $table->size = array ("*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- foreach ($submissions as $submission) {
- if ($assessments = exercise_get_assessments($submission)) {
- // should only be one but we'll loop anyway
- foreach ($assessments as $assessment) {
- $table->data[] = array(exercise_print_submission_title($exercise, $submission),
+ $table->head = array (get_string("submission", "exercise"), get_string("submitted", "exercise"),
+ get_string("assessed", "exercise"), get_string("grade"));
+ $table->width = "100%";
+ $table->align = array ("left", "left", "left", "center");
+ $table->size = array ("*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ foreach ($submissions as $submission) {
+ if ($assessments = exercise_get_assessments($submission)) {
+ // should only be one but we'll loop anyway
+ foreach ($assessments as $assessment) {
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission),
userdate($submission->timecreated), userdate($assessment->timecreated),
$assessment->grade * $exercise->grade / 100.0);
- }
- } else {
+ }
+ } else {
// submission not yet assessed (by teacher)
- $table->data[] = array(exercise_print_submission_title($exercise, $submission),
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission),
userdate($submission->timecreated), get_string("notassessedyet", "exercise"), 0);
}
}
- print_table($table);
- print_simple_box_end();
+ print_table($table);
+ print_simple_box_end();
} else {
print_string("nosubmissions", "exercise");
}
/*******************************************************************/
function exercise_user_outline($course, $user, $mod, $exercise) {
if ($submissions = exercise_get_user_submissions($exercise, $user)) {
- $result->info = count($submissions)." ".get_string("submissions", "exercise");
- foreach ($submissions as $submission) { // the first one is the most recent one
- $result->time = $submission->timecreated;
- break;
- }
+ $result->info = count($submissions)." ".get_string("submissions", "exercise");
+ foreach ($submissions as $submission) { // the first one is the most recent one
+ $result->time = $submission->timecreated;
+ break;
+ }
return $result;
}
return NULL;
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_copy_assessment($assessment, $submission, $withfeedback = false) {
- // adds a copy of the given assessment for the submission specified to the exercise_assessemnts table.
- // The grades and optionally the comments are added to the exercise_grades table. Returns the new
- // assessment object
- global $USER;
-
+ // adds a copy of the given assessment for the submission specified to the exercise_assessemnts table.
+ // The grades and optionally the comments are added to the exercise_grades table. Returns the new
+ // assessment object
+ global $USER;
+
$yearfromnow = time() + 365 * 86400;
- $newassessment->exerciseid = $assessment->exerciseid;
- $newassessment->submissionid = $submission->id;
- $newassessment->userid = $USER->id;
- $newassessment->timecreated = $yearfromnow;
- $newassessment->timegraded = 0;
- $newassessment->grade = $assessment->grade;
- if ($withfeedback) {
- $newassessment->generalcomment = addslashes($assessment->generalcomment);
- $newassessment->teachercomment = addslashes($assessment->teachercomment);
- }
- if (!$newassessment->id = insert_record("exercise_assessments", $newassessment)) {
- error("Copy Assessment: Could not insert exercise assessment!");
- }
-
- if ($grades = get_records("exercise_grades", "assessmentid", $assessment->id)) {
- foreach ($grades as $grade) {
+ $newassessment->exerciseid = $assessment->exerciseid;
+ $newassessment->submissionid = $submission->id;
+ $newassessment->userid = $USER->id;
+ $newassessment->timecreated = $yearfromnow;
+ $newassessment->timegraded = 0;
+ $newassessment->grade = $assessment->grade;
+ if ($withfeedback) {
+ $newassessment->generalcomment = addslashes($assessment->generalcomment);
+ $newassessment->teachercomment = addslashes($assessment->teachercomment);
+ }
+ if (!$newassessment->id = insert_record("exercise_assessments", $newassessment)) {
+ error("Copy Assessment: Could not insert exercise assessment!");
+ }
+
+ if ($grades = get_records("exercise_grades", "assessmentid", $assessment->id)) {
+ foreach ($grades as $grade) {
unset($grade->id); // clear id, insert record now seems to believe it!
if (!$withfeedback) {
- $grade->feedback = '';
- }
+ $grade->feedback = '';
+ }
else {
$grade->feedback = addslashes($grade->feedback);
// $grade->feedback = $grade->feedback;
}
- $grade->assessmentid = $newassessment->id;
- if (!$grade->id = insert_record("exercise_grades", $grade)) {
- error("Copy Assessment: Could not insert exercise grade!");
- }
- }
- }
- if ($withfeedback) {
+ $grade->assessmentid = $newassessment->id;
+ if (!$grade->id = insert_record("exercise_grades", $grade)) {
+ error("Copy Assessment: Could not insert exercise grade!");
+ }
+ }
+ }
+ if ($withfeedback) {
// remove the slashes from comments as the new assessment record is used
// in assessments and in lib
- $newassessment->generalcomment = stripslashes($assessment->generalcomment);
- $newassessment->teachercomment = stripslashes($assessment->teachercomment);
+ $newassessment->generalcomment = stripslashes($assessment->generalcomment);
+ $newassessment->teachercomment = stripslashes($assessment->teachercomment);
}
return $newassessment;
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_all_submissions_for_assessment($exercise, $user) {
- // looks at all submissions and deducts the number which has been assessed by this user
- $n = 0;
- if ($submissions = get_records_select("exercise_submissions", "exerciseid = $exercise->id AND timecreated > 0")) {
- $n =count($submissions);
- foreach ($submissions as $submission) {
- $n -= count_records("exercise_assessments", "submissionid", $submission->id, "userid", $user->id);
- }
- }
- return $n;
- }
+ // looks at all submissions and deducts the number which has been assessed by this user
+ $n = 0;
+ if ($submissions = get_records_select("exercise_submissions", "exerciseid = $exercise->id AND timecreated > 0")) {
+ $n =count($submissions);
+ foreach ($submissions as $submission) {
+ $n -= count_records("exercise_assessments", "submissionid", $submission->id, "userid", $user->id);
+ }
+ }
+ return $n;
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_assessments($submission) {
- // Return the (cold) assessments for this submission,
- global $CFG;
-
- $timethen = time() - $CFG->maxeditingtime;
+ // Return the (cold) assessments for this submission,
+ global $CFG;
+
+ $timethen = time() - $CFG->maxeditingtime;
return count_records_select("exercise_assessments", "submissionid = $submission->id AND
- timecreated < $timethen");
+ timecreated < $timethen");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_assessments_by_teacher($exercise, $teacher) {
- // Return the number of assessments done by a teacher
-
+ // Return the number of assessments done by a teacher
+
return count_records_select("exercise_assessments", "exerciseid = $exercise->id AND
- userid = $teacher->id");
+ userid = $teacher->id");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_student_submissions($exercise) {
- global $CFG;
-
- return count_records_sql("SELECT count(*) FROM {$CFG->prefix}exercise_submissions s, {$CFG->prefix}user_students u
- WHERE u.course = $exercise->course
+ global $CFG;
+
+ return count_records_sql("SELECT count(*) FROM {$CFG->prefix}exercise_submissions s, {$CFG->prefix}user_students u
+ WHERE u.course = $exercise->course
AND s.userid = u.userid
AND s.exerciseid = $exercise->id
- AND timecreated > 0");
- }
+ AND timecreated > 0");
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_teacher_assessments($exercise, $user) {
- // returns the number of assessments made by teachers on user's submissions
-
- $n = 0;
- if ($submissions = exercise_get_user_submissions($exercise, $user)) {
- foreach ($submissions as $submission) {
- if ($assessments = exercise_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- // count only teacher assessments
- if (isteacher($exercise->course, $assessment->userid)) {
- $n++;
- }
- }
- }
- }
- }
- return $n;
- }
+ // returns the number of assessments made by teachers on user's submissions
+
+ $n = 0;
+ if ($submissions = exercise_get_user_submissions($exercise, $user)) {
+ foreach ($submissions as $submission) {
+ if ($assessments = exercise_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ // count only teacher assessments
+ if (isteacher($exercise->course, $assessment->userid)) {
+ $n++;
+ }
+ }
+ }
+ }
+ }
+ return $n;
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_teacher_submissions($exercise) {
-
- return count_records("exercise_submissions", "isexercise", 1, "exerciseid", $exercise->id);
- }
+
+ return count_records("exercise_submissions", "isexercise", 1, "exerciseid", $exercise->id);
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_teacher_submissions_for_assessment($exercise, $user) {
- $n = 0;
- if ($submissions = exercise_get_teacher_submissions($exercise)) {
- $n =count($submissions);
- foreach ($submissions as $submission) {
- $n -= count_records("exercise_assessments", "submissionid", $submission->id, "userid", $user->id);
- }
- }
- return $n;
- }
+ $n = 0;
+ if ($submissions = exercise_get_teacher_submissions($exercise)) {
+ $n =count($submissions);
+ foreach ($submissions as $submission) {
+ $n -= count_records("exercise_assessments", "submissionid", $submission->id, "userid", $user->id);
+ }
+ }
+ return $n;
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_unassessed_student_submissions($exercise) {
// returns the number of students submissions which have not been assessed by a teacher
- global $CFG;
-
+ global $CFG;
+
if (! $course = get_record("course", "id", $exercise->course)) {
error("Course is misconfigured");
}
- $timenow = time();
- $n = 0;
- if ($submissions = exercise_get_student_submissions($exercise)) {
- foreach ($submissions as $submission) {
- // only look at "cold" submissions
- if ($submission->timecreated < $timenow - $CFG->maxeditingtime) {
- $teacherassessed = false;
- if ($assessments = exercise_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- // exercise_get_assessments only returns "cold" assessments, look for one made by a teacher
- if (isteacher($course->id, $assessment->userid)) {
- $teacherassessed = true;
- break; // no need to look further
- }
- }
- }
- if (!$teacherassessed) {
- $n++;
- }
- }
- }
- }
- return $n;
+ $timenow = time();
+ $n = 0;
+ if ($submissions = exercise_get_student_submissions($exercise)) {
+ foreach ($submissions as $submission) {
+ // only look at "cold" submissions
+ if ($submission->timecreated < $timenow - $CFG->maxeditingtime) {
+ $teacherassessed = false;
+ if ($assessments = exercise_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ // exercise_get_assessments only returns "cold" assessments, look for one made by a teacher
+ if (isteacher($course->id, $assessment->userid)) {
+ $teacherassessed = true;
+ break; // no need to look further
+ }
+ }
+ }
+ if (!$teacherassessed) {
+ $n++;
+ }
+ }
+ }
+ }
+ return $n;
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_ungraded_assessments_student($exercise) {
- // function returns the number of ungraded assessments by students of STUDENT submissions
+ // function returns the number of ungraded assessments by students of STUDENT submissions
$n = 0;
- if ($submissions = exercise_get_student_submissions($exercise)) {
- foreach ($submissions as $submission) {
- if ($assessments = exercise_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- if ($assessment->timegraded == 0) {
- // ignore teacher assessments
- if (!isteacher($exercise->course, $assessment->userid)) {
- $n++;
- }
- }
- }
- }
- }
- }
- return $n;
- }
+ if ($submissions = exercise_get_student_submissions($exercise)) {
+ foreach ($submissions as $submission) {
+ if ($assessments = exercise_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ if ($assessment->timegraded == 0) {
+ // ignore teacher assessments
+ if (!isteacher($exercise->course, $assessment->userid)) {
+ $n++;
+ }
+ }
+ }
+ }
+ }
+ }
+ return $n;
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_ungraded_assessments_teacher($exercise) {
- // function returns the number of ungraded assessments by students of TEACHER submissions
- global $CFG;
-
- $timenow = time();
- $n = 0;
- if ($submissions = exercise_get_teacher_submissions($exercise)) {
- foreach ($submissions as $submission) {
- if ($assessments = exercise_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- if ($assessment->timegraded == 0) {
- // ignore teacher assessments
- if (!isteacher($exercise->course, $assessment->userid)) {
- // must have created a little time ago
- if (($timenow - $assessment->timecreated) > $CFG->maxeditingtime) {
- $n++;
- }
- }
- }
- }
- }
- }
- }
- return $n;
- }
+ // function returns the number of ungraded assessments by students of TEACHER submissions
+ global $CFG;
+
+ $timenow = time();
+ $n = 0;
+ if ($submissions = exercise_get_teacher_submissions($exercise)) {
+ foreach ($submissions as $submission) {
+ if ($assessments = exercise_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ if ($assessment->timegraded == 0) {
+ // ignore teacher assessments
+ if (!isteacher($exercise->course, $assessment->userid)) {
+ // must have created a little time ago
+ if (($timenow - $assessment->timecreated) > $CFG->maxeditingtime) {
+ $n++;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return $n;
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_user_assessments($exercise, $user, $stype = "all") {
- // returns the number of assessments allocated/made by a user, all of them, or just those for the student or teacher submissions
- // the student's self assessments are included in the count
- // the maxeditingtime is NOT taken into account here also allocated assessments which have not yet
- // been done are counted as well
-
- $n = 0;
- if ($assessments = exercise_get_user_assessments($exercise, $user)) {
- foreach ($assessments as $assessment) {
- switch ($stype) {
- case "all" :
- $n++;
- break;
- case "student" :
- $submission = get_record("exercise_submissions", "id", $assessment->submissionid);
- if (isstudent($exercise->course, $submission->userid)) {
- $n++;
- }
- break;
- case "teacher" :
- $submission = get_record("exercise_submissions", "id", $assessment->submissionid);
- if (isteacher($exercise->course, $submission->userid)) {
- $n++;
- }
- break;
- }
- }
- }
- return $n;
- }
+ // returns the number of assessments allocated/made by a user, all of them, or just those for the student or teacher submissions
+ // the student's self assessments are included in the count
+ // the maxeditingtime is NOT taken into account here also allocated assessments which have not yet
+ // been done are counted as well
+
+ $n = 0;
+ if ($assessments = exercise_get_user_assessments($exercise, $user)) {
+ foreach ($assessments as $assessment) {
+ switch ($stype) {
+ case "all" :
+ $n++;
+ break;
+ case "student" :
+ $submission = get_record("exercise_submissions", "id", $assessment->submissionid);
+ if (isstudent($exercise->course, $submission->userid)) {
+ $n++;
+ }
+ break;
+ case "teacher" :
+ $submission = get_record("exercise_submissions", "id", $assessment->submissionid);
+ if (isteacher($exercise->course, $submission->userid)) {
+ $n++;
+ }
+ break;
+ }
+ }
+ }
+ return $n;
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_user_assessments_done($exercise, $user) {
- // returns the number of assessments actually done by a user
- // the student's self assessments are included in the count
- // the maxeditingtime is NOT taken into account here
-
- $n = 0;
- $timenow = time();
- if ($assessments = exercise_get_user_assessments($exercise, $user)) {
- foreach ($assessments as $assessment) {
- if ($assessment->timecreated < $timenow) {
- $n++;
- }
- }
- }
- return $n;
+ // returns the number of assessments actually done by a user
+ // the student's self assessments are included in the count
+ // the maxeditingtime is NOT taken into account here
+
+ $n = 0;
+ $timenow = time();
+ if ($assessments = exercise_get_user_assessments($exercise, $user)) {
+ foreach ($assessments as $assessment) {
+ if ($assessment->timecreated < $timenow) {
+ $n++;
+ }
+ }
+ }
+ return $n;
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_count_user_submissions($exercise, $user) {
- // returns the number of submissions make by this user
- return count_records("exercise_submissions", "exerciseid", $exercise->id, "userid", $user->id);
+ // returns the number of submissions make by this user
+ return count_records("exercise_submissions", "exerciseid", $exercise->id, "userid", $user->id);
}
function exercise_delete_submitted_files($exercise, $submission) {
// Deletes the files in the exercise area for this submission
- if ($basedir = exercise_file_area($exercise, $submission)) {
- if ($files = get_directory_list($basedir)) {
- foreach ($files as $file) {
- if (unlink("$basedir/$file")) {
- notify("Existing file '$file' has been deleted!");
- }
- else {
- notify("Attempt to delete file $basedir/$file has failed!");
- }
- }
- }
- }
+ if ($basedir = exercise_file_area($exercise, $submission)) {
+ if ($files = get_directory_list($basedir)) {
+ foreach ($files as $file) {
+ if (unlink("$basedir/$file")) {
+ notify("Existing file '$file' has been deleted!");
+ }
+ else {
+ notify("Attempt to delete file $basedir/$file has failed!");
+ }
+ }
+ }
+ }
}
// EXCEPT for any file named $exception
if (!$submissions = exercise_get_submissions($exercise, $user)) {
- notify("No submissions!");
- return;
- }
- foreach ($submissions as $submission) {
- if ($basedir = exercise_file_area($exercise, $submission)) {
- if ($files = get_directory_list($basedir)) {
- foreach ($files as $file) {
- if ($file != $exception) {
- unlink("$basedir/$file");
- notify("Existing file '$file' has been deleted!");
- }
- }
- }
- }
- }
- }
+ notify("No submissions!");
+ return;
+ }
+ foreach ($submissions as $submission) {
+ if ($basedir = exercise_file_area($exercise, $submission)) {
+ if ($files = get_directory_list($basedir)) {
+ foreach ($files as $file) {
+ if ($file != $exception) {
+ unlink("$basedir/$file");
+ notify("Existing file '$file' has been deleted!");
+ }
+ }
+ }
+ }
+ }
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_assess_logs($course, $timestart) {
- // get the "assess" entries for this user and add the first and last names...
- global $CFG, $USER;
-
- $timethen = time() - $CFG->maxeditingtime;
+ // get the "assess" entries for this user and add the first and last names...
+ global $CFG, $USER;
+ if (empty($USER->id)) {
+ return false;
+ }
+ $timethen = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, a.exerciseid, e.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}exercise e,
- {$CFG->prefix}exercise_submissions s,
- {$CFG->prefix}exercise_assessments a,
- {$CFG->prefix}user u
+ {$CFG->prefix}exercise e,
+ {$CFG->prefix}exercise_submissions s,
+ {$CFG->prefix}exercise_assessments a,
+ {$CFG->prefix}user u
WHERE l.time > $timestart AND l.time < $timethen
- AND l.course = $course->id AND l.module = 'exercise' AND l.action = 'assess'
- AND a.id = l.info AND s.id = a.submissionid AND s.userid = $USER->id
- AND u.id = a.userid AND e.id = a.exerciseid");
+ AND l.course = $course->id AND l.module = 'exercise' AND l.action = 'assess'
+ AND a.id = l.info AND s.id = a.submissionid AND s.userid = $USER->id
+ AND u.id = a.userid AND e.id = a.exerciseid");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_assessments($submission) {
- // Return all assessments for this submission provided they are after the editing time,
+ // Return all assessments for this submission provided they are after the editing time,
// ordered oldest first, newest last
- global $CFG;
+ global $CFG;
- $timenow = time();
+ $timenow = time();
return get_records_select("exercise_assessments", "(submissionid = $submission->id) AND
- (timecreated < $timenow - $CFG->maxeditingtime)", "timecreated ASC");
+ (timecreated < $timenow - $CFG->maxeditingtime)", "timecreated ASC");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_best_grade($submission) {
// Returns the best grade of students' submission (there may, occassionally be more than one assessment)
- global $CFG;
-
- return get_record_sql("SELECT MAX(a.grade) grade FROM
+ global $CFG;
+
+ return get_record_sql("SELECT MAX(a.grade) grade FROM
{$CFG->prefix}exercise_assessments a
WHERE a.submissionid = $submission->id
- GROUP BY a.submissionid");
+ GROUP BY a.submissionid");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_best_submission_grades($exercise) {
// Returns the grades of students' best submissions
- global $CFG;
-
- return get_records_sql("SELECT DISTINCT u.userid, MAX(a.grade) grade FROM
+ global $CFG;
+
+ return get_records_sql("SELECT DISTINCT u.userid, MAX(a.grade) grade FROM
{$CFG->prefix}exercise_submissions s,
- {$CFG->prefix}exercise_assessments a, {$CFG->prefix}user_students u
+ {$CFG->prefix}exercise_assessments a, {$CFG->prefix}user_students u
WHERE u.course = $exercise->course
AND s.userid = u.userid
- AND s.exerciseid = $exercise->id
+ AND s.exerciseid = $exercise->id
AND s.late = 0
- AND a.submissionid = s.id
- GROUP BY u.userid");
+ AND a.submissionid = s.id
+ GROUP BY u.userid");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_grade_logs($course, $timestart) {
- // get the "grade" entries for this user and add the first and last names...
- global $CFG, $USER;
-
- $timethen = time() - $CFG->maxeditingtime;
+ // get the "grade" entries for this user and add the first and last names...
+ global $CFG, $USER;
+ if (empty($USER->id)) {
+ return false;
+ }
+
+ $timethen = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, a.exerciseid, e.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}exercise e,
- {$CFG->prefix}exercise_submissions s,
- {$CFG->prefix}exercise_assessments a,
- {$CFG->prefix}user u
+ {$CFG->prefix}exercise e,
+ {$CFG->prefix}exercise_submissions s,
+ {$CFG->prefix}exercise_assessments a,
+ {$CFG->prefix}user u
WHERE l.time > $timestart AND l.time < $timethen
- AND l.course = $course->id AND l.module = 'exercise' AND l.action = 'grade'
- AND a.id = l.info AND s.id = a.submissionid AND a.userid = $USER->id
- AND u.id = s.userid AND e.id = a.exerciseid");
+ AND l.course = $course->id AND l.module = 'exercise' AND l.action = 'grade'
+ AND a.id = l.info AND s.id = a.submissionid AND a.userid = $USER->id
+ AND u.id = s.userid AND e.id = a.exerciseid");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_mean_grade($submission) {
// Returns the mean grade of students' submission (may, very occassionally, be more than one assessment)
- global $CFG;
-
- return get_record_sql("SELECT AVG(a.grade) grade FROM
+ global $CFG;
+
+ return get_record_sql("SELECT AVG(a.grade) grade FROM
{$CFG->prefix}exercise_assessments a
WHERE a.submissionid = $submission->id
- GROUP BY a.submissionid");
+ GROUP BY a.submissionid");
}
function exercise_get_mean_submission_grades($exercise) {
// Returns the mean grades of students' submissions
// ignores hot assessments
- global $CFG;
-
+ global $CFG;
+
$timenow = time();
- $grades = get_records_sql("SELECT DISTINCT u.userid, AVG(a.grade) grade FROM
+ $grades = get_records_sql("SELECT DISTINCT u.userid, AVG(a.grade) grade FROM
{$CFG->prefix}exercise_submissions s,
- {$CFG->prefix}exercise_assessments a, {$CFG->prefix}user_students u
+ {$CFG->prefix}exercise_assessments a, {$CFG->prefix}user_students u
WHERE u.course = $exercise->course
AND s.userid = u.userid
- AND s.exerciseid = $exercise->id
+ AND s.exerciseid = $exercise->id
AND s.late = 0
- AND a.submissionid = s.id
+ AND a.submissionid = s.id
AND a.timecreated < $timenow
- GROUP BY u.userid");
+ GROUP BY u.userid");
return $grades;
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_student_submission($exercise, $user) {
// Return a submission for a particular user
- global $CFG;
+ global $CFG;
$submission = get_record("exercise_submissions", "exerciseid", $exercise->id, "userid", $user->id);
if (!empty($submission->timecreated)) {
function exercise_get_student_submissions($exercise, $order = "") {
// Return all ENROLLED student submissions
// if order can grade|title|name|nothing, nothing is oldest first, youngest last
- global $CFG;
-
- if ($order == "grade") {
- // allow for multiple assessments of submissions (coming from different teachers)
- return get_records_sql("SELECT s.*, AVG(a.grade) grade FROM {$CFG->prefix}exercise_submissions s,
- {$CFG->prefix}user_students u, {$CFG->prefix}exercise_assessments a
- WHERE u.course = $exercise->course
- AND s.userid = u.userid
- AND s.exerciseid = $exercise->id
- AND a.submissionid = s.id
- GROUP BY s.id
- ORDER BY a.grade DESC");
- }
-
- if ($order == "title") {
- $order = "s.title";
- } elseif ($order == "name") {
- $order = "n.firstname, n.lastname, s.timecreated DESC";
- } else {
+ global $CFG;
+
+ if ($order == "grade") {
+ // allow for multiple assessments of submissions (coming from different teachers)
+ return get_records_sql("SELECT s.*, AVG(a.grade) grade FROM {$CFG->prefix}exercise_submissions s,
+ {$CFG->prefix}user_students u, {$CFG->prefix}exercise_assessments a
+ WHERE u.course = $exercise->course
+ AND s.userid = u.userid
+ AND s.exerciseid = $exercise->id
+ AND a.submissionid = s.id
+ GROUP BY s.id
+ ORDER BY a.grade DESC");
+ }
+
+ if ($order == "title") {
+ $order = "s.title";
+ } elseif ($order == "name") {
+ $order = "n.firstname, n.lastname, s.timecreated DESC";
+ } else {
$order = "s.timecreated";
}
- return get_records_sql("SELECT s.* FROM {$CFG->prefix}exercise_submissions s,
+ return get_records_sql("SELECT s.* FROM {$CFG->prefix}exercise_submissions s,
{$CFG->prefix}user_students u, {$CFG->prefix}user n
WHERE u.course = $exercise->course
AND s.userid = u.userid
AND n.id = u.userid
- AND s.exerciseid = $exercise->id
- ORDER BY $order");
+ AND s.exerciseid = $exercise->id
+ ORDER BY $order");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_submission_assessment($submission, $user) {
- // Return the user's assessment for this submission
- return get_record("exercise_assessments", "submissionid", $submission->id, "userid", $user->id);
+ // Return the user's assessment for this submission
+ return get_record("exercise_assessments", "submissionid", $submission->id, "userid", $user->id);
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_submit_logs($course, $timestart) {
- // get the "submit" entries and add the first and last names...
- global $CFG, $USER;
-
- $timethen = time() - $CFG->maxeditingtime;
+ // get the "submit" entries and add the first and last names...
+ global $CFG, $USER;
+
+ $timethen = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, l.info exerciseid, e.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}exercise e,
- {$CFG->prefix}user u
+ {$CFG->prefix}exercise e,
+ {$CFG->prefix}user u
WHERE l.time > $timestart AND l.time < $timethen
- AND l.course = $course->id AND l.module = 'exercise'
- AND l.action = 'submit'
- AND e.id = l.info
- AND u.id = l.userid");
+ AND l.course = $course->id AND l.module = 'exercise'
+ AND l.action = 'submit'
+ AND e.id = l.info
+ AND u.id = l.userid");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_teacher_submission_assessments($exercise) {
// Return all assessments on the teacher submissions, order by youngest first, oldest last
- global $CFG;
-
+ global $CFG;
+
return get_records_sql("SELECT a.* FROM {$CFG->prefix}exercise_submissions s, {$CFG->prefix}exercise_assessments a
WHERE s.isexercise = 1
AND s.exerciseid = $exercise->id
- AND a.submissionid = s.id
- ORDER BY a.timecreated DESC");
+ AND a.submissionid = s.id
+ ORDER BY a.timecreated DESC");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_teacher_submissions($exercise) {
// Return all teacher submissions, ordered by title
- global $CFG;
-
- return get_records_sql("SELECT s.* FROM {$CFG->prefix}exercise_submissions s
- WHERE s.isexercise = 1
+ global $CFG;
+
+ return get_records_sql("SELECT s.* FROM {$CFG->prefix}exercise_submissions s
+ WHERE s.isexercise = 1
AND s.exerciseid = $exercise->id
- ORDER BY s.title");
+ ORDER BY s.title");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_ungraded_assessments($exercise) {
- global $CFG;
- // Return all assessments which have not been graded or just graded
- $cutofftime =time() - $CFG->maxeditingtime;
+ global $CFG;
+ // Return all assessments which have not been graded or just graded
+ $cutofftime =time() - $CFG->maxeditingtime;
return get_records_select("exercise_assessments", "exerciseid = $exercise->id AND (timegraded = 0 OR
- timegraded > $cutofftime)", "timecreated");
- }
+ timegraded > $cutofftime)", "timecreated");
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_ungraded_assessments_student($exercise) {
- global $CFG;
- // Return all assessments which have not been graded or just graded of student's submissions
-
- $cutofftime =time() - $CFG->maxeditingtime;
+ global $CFG;
+ // Return all assessments which have not been graded or just graded of student's submissions
+
+ $cutofftime =time() - $CFG->maxeditingtime;
return get_records_sql("SELECT a.* FROM {$CFG->prefix}exercise_submissions s, {$CFG->prefix}user_students u,
- {$CFG->prefix}exercise_assessments a
+ {$CFG->prefix}exercise_assessments a
WHERE u.course = $exercise->course
AND s.userid = u.userid
AND s.exerciseid = $exercise->id
- AND a.submissionid = s.id
- AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
- AND a.timecreated < $cutofftime
- ORDER BY a.timecreated ASC");
- }
+ AND a.submissionid = s.id
+ AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
+ AND a.timecreated < $cutofftime
+ ORDER BY a.timecreated ASC");
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_ungraded_assessments_teacher($exercise) {
- global $CFG;
- // Return all assessments which have not been graded or just graded of teacher's submissions
-
- $cutofftime =time() - $CFG->maxeditingtime;
+ global $CFG;
+ // Return all assessments which have not been graded or just graded of teacher's submissions
+
+ $cutofftime =time() - $CFG->maxeditingtime;
return get_records_sql("SELECT a.* FROM {$CFG->prefix}exercise_submissions s, {$CFG->prefix}exercise_assessments a
WHERE s.isexercise = 1
AND s.exerciseid = $exercise->id
- AND a.submissionid = s.id
- AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
- AND a.timecreated < $cutofftime
- ORDER BY a.timecreated ASC");
- }
+ AND a.submissionid = s.id
+ AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
+ AND a.timecreated < $cutofftime
+ ORDER BY a.timecreated ASC");
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_unmailed_assessments($cutofftime) {
- /// Return list of (ungraded) assessments that have not been mailed out
+ /// Return list of (ungraded) assessments that have not been mailed out
global $CFG;
return get_records_sql("SELECT a.*, g.course, g.name
FROM {$CFG->prefix}exercise_assessments a, {$CFG->prefix}exercise g
WHERE a.mailed = 0
- AND a.timegraded = 0
+ AND a.timegraded = 0
AND a.timecreated < $cutofftime
AND g.id = a.exerciseid");
}
function exercise_get_unmailed_graded_assessments($cutofftime) {
- /// Return list of graded assessments that have not been mailed out
+ /// Return list of graded assessments that have not been mailed out
global $CFG;
return get_records_sql("SELECT a.*, g.course, g.name
FROM {$CFG->prefix}exercise_assessments a, {$CFG->prefix}exercise g
WHERE a.mailed = 0
- AND a.timegraded < $cutofftime
- AND a.timegraded > 0
+ AND a.timegraded < $cutofftime
+ AND a.timegraded > 0
AND g.id = a.exerciseid");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_user_assessments($exercise, $user) {
- // Return all the user's assessments, newest first, oldest last
- return get_records_select("exercise_assessments", "exerciseid = $exercise->id AND userid = $user->id",
- "timecreated DESC");
+ // Return all the user's assessments, newest first, oldest last
+ return get_records_select("exercise_assessments", "exerciseid = $exercise->id AND userid = $user->id",
+ "timecreated DESC");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_get_user_submissions($exercise, $user) {
- // return submission of user oldest first, newest last
- // teachers submit "exercises"
+ // return submission of user oldest first, newest last
+ // teachers submit "exercises"
if (! $course = get_record("course", "id", $exercise->course)) {
error("Course is misconfigured");
}
- if (isteacher($course->id, $user->id)) {
- return get_records_select("exercise_submissions",
+ if (isteacher($course->id, $user->id)) {
+ return get_records_select("exercise_submissions",
"exerciseid = $exercise->id AND isexercise = 1", "timecreated" );
- }
+ }
return get_records_select("exercise_submissions",
"exerciseid = $exercise->id AND userid = $user->id", "timecreated" );
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_list_all_ungraded_assessments($exercise) {
- // lists all the assessments for comment by teacher
- global $CFG;
-
- $table->head = array (get_string("title", "exercise"), get_string("timeassessed", "exercise"), get_string("action", "exercise"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
- $timenow = time();
-
- if ($assessments = exercise_get_ungraded_assessments($exercise)) {
- foreach ($assessments as $assessment) {
- if (!isteacher($exercise->course, $assessment->userid)) {
- if (($timenow - $assessment->timegraded) < $CFG->maxeditingtime) {
- $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$exercise->id&aid=$assessment->id\">".
- get_string("edit", "exercise")."</A>";
- }
- else {
- $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$exercise->id&aid=$assessment->id\">".
- get_string("gradeassessment", "exercise")."</A>";
- }
- $submission = get_record("exercise_submissions", "id", $assessment->submissionid);
- $table->data[] = array(exercise_print_submission_title($exercise, $submission),
- userdate($assessment->timecreated), $action);
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- }
- }
-
+ // lists all the assessments for comment by teacher
+ global $CFG;
+
+ $table->head = array (get_string("title", "exercise"), get_string("timeassessed", "exercise"), get_string("action", "exercise"));
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+ $timenow = time();
+
+ if ($assessments = exercise_get_ungraded_assessments($exercise)) {
+ foreach ($assessments as $assessment) {
+ if (!isteacher($exercise->course, $assessment->userid)) {
+ if (($timenow - $assessment->timegraded) < $CFG->maxeditingtime) {
+ $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$exercise->id&aid=$assessment->id\">".
+ get_string("edit", "exercise")."</A>";
+ }
+ else {
+ $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$exercise->id&aid=$assessment->id\">".
+ get_string("gradeassessment", "exercise")."</A>";
+ }
+ $submission = get_record("exercise_submissions", "id", $assessment->submissionid);
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission),
+ userdate($assessment->timecreated), $action);
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ }
+ }
+
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_list_submissions_for_admin($exercise) {
- // list the teacher sublmissions first
- global $CFG, $EXERCISE_FWEIGHTS, $THEME, $USER;
-
+ // list the teacher sublmissions first
+ global $CFG, $EXERCISE_FWEIGHTS, $THEME, $USER;
+
if (! $course = get_record("course", "id", $exercise->course)) {
error("Course is misconfigured");
}
error("Course Module ID was incorrect");
}
- exercise_print_assignment_info($exercise);
+ exercise_print_assignment_info($exercise);
print_heading_with_help(get_string("administration"), "administration", "exercise");
echo"<p align=\"center\"><b><a href=\"assessments.php?action=teachertable&id=$cm->id\">".
get_string("teacherassessmenttable", "exercise", $course->teacher)."</a></b></p>\n";
}
}
- // list student assessments
- // Get all the students...
- if ($users = get_course_students($course->id, "u.firstname, u.lastname")) {
- $timenow = time();
- unset($table);
- $table->head = array(get_string("name"), get_string("title", "exercise"),
+ // list student assessments
+ // Get all the students...
+ if ($users = get_course_students($course->id, "u.firstname, u.lastname")) {
+ $timenow = time();
+ unset($table);
+ $table->head = array(get_string("name"), get_string("title", "exercise"),
get_string("assessed", "exercise"), get_string("action", "exercise"));
- $table->align = array ("left", "left", "left", "left");
- $table->size = array ("*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
- $nassessments = 0;
- foreach ($users as $user) {
- if ($assessments = exercise_get_user_assessments($exercise, $user)) {
- $title ='';
- foreach ($assessments as $assessment) {
- if (!$submission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
- error("exercise_list_submissions_for_admin: Submission record not found!");
- }
- $title .= $submission->title;
- // test for allocated assesments which have not been done
- if ($assessment->timecreated < $timenow) {
+ $table->align = array ("left", "left", "left", "left");
+ $table->size = array ("*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+ $nassessments = 0;
+ foreach ($users as $user) {
+ if ($assessments = exercise_get_user_assessments($exercise, $user)) {
+ $title ='';
+ foreach ($assessments as $assessment) {
+ if (!$submission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
+ error("exercise_list_submissions_for_admin: Submission record not found!");
+ }
+ $title .= $submission->title;
+ // test for allocated assesments which have not been done
+ if ($assessment->timecreated < $timenow) {
// show only warm or cold assessments
- $title .= " {".number_format($assessment->grade * $exercise->grade / 100.0, 0);
+ $title .= " {".number_format($assessment->grade * $exercise->grade / 100.0, 0);
if ($assessment->timegraded) {
$title .= "/".number_format($assessment->gradinggrade * $exercise->grade /
COMMENTSCALE, 0);
$action ="";
}
$nassessments++;
- $table->data[] = array("$user->firstname $user->lastname", $title,
+ $table->data[] = array("$user->firstname $user->lastname", $title,
userdate($assessment->timecreated), $action);
}
- }
- }
+ }
+ }
+ }
+ if (isset($table->data)) {
+ print_heading(get_string("studentassessments", "exercise", $course->student)." [$nassessments]");
+ print_table($table);
+ echo "<p align=\"center\">".get_string("noteonstudentassessments", "exercise")."</p>\n";
}
- if (isset($table->data)) {
- print_heading(get_string("studentassessments", "exercise", $course->student)." [$nassessments]");
- print_table($table);
- echo "<p align=\"center\">".get_string("noteonstudentassessments", "exercise")."</p>\n";
- }
}
- // now the sudent submissions
- unset($table);
- if ($users) {
+ // now the sudent submissions
+ unset($table);
+ if ($users) {
$table->head = array (get_string("submittedby", "exercise"), get_string("title", "exercise"),
get_string("submitted", "exercise"), get_string("action", "exercise"));
$table->align = array ("left", "left", "left", "left");
}
}
}
- if (isset($table->data)) {
+ if (isset($table->data)) {
print_heading(get_string("studentsubmissions", "exercise", $course->student)." [$nsubmissions]",
"center");
print_table($table);
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_list_teacher_assessments($exercise, $user) {
- global $CFG;
-
- if (! $course = get_record("course", "id", $exercise->course)) {
+ global $CFG;
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
error("Course is misconfigured");
}
- $table->head = array (get_string("title", "exercise"), get_string("action", "exercise"), get_string("comment", "exercise"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- // get user's submissions
- if ($submissions = exercise_get_user_submissions($exercise, $user)) {
- foreach ($submissions as $submission) {
- // get the assessments
- if ($assessments = exercise_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- if (isteacher($exercise->course, $assessment->userid)) { // assessments by teachers only
- $action = "<A HREF=\"assessments.php?action=viewassessment&a=$exercise->id&aid=$assessment->id\">".
- get_string("view", "exercise")."</A>";
- // has teacher commented on teacher's assessment? shouldn't happen but leave test in
- if ($assessment->timegraded and ($timenow - $assessment->timegraded > $CFG->maxeditingtime)) {
- $comment = get_string("gradedbyteacher", "exercise", $course->teacher);
- }
- else {
- $comment = userdate($assessment->timecreated);
- }
- $table->data[] = array(exercise_print_submission_title($exercise, $submission), $action, $comment);
- }
- }
- }
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- else {
- echo "<CENTER>".get_string("noassessmentsdone", "exercise")."</CENTER>\n";
- }
- }
+ $table->head = array (get_string("title", "exercise"), get_string("action", "exercise"), get_string("comment", "exercise"));
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ // get user's submissions
+ if ($submissions = exercise_get_user_submissions($exercise, $user)) {
+ foreach ($submissions as $submission) {
+ // get the assessments
+ if ($assessments = exercise_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ if (isteacher($exercise->course, $assessment->userid)) { // assessments by teachers only
+ $action = "<A HREF=\"assessments.php?action=viewassessment&a=$exercise->id&aid=$assessment->id\">".
+ get_string("view", "exercise")."</A>";
+ // has teacher commented on teacher's assessment? shouldn't happen but leave test in
+ if ($assessment->timegraded and ($timenow - $assessment->timegraded > $CFG->maxeditingtime)) {
+ $comment = get_string("gradedbyteacher", "exercise", $course->teacher);
+ }
+ else {
+ $comment = userdate($assessment->timecreated);
+ }
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission), $action, $comment);
+ }
+ }
+ }
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ else {
+ echo "<CENTER>".get_string("noassessmentsdone", "exercise")."</CENTER>\n";
+ }
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_list_teacher_submissions($exercise, $user, $reassess = false) {
- // always allow user to reassess if that flag is true
- global $CFG;
-
- if (! $course = get_record("course", "id", $exercise->course)) {
+ // always allow user to reassess if that flag is true
+ global $CFG;
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
error("Course is misconfigured");
}
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
- $strexercises = get_string("modulenameplural", "exercise");
+ $strexercises = get_string("modulenameplural", "exercise");
$strexercise = get_string("modulename", "exercise");
- // get any assessment this user has done (could include hot one)
- if (!$assessment = get_record_select("exercise_assessments", "exerciseid = $exercise->id
- AND userid = $user->id")) {
- // the user has not yet assessed this exercise, set up a hot assessment record for this user for one
+ // get any assessment this user has done (could include hot one)
+ if (!$assessment = get_record_select("exercise_assessments", "exerciseid = $exercise->id
+ AND userid = $user->id")) {
+ // the user has not yet assessed this exercise, set up a hot assessment record for this user for one
// of the teacher submissions, first count the number of assessments for each teacher submission...
- if ($submissions = exercise_get_teacher_submissions($exercise)) {
- mt_srand ((float)microtime()*1000000); // initialise random number generator
- foreach ($submissions as $submission) {
- $n = count_records("exercise_assessments", "submissionid", $submission->id);
- // ...OK to have zero, we add a small random number to randomise things...
- $nassessments[$submission->id] = $n + mt_rand(0, 99) / 100;
- }
- // ...put the submissions with the lowest number of assessments first...
- asort($nassessments);
- reset($nassessments);
- foreach ($nassessments as $submissionid => $n) { // break out of loop after the first element
- $submission = get_record("exercise_submissions", "id", $submissionid);
- // ... provided the user has NOT already assessed that submission...
- if (!$assessment = exercise_get_submission_assessment($submission, $user)) {
- $yearfromnow = time() + 365 * 86400;
- // ...create one and set timecreated way in the future, reset when record is updated
- $assessment->exerciseid = $exercise->id;
- $assessment->submissionid = $submission->id;
- $assessment->userid = $user->id;
- $assessment->grade = -1; // set impossible grade
- $assessment->timecreated = $yearfromnow;
- if (!$assessment->id = insert_record("exercise_assessments", $assessment)) {
- error("Could not insert exercise assessment!");
- }
- break;
- }
- }
- }
- } else {
+ if ($submissions = exercise_get_teacher_submissions($exercise)) {
+ mt_srand ((float)microtime()*1000000); // initialise random number generator
+ foreach ($submissions as $submission) {
+ $n = count_records("exercise_assessments", "submissionid", $submission->id);
+ // ...OK to have zero, we add a small random number to randomise things...
+ $nassessments[$submission->id] = $n + mt_rand(0, 99) / 100;
+ }
+ // ...put the submissions with the lowest number of assessments first...
+ asort($nassessments);
+ reset($nassessments);
+ foreach ($nassessments as $submissionid => $n) { // break out of loop after the first element
+ $submission = get_record("exercise_submissions", "id", $submissionid);
+ // ... provided the user has NOT already assessed that submission...
+ if (!$assessment = exercise_get_submission_assessment($submission, $user)) {
+ $yearfromnow = time() + 365 * 86400;
+ // ...create one and set timecreated way in the future, reset when record is updated
+ $assessment->exerciseid = $exercise->id;
+ $assessment->submissionid = $submission->id;
+ $assessment->userid = $user->id;
+ $assessment->grade = -1; // set impossible grade
+ $assessment->timecreated = $yearfromnow;
+ if (!$assessment->id = insert_record("exercise_assessments", $assessment)) {
+ error("Could not insert exercise assessment!");
+ }
+ break;
+ }
+ }
+ }
+ } else {
// get hold of the teacher submission
if (!$submission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
error("List teacher submissions: submission record not found");
print_simple_box_end();
print_simple_box_end();
- $table->head = array (get_string("action", "exercise"), get_string("assessed", "exercise"),
+ $table->head = array (get_string("action", "exercise"), get_string("assessed", "exercise"),
get_string("comment", "exercise"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- // now list user's assessments (but only list those which come from teacher submissions)
- print_heading(get_string("yourassessment", "exercise"));
- if ($assessments = exercise_get_user_assessments($exercise, $user)) {
- $timenow = time();
- foreach ($assessments as $assessment) {
- if (!$submission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
- error ("exercise_list_teacher_submissions: unable to get submission");
- }
- // submission from a teacher, i.e an exercise submission?
- if ($submission->isexercise) {
- $comment = '';
- if ($reassess) { // just show re-assess
- $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
- get_string("reassess", "exercise")."</A>";
- }
- else { // reassess is false - assessment is a "normal state"
- // user assessment has three states: record created but not assessed (date created
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ // now list user's assessments (but only list those which come from teacher submissions)
+ print_heading(get_string("yourassessment", "exercise"));
+ if ($assessments = exercise_get_user_assessments($exercise, $user)) {
+ $timenow = time();
+ foreach ($assessments as $assessment) {
+ if (!$submission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
+ error ("exercise_list_teacher_submissions: unable to get submission");
+ }
+ // submission from a teacher, i.e an exercise submission?
+ if ($submission->isexercise) {
+ $comment = '';
+ if ($reassess) { // just show re-assess
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
+ get_string("reassess", "exercise")."</A>";
+ }
+ else { // reassess is false - assessment is a "normal state"
+ // user assessment has three states: record created but not assessed (date created
// in the future); just assessed but still editable; and "static" (may or may not
// have been graded by teacher, that is shown in the comment)
- if ($assessment->timecreated > $timenow) { // user needs to assess this submission
- $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
- get_string("assess", "exercise")."</A>";
- }
- elseif ($assessment->timecreated > ($timenow - $CFG->maxeditingtime)) {
+ if ($assessment->timecreated > $timenow) { // user needs to assess this submission
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
+ get_string("assess", "exercise")."</A>";
+ }
+ elseif ($assessment->timecreated > ($timenow - $CFG->maxeditingtime)) {
// there's still time left to edit...
- $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
- get_string("edit", "exercise")."</A>";
- }
- else {
- $action = "<A HREF=\"assessments.php?action=viewassessment&id=$cm->id&aid=$assessment->id\">"
- .get_string("view", "exercise")."</A>";
- }
- }
- // show the date if in the past (otherwise the user hasn't done the assessment yet
- $assessmentdate = '';
- if ($assessment->timecreated < $timenow) {
- $assessmentdate = userdate($assessment->timecreated);
- // if user has submitted work, see if teacher has graded assessment
- if (exercise_count_user_submissions($exercise, $user) > 0) {
- if ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
- $comment .= get_string("thereisfeedbackfromthe", "exercise", $course->teacher);
- }
- else {
- $comment .= get_string("awaitingfeedbackfromthe", "exercise", $course->teacher);
- }
- }
- }
- $table->data[] = array($action, $assessmentdate, $comment);
- }
- }
- print_table($table);
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
+ get_string("edit", "exercise")."</A>";
+ }
+ else {
+ $action = "<A HREF=\"assessments.php?action=viewassessment&id=$cm->id&aid=$assessment->id\">"
+ .get_string("view", "exercise")."</A>";
+ }
+ }
+ // show the date if in the past (otherwise the user hasn't done the assessment yet
+ $assessmentdate = '';
+ if ($assessment->timecreated < $timenow) {
+ $assessmentdate = userdate($assessment->timecreated);
+ // if user has submitted work, see if teacher has graded assessment
+ if (exercise_count_user_submissions($exercise, $user) > 0) {
+ if ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
+ $comment .= get_string("thereisfeedbackfromthe", "exercise", $course->teacher);
+ }
+ else {
+ $comment .= get_string("awaitingfeedbackfromthe", "exercise", $course->teacher);
+ }
+ }
+ }
+ $table->data[] = array($action, $assessmentdate, $comment);
+ }
+ }
+ print_table($table);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_list_unassessed_student_submissions($exercise, $user) {
- // list the student submissions not assessed by the teacher
- global $CFG;
-
- $timenow = time();
-
- if (! $course = get_record("course", "id", $exercise->course)) {
+ // list the student submissions not assessed by the teacher
+ global $CFG;
+
+ $timenow = time();
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
error("Course is misconfigured");
}
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
- $table->head = array (get_string("title", "exercise"), get_string("submittedby", "exercise"),
- get_string("submitted", "exercise"), get_string("action", "exercise"),
+ $table->head = array (get_string("title", "exercise"), get_string("submittedby", "exercise"),
+ get_string("submitted", "exercise"), get_string("action", "exercise"),
get_string("comment", "exercise"));
- $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
+ $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
// get all the submissions, oldest first, youngest last
- if ($submissions = exercise_get_student_submissions($exercise)) {
- foreach ($submissions as $submission) {
- // only consider "cold" submissions
- if ($submission->timecreated < $timenow - $CFG->maxeditingtime) {
- $comment = "";
- // see if student has already submitted
- $submissionowner = get_record("user", "id", $submission->userid);
- if (exercise_count_user_submissions($exercise, $submissionowner) == 1) {
- // it's the student's first submission
+ if ($submissions = exercise_get_student_submissions($exercise)) {
+ foreach ($submissions as $submission) {
+ // only consider "cold" submissions
+ if ($submission->timecreated < $timenow - $CFG->maxeditingtime) {
+ $comment = "";
+ // see if student has already submitted
+ $submissionowner = get_record("user", "id", $submission->userid);
+ if (exercise_count_user_submissions($exercise, $submissionowner) == 1) {
+ // it's the student's first submission
// see if there are no cold assessments for this submission
if (!exercise_count_assessments($submission)) {
// now see if the teacher has already assessed this submission
// there's no student assessment, odd!!
}
}
- }
- // this is student's second... submission
- else {
- $teacherassessed = false;
- $warm = false;
- if ($assessments = get_records("exercise_assessments", "submissionid", $submission->id)) {
- foreach ($assessments as $assessment) {
- if (isteacher($course->id, $assessment->userid)) {
- $teacherassessed = true;
+ }
+ // this is student's second... submission
+ else {
+ $teacherassessed = false;
+ $warm = false;
+ if ($assessments = get_records("exercise_assessments", "submissionid", $submission->id)) {
+ foreach ($assessments as $assessment) {
+ if (isteacher($course->id, $assessment->userid)) {
+ $teacherassessed = true;
if (!$teacher = get_record("user", "id", $assessment->userid)) {
error("List unassessed student submissions: teacher record not found");
}
$comment = get_string("resubmissionfor", "exercise",
"$teacher->firstname $teacher->lastname");
- if ($assessment->timecreated > $timenow - $CFG->maxeditingtime) {
- $warm = true;
- }
- break; // no need to look further
- }
- }
- }
- if ($teacherassessed and $warm) {
- // last chance salon
- $action = "<A HREF=\"assessments.php?action=assessresubmission&id=$cm->id&sid=$submission->id\">".
- get_string("edit", "exercise")."</A>";
+ if ($assessment->timecreated > $timenow - $CFG->maxeditingtime) {
+ $warm = true;
+ }
+ break; // no need to look further
+ }
+ }
+ }
+ if ($teacherassessed and $warm) {
+ // last chance salon
+ $action = "<A HREF=\"assessments.php?action=assessresubmission&id=$cm->id&sid=$submission->id\">".
+ get_string("edit", "exercise")."</A>";
$timegap = get_string("ago", "exercise", format_time($submission->timecreated -
$timenow));
if ($submission->late) {
$timegap = "<font color=\"red\">".$timegap."</font>";
}
- $table->data[] = array(exercise_print_submission_title($exercise, $submission),
- $submissionowner->firstname." ".$submissionowner->lastname,
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission),
+ $submissionowner->firstname." ".$submissionowner->lastname,
$timegap, $action, $comment);
- }
- if (!$teacherassessed) {
- // no teacher's assessment
+ }
+ if (!$teacherassessed) {
+ // no teacher's assessment
// find who did the previous assessment
- if (!$submissions = exercise_get_user_submissions($exercise, $submissionowner)) {
- error("List unassessed student submissions: submission records not found");
- }
+ if (!$submissions = exercise_get_user_submissions($exercise, $submissionowner)) {
+ error("List unassessed student submissions: submission records not found");
+ }
// get the oldest submission, exercise_get_user_submissions returns that first
- foreach ($submissions as $tempsubmission) {
+ foreach ($submissions as $tempsubmission) {
$prevsubmission = $tempsubmission;
- break;
- }
- // get the teacher's assessment of the student's previous submission
- if ($assessments = get_records("exercise_assessments", "submissionid",
+ break;
+ }
+ // get the teacher's assessment of the student's previous submission
+ if ($assessments = get_records("exercise_assessments", "submissionid",
$prevsubmission->id)) {
foreach ($assessments as $assessment) {
if (isteacher($course->id, $assessment->userid)) {
}
$comment = get_string("resubmissionfor", "exercise",
"$teacher->firstname $teacher->lastname");
- break; // no need to look further
+ break; // no need to look further
- }
+ }
}
}
- $action = "<A HREF=\"assessments.php?action=assessresubmission&id=$cm->id&sid=$submission->id\">".
- get_string("assess", "exercise")."</A>";
+ $action = "<A HREF=\"assessments.php?action=assessresubmission&id=$cm->id&sid=$submission->id\">".
+ get_string("assess", "exercise")."</A>";
$timegap = get_string("ago", "exercise", format_time($submission->timecreated -
$timenow));
if ($submission->late) {
$timegap = "<font color=\"red\">".$timegap."</font>";
}
- $table->data[] = array(exercise_print_submission_title($exercise, $submission),
- $submissionowner->firstname." ".$submissionowner->lastname,
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission),
+ $submissionowner->firstname." ".$submissionowner->lastname,
$timegap, $action, $comment);
- }
- }
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
+ }
+ }
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_list_unassessed_teacher_submissions($exercise, $user) {
- // list the teacher submissions not assessed by this user
- global $CFG;
-
- $table->head = array (get_string("title", "exercise"), get_string("action", "exercise"), get_string("comment", "exercise"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = exercise_get_teacher_submissions($exercise)) {
- foreach ($submissions as $submission) {
- $comment = "";
- // see if user already graded this assessment
- if ($assessment = get_record_select("exercise_assessments", "submissionid = $submission->id
- AND userid = $user->id")) {
- $timenow = time();
- if (($timenow - $assessment->timecreated < $CFG->maxeditingtime)) {
- // last chance salon
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$exercise->id&sid=$submission->id\">".
- get_string("edit", "exercise")."</A>";
- $table->data[] = array(exercise_print_submission_title($exercise, $submission), $action, $comment);
- }
- }
- else { // no assessment
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$exercise->id&sid=$submission->id\">".
- get_string("assess", "exercise")."</A>";
- $table->data[] = array(exercise_print_submission_title($exercise, $submission), $action, $comment);
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- }
- }
+ // list the teacher submissions not assessed by this user
+ global $CFG;
+
+ $table->head = array (get_string("title", "exercise"), get_string("action", "exercise"), get_string("comment", "exercise"));
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = exercise_get_teacher_submissions($exercise)) {
+ foreach ($submissions as $submission) {
+ $comment = "";
+ // see if user already graded this assessment
+ if ($assessment = get_record_select("exercise_assessments", "submissionid = $submission->id
+ AND userid = $user->id")) {
+ $timenow = time();
+ if (($timenow - $assessment->timecreated < $CFG->maxeditingtime)) {
+ // last chance salon
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$exercise->id&sid=$submission->id\">".
+ get_string("edit", "exercise")."</A>";
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission), $action, $comment);
+ }
+ }
+ else { // no assessment
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$exercise->id&sid=$submission->id\">".
+ get_string("assess", "exercise")."</A>";
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission), $action, $comment);
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ }
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_list_ungraded_assessments($exercise, $stype) {
- global $CFG;
-
- if (! $course = get_record("course", "id", $exercise->course)) {
+ global $CFG;
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
error("Course is misconfigured");
}
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- // lists all the assessments of student submissions for grading by teacher
- $table->head = array (get_string("title", "exercise"), get_string("submittedby", "exercise"),
- get_string("assessor", "exercise"), get_string("timeassessed", "exercise"), get_string("action", "exercise"));
- $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
- $timenow = time();
-
- switch ($stype) {
- case "student" :
- $assessments = exercise_get_ungraded_assessments_student($exercise);
- break;
- case "teacher" :
- $assessments = exercise_get_ungraded_assessments_teacher($exercise);
- break;
- }
- if ($assessments) {
- foreach ($assessments as $assessment) {
- if (!isteacher($exercise->course, $assessment->userid)) { // don't let teacher grade their own assessments
- if (($timenow - $assessment->timegraded) < $CFG->maxeditingtime) {
- $action = "<A HREF=\"assessments.php?action=gradeassessment&id=$cm->id&stype=$stype&aid=$assessment->id\">".
- get_string("edit", "exercise")."</A>";
- }
- else {
- $action = "<A HREF=\"assessments.php?action=gradeassessment&id=$cm->id&stype=$stype&aid=$assessment->id\">".
- get_string("grade", "exercise")."</A>";
- }
- $submission = get_record("exercise_submissions", "id", $assessment->submissionid);
- $submissionowner = get_record("user", "id", $submission->userid);
- $assessor = get_record("user", "id", $assessment->userid);
- $table->data[] = array(exercise_print_submission_title($exercise, $submission),
- $submissionowner->firstname." ".$submissionowner->lastname,
- $assessor->firstname." ".$assessor->lastname, userdate($assessment->timecreated), $action);
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- }
- }
-
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
+
+ // lists all the assessments of student submissions for grading by teacher
+ $table->head = array (get_string("title", "exercise"), get_string("submittedby", "exercise"),
+ get_string("assessor", "exercise"), get_string("timeassessed", "exercise"), get_string("action", "exercise"));
+ $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+ $timenow = time();
+
+ switch ($stype) {
+ case "student" :
+ $assessments = exercise_get_ungraded_assessments_student($exercise);
+ break;
+ case "teacher" :
+ $assessments = exercise_get_ungraded_assessments_teacher($exercise);
+ break;
+ }
+ if ($assessments) {
+ foreach ($assessments as $assessment) {
+ if (!isteacher($exercise->course, $assessment->userid)) { // don't let teacher grade their own assessments
+ if (($timenow - $assessment->timegraded) < $CFG->maxeditingtime) {
+ $action = "<A HREF=\"assessments.php?action=gradeassessment&id=$cm->id&stype=$stype&aid=$assessment->id\">".
+ get_string("edit", "exercise")."</A>";
+ }
+ else {
+ $action = "<A HREF=\"assessments.php?action=gradeassessment&id=$cm->id&stype=$stype&aid=$assessment->id\">".
+ get_string("grade", "exercise")."</A>";
+ }
+ $submission = get_record("exercise_submissions", "id", $assessment->submissionid);
+ $submissionowner = get_record("user", "id", $submission->userid);
+ $assessor = get_record("user", "id", $assessment->userid);
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission),
+ $submissionowner->firstname." ".$submissionowner->lastname,
+ $assessor->firstname." ".$assessor->lastname, userdate($assessment->timecreated), $action);
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ }
+ }
+
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_list_user_submissions($exercise, $user) {
- global $CFG;
-
- if (! $course = get_record("course", "id", $exercise->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $timenow = time();
- $table->head = array (get_string("title", "exercise"), get_string("action", "exercise"),
- get_string("submitted", "exercise"), get_string("assessment", "exercise"));
- $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = exercise_get_user_submissions($exercise, $user)) {
+ global $CFG;
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
+ error("Course is misconfigured");
+ }
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
+
+ $timenow = time();
+ $table->head = array (get_string("title", "exercise"), get_string("action", "exercise"),
+ get_string("submitted", "exercise"), get_string("assessment", "exercise"));
+ $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = exercise_get_user_submissions($exercise, $user)) {
foreach ($submissions as $submission) {
- $action = '';
- $comment = '';
- // allow user to delete submission if it's warm
- if ($submission->timecreated > $timenow - $CFG->maxeditingtime) {
- $action = "<a href=\"submissions.php?action=userconfirmdelete&id=$cm->id&sid=$submission->id\">".
- get_string("delete", "exercise")."</a>";
- }
+ $action = '';
+ $comment = '';
+ // allow user to delete submission if it's warm
+ if ($submission->timecreated > $timenow - $CFG->maxeditingtime) {
+ $action = "<a href=\"submissions.php?action=userconfirmdelete&id=$cm->id&sid=$submission->id\">".
+ get_string("delete", "exercise")."</a>";
+ }
// if this is a teacher's submission (an exercise descrription) ignore any assessments
if (!$submission->isexercise) {
// get the teacher assessments (could be more than one, if unlikely, when multiple teachers)
}
}
}
- if (!$comment and isstudent($course->id, $user->id)) {
- $comment = get_string("awaitingassessmentbythe", "exercise", $course->teacher);
- }
+ if (!$comment and isstudent($course->id, $user->id)) {
+ $comment = get_string("awaitingassessmentbythe", "exercise", $course->teacher);
+ }
$submissiondate = userdate($submission->timecreated);
if ($submission->late) {
$submissiondate = "<font color=\"red\">".$submissiondate."</font>";
}
- $table->data[] = array(exercise_print_submission_title($exercise, $submission), $action,
- $submissiondate, $comment);
- }
- print_table($table);
- }
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission), $action,
+ $submissiondate, $comment);
+ }
+ print_table($table);
+ }
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_print_assessment_form($exercise, $assessment = false, $allowchanges = false, $returnto = '') {
- // prints several variants of the assessment form
- global $CFG, $THEME, $USER, $EXERCISE_SCALES, $EXERCISE_EWEIGHTS;
-
- if (! $course = get_record("course", "id", $exercise->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $timenow = time();
-
- if ($assessment) {
-
- if (!$submission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
- error ("exercise_print_assessment_form: Submission record not found");
- }
- // test if this assessment is from a teacher or student.
+ // prints several variants of the assessment form
+ global $CFG, $THEME, $USER, $EXERCISE_SCALES, $EXERCISE_EWEIGHTS;
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
+ error("Course is misconfigured");
+ }
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
+
+ $timenow = time();
+
+ if ($assessment) {
+
+ if (!$submission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
+ error ("exercise_print_assessment_form: Submission record not found");
+ }
+ // test if this assessment is from a teacher or student.
// Teacher's assessments are more complicated as we need to go back a couple of steps
// to find the exercise. Student's assessments are directly associated with an exercise.
- if (isteacher($course->id, $assessment->userid)) {
- // A teacher's assessment, requires getting the student's assessment(s)
+ if (isteacher($course->id, $assessment->userid)) {
+ // A teacher's assessment, requires getting the student's assessment(s)
// and finding which of those assessments which comes from a teacher submission,
// that is the exercise
- $exercisefound = false;
- if (!$submissionowner = get_record("user", "id", $submission->userid)) {
- error ("exercise_print_assessment_form: User record not found");
- }
- if ($initialassessments = exercise_get_user_assessments($exercise, $submissionowner)) {
- // should only be one but we'll loop anyway
- foreach($initialassessments as $initialassessment) {
- if (!$teachersubmission = get_record("exercise_submissions", "id", $initialassessment->submissionid)) {
- error ("exercise_print_assessment_form: Teacher Submission record not found");
- }
- if ($teachersubmission->isexercise) {
- $exercisefound = true;
- break;
- }
- }
- }
- if ($exercisefound) {
- print_heading(get_string("theexerciseandthesubmissionby", "exercise",
- "$submissionowner->firstname $submissionowner->lastname"));
- echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
- <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
- echo exercise_print_submission_title($exercise, $teachersubmission);
- echo "</TD></TR></TABLE><BR CLEAR=ALL>\n";
- }
- }
- else {
- // it's a student assessment, print instructions if it's their own assessment
- if ($assessment->userid == $USER->id) {
- print_heading_with_help(get_string("pleaseusethisform", "exercise"), "grading", "exercise");
- }
- }
-
- echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
- <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
- echo exercise_print_submission_title($exercise, $submission);
- echo "</TD></TR></TABLE><BR CLEAR=ALL>\n";
-
- // only show the grade if grading strategy > 0 and the grade is positive
- if ($exercise->gradingstrategy and $assessment->grade >= 0) { \r
- echo "<CENTER><B>".get_string("thegradeis", "exercise").": ".
- number_format($assessment->grade * $exercise->grade / 100.0, 2)." (".
- get_string("maximumgrade")." ".number_format($exercise->grade, 0).")</B></CENTER><BR CLEAR=ALL>\n";
- }
- }
-
- // now print the grading form with the teacher's comments if any
- // FORM is needed for Mozilla browsers, else radio bttons are not checked
- ?>
- <form name="assessmentform" method="post" action="assessments.php">
- <INPUT TYPE="hidden" NAME="id" VALUE="<?PHP echo $cm->id ?>">
- <input type="hidden" name="aid" value="<?PHP echo $assessment->id ?>">
- <input type="hidden" name="action" value="updateassessment">
- <input type="hidden" name="resubmit" value="0">
- <input type="hidden" name="returnto" value="<?PHP echo $returnto ?>">
- <?PHP
- if ($assessment) {
- if (!$assessmentowner = get_record("user", "id", $assessment->userid)) {
- error("Exercise_print_assessment_form: could not find user record");
- }
- if ($assessmentowner->id == $USER->id) {
- $formtitle = get_string("yourassessment", "exercise");
- }
- else {
- $formtitle = get_string("assessmentby", "exercise", "$assessmentowner->firstname $assessmentowner->lastname");
- }
- }
- else {
- $formtitle = get_string("assessmentform", "exercise");
- }
- echo "<center><table cellpadding=\"2\" border=\"1\">\n";
- echo "<tr valign=top>\n";\r
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"><center><b>$formtitle</b></center></td>\n";\r
- echo "</tr>\n";
-
- // get the assignment elements...
- if (!$elementsraw = get_records("exercise_elements", "exerciseid", $exercise->id, "elementno ASC")) {
- print_string("noteonassignmentelements", "exercise");
- }
- else {
- foreach ($elementsraw as $element) {
- $elements[] = $element; // to renumber index 0,1,2...
- }
- }
-
- if ($assessment) {
- // get any previous grades...
- if ($gradesraw = get_records_select("exercise_grades", "assessmentid = $assessment->id", "elementno")) {
- foreach ($gradesraw as $grade) {
- $grades[] = $grade; // to renumber index 0,1,2...
- }
- }
- }
- else {
- // setup dummy grades array
- for($i = 0; $i < count($elementsraw); $i++) { // gives a suitable sized loop
- $grades[$i]->feedback = get_string("yourfeedbackgoeshere", "exercise");
- $grades[$i]->grade = 0;
- }
- }
-
- // determine what sort of grading
- switch ($exercise->gradingstrategy) {
- case 0: // no grading
- // now print the form
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- 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 1: // accumulative grading
- // now print the form
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";\r
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "<P align=right><FONT size=1>Weight: "
- .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
- echo " <TD valign=\"top\">\n";
-
- // get the appropriate scale
- $scalenumber=$elements[$i]->scale;
- $SCALE = (object)$EXERCISE_SCALES[$scalenumber];
- switch ($SCALE->type) {
- case 'radio' :
- // show selections highest first
- echo "<CENTER><B>$SCALE->start</B> ";
- for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
- $checked = false;
- if (isset($grades[$i]->grade)) {
- if ($j == $grades[$i]->grade) {
- $checked = true;
- }
- }
- else { // there's no previous grade so check the lowest option
- if ($j == 0) {
- $checked = true;
- }
- }
- if ($checked) {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
- }
- else {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
- }
- }
- echo " <B>$SCALE->end</B></CENTER>\n";
- break;
- case 'selection' :
- unset($numbers);
- for ($j = $SCALE->size; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$i]->grade)) {
- choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[$i]", 0, "");
- }
- break;
-
- echo " </TD>\n";
- echo "</TR>\n";
- }
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- 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
- // now run through the elements
- $error = 0;
- for ($i=0; $i < count($elements) - 1; $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";\r
- echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";\r
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "<P align=right><FONT size=1>Weight: "
- .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
- echo " <TD valign=\"top\">\n";
-
- // get the appropriate scale - yes/no scale (0)
- $SCALE = (object) $EXERCISE_SCALES[0];
- switch ($SCALE->type) {
- case 'radio' :
- // show selections highest first
- echo "<CENTER><B>$SCALE->start</B> ";
- for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
- $checked = false;
- if (isset($grades[$i]->grade)) {
- if ($j == $grades[$i]->grade) {
- $checked = true;
- }
- }
- else { // there's no previous grade so check the lowest option
- if ($j == 0) {
- $checked = true;
- }
- }
- if ($checked) {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
- }
- else {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
- }
- }
- echo " <B>$SCALE->end</B></CENTER>\n";
- break;
- case 'selection' :
- unset($numbers);
- for ($j = $SCALE->size; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$i]->grade)) {
- choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[$i]", 0, "");
- }
- break;
- }
-
- echo " </TD>\n";
- echo "</TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[$i]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- if (isset($grades[$i]->feedback)) {
- echo text_to_html($grades[$i]->feedback);
- }
- }
- echo " </TD>\n";
- echo "</TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo "</TR>\n";
- if (empty($grades[$i]->grade)) {
- $error += $EXERCISE_EWEIGHTS[$elements[$i]->weight];
- }
- }
- // print the number of negative elements
- // echo "<TR><TD>".get_string("numberofnegativeitems", "exercise")."</TD><TD>$negativecount</TD></TR>\n";
- // echo "<TR valign=top>\n";
- // echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo "</TABLE></CENTER>\n";
- // now print the grade table
- echo "<P><CENTER><B>".get_string("gradetable","exercise")."</B></CENTER>\n";
- echo "<CENTER><TABLE cellpadding=5 border=1><TR><TD ALIGN=\"CENTER\">".
- get_string("numberofnegativeresponses", "exercise");
- echo "</TD><TD>". get_string("suggestedgrade", "exercise")."</TD></TR>\n";
- for ($i=0; $i<=$exercise->nelements; $i++) {
- if ($i == intval($error + 0.5)) {
- echo "<TR><TD ALIGN=\"CENTER\"><IMG SRC=\"$CFG->pixpath/t/right.gif\"> $i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
- }
- else {
- echo "<TR><TD ALIGN=\"CENTER\">$i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
- }
- }
- echo "</TABLE></CENTER>\n";
- echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
- get_string("optionaladjustment", "exercise").":</b></TD><TD>\n";
- unset($numbers);
- for ($j = 20; $j >= -20; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$exercise->nelements]->grade)) {
- choose_from_menu($numbers, "grade[$exercise->nelements]", $grades[$exercise->nelements]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[$exercise->nelements]", 0, "");
- }
- echo "</TD></TR>\n";
- break;
-
- case 3: // criteria grading
- echo "<TR valign=top>\n";\r
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";\r
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD>\n";\r
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("select", "exercise")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("suggestedgrade", "exercise")."</B></TD>\n";
- // find which criteria has been selected (saved in the zero element), if any
- if (isset($grades[0]->grade)) {
- $selection = $grades[0]->grade;
- }
- else {
- $selection = 0;
- }
- // now run through the elements
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";\r
- echo " <TD>$iplus1</TD><TD>".text_to_html($elements[$i]->description)."</TD>\n";
- if ($selection == $i) {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\" CHECKED></TD>\n";
- }
- else {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\"></TD>\n";
- }
- echo "<TD align=center>{$elements[$i]->maxscore}</TD></TR>\n";
- }
- echo "</TABLE></CENTER>\n";
- echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
- get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
- unset($numbers);
- for ($j = 20; $j >= -20; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[1]->grade)) {
- choose_from_menu($numbers, "grade[1]", $grades[1]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[1]", 0, "");
- }
- echo "</TD></TR>\n";
- break;
-
- case 4: // rubric grading
- // now run through the elements...
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=\"top\">\n";\r
- echo "<TD align=\"right\"><b>".get_string("element", "exercise")." $iplus1:</b></TD>\n";
- echo "<TD>".text_to_html($elements[$i]->description).
- "<P align=\"right\"><font size=\"1\">Weight: "
- .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</font></TD></tr>\n";
- echo "<TR valign=\"top\">\n";\r
- echo " <TD BGCOLOR=\"$THEME->cellheading2\" align=\"center\"><B>".get_string("select", "exercise")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD></tr>\n";\r
- if (isset($grades[$i])) {
- $selection = $grades[$i]->grade;
- } else {
- $selection = 0;
- }
- // ...and the rubrics
- if ($rubricsraw = get_records_select("exercise_rubrics", "exerciseid = $exercise->id AND
- elementno = $i", "rubricno ASC")) {
- unset($rubrics);
- foreach ($rubricsraw as $rubic) {
- $rubrics[] = $rubic; // to renumber index 0,1,2...
- }
- for ($j=0; $j<5; $j++) {
- if (empty($rubrics[$j]->description)) {
- break; // out of inner for loop
- }
- echo "<TR valign=top>\n";\r
- if ($selection == $j) {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED></TD>\n";
- }else {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"></TD>\n";
- }
- echo "<TD>".text_to_html($rubrics[$j]->description)."</TD>\n";
- }
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
- echo "</tr>\n";
- }
- }
- break;
- } // end of outer switch
-
- // now get the general comment (present in all types)
- echo "<tr valign=\"top\">\n";
- switch ($exercise->gradingstrategy) {
- case 0:
- case 1:
- case 4 : // no grading, accumulative and rubic
- echo " <td align=\"right\"><P><B>". get_string("generalcomment", "exercise").":</B></P></TD>\n";
- break;
- default :
- echo " <td align=\"right\"><P><B>". get_string("reasonforadjustment", "exercise").":</B></P></TD>\n";
- }
- echo " <td>\n";
- if ($allowchanges) {
- echo " <textarea name=\"generalcomment\" rows=5 cols=75 wrap=\"virtual\">\n";
- if (isset($assessment->generalcomment)) {
- echo $assessment->generalcomment;
- }
- echo "</textarea>\n";
- }
- else {
- if ($assessment) {
- if (isset($assessment->generalcomment)) {
- echo text_to_html($assessment->generalcomment);
- }
- }
- else {
- print_string("yourfeedbackgoeshere", "exercise");
- }
- }\r
- echo " </td>\n";\r
- echo "</tr>\n";\r
- echo "<tr valign=\"top\">\n";\r
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";\r
- echo "</tr>\n";
-
- $timenow = time();
- // the teacher's comment on the assessment
- // always allow the teacher to change their comment and grade if it's not their assessment!
- if (isteacher($course->id) and ($assessment->userid != $USER->id)) {
- echo "<tr><td align=\"right\"><b>".get_string("gradeforstudentsassessment", "exercise", $course->student).
- "</td><td>\n";
- // set up coment scale
- for ($i=COMMENTSCALE; $i>=0; $i--) {
- $num[$i] = $i;
- }
- choose_from_menu($num, "gradinggrade", $assessment->gradinggrade, "");
- echo "</td></tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "exercise").":</b></p></td>\n";
- echo " <td>\n";
- echo "<textarea name=\"teachercomment\" rows=\"5\" cols=\"75\" wrap=\"virtual\">\n";
- if (isset($assessment->teachercomment)) {
- echo $assessment->teachercomment;
- }
- echo "</textarea>\n";
- echo " </td>\n";
- echo "</tr>\n";
- }
- elseif ($assessment->timegraded and ($assessment->timegraded < ($timenow - $CFG->maxeditingtime))) {
- // now show the teacher's comment (but not the grade) to the student if available...
- echo "<tr valign=top>\n";
- echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "exercise").":</b></p></td>\n";
- echo " <td>\n";
- echo text_to_html($assessment->teachercomment);
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo "<td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
- echo "</tr>\n";
- }
-
- // ...and close the table, show buttons if needed...
- echo "</table><br />\n";
- if ($assessment and $allowchanges) {
- if (isteacher($course->id)) {
- // ...show two buttons...to resubmit or not to resubmit
- echo "<input type=\"button\" value=\"".get_string("studentnotallowed", "exercise", $course->student)."\"
- onclick=\"document.assessmentform.submit();\">\n";
- echo "<input type=\"button\" value=\"".get_string("studentallowedtoresubmit", "exercise", $course->student)."\"
- onclick=\"document.assessmentform.resubmit.value='1';document.assessmentform.submit();\">\n";
- }
- else {
- // ... show save button
- echo "<input type=\"submit\" value=\"".get_string("savemyassessment", "exercise")."\">\n";
- }
- }
- echo "</center></form>\n";
- }\r
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////
-function exercise_print_assessments_by_user_for_admin($exercise, $user) {
-
- if (! $course = get_record("course", "id", $exercise->course)) {
- error("Course is misconfigured");
+ $exercisefound = false;
+ if (!$submissionowner = get_record("user", "id", $submission->userid)) {
+ error ("exercise_print_assessment_form: User record not found");
+ }
+ if ($initialassessments = exercise_get_user_assessments($exercise, $submissionowner)) {
+ // should only be one but we'll loop anyway
+ foreach($initialassessments as $initialassessment) {
+ if (!$teachersubmission = get_record("exercise_submissions", "id", $initialassessment->submissionid)) {
+ error ("exercise_print_assessment_form: Teacher Submission record not found");
+ }
+ if ($teachersubmission->isexercise) {
+ $exercisefound = true;
+ break;
+ }
+ }
+ }
+ if ($exercisefound) {
+ print_heading(get_string("theexerciseandthesubmissionby", "exercise",
+ "$submissionowner->firstname $submissionowner->lastname"));
+ echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
+ <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
+ echo exercise_print_submission_title($exercise, $teachersubmission);
+ echo "</TD></TR></TABLE><BR CLEAR=ALL>\n";
+ }
+ }
+ else {
+ // it's a student assessment, print instructions if it's their own assessment
+ if ($assessment->userid == $USER->id) {
+ print_heading_with_help(get_string("pleaseusethisform", "exercise"), "grading", "exercise");
+ }
+ }
+
+ echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
+ <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
+ echo exercise_print_submission_title($exercise, $submission);
+ echo "</TD></TR></TABLE><BR CLEAR=ALL>\n";
+
+ // only show the grade if grading strategy > 0 and the grade is positive
+ if ($exercise->gradingstrategy and $assessment->grade >= 0) {
+
+ echo "<CENTER><B>".get_string("thegradeis", "exercise").": ".
+ number_format($assessment->grade * $exercise->grade / 100.0, 2)." (".
+ get_string("maximumgrade")." ".number_format($exercise->grade, 0).")</B></CENTER><BR CLEAR=ALL>\n";
+ }
}
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- if ($assessments =exercise_get_user_assessments($exercise, $user)) {
- foreach ($assessments as $assessment) {
- echo "<p><center><b>".get_string("assessmentby", "exercise", $user->firstname." ".$user->lastname)."</b></center></p>\n";
- exercise_print_assessment_form($exercise, $assessment);
- echo "<p align=\"right\"><a href=\"assessments.php?action=adminamendgradinggrade&id=$cm->id&aid=$assessment->id\">".
- get_string("amend", "exercise")." ".get_string("gradeforstudentsassessment","exercise",
- $course->student)."</a>\n";
- echo " | <a href=\"assessments.php?action=adminconfirmdelete&id=$cm->id&aid=$assessment->id\">".
- get_string("delete", "exercise")."</a></p><hr>\n";
- }
- }
- }
+
+ // now print the grading form with the teacher's comments if any
+ // FORM is needed for Mozilla browsers, else radio bttons are not checked
+ ?>
+ <form name="assessmentform" method="post" action="assessments.php">
+ <INPUT TYPE="hidden" NAME="id" VALUE="<?PHP echo $cm->id ?>">
+ <input type="hidden" name="aid" value="<?PHP echo $assessment->id ?>">
+ <input type="hidden" name="action" value="updateassessment">
+ <input type="hidden" name="resubmit" value="0">
+ <input type="hidden" name="returnto" value="<?PHP echo $returnto ?>">
+ <?PHP
+ if ($assessment) {
+ if (!$assessmentowner = get_record("user", "id", $assessment->userid)) {
+ error("Exercise_print_assessment_form: could not find user record");
+ }
+ if ($assessmentowner->id == $USER->id) {
+ $formtitle = get_string("yourassessment", "exercise");
+ }
+ else {
+ $formtitle = get_string("assessmentby", "exercise", "$assessmentowner->firstname $assessmentowner->lastname");
+ }
+ }
+ else {
+ $formtitle = get_string("assessmentform", "exercise");
+ }
+ echo "<center><table cellpadding=\"2\" border=\"1\">\n";
+ echo "<tr valign=top>\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"><center><b>$formtitle</b></center></td>\n";
-///////////////////////////////////////////////////////////////////////////////////////////////
-function exercise_print_assessments_for_admin($exercise, $submission) {
+ echo "</tr>\n";
- if (! $course = get_record("course", "id", $exercise->course)) {
- error("Course is misconfigured");
+ // get the assignment elements...
+ if (!$elementsraw = get_records("exercise_elements", "exerciseid", $exercise->id, "elementno ASC")) {
+ print_string("noteonassignmentelements", "exercise");
+ }
+ else {
+ foreach ($elementsraw as $element) {
+ $elements[] = $element; // to renumber index 0,1,2...
+ }
}
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- if ($assessments =exercise_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- if (!$user = get_record("user", "id", $assessment->userid)) {
- error (" exercise_print_assessments_for_admin: unable to get user record");
- }
- echo "<p><center><b>".get_string("assessmentby", "exercise", $user->firstname." ".$user->lastname)."</b></center></p>\n";
- exercise_print_assessment_form($exercise, $assessment);
- echo "<p align=\"right\"><a href=\"assessments.php?action=adminconfirmdelete&id=$cm->id&aid=$assessment->id\">".
- get_string("delete", "exercise")."</a></p><hr>\n";
- }
- }
- }
-
-///////////////////////////////////////////////////////////////////////////////////////////////
-function exercise_print_assignment_info($exercise) {
+ if ($assessment) {
+ // get any previous grades...
+ if ($gradesraw = get_records_select("exercise_grades", "assessmentid = $assessment->id", "elementno")) {
+ foreach ($gradesraw as $grade) {
+ $grades[] = $grade; // to renumber index 0,1,2...
+ }
+ }
+ }
+ else {
+ // setup dummy grades array
+ for($i = 0; $i < count($elementsraw); $i++) { // gives a suitable sized loop
+ $grades[$i]->feedback = get_string("yourfeedbackgoeshere", "exercise");
+ $grades[$i]->grade = 0;
+ }
+ }
+
+ // determine what sort of grading
+ switch ($exercise->gradingstrategy) {
+ case 0: // no grading
+ // now print the form
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ 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 1: // accumulative grading
+ // now print the form
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
+
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "<P align=right><FONT size=1>Weight: "
+ .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
+ echo " <TD valign=\"top\">\n";
+
+ // get the appropriate scale
+ $scalenumber=$elements[$i]->scale;
+ $SCALE = (object)$EXERCISE_SCALES[$scalenumber];
+ switch ($SCALE->type) {
+ case 'radio' :
+ // show selections highest first
+ echo "<CENTER><B>$SCALE->start</B> ";
+ for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
+ $checked = false;
+ if (isset($grades[$i]->grade)) {
+ if ($j == $grades[$i]->grade) {
+ $checked = true;
+ }
+ }
+ else { // there's no previous grade so check the lowest option
+ if ($j == 0) {
+ $checked = true;
+ }
+ }
+ if ($checked) {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
+ }
+ else {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
+ }
+ }
+ echo " <B>$SCALE->end</B></CENTER>\n";
+ break;
+ case 'selection' :
+ unset($numbers);
+ for ($j = $SCALE->size; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$i]->grade)) {
+ choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[$i]", 0, "");
+ }
+ break;
+
+ echo " </TD>\n";
+ echo "</TR>\n";
+ }
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ 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
+ // now run through the elements
+ $error = 0;
+ for ($i=0; $i < count($elements) - 1; $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+
+ echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
+
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "<P align=right><FONT size=1>Weight: "
+ .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
+ echo " <TD valign=\"top\">\n";
+
+ // get the appropriate scale - yes/no scale (0)
+ $SCALE = (object) $EXERCISE_SCALES[0];
+ switch ($SCALE->type) {
+ case 'radio' :
+ // show selections highest first
+ echo "<CENTER><B>$SCALE->start</B> ";
+ for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
+ $checked = false;
+ if (isset($grades[$i]->grade)) {
+ if ($j == $grades[$i]->grade) {
+ $checked = true;
+ }
+ }
+ else { // there's no previous grade so check the lowest option
+ if ($j == 0) {
+ $checked = true;
+ }
+ }
+ if ($checked) {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
+ }
+ else {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
+ }
+ }
+ echo " <B>$SCALE->end</B></CENTER>\n";
+ break;
+ case 'selection' :
+ unset($numbers);
+ for ($j = $SCALE->size; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$i]->grade)) {
+ choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[$i]", 0, "");
+ }
+ break;
+ }
+
+ echo " </TD>\n";
+ echo "</TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[$i]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ if (isset($grades[$i]->feedback)) {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ }
+ echo " </TD>\n";
+ echo "</TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</TR>\n";
+ if (empty($grades[$i]->grade)) {
+ $error += $EXERCISE_EWEIGHTS[$elements[$i]->weight];
+ }
+ }
+ // print the number of negative elements
+ // echo "<TR><TD>".get_string("numberofnegativeitems", "exercise")."</TD><TD>$negativecount</TD></TR>\n";
+ // echo "<TR valign=top>\n";
+ // echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</TABLE></CENTER>\n";
+ // now print the grade table
+ echo "<P><CENTER><B>".get_string("gradetable","exercise")."</B></CENTER>\n";
+ echo "<CENTER><TABLE cellpadding=5 border=1><TR><TD ALIGN=\"CENTER\">".
+ get_string("numberofnegativeresponses", "exercise");
+ echo "</TD><TD>". get_string("suggestedgrade", "exercise")."</TD></TR>\n";
+ for ($i=0; $i<=$exercise->nelements; $i++) {
+ if ($i == intval($error + 0.5)) {
+ echo "<TR><TD ALIGN=\"CENTER\"><IMG SRC=\"$CFG->pixpath/t/right.gif\"> $i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ else {
+ echo "<TR><TD ALIGN=\"CENTER\">$i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ }
+ echo "</TABLE></CENTER>\n";
+ echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
+ get_string("optionaladjustment", "exercise").":</b></TD><TD>\n";
+ unset($numbers);
+ for ($j = 20; $j >= -20; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$exercise->nelements]->grade)) {
+ choose_from_menu($numbers, "grade[$exercise->nelements]", $grades[$exercise->nelements]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[$exercise->nelements]", 0, "");
+ }
+ echo "</TD></TR>\n";
+ break;
+
+ case 3: // criteria grading
+ echo "<TR valign=top>\n";
- if (! $course = get_record("course", "id", $exercise->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
- // print standard assignment heading
- $strdifference = format_time($exercise->deadline - time());
- if (($exercise->deadline - time()) < 0) {
- $strdifference = "<font color=\"red\">$strdifference</font>";
- }
- $strduedate = userdate($exercise->deadline)." ($strdifference)";
- print_simple_box_start("center");
- print_heading($exercise->name, "center");
- print_simple_box_start("center");
- echo "<b>".get_string("duedate", "exercise")."</b>: $strduedate<br />";
- echo "<b>".get_string("maximumgrade")."</b>: $exercise->grade<br />";
- echo "<b>".get_string("handlingofmultiplesubmissions", "exercise")."</b>:";
- if ($exercise->usemaximum) {
- echo get_string("usemaximum", "exercise")."<br />\n";
- }
- else {
- echo get_string("usemean", "exercise")."<br />\n";
- }
- echo "<b>".get_string("detailsofassessment", "exercise")."</b>:
- <a href=\"assessments.php?id=$cm->id&action=displaygradingform\">".
- get_string("specimenassessmentform", "exercise")."</a><br />";
- print_simple_box_end();
- print_simple_box_end();
- echo "<br />";
-}
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD>\n";
-///////////////////////////////////////////////////////////////////////////////////////////////
-function exercise_print_difference($time) {
- if ($time < 0) {
- $timetext = get_string("late", "assignment", format_time($time));
- return " (<FONT COLOR=RED>$timetext</FONT>)";
- } else {
- $timetext = get_string("early", "assignment", format_time($time));
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("select", "exercise")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("suggestedgrade", "exercise")."</B></TD>\n";
+ // find which criteria has been selected (saved in the zero element), if any
+ if (isset($grades[0]->grade)) {
+ $selection = $grades[0]->grade;
+ }
+ else {
+ $selection = 0;
+ }
+ // now run through the elements
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+
+ echo " <TD>$iplus1</TD><TD>".text_to_html($elements[$i]->description)."</TD>\n";
+ if ($selection == $i) {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\" CHECKED></TD>\n";
+ }
+ else {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\"></TD>\n";
+ }
+ echo "<TD align=center>{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ echo "</TABLE></CENTER>\n";
+ echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
+ get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
+ unset($numbers);
+ for ($j = 20; $j >= -20; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[1]->grade)) {
+ choose_from_menu($numbers, "grade[1]", $grades[1]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[1]", 0, "");
+ }
+ echo "</TD></TR>\n";
+ break;
+
+ case 4: // rubric grading
+ // now run through the elements...
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=\"top\">\n";
+
+ echo "<TD align=\"right\"><b>".get_string("element", "exercise")." $iplus1:</b></TD>\n";
+ echo "<TD>".text_to_html($elements[$i]->description).
+ "<P align=\"right\"><font size=\"1\">Weight: "
+ .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</font></TD></tr>\n";
+ echo "<TR valign=\"top\">\n";
+
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\" align=\"center\"><B>".get_string("select", "exercise")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD></tr>\n";
+
+ if (isset($grades[$i])) {
+ $selection = $grades[$i]->grade;
+ } else {
+ $selection = 0;
+ }
+ // ...and the rubrics
+ if ($rubricsraw = get_records_select("exercise_rubrics", "exerciseid = $exercise->id AND
+ elementno = $i", "rubricno ASC")) {
+ unset($rubrics);
+ foreach ($rubricsraw as $rubic) {
+ $rubrics[] = $rubic; // to renumber index 0,1,2...
+ }
+ for ($j=0; $j<5; $j++) {
+ if (empty($rubrics[$j]->description)) {
+ break; // out of inner for loop
+ }
+ echo "<TR valign=top>\n";
+
+ if ($selection == $j) {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED></TD>\n";
+ }else {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"></TD>\n";
+ }
+ echo "<TD>".text_to_html($rubrics[$j]->description)."</TD>\n";
+ }
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</tr>\n";
+ }
+ }
+ break;
+ } // end of outer switch
+
+ // now get the general comment (present in all types)
+ echo "<tr valign=\"top\">\n";
+ switch ($exercise->gradingstrategy) {
+ case 0:
+ case 1:
+ case 4 : // no grading, accumulative and rubic
+ echo " <td align=\"right\"><P><B>". get_string("generalcomment", "exercise").":</B></P></TD>\n";
+ break;
+ default :
+ echo " <td align=\"right\"><P><B>". get_string("reasonforadjustment", "exercise").":</B></P></TD>\n";
+ }
+ echo " <td>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"generalcomment\" rows=5 cols=75 wrap=\"virtual\">\n";
+ if (isset($assessment->generalcomment)) {
+ echo $assessment->generalcomment;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ if ($assessment) {
+ if (isset($assessment->generalcomment)) {
+ echo text_to_html($assessment->generalcomment);
+ }
+ }
+ else {
+ print_string("yourfeedbackgoeshere", "exercise");
+ }
+ }
+
+ echo " </td>\n";
+
+ echo "</tr>\n";
+
+ echo "<tr valign=\"top\">\n";
+
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
+
+ echo "</tr>\n";
+
+ $timenow = time();
+ // the teacher's comment on the assessment
+ // always allow the teacher to change their comment and grade if it's not their assessment!
+ if (isteacher($course->id) and ($assessment->userid != $USER->id)) {
+ echo "<tr><td align=\"right\"><b>".get_string("gradeforstudentsassessment", "exercise", $course->student).
+ "</td><td>\n";
+ // set up coment scale
+ for ($i=COMMENTSCALE; $i>=0; $i--) {
+ $num[$i] = $i;
+ }
+ choose_from_menu($num, "gradinggrade", $assessment->gradinggrade, "");
+ echo "</td></tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "exercise").":</b></p></td>\n";
+ echo " <td>\n";
+ echo "<textarea name=\"teachercomment\" rows=\"5\" cols=\"75\" wrap=\"virtual\">\n";
+ if (isset($assessment->teachercomment)) {
+ echo $assessment->teachercomment;
+ }
+ echo "</textarea>\n";
+ echo " </td>\n";
+ echo "</tr>\n";
+ }
+ elseif ($assessment->timegraded and ($assessment->timegraded < ($timenow - $CFG->maxeditingtime))) {
+ // now show the teacher's comment (but not the grade) to the student if available...
+ echo "<tr valign=top>\n";
+ echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "exercise").":</b></p></td>\n";
+ echo " <td>\n";
+ echo text_to_html($assessment->teachercomment);
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo "<td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
+ echo "</tr>\n";
+ }
+
+ // ...and close the table, show buttons if needed...
+ echo "</table><br />\n";
+ if ($assessment and $allowchanges) {
+ if (isteacher($course->id)) {
+ // ...show two buttons...to resubmit or not to resubmit
+ echo "<input type=\"button\" value=\"".get_string("studentnotallowed", "exercise", $course->student)."\"
+ onclick=\"document.assessmentform.submit();\">\n";
+ echo "<input type=\"button\" value=\"".get_string("studentallowedtoresubmit", "exercise", $course->student)."\"
+ onclick=\"document.assessmentform.resubmit.value='1';document.assessmentform.submit();\">\n";
+ }
+ else {
+ // ... show save button
+ echo "<input type=\"submit\" value=\"".get_string("savemyassessment", "exercise")."\">\n";
+ }
+ }
+ echo "</center></form>\n";
+ }
+
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////
+function exercise_print_assessments_by_user_for_admin($exercise, $user) {
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
+ error("Course is misconfigured");
+ }
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
+
+ if ($assessments =exercise_get_user_assessments($exercise, $user)) {
+ foreach ($assessments as $assessment) {
+ echo "<p><center><b>".get_string("assessmentby", "exercise", $user->firstname." ".$user->lastname)."</b></center></p>\n";
+ exercise_print_assessment_form($exercise, $assessment);
+ echo "<p align=\"right\"><a href=\"assessments.php?action=adminamendgradinggrade&id=$cm->id&aid=$assessment->id\">".
+ get_string("amend", "exercise")." ".get_string("gradeforstudentsassessment","exercise",
+ $course->student)."</a>\n";
+ echo " | <a href=\"assessments.php?action=adminconfirmdelete&id=$cm->id&aid=$assessment->id\">".
+ get_string("delete", "exercise")."</a></p><hr>\n";
+ }
+ }
+ }
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////
+function exercise_print_assessments_for_admin($exercise, $submission) {
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
+ error("Course is misconfigured");
+ }
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
+
+ if ($assessments =exercise_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ if (!$user = get_record("user", "id", $assessment->userid)) {
+ error (" exercise_print_assessments_for_admin: unable to get user record");
+ }
+ echo "<p><center><b>".get_string("assessmentby", "exercise", $user->firstname." ".$user->lastname)."</b></center></p>\n";
+ exercise_print_assessment_form($exercise, $assessment);
+ echo "<p align=\"right\"><a href=\"assessments.php?action=adminconfirmdelete&id=$cm->id&aid=$assessment->id\">".
+ get_string("delete", "exercise")."</a></p><hr>\n";
+ }
+ }
+ }
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////
+function exercise_print_assignment_info($exercise) {
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
+ error("Course is misconfigured");
+ }
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
+ // print standard assignment heading
+ $strdifference = format_time($exercise->deadline - time());
+ if (($exercise->deadline - time()) < 0) {
+ $strdifference = "<font color=\"red\">$strdifference</font>";
+ }
+ $strduedate = userdate($exercise->deadline)." ($strdifference)";
+ print_simple_box_start("center");
+ print_heading($exercise->name, "center");
+ print_simple_box_start("center");
+ echo "<b>".get_string("duedate", "exercise")."</b>: $strduedate<br />";
+ echo "<b>".get_string("maximumgrade")."</b>: $exercise->grade<br />";
+ echo "<b>".get_string("handlingofmultiplesubmissions", "exercise")."</b>:";
+ if ($exercise->usemaximum) {
+ echo get_string("usemaximum", "exercise")."<br />\n";
+ }
+ else {
+ echo get_string("usemean", "exercise")."<br />\n";
+ }
+ echo "<b>".get_string("detailsofassessment", "exercise")."</b>:
+ <a href=\"assessments.php?id=$cm->id&action=displaygradingform\">".
+ get_string("specimenassessmentform", "exercise")."</a><br />";
+ print_simple_box_end();
+ print_simple_box_end();
+ echo "<br />";
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////
+function exercise_print_difference($time) {
+ if ($time < 0) {
+ $timetext = get_string("late", "assignment", format_time($time));
+ return " (<FONT COLOR=RED>$timetext</FONT>)";
+ } else {
+ $timetext = get_string("early", "assignment", format_time($time));
return " ($timetext)";
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_print_dual_assessment_form($exercise, $assessment, $submission, $returnto = '') {
- // prints the user's assessment and a blank form for the user's submission (for teachers only)
- global $CFG, $THEME, $USER, $EXERCISE_SCALES, $EXERCISE_EWEIGHTS;
-
- if (! $course = get_record("course", "id", $exercise->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $timenow = time();
-
- if(!$submissionowner = get_record("user", "id", $submission->userid)) {
- error("Print dual assessment form: User record not found");
- }
-
- echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
- <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
- if (!$teachersubmission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
- error ("exercise_print_assessment_form: Submission record not found");
- }
- echo exercise_print_submission_title($exercise, $teachersubmission);
- echo "</TD></TR></TABLE><BR CLEAR=ALL>\n";
-
- print_heading_with_help(get_string("pleasegradetheassessment", "exercise",
- "$submissionowner->firstname $submissionowner->lastname"), "gradinggrade", "exercise");
-
- echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
- <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
- echo exercise_print_submission_title($exercise, $submission);
- echo "</TD></TR></TABLE></center><BR CLEAR=ALL>\n";
-
- // only show the grade if grading strategy > 0 and the grade is positive
- if ($exercise->gradingstrategy and $assessment->grade >= 0) {
- echo "<CENTER><B>".get_string("thegradeis", "exercise").": ".
- number_format($assessment->grade * $exercise->grade / 100.0, 2)." (".
- get_string("maximumgrade")." ".number_format($exercise->grade, 0).")</B></CENTER><BR CLEAR=ALL>\n";
- }
-
- // now print the student's assessment form with the teacher's comments if any
- // in this (first) form only allow teachers to change their comment and the grading grade
- // the other "active" elements in thie form are suffixed with "_0" to stop conflicts with the teacher's
- // assessment form
- $allowchanges = false;
-
- // FORM is needed for Mozilla browsers, else radio bttons are not checked
- ?>
- <form name="assessmentform" method="post" action="assessments.php">
- <INPUT TYPE="hidden" NAME="id" VALUE="<?PHP echo $cm->id ?>">
- <input type="hidden" name="aid" value="<?PHP echo $assessment->id ?>">
- <input type="hidden" name="sid" value="<?PHP echo $submission->id ?>">
- <input type="hidden" name="action" value="updatedualassessment">
- <input type="hidden" name="resubmit" value="0">
- <input type="hidden" name="returnto" value="<?PHP echo $returnto ?>">
- <?PHP
- if (!$assessmentowner = get_record("user", "id", $assessment->userid)) {
- error("Exercise_print_dual_assessment_form: could not find user record");
- }
- echo "<center><table cellpadding=\"2\" border=\"1\">\n";
- echo "<tr valign=top>\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"><center><B>".get_string("assessmentby",
- "exercise", "$assessmentowner->firstname $assessmentowner->lastname")."</b></center></td>\n";
- echo "</tr>\n";
-
- // get the assignment elements...
- if (!$elementsraw = get_records("exercise_elements", "exerciseid", $exercise->id, "elementno ASC")) {
- print_string("noteonassignmentelements", "exercise");
- }
- else {
- foreach ($elementsraw as $element) {
- $elements[] = $element; // to renumber index 0,1,2...
- }
- }
-
- // get any previous grades...
- if ($gradesraw = get_records_select("exercise_grades", "assessmentid = $assessment->id", "elementno")) {
- foreach ($gradesraw as $grade) {
- $grades[] = $grade; // to renumber index 0,1,2...
- }
- }
-
- // determine what sort of grading
- switch ($exercise->gradingstrategy) {
- case 0: // no grading
- // now print the form
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- 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 1: // accumulative grading
- // now print the form
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "<P align=right><FONT size=1>Weight: "
- .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
- echo " <TD valign=\"top\">\n";
-
- // get the appropriate scale
- $scalenumber=$elements[$i]->scale;
- $SCALE = (object)$EXERCISE_SCALES[$scalenumber];
- switch ($SCALE->type) {
- case 'radio' :
- // show selections highest first
- echo "<CENTER><B>$SCALE->start</B> ";
- for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
- $checked = false;
- if (isset($grades[$i]->grade)) {
- if ($j == $grades[$i]->grade) {
- $checked = true;
- }
- }
- else { // there's no previous grade so check the lowest option
- if ($j == 0) {
- $checked = true;
- }
- }
- if ($checked) {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\" CHECKED> \n";
- }
- else {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\"> \n";
- }
- }
- echo " <B>$SCALE->end</B></CENTER>\n";
- break;
- case 'selection' :
- unset($numbers);
- for ($j = $SCALE->size; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$i]->grade)) {
- choose_from_menu($numbers, "grade2_0[$i]", $grades[$i]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade2_0[$i]", 0, "");
- }
- break;
-
- echo " </TD>\n";
- echo "</TR>\n";
- }
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- 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
- // now run through the elements
- $error = 0;
- for ($i=0; $i < count($elements) - 1; $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "<P align=right><FONT size=1>Weight: "
- .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
- echo " <TD valign=\"top\">\n";
-
- // get the appropriate scale - yes/no scale (0)
- $SCALE = (object) $EXERCISE_SCALES[0];
- switch ($SCALE->type) {
- case 'radio' :
- // show selections highest first
- echo "<CENTER><B>$SCALE->start</B> ";
- for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
- $checked = false;
- if (isset($grades[$i]->grade)) {
- if ($j == $grades[$i]->grade) {
- $checked = true;
- }
- }
- else { // there's no previous grade so check the lowest option
- if ($j == 0) {
- $checked = true;
- }
- }
- if ($checked) {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\" CHECKED> \n";
- }
- else {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\"> \n";
- }
- }
- echo " <B>$SCALE->end</B></CENTER>\n";
- break;
- case 'selection' :
- unset($numbers);
- for ($j = $SCALE->size; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$i]->grade)) {
- choose_from_menu($numbers, "grade_0[$i]", $grades[$i]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade_0[$i]", 0, "");
- }
- break;
- }
-
- echo " </TD>\n";
- echo "</TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[$i]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- if (isset($grades[$i]->feedback)) {
- echo text_to_html($grades[$i]->feedback);
- }
- }
- echo " </TD>\n";
- echo "</TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo "</TR>\n";
- if (empty($grades[$i]->grade)) {
- $error += $EXERCISE_EWEIGHTS[$elements[$i]->weight];
- }
- }
- // print the number of negative elements
- // echo "<TR><TD>".get_string("numberofnegativeitems", "exercise")."</TD><TD>$negativecount</TD></TR>\n";
- // echo "<TR valign=top>\n";
- // echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo "</TABLE></CENTER>\n";
- // now print the grade table
- echo "<P><CENTER><B>".get_string("gradetable","exercise")."</B></CENTER>\n";
- echo "<CENTER><TABLE cellpadding=5 border=1><TR><TD ALIGN=\"CENTER\">".
- get_string("numberofnegativeresponses", "exercise");
- echo "</TD><TD>". get_string("suggestedgrade", "exercise")."</TD></TR>\n";
- for ($i=0; $i<=$exercise->nelements; $i++) {
- if ($i == intval($error + 0.5)) {
- echo "<TR><TD ALIGN=\"CENTER\"><IMG SRC=\"$CFG->pixpath/t/right.gif\"> $i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
- }
- else {
- echo "<TR><TD ALIGN=\"CENTER\">$i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
- }
- }
- echo "</TABLE></CENTER>\n";
- echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
- get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
- unset($numbers);
- for ($j = 20; $j >= -20; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$exercise->nelements]->grade)) {
- choose_from_menu($numbers, "grade_0[$exercise->nelements]", $grades[$exercise->nelements]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade_0[$exercise->nelements]", 0, "");
- }
- echo "</TD></TR>\n";
- break;
-
- case 3: // criteria grading
- echo "<TR valign=top>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("select", "exercise")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("suggestedgrade", "exercise")."</B></TD>\n";
- // find which criteria has been selected (saved in the zero element), if any
- if (isset($grades[0]->grade)) {
- $selection = $grades[0]->grade;
- }
- else {
- $selection = 0;
- }
- // now run through the elements
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD>$iplus1</TD><TD>".text_to_html($elements[$i]->description)."</TD>\n";
- if ($selection == $i) {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade_0[0]\" VALUE=\"$i\" CHECKED></TD>\n";
- }
- else {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade_0[0]\" VALUE=\"$i\"></TD>\n";
- }
- echo "<TD align=center>{$elements[$i]->maxscore}</TD></TR>\n";
- }
- echo "</TABLE></CENTER>\n";
- echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
- get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
- unset($numbers);
- for ($j = 20; $j >= -20; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[1]->grade)) {
- choose_from_menu($numbers, "grade_0[1]", $grades[1]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[1]", 0, "");
- }
- echo "</TD></TR>\n";
- break;
-
- case 4: // rubric grading
- // now run through the elements...
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=\"top\">\n";
- echo "<TD align=\"right\"><b>".get_string("element", "exercise")." $iplus1:</b></TD>\n";
- echo "<TD>".text_to_html($elements[$i]->description).
- "<P align=\"right\"><font size=\"1\">Weight: "
- .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</font></TD></tr>\n";
- echo "<TR valign=\"top\">\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\" align=\"center\"><B>".get_string("select", "exercise")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD></tr>\n";
- if (isset($grades[$i])) {
- $selection = $grades[$i]->grade;
- } else {
- $selection = 0;
- }
- // ...and the rubrics
- if ($rubricsraw = get_records_select("exercise_rubrics", "exerciseid = $exercise->id AND
- elementno = $i", "rubricno ASC")) {
- unset($rubrics);
- foreach ($rubricsraw as $rubic) {
- $rubrics[] = $rubic; // to renumber index 0,1,2...
- }
- for ($j=0; $j<5; $j++) {
- if (empty($rubrics[$j]->description)) {
- break; // out of inner for loop
- }
- echo "<TR valign=top>\n";
- if ($selection == $j) {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\" CHECKED></TD>\n";
- }else {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\"></TD>\n";
- }
- echo "<TD>".text_to_html($rubrics[$j]->description)."</TD>\n";
- }
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
- echo "</tr>\n";
- }
- }
- break;
- } // end of outer switch
-
- // now get the general comment (present in all types)
- echo "<tr valign=\"top\">\n";
- switch ($exercise->gradingstrategy) {
- case 0:
- case 1:
- case 4 : // no grading, accumulative and rubic
- echo " <td align=\"right\"><P><B>". get_string("generalcomment", "exercise").":</B></P></TD>\n";
- break;
- default :
- echo " <td align=\"right\"><P><B>". get_string("reasonforadjustment", "exercise").":</B></P></TD>\n";
- }
- echo " <td>\n";
- if ($allowchanges) {
- echo " <textarea name=\"generalcomment\" rows=5 cols=75 wrap=\"virtual\">\n";
- if (isset($assessment->generalcomment)) {
- echo $assessment->generalcomment;
- }
- echo "</textarea>\n";
- }
- else {
- if ($assessment) {
- if (isset($assessment->generalcomment)) {
- echo text_to_html($assessment->generalcomment);
- }
- }
- else {
- print_string("yourfeedbackgoeshere", "exercise");
- }
- }
- echo " </td>\n";
- echo "</tr></table>\n";
-
- // the teacher's comment on the assessment
- // always allow the teacher to change/add their comment and grade if it's not their assessment!
- echo "<p><center><table cellpadding=\"5\" border=\"1\">\n";
- if (isteacher($course->id) and ($assessment->userid != $USER->id)) {
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".
- get_string("pleasegradetheassessment", "exercise", "$submissionowner->firstname $submissionowner->lastname").
- "</b></td>\n";
- echo "</tr>\n";
- echo "<tr><td align=\"right\"><b>".get_string("gradeforstudentsassessment", "exercise", $course->student).
- "</td><td>\n";
- // set up coment scale
- for ($i=COMMENTSCALE; $i>=0; $i--) {
- $num[$i] = $i;
- }
- choose_from_menu($num, "gradinggrade", $assessment->gradinggrade, "");
- echo "</td></tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "exercise").":</b></p></td>\n";
- echo " <td>\n";
- echo "<textarea name=\"teachercomment\" rows=\"5\" cols=\"75\" wrap=\"virtual\">\n";
- if (isset($assessment->teachercomment)) {
- echo $assessment->teachercomment;
- }
- echo "</textarea>\n";
- echo " </td>\n";
- echo "</tr>\n";
- }
- elseif ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
- // now show the teacher's comment (but not the grade) to the student if available...
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
- echo "</tr>\n";
- echo "<tr valign=top>\n";
- echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "exercise", $course->teacher).":</b></p></td>\n";
- echo " <td>\n";
- echo text_to_html($assessment->teachercomment);
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo "<td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
- echo "</tr>\n";
- }
- // ...and close the table
- echo "</table><br /><hr>\n";
-
- // ****************************second form******************************************
- // now print a normal assessment form based on the student's assessment for this submission
- // and allow the teacher to grade and add comments
- $studentassessment = $assessment;
- $allowchanges = true;
-
- print_heading_with_help(get_string("nowpleasemakeyourownassessment", "exercise",
- "$submissionowner->firstname $submissionowner->lastname"), "grading", "exercise");
-
- // is there an existing assessment for the submission
- if (!$assessment = exercise_get_submission_assessment($submission, $USER)) {
- // copy student's assessment without the comments for the student's submission
- $assessment = exercise_copy_assessment($studentassessment, $submission);
- }
-
- // only show the grade if grading strategy > 0 and the grade is positive
- if ($exercise->gradingstrategy and $assessment->grade >= 0) {
- echo "<CENTER><B>".get_string("thegradeis", "exercise").": ".
- number_format($assessment->grade * $exercise->grade / 100.0, 2)." (".
- get_string("maximumgrade")." ".number_format($exercise->grade, 0).")</B></CENTER><BR CLEAR=ALL>\n";
- }
-
- echo "<center><table cellpadding=\"2\" border=\"1\">\n";
- echo "<tr valign=top>\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"><center><b>".get_string("yourassessment", "exercise").
- "</b></center></td>\n";
- echo "</tr>\n";
-
-
- unset($grades);
- // get any previous grades...
- if ($gradesraw = get_records_select("exercise_grades", "assessmentid = $assessment->id", "elementno")) {
- foreach ($gradesraw as $grade) {
- $grades[] = $grade; // to renumber index 0,1,2...
- }
- }
-
- // determine what sort of grading
- switch ($exercise->gradingstrategy) {
- case 0: // no grading
- // now print the form
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- 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 1: // accumulative grading
- // now print the form
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "<P align=right><FONT size=1>Weight: "
- .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
- echo " <TD valign=\"top\">\n";
-
- // get the appropriate scale
- $scalenumber=$elements[$i]->scale;
- $SCALE = (object)$EXERCISE_SCALES[$scalenumber];
- switch ($SCALE->type) {
- case 'radio' :
- // show selections highest first
- echo "<CENTER><B>$SCALE->start</B> ";
- for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
- $checked = false;
- if (isset($grades[$i]->grade)) {
- if ($j == $grades[$i]->grade) {
- $checked = true;
- }
- }
- else { // there's no previous grade so check the lowest option
- if ($j == 0) {
- $checked = true;
- }
- }
- if ($checked) {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
- }
- else {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
- }
- }
- echo " <B>$SCALE->end</B></CENTER>\n";
- break;
- case 'selection' :
- unset($numbers);
- for ($j = $SCALE->size; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$i]->grade)) {
- choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[$i]", 0, "");
- }
- break;
-
- echo " </TD>\n";
- echo "</TR>\n";
- }
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- 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
- // now run through the elements
- $error = 0;
- for ($i=0; $i < count($elements) - 1; $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "<P align=right><FONT size=1>Weight: "
- .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
- echo " <TD valign=\"top\">\n";
-
- // get the appropriate scale - yes/no scale (0)
- $SCALE = (object) $EXERCISE_SCALES[0];
- switch ($SCALE->type) {
- case 'radio' :
- // show selections highest first
- echo "<CENTER><B>$SCALE->start</B> ";
- for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
- $checked = false;
- if (isset($grades[$i]->grade)) {
- if ($j == $grades[$i]->grade) {
- $checked = true;
- }
- }
- else { // there's no previous grade so check the lowest option
- if ($j == 0) {
- $checked = true;
- }
- }
- if ($checked) {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
- }
- else {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
- }
- }
- echo " <B>$SCALE->end</B></CENTER>\n";
- break;
- case 'selection' :
- unset($numbers);
- for ($j = $SCALE->size; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$i]->grade)) {
- choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[$i]", 0, "");
- }
- break;
- }
-
- echo " </TD>\n";
- echo "</TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[$i]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- if (isset($grades[$i]->feedback)) {
- echo text_to_html($grades[$i]->feedback);
- }
- }
- echo " </TD>\n";
- echo "</TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo "</TR>\n";
- if (empty($grades[$i]->grade)) {
- $error += $EXERCISE_EWEIGHTS[$elements[$i]->weight];
- }
- }
- // print the number of negative elements
- // echo "<TR><TD>".get_string("numberofnegativeitems", "exercise")."</TD><TD>$negativecount</TD></TR>\n";
- // echo "<TR valign=top>\n";
- // echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo "</TABLE></CENTER>\n";
- // now print the grade table
- echo "<P><CENTER><B>".get_string("gradetable","exercise")."</B></CENTER>\n";
- echo "<CENTER><TABLE cellpadding=5 border=1><TR><TD ALIGN=\"CENTER\">".
- get_string("numberofnegativeresponses", "exercise");
- echo "</TD><TD>". get_string("suggestedgrade", "exercise")."</TD></TR>\n";
- for ($i=0; $i<=$exercise->nelements; $i++) {
- if ($i == intval($error + 0.5)) {
- echo "<TR><TD ALIGN=\"CENTER\"><IMG SRC=\"$CFG->pixpath/t/right.gif\"> $i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
- }
- else {
- echo "<TR><TD ALIGN=\"CENTER\">$i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
- }
- }
- echo "</TABLE></CENTER>\n";
- echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
- get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
- unset($numbers);
- for ($j = 20; $j >= -20; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$exercise->nelements]->grade)) {
- choose_from_menu($numbers, "grade[$exercise->nelements]", $grades[$exercise->nelements]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[$exercise->nelements]", 0, "");
- }
- echo "</TD></TR>\n";
- break;
-
- case 3: // criteria grading
- echo "<TR valign=top>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("select", "exercise")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("suggestedgrade", "exercise")."</B></TD>\n";
- // find which criteria has been selected (saved in the zero element), if any
- if (isset($grades[0]->grade)) {
- $selection = $grades[0]->grade;
- }
- else {
- $selection = 0;
- }
- // now run through the elements
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD>$iplus1</TD><TD>".text_to_html($elements[$i]->description)."</TD>\n";
- if ($selection == $i) {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\" CHECKED></TD>\n";
- }
- else {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\"></TD>\n";
- }
- echo "<TD align=center>{$elements[$i]->maxscore}</TD></TR>\n";
- }
- echo "</TABLE></CENTER>\n";
- echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
- get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
- unset($numbers);
- for ($j = 20; $j >= -20; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[1]->grade)) {
- choose_from_menu($numbers, "grade[1]", $grades[1]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[1]", 0, "");
- }
- echo "</TD></TR>\n";
- break;
-
- case 4: // rubric grading
- // now run through the elements...
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=\"top\">\n";
- echo "<TD align=\"right\"><b>".get_string("element", "exercise")." $iplus1:</b></TD>\n";
- echo "<TD>".text_to_html($elements[$i]->description).
- "<P align=\"right\"><font size=\"1\">Weight: "
- .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</font></TD></tr>\n";
- echo "<TR valign=\"top\">\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\" align=\"center\"><B>".get_string("select", "exercise")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD></tr>\n";
- if (isset($grades[$i])) {
- $selection = $grades[$i]->grade;
- } else {
- $selection = 0;
- }
- // ...and the rubrics
- if ($rubricsraw = get_records_select("exercise_rubrics", "exerciseid = $exercise->id AND
- elementno = $i", "rubricno ASC")) {
- unset($rubrics);
- foreach ($rubricsraw as $rubic) {
- $rubrics[] = $rubic; // to renumber index 0,1,2...
- }
- for ($j=0; $j<5; $j++) {
- if (empty($rubrics[$j]->description)) {
- break; // out of inner for loop
- }
- echo "<TR valign=top>\n";
- if ($selection == $j) {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED></TD>\n";
- }else {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"></TD>\n";
- }
- echo "<TD>".text_to_html($rubrics[$j]->description)."</TD>\n";
- }
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
- echo "</tr>\n";
- }
- }
- break;
- } // end of outer switch
-
- // now get the general comment (present in all types)
- echo "<tr valign=\"top\">\n";
- switch ($exercise->gradingstrategy) {
- case 0:
- case 1:
- case 4 : // no grading, accumulative and rubic
- echo " <td align=\"right\"><P><B>". get_string("generalcomment", "exercise").":</B></P></TD>\n";
- break;
- default :
- echo " <td align=\"right\"><P><B>". get_string("reasonforadjustment", "exercise").":</B></P></TD>\n";
- }
- echo " <td>\n";
- if ($allowchanges) {
- echo " <textarea name=\"generalcomment\" rows=5 cols=75 wrap=\"virtual\">\n";
- if (isset($assessment->generalcomment)) {
- echo $assessment->generalcomment;
- }
- echo "</textarea>\n";
- }
- else {
- if ($assessment) {
- if (isset($assessment->generalcomment)) {
- echo text_to_html($assessment->generalcomment);
- }
- }
- else {
- print_string("yourfeedbackgoeshere", "exercise");
- }
- }
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
- echo "</tr>\n";
-
- // ...and close the table and show two buttons...to resubmit or not to resubmit
- echo "</table>\n";
- echo "<br /><input type=\"button\" value=\"".get_string("studentnotallowed", "exercise", $course->student)."\"
- onclick=\"document.assessmentform.submit();\">\n";
- echo "<input type=\"button\" value=\"".get_string("studentallowedtoresubmit", "exercise", $course->student)."\"
- onclick=\"document.assessmentform.resubmit.value='1';document.assessmentform.submit();\">\n";
- echo "</center></form>\n";
- }
+ // prints the user's assessment and a blank form for the user's submission (for teachers only)
+ global $CFG, $THEME, $USER, $EXERCISE_SCALES, $EXERCISE_EWEIGHTS;
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
+ error("Course is misconfigured");
+ }
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
+
+ $timenow = time();
+
+ if(!$submissionowner = get_record("user", "id", $submission->userid)) {
+ error("Print dual assessment form: User record not found");
+ }
+
+ echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
+ <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
+ if (!$teachersubmission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
+ error ("exercise_print_assessment_form: Submission record not found");
+ }
+ echo exercise_print_submission_title($exercise, $teachersubmission);
+ echo "</TD></TR></TABLE><BR CLEAR=ALL>\n";
+
+ print_heading_with_help(get_string("pleasegradetheassessment", "exercise",
+ "$submissionowner->firstname $submissionowner->lastname"), "gradinggrade", "exercise");
+
+ echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
+ <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
+ echo exercise_print_submission_title($exercise, $submission);
+ echo "</TD></TR></TABLE></center><BR CLEAR=ALL>\n";
+
+ // only show the grade if grading strategy > 0 and the grade is positive
+ if ($exercise->gradingstrategy and $assessment->grade >= 0) {
+ echo "<CENTER><B>".get_string("thegradeis", "exercise").": ".
+ number_format($assessment->grade * $exercise->grade / 100.0, 2)." (".
+ get_string("maximumgrade")." ".number_format($exercise->grade, 0).")</B></CENTER><BR CLEAR=ALL>\n";
+ }
+
+ // now print the student's assessment form with the teacher's comments if any
+ // in this (first) form only allow teachers to change their comment and the grading grade
+ // the other "active" elements in thie form are suffixed with "_0" to stop conflicts with the teacher's
+ // assessment form
+ $allowchanges = false;
+
+ // FORM is needed for Mozilla browsers, else radio bttons are not checked
+ ?>
+ <form name="assessmentform" method="post" action="assessments.php">
+ <INPUT TYPE="hidden" NAME="id" VALUE="<?PHP echo $cm->id ?>">
+ <input type="hidden" name="aid" value="<?PHP echo $assessment->id ?>">
+ <input type="hidden" name="sid" value="<?PHP echo $submission->id ?>">
+ <input type="hidden" name="action" value="updatedualassessment">
+ <input type="hidden" name="resubmit" value="0">
+ <input type="hidden" name="returnto" value="<?PHP echo $returnto ?>">
+ <?PHP
+ if (!$assessmentowner = get_record("user", "id", $assessment->userid)) {
+ error("Exercise_print_dual_assessment_form: could not find user record");
+ }
+ echo "<center><table cellpadding=\"2\" border=\"1\">\n";
+ echo "<tr valign=top>\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"><center><B>".get_string("assessmentby",
+ "exercise", "$assessmentowner->firstname $assessmentowner->lastname")."</b></center></td>\n";
+ echo "</tr>\n";
+
+ // get the assignment elements...
+ if (!$elementsraw = get_records("exercise_elements", "exerciseid", $exercise->id, "elementno ASC")) {
+ print_string("noteonassignmentelements", "exercise");
+ }
+ else {
+ foreach ($elementsraw as $element) {
+ $elements[] = $element; // to renumber index 0,1,2...
+ }
+ }
+
+ // get any previous grades...
+ if ($gradesraw = get_records_select("exercise_grades", "assessmentid = $assessment->id", "elementno")) {
+ foreach ($gradesraw as $grade) {
+ $grades[] = $grade; // to renumber index 0,1,2...
+ }
+ }
+
+ // determine what sort of grading
+ switch ($exercise->gradingstrategy) {
+ case 0: // no grading
+ // now print the form
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ 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 1: // accumulative grading
+ // now print the form
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "<P align=right><FONT size=1>Weight: "
+ .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
+ echo " <TD valign=\"top\">\n";
+
+ // get the appropriate scale
+ $scalenumber=$elements[$i]->scale;
+ $SCALE = (object)$EXERCISE_SCALES[$scalenumber];
+ switch ($SCALE->type) {
+ case 'radio' :
+ // show selections highest first
+ echo "<CENTER><B>$SCALE->start</B> ";
+ for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
+ $checked = false;
+ if (isset($grades[$i]->grade)) {
+ if ($j == $grades[$i]->grade) {
+ $checked = true;
+ }
+ }
+ else { // there's no previous grade so check the lowest option
+ if ($j == 0) {
+ $checked = true;
+ }
+ }
+ if ($checked) {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\" CHECKED> \n";
+ }
+ else {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\"> \n";
+ }
+ }
+ echo " <B>$SCALE->end</B></CENTER>\n";
+ break;
+ case 'selection' :
+ unset($numbers);
+ for ($j = $SCALE->size; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$i]->grade)) {
+ choose_from_menu($numbers, "grade2_0[$i]", $grades[$i]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade2_0[$i]", 0, "");
+ }
+ break;
+
+ echo " </TD>\n";
+ echo "</TR>\n";
+ }
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ 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
+ // now run through the elements
+ $error = 0;
+ for ($i=0; $i < count($elements) - 1; $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "<P align=right><FONT size=1>Weight: "
+ .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
+ echo " <TD valign=\"top\">\n";
+
+ // get the appropriate scale - yes/no scale (0)
+ $SCALE = (object) $EXERCISE_SCALES[0];
+ switch ($SCALE->type) {
+ case 'radio' :
+ // show selections highest first
+ echo "<CENTER><B>$SCALE->start</B> ";
+ for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
+ $checked = false;
+ if (isset($grades[$i]->grade)) {
+ if ($j == $grades[$i]->grade) {
+ $checked = true;
+ }
+ }
+ else { // there's no previous grade so check the lowest option
+ if ($j == 0) {
+ $checked = true;
+ }
+ }
+ if ($checked) {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\" CHECKED> \n";
+ }
+ else {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\"> \n";
+ }
+ }
+ echo " <B>$SCALE->end</B></CENTER>\n";
+ break;
+ case 'selection' :
+ unset($numbers);
+ for ($j = $SCALE->size; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$i]->grade)) {
+ choose_from_menu($numbers, "grade_0[$i]", $grades[$i]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade_0[$i]", 0, "");
+ }
+ break;
+ }
+
+ echo " </TD>\n";
+ echo "</TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[$i]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ if (isset($grades[$i]->feedback)) {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ }
+ echo " </TD>\n";
+ echo "</TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</TR>\n";
+ if (empty($grades[$i]->grade)) {
+ $error += $EXERCISE_EWEIGHTS[$elements[$i]->weight];
+ }
+ }
+ // print the number of negative elements
+ // echo "<TR><TD>".get_string("numberofnegativeitems", "exercise")."</TD><TD>$negativecount</TD></TR>\n";
+ // echo "<TR valign=top>\n";
+ // echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</TABLE></CENTER>\n";
+ // now print the grade table
+ echo "<P><CENTER><B>".get_string("gradetable","exercise")."</B></CENTER>\n";
+ echo "<CENTER><TABLE cellpadding=5 border=1><TR><TD ALIGN=\"CENTER\">".
+ get_string("numberofnegativeresponses", "exercise");
+ echo "</TD><TD>". get_string("suggestedgrade", "exercise")."</TD></TR>\n";
+ for ($i=0; $i<=$exercise->nelements; $i++) {
+ if ($i == intval($error + 0.5)) {
+ echo "<TR><TD ALIGN=\"CENTER\"><IMG SRC=\"$CFG->pixpath/t/right.gif\"> $i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ else {
+ echo "<TR><TD ALIGN=\"CENTER\">$i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ }
+ echo "</TABLE></CENTER>\n";
+ echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
+ get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
+ unset($numbers);
+ for ($j = 20; $j >= -20; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$exercise->nelements]->grade)) {
+ choose_from_menu($numbers, "grade_0[$exercise->nelements]", $grades[$exercise->nelements]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade_0[$exercise->nelements]", 0, "");
+ }
+ echo "</TD></TR>\n";
+ break;
+
+ case 3: // criteria grading
+ echo "<TR valign=top>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("select", "exercise")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("suggestedgrade", "exercise")."</B></TD>\n";
+ // find which criteria has been selected (saved in the zero element), if any
+ if (isset($grades[0]->grade)) {
+ $selection = $grades[0]->grade;
+ }
+ else {
+ $selection = 0;
+ }
+ // now run through the elements
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD>$iplus1</TD><TD>".text_to_html($elements[$i]->description)."</TD>\n";
+ if ($selection == $i) {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade_0[0]\" VALUE=\"$i\" CHECKED></TD>\n";
+ }
+ else {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade_0[0]\" VALUE=\"$i\"></TD>\n";
+ }
+ echo "<TD align=center>{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ echo "</TABLE></CENTER>\n";
+ echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
+ get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
+ unset($numbers);
+ for ($j = 20; $j >= -20; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[1]->grade)) {
+ choose_from_menu($numbers, "grade_0[1]", $grades[1]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[1]", 0, "");
+ }
+ echo "</TD></TR>\n";
+ break;
+
+ case 4: // rubric grading
+ // now run through the elements...
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=\"top\">\n";
+ echo "<TD align=\"right\"><b>".get_string("element", "exercise")." $iplus1:</b></TD>\n";
+ echo "<TD>".text_to_html($elements[$i]->description).
+ "<P align=\"right\"><font size=\"1\">Weight: "
+ .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</font></TD></tr>\n";
+ echo "<TR valign=\"top\">\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\" align=\"center\"><B>".get_string("select", "exercise")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD></tr>\n";
+ if (isset($grades[$i])) {
+ $selection = $grades[$i]->grade;
+ } else {
+ $selection = 0;
+ }
+ // ...and the rubrics
+ if ($rubricsraw = get_records_select("exercise_rubrics", "exerciseid = $exercise->id AND
+ elementno = $i", "rubricno ASC")) {
+ unset($rubrics);
+ foreach ($rubricsraw as $rubic) {
+ $rubrics[] = $rubic; // to renumber index 0,1,2...
+ }
+ for ($j=0; $j<5; $j++) {
+ if (empty($rubrics[$j]->description)) {
+ break; // out of inner for loop
+ }
+ echo "<TR valign=top>\n";
+ if ($selection == $j) {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\" CHECKED></TD>\n";
+ }else {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade_0[$i]\" VALUE=\"$j\"></TD>\n";
+ }
+ echo "<TD>".text_to_html($rubrics[$j]->description)."</TD>\n";
+ }
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</tr>\n";
+ }
+ }
+ break;
+ } // end of outer switch
+
+ // now get the general comment (present in all types)
+ echo "<tr valign=\"top\">\n";
+ switch ($exercise->gradingstrategy) {
+ case 0:
+ case 1:
+ case 4 : // no grading, accumulative and rubic
+ echo " <td align=\"right\"><P><B>". get_string("generalcomment", "exercise").":</B></P></TD>\n";
+ break;
+ default :
+ echo " <td align=\"right\"><P><B>". get_string("reasonforadjustment", "exercise").":</B></P></TD>\n";
+ }
+ echo " <td>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"generalcomment\" rows=5 cols=75 wrap=\"virtual\">\n";
+ if (isset($assessment->generalcomment)) {
+ echo $assessment->generalcomment;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ if ($assessment) {
+ if (isset($assessment->generalcomment)) {
+ echo text_to_html($assessment->generalcomment);
+ }
+ }
+ else {
+ print_string("yourfeedbackgoeshere", "exercise");
+ }
+ }
+ echo " </td>\n";
+ echo "</tr></table>\n";
+
+ // the teacher's comment on the assessment
+ // always allow the teacher to change/add their comment and grade if it's not their assessment!
+ echo "<p><center><table cellpadding=\"5\" border=\"1\">\n";
+ if (isteacher($course->id) and ($assessment->userid != $USER->id)) {
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".
+ get_string("pleasegradetheassessment", "exercise", "$submissionowner->firstname $submissionowner->lastname").
+ "</b></td>\n";
+ echo "</tr>\n";
+ echo "<tr><td align=\"right\"><b>".get_string("gradeforstudentsassessment", "exercise", $course->student).
+ "</td><td>\n";
+ // set up coment scale
+ for ($i=COMMENTSCALE; $i>=0; $i--) {
+ $num[$i] = $i;
+ }
+ choose_from_menu($num, "gradinggrade", $assessment->gradinggrade, "");
+ echo "</td></tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "exercise").":</b></p></td>\n";
+ echo " <td>\n";
+ echo "<textarea name=\"teachercomment\" rows=\"5\" cols=\"75\" wrap=\"virtual\">\n";
+ if (isset($assessment->teachercomment)) {
+ echo $assessment->teachercomment;
+ }
+ echo "</textarea>\n";
+ echo " </td>\n";
+ echo "</tr>\n";
+ }
+ elseif ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
+ // now show the teacher's comment (but not the grade) to the student if available...
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</tr>\n";
+ echo "<tr valign=top>\n";
+ echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "exercise", $course->teacher).":</b></p></td>\n";
+ echo " <td>\n";
+ echo text_to_html($assessment->teachercomment);
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo "<td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
+ echo "</tr>\n";
+ }
+ // ...and close the table
+ echo "</table><br /><hr>\n";
+
+ // ****************************second form******************************************
+ // now print a normal assessment form based on the student's assessment for this submission
+ // and allow the teacher to grade and add comments
+ $studentassessment = $assessment;
+ $allowchanges = true;
+
+ print_heading_with_help(get_string("nowpleasemakeyourownassessment", "exercise",
+ "$submissionowner->firstname $submissionowner->lastname"), "grading", "exercise");
+
+ // is there an existing assessment for the submission
+ if (!$assessment = exercise_get_submission_assessment($submission, $USER)) {
+ // copy student's assessment without the comments for the student's submission
+ $assessment = exercise_copy_assessment($studentassessment, $submission);
+ }
+
+ // only show the grade if grading strategy > 0 and the grade is positive
+ if ($exercise->gradingstrategy and $assessment->grade >= 0) {
+ echo "<CENTER><B>".get_string("thegradeis", "exercise").": ".
+ number_format($assessment->grade * $exercise->grade / 100.0, 2)." (".
+ get_string("maximumgrade")." ".number_format($exercise->grade, 0).")</B></CENTER><BR CLEAR=ALL>\n";
+ }
+
+ echo "<center><table cellpadding=\"2\" border=\"1\">\n";
+ echo "<tr valign=top>\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"><center><b>".get_string("yourassessment", "exercise").
+ "</b></center></td>\n";
+ echo "</tr>\n";
+
+
+ unset($grades);
+ // get any previous grades...
+ if ($gradesraw = get_records_select("exercise_grades", "assessmentid = $assessment->id", "elementno")) {
+ foreach ($gradesraw as $grade) {
+ $grades[] = $grade; // to renumber index 0,1,2...
+ }
+ }
+
+ // determine what sort of grading
+ switch ($exercise->gradingstrategy) {
+ case 0: // no grading
+ // now print the form
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ 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 1: // accumulative grading
+ // now print the form
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "<P align=right><FONT size=1>Weight: "
+ .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
+ echo " <TD valign=\"top\">\n";
+
+ // get the appropriate scale
+ $scalenumber=$elements[$i]->scale;
+ $SCALE = (object)$EXERCISE_SCALES[$scalenumber];
+ switch ($SCALE->type) {
+ case 'radio' :
+ // show selections highest first
+ echo "<CENTER><B>$SCALE->start</B> ";
+ for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
+ $checked = false;
+ if (isset($grades[$i]->grade)) {
+ if ($j == $grades[$i]->grade) {
+ $checked = true;
+ }
+ }
+ else { // there's no previous grade so check the lowest option
+ if ($j == 0) {
+ $checked = true;
+ }
+ }
+ if ($checked) {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
+ }
+ else {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
+ }
+ }
+ echo " <B>$SCALE->end</B></CENTER>\n";
+ break;
+ case 'selection' :
+ unset($numbers);
+ for ($j = $SCALE->size; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$i]->grade)) {
+ choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[$i]", 0, "");
+ }
+ break;
+
+ echo " </TD>\n";
+ echo "</TR>\n";
+ }
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ 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
+ // now run through the elements
+ $error = 0;
+ for ($i=0; $i < count($elements) - 1; $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","exercise")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "<P align=right><FONT size=1>Weight: "
+ .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
+ echo " <TD valign=\"top\">\n";
+
+ // get the appropriate scale - yes/no scale (0)
+ $SCALE = (object) $EXERCISE_SCALES[0];
+ switch ($SCALE->type) {
+ case 'radio' :
+ // show selections highest first
+ echo "<CENTER><B>$SCALE->start</B> ";
+ for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
+ $checked = false;
+ if (isset($grades[$i]->grade)) {
+ if ($j == $grades[$i]->grade) {
+ $checked = true;
+ }
+ }
+ else { // there's no previous grade so check the lowest option
+ if ($j == 0) {
+ $checked = true;
+ }
+ }
+ if ($checked) {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
+ }
+ else {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
+ }
+ }
+ echo " <B>$SCALE->end</B></CENTER>\n";
+ break;
+ case 'selection' :
+ unset($numbers);
+ for ($j = $SCALE->size; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$i]->grade)) {
+ choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[$i]", 0, "");
+ }
+ break;
+ }
+
+ echo " </TD>\n";
+ echo "</TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[$i]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ if (isset($grades[$i]->feedback)) {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ }
+ echo " </TD>\n";
+ echo "</TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</TR>\n";
+ if (empty($grades[$i]->grade)) {
+ $error += $EXERCISE_EWEIGHTS[$elements[$i]->weight];
+ }
+ }
+ // print the number of negative elements
+ // echo "<TR><TD>".get_string("numberofnegativeitems", "exercise")."</TD><TD>$negativecount</TD></TR>\n";
+ // echo "<TR valign=top>\n";
+ // echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</TABLE></CENTER>\n";
+ // now print the grade table
+ echo "<P><CENTER><B>".get_string("gradetable","exercise")."</B></CENTER>\n";
+ echo "<CENTER><TABLE cellpadding=5 border=1><TR><TD ALIGN=\"CENTER\">".
+ get_string("numberofnegativeresponses", "exercise");
+ echo "</TD><TD>". get_string("suggestedgrade", "exercise")."</TD></TR>\n";
+ for ($i=0; $i<=$exercise->nelements; $i++) {
+ if ($i == intval($error + 0.5)) {
+ echo "<TR><TD ALIGN=\"CENTER\"><IMG SRC=\"$CFG->pixpath/t/right.gif\"> $i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ else {
+ echo "<TR><TD ALIGN=\"CENTER\">$i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ }
+ echo "</TABLE></CENTER>\n";
+ echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
+ get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
+ unset($numbers);
+ for ($j = 20; $j >= -20; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$exercise->nelements]->grade)) {
+ choose_from_menu($numbers, "grade[$exercise->nelements]", $grades[$exercise->nelements]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[$exercise->nelements]", 0, "");
+ }
+ echo "</TD></TR>\n";
+ break;
+
+ case 3: // criteria grading
+ echo "<TR valign=top>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("select", "exercise")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("suggestedgrade", "exercise")."</B></TD>\n";
+ // find which criteria has been selected (saved in the zero element), if any
+ if (isset($grades[0]->grade)) {
+ $selection = $grades[0]->grade;
+ }
+ else {
+ $selection = 0;
+ }
+ // now run through the elements
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD>$iplus1</TD><TD>".text_to_html($elements[$i]->description)."</TD>\n";
+ if ($selection == $i) {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\" CHECKED></TD>\n";
+ }
+ else {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\"></TD>\n";
+ }
+ echo "<TD align=center>{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ echo "</TABLE></CENTER>\n";
+ echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD align=\"right\"><b>".
+ get_string("optionaladjustment", "exercise")."</b></TD><TD>\n";
+ unset($numbers);
+ for ($j = 20; $j >= -20; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[1]->grade)) {
+ choose_from_menu($numbers, "grade[1]", $grades[1]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[1]", 0, "");
+ }
+ echo "</TD></TR>\n";
+ break;
+
+ case 4: // rubric grading
+ // now run through the elements...
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=\"top\">\n";
+ echo "<TD align=\"right\"><b>".get_string("element", "exercise")." $iplus1:</b></TD>\n";
+ echo "<TD>".text_to_html($elements[$i]->description).
+ "<P align=\"right\"><font size=\"1\">Weight: "
+ .number_format($EXERCISE_EWEIGHTS[$elements[$i]->weight], 2)."</font></TD></tr>\n";
+ echo "<TR valign=\"top\">\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\" align=\"center\"><B>".get_string("select", "exercise")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","exercise")."</B></TD></tr>\n";
+ if (isset($grades[$i])) {
+ $selection = $grades[$i]->grade;
+ } else {
+ $selection = 0;
+ }
+ // ...and the rubrics
+ if ($rubricsraw = get_records_select("exercise_rubrics", "exerciseid = $exercise->id AND
+ elementno = $i", "rubricno ASC")) {
+ unset($rubrics);
+ foreach ($rubricsraw as $rubic) {
+ $rubrics[] = $rubic; // to renumber index 0,1,2...
+ }
+ for ($j=0; $j<5; $j++) {
+ if (empty($rubrics[$j]->description)) {
+ break; // out of inner for loop
+ }
+ echo "<TR valign=top>\n";
+ if ($selection == $j) {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED></TD>\n";
+ }else {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"></TD>\n";
+ }
+ echo "<TD>".text_to_html($rubrics[$j]->description)."</TD>\n";
+ }
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</tr>\n";
+ }
+ }
+ break;
+ } // end of outer switch
+
+ // now get the general comment (present in all types)
+ echo "<tr valign=\"top\">\n";
+ switch ($exercise->gradingstrategy) {
+ case 0:
+ case 1:
+ case 4 : // no grading, accumulative and rubic
+ echo " <td align=\"right\"><P><B>". get_string("generalcomment", "exercise").":</B></P></TD>\n";
+ break;
+ default :
+ echo " <td align=\"right\"><P><B>". get_string("reasonforadjustment", "exercise").":</B></P></TD>\n";
+ }
+ echo " <td>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"generalcomment\" rows=5 cols=75 wrap=\"virtual\">\n";
+ if (isset($assessment->generalcomment)) {
+ echo $assessment->generalcomment;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ if ($assessment) {
+ if (isset($assessment->generalcomment)) {
+ echo text_to_html($assessment->generalcomment);
+ }
+ }
+ else {
+ print_string("yourfeedbackgoeshere", "exercise");
+ }
+ }
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</tr>\n";
+
+ // ...and close the table and show two buttons...to resubmit or not to resubmit
+ echo "</table>\n";
+ echo "<br /><input type=\"button\" value=\"".get_string("studentnotallowed", "exercise", $course->student)."\"
+ onclick=\"document.assessmentform.submit();\">\n";
+ echo "<input type=\"button\" value=\"".get_string("studentallowedtoresubmit", "exercise", $course->student)."\"
+ onclick=\"document.assessmentform.resubmit.value='1';document.assessmentform.submit();\">\n";
+ echo "</center></form>\n";
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_print_league_table($exercise) {
- // print an order table of (student) submissions in grade order, only print the student's best submission when
- // there are multiple submissions
- if (! $course = get_record("course", "id", $exercise->course)) {
- error("Print league table: Course is misconfigured");
- }
- $nentries = $exercise->showleaguetable;
- if ($nentries == 99) {
- $nentries = 999999; // a large number
- }
-
- if ($exercise->anonymous and isstudent($course->id)) {
+ // print an order table of (student) submissions in grade order, only print the student's best submission when
+ // there are multiple submissions
+ if (! $course = get_record("course", "id", $exercise->course)) {
+ error("Print league table: Course is misconfigured");
+ }
+ $nentries = $exercise->showleaguetable;
+ if ($nentries == 99) {
+ $nentries = 999999; // a large number
+ }
+
+ if ($exercise->anonymous and isstudent($course->id)) {
$table->head = array (get_string("title", "exercise"), get_string("grade"));
$table->align = array ("left", "center");
$table->size = array ("*", "*");
$table->cellpadding = 2;
$table->cellspacing = 0;
- if ($submissions = exercise_get_student_submissions($exercise, "grade")) {
+ if ($submissions = exercise_get_student_submissions($exercise, "grade")) {
$n = 1;
- foreach ($submissions as $submission) {
- if (empty($done[$submission->userid])) {
+ foreach ($submissions as $submission) {
+ if (empty($done[$submission->userid])) {
if ($submission->late) {
continue;
}
- if (!$user = get_record("user", "id", $submission->userid)) {
- error("Print league table: user not found");
- }
- if ($exercise->anonymous and isstudent($course->id)) {
- $table->data[] = array(exercise_print_submission_title($exercise, $submission),
+ if (!$user = get_record("user", "id", $submission->userid)) {
+ error("Print league table: user not found");
+ }
+ if ($exercise->anonymous and isstudent($course->id)) {
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission),
number_format($submission->grade * $exercise->grade / 100.0, 1));
} else {
- $table->data[] = array(exercise_print_submission_title($exercise, $submission),
+ $table->data[] = array(exercise_print_submission_title($exercise, $submission),
$user->firstname." ".$user->lastname,
number_format($submission->grade * $exercise->grade / 100.0, 1));
}
- $n++;
+ $n++;
if ($n > $nentries) {
break;
}
$done[$submission->userid] = 'ok';
- }
- }
- print_heading(get_string("leaguetable", "exercise"));
- print_table($table);
- }
- }
-
+ }
+ }
+ print_heading(get_string("leaguetable", "exercise"));
+ print_table($table);
+ }
+ }
+
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_print_submission_assessments($exercise, $submission) {
- // Returns a list of grades for this submission
-
- if (! $course = get_record("course", "id", $exercise->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $str = '';
- if ($assessments = exercise_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- if (isteacher($exercise->course, $assessment->userid)) {
- $str .= "[".number_format($assessment->grade * $exercise->grade / 100.0, 0)."] ";
- }
- else { // assessment by student - shouldn't happen!
- $str .= "{".number_format($assessment->grade * $exercise->grade / 100.0, 0)."} ";
- }
- }
- }
- if (!$str) {
- $str = " "; // be kind to Mozilla browsers!
- }
+ // Returns a list of grades for this submission
+
+ if (! $course = get_record("course", "id", $exercise->course)) {
+ error("Course is misconfigured");
+ }
+ if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
+
+ $str = '';
+ if ($assessments = exercise_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ if (isteacher($exercise->course, $assessment->userid)) {
+ $str .= "[".number_format($assessment->grade * $exercise->grade / 100.0, 0)."] ";
+ }
+ else { // assessment by student - shouldn't happen!
+ $str .= "{".number_format($assessment->grade * $exercise->grade / 100.0, 0)."} ";
+ }
+ }
+ }
+ if (!$str) {
+ $str = " "; // be kind to Mozilla browsers!
+ }
return $str;
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_print_submission_title($exercise, $submission) {
global $CFG;
-
- if (!$submission->timecreated) { // a "no submission"
- return $submission->title;
- }
+
+ if (!$submission->timecreated) { // a "no submission"
+ return $submission->title;
+ }
$filearea = exercise_file_area_name($exercise, $submission);
if ($basedir = exercise_file_area($exercise, $submission)) {
function exercise_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;
-
+// $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>";
- }
+ $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->names)) {
echo "<tr>";
- echo "<td class=\"generaltablecell\">".
- "<img width=\"10\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\"></td>\n";
+ 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=\"$align[$key]\"";
+ } else {
$alignment = "align=\"center\"";
}
if (isset($size[$key])) {
$width = "width=\"$size[$key]\"";
} else {
- $width = "";
- }
+ $width = "";
+ }
if (isset($wrap[$key])) {
- $wrapping = "no wrap";
- } else {
+ $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";
+ 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 "<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();
+ // print_simple_box_end();
return true;
}
$table->size[] = "*";
foreach ($exercises as $exercise) {
$table->head[] = $exercise->name;
- $table->align[] = "center";
- $table->size[] = "*";
+ $table->align[] = "center";
+ $table->size[] = "*";
}
- $table->cellpadding = 2;
- $table->cellspacing = 0;
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
if (!$teachers = get_course_teachers($course->id, "u.firstname, u.lastname")) {
error("No teachers on this course!");
$j++;
}
$grandtotal += $total;
- $table->data[] = array_merge(array("$teacher->firstname $teacher->lastname"), array($total), $n);
- }
- $table->data[] = array_merge(array(get_string("total")), array($grandtotal), $grand);
- print_heading(get_string("teacherassessmenttable", "exercise", $course->teacher));
- print_table($table);
+ $table->data[] = array_merge(array("$teacher->firstname $teacher->lastname"), array($total), $n);
+ }
+ $table->data[] = array_merge(array(get_string("total")), array($grandtotal), $grand);
+ print_heading(get_string("teacherassessmenttable", "exercise", $course->teacher));
+ print_table($table);
}
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_print_upload_form($exercise) {
- if (! $course = get_record("course", "id", $exercise->course)) {
+ if (! $course = get_record("course", "id", $exercise->course)) {
error("Course is misconfigured");
}
if (! $cm = get_coursemodule_from_instance("exercise", $exercise->id, $course->id)) {
error("Course Module ID was incorrect");
- }
+ }
echo "<DIV ALIGN=CENTER>";
echo "<FORM ENCTYPE=\"multipart/form-data\" METHOD=\"POST\" ACTION=upload.php>";
echo " <INPUT TYPE=hidden NAME=MAX_FILE_SIZE value=\"$exercise->maxbytes\">";
echo " <INPUT TYPE=hidden NAME=id VALUE=\"$cm->id\">";
- echo "<b>".get_string("title", "exercise")."</b>: <INPUT NAME=\"title\" TYPE=\"text\" SIZE=\"60\" MAXSIZE=\"100\"><BR><BR>\n";
+ echo "<b>".get_string("title", "exercise")."</b>: <INPUT NAME=\"title\" TYPE=\"text\" SIZE=\"60\" MAXSIZE=\"100\"><BR><BR>\n";
echo " <INPUT NAME=\"newfile\" TYPE=\"file\" size=\"50\">";
echo " <INPUT TYPE=submit NAME=save VALUE=\"".get_string("uploadthisfile")."\">";
echo "</FORM>";
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_print_user_assessments($exercise, $user) {
- // Returns the number of assessments and a hyperlinked list of grading grades for the assessments made by this user
-
- if ($assessments = exercise_get_user_assessments($exercise, $user)) {
- $n = count($assessments);
- $str = "$n (";
- foreach ($assessments as $assessment) {
- if ($assessment->timegraded) {
- $gradingscaled = intval($assessment->gradinggrade * $exercise->grade / COMMENTSCALE);
- $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$exercise->id&aid=$assessment->id\">";
- $str .= "$gradingscaled</A> ";
- }
- else {
- $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$exercise->id&aid=$assessment->id\">";
- $str .= "-</A> ";
- }
- }
- $str .= ")";
- }
- else {
- $str ="0";
- }
+ // Returns the number of assessments and a hyperlinked list of grading grades for the assessments made by this user
+
+ if ($assessments = exercise_get_user_assessments($exercise, $user)) {
+ $n = count($assessments);
+ $str = "$n (";
+ foreach ($assessments as $assessment) {
+ if ($assessment->timegraded) {
+ $gradingscaled = intval($assessment->gradinggrade * $exercise->grade / COMMENTSCALE);
+ $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$exercise->id&aid=$assessment->id\">";
+ $str .= "$gradingscaled</A> ";
+ }
+ else {
+ $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$exercise->id&aid=$assessment->id\">";
+ $str .= "-</A> ";
+ }
+ }
+ $str .= ")";
+ }
+ else {
+ $str ="0";
+ }
return $str;
- }
+ }
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_test_for_resubmission($exercise, $user) {
- // see if any of the user's submissions have the resubmit flag set
- $result = false;
- if ($submissions = exercise_get_user_submissions($exercise, $user)) {
- foreach ($submissions as $submission) {
- if ($submission->resubmit) {
- $result =true;
- break;
- }
- }
- }
- return $result;
- }
-
+ // see if any of the user's submissions have the resubmit flag set
+ $result = false;
+ if ($submissions = exercise_get_user_submissions($exercise, $user)) {
+ foreach ($submissions as $submission) {
+ if ($submission->resubmit) {
+ $result =true;
+ break;
+ }
+ }
+ }
+ return $result;
+ }
+
///////////////////////////////////////////////////////////////////////////////////////////////
function exercise_test_user_assessments($exercise, $user) {
- // see if user has assessed one of teacher's exercises/submissions...
- global $CFG;
-
- $result = false;
- $timenow =time();
- if ($submissions = exercise_get_teacher_submissions($exercise)) {
- foreach ($submissions as $submission) {
- if ($assessment = exercise_get_submission_assessment($submission, $user)) {
- // ...the date stamp on the assessment should be in the past
- if ($assessment->timecreated < $timenow) {
- $result = true;
- break;
- }
- }
- }
- }
- return $result;
- }
+ // see if user has assessed one of teacher's exercises/submissions...
+ global $CFG;
+
+ $result = false;
+ $timenow =time();
+ if ($submissions = exercise_get_teacher_submissions($exercise)) {
+ foreach ($submissions as $submission) {
+ if ($assessment = exercise_get_submission_assessment($submission, $user)) {
+ // ...the date stamp on the assessment should be in the past
+ if ($assessment->timecreated < $timenow) {
+ $result = true;
+ break;
+ }
+ }
+ }
+ }
+ return $result;
+ }
?>
1 => get_string("accumulative", "workshop"),
2 => get_string("errorbanded", "workshop"),
3 => get_string("criterion", "workshop"),
- 4 => get_string("rubric", "workshop") );
+ 4 => get_string("rubric", "workshop") );
$WORKSHOP_SHOWGRADES = array (0 => get_string("dontshowgrades", "workshop"),
1 => get_string("showgrades", "workshop") );
$WORKSHOP_SCALES = array(
- 0 => array( 'name' => get_string("scaleyes", "workshop"), 'type' => 'radio',
+ 0 => array( 'name' => get_string("scaleyes", "workshop"), 'type' => 'radio',
'size' => 2, 'start' => get_string("yes"), 'end' => get_string("no")),
- 1 => array( 'name' => get_string("scalepresent", "workshop"), 'type' => 'radio',
+ 1 => array( 'name' => get_string("scalepresent", "workshop"), 'type' => 'radio',
'size' => 2, 'start' => get_string("present", "workshop"),
'end' => get_string("absent", "workshop")),
- 2 => array( 'name' => get_string("scalecorrect", "workshop"), 'type' => 'radio',
+ 2 => array( 'name' => get_string("scalecorrect", "workshop"), 'type' => 'radio',
'size' => 2, 'start' => get_string("correct", "workshop"),
'end' => get_string("incorrect", "workshop")),
- 3 => array( 'name' => get_string("scalegood3", "workshop"), 'type' => 'radio',
+ 3 => array( 'name' => get_string("scalegood3", "workshop"), 'type' => 'radio',
'size' => 3, 'start' => get_string("good", "workshop"),
'end' => get_string("poor", "workshop")),
- 4 => array( 'name' => get_string("scaleexcellent4", "workshop"), 'type' => 'radio',
+ 4 => array( 'name' => get_string("scaleexcellent4", "workshop"), 'type' => 'radio',
'size' => 4, 'start' => get_string("excellent", "workshop"),
'end' => get_string("verypoor", "workshop")),
- 5 => array( 'name' => get_string("scaleexcellent5", "workshop"), 'type' => 'radio',
+ 5 => array( 'name' => get_string("scaleexcellent5", "workshop"), 'type' => 'radio',
'size' => 5, 'start' => get_string("excellent", "workshop"),
'end' => get_string("verypoor", "workshop")),
- 6 => array( 'name' => get_string("scaleexcellent7", "workshop"), 'type' => 'radio',
+ 6 => array( 'name' => get_string("scaleexcellent7", "workshop"), 'type' => 'radio',
'size' => 7, 'start' => get_string("excellent", "workshop"),
'end' => get_string("verypoor", "workshop")),
- 7 => array( 'name' => get_string("scale10", "workshop"), 'type' => 'selection',
+ 7 => array( 'name' => get_string("scale10", "workshop"), 'type' => 'selection',
'size' => 10),
- 8 => array( 'name' => get_string("scale20", "workshop"), 'type' => 'selection',
+ 8 => array( 'name' => get_string("scale20", "workshop"), 'type' => 'selection',
'size' => 20),
- 9 => array( 'name' => get_string("scale100", "workshop"), 'type' => 'selection',
+ 9 => array( 'name' => get_string("scale100", "workshop"), 'type' => 'selection',
'size' => 100));
$WORKSHOP_EWEIGHTS = array( 0 => -4.0, 1 => -2.0, 2 => -1.5, 3 => -1.0, 4 => -0.75, 5 => -0.5, 6 => -0.25,
- 7 => 0.0, 8 => 0.25, 9 => 0.5, 10 => 0.75, 11=> 1.0, 12 => 1.5, 13=> 2.0,
+ 7 => 0.0, 8 => 0.25, 9 => 0.5, 10 => 0.75, 11=> 1.0, 12 => 1.5, 13=> 2.0,
14 => 4.0);
$WORKSHOP_FWEIGHTS = array( 0 => 0, 1 => 0.1, 2 => 0.25, 3 => 0.5, 4 => 0.75, 5 => 1.0, 6 => 1.5,
- 7 => 2.0, 8 => 3.0, 9 => 5.0, 10 => 7.5, 11=> 10.0, 12=>50.0);
+ 7 => 2.0, 8 => 3.0, 9 => 5.0, 10 => 7.5, 11=> 10.0, 12=>50.0);
if (!defined("COMMENTSCALE")) {
- define("COMMENTSCALE", 20);
- }
+ define("COMMENTSCALE", 20);
+ }
/*** Standard Moodle functions ******************
$workshop->timemodified = time();
$workshop->deadline = make_timestamp($workshop->deadlineyear,
- $workshop->deadlinemonth, $workshop->deadlineday, $workshop->deadlinehour,
- $workshop->deadlineminute);
+ $workshop->deadlinemonth, $workshop->deadlineday, $workshop->deadlinehour,
+ $workshop->deadlineminute);
if ($returnid = insert_record("workshop", $workshop)) {
// Function to be run periodically according to the moodle cron
global $CFG, $USER;
-
- // Find all workshop notifications that have yet to be mailed out, and mails them
+
+ // Find all workshop notifications that have yet to be mailed out, and mails them
$cutofftime = time() - $CFG->maxeditingtime;
- // look for new assessments
- if ($assessments = workshop_get_unmailed_assessments($cutofftime)) {
+ // look for new assessments
+ if ($assessments = workshop_get_unmailed_assessments($cutofftime)) {
$timenow = time();
foreach ($assessments as $assessment) {
- echo "Processing workshop assessment $assessment->id\n";
+ echo "Processing workshop assessment $assessment->id\n";
// only process the entry once
- if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
- echo "Could not update the mailed field for id $assessment->id\n";
- }
-
+ if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
+ echo "Could not update the mailed field for id $assessment->id\n";
+ }
+
if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
- echo "Could not find submission $assessment->submissionid\n";
- continue;
- }
- if (! $workshop = get_record("workshop", "id", $submission->workshopid)) {
- echo "Could not find workshop id $submission->workshopid\n";
- continue;
- }
+ echo "Could not find submission $assessment->submissionid\n";
+ continue;
+ }
+ if (! $workshop = get_record("workshop", "id", $submission->workshopid)) {
+ echo "Could not find workshop id $submission->workshopid\n";
+ continue;
+ }
if (! $course = get_record("course", "id", $workshop->course)) {
error("Could not find course id $workshop->course");
continue;
error("Course Module ID was incorrect");
continue;
}
- if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
- echo "Could not find user $submission->userid\n";
- continue;
- }
- if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
- echo "Could not find user $assessment->userid\n";
- continue;
- }
- if (! isstudent($course->id, $submissionowner->id) and !isteacher($course->id,
+ if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
+ echo "Could not find user $submission->userid\n";
+ continue;
+ }
+ if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
+ echo "Could not find user $assessment->userid\n";
+ continue;
+ }
+ if (! isstudent($course->id, $submissionowner->id) and !isteacher($course->id,
$submissionowner->id)) {
- continue; // Not an active participant
- }
- if (! isstudent($course->id, $assessmentowner->id) and !isteacher($course->id,
+ continue; // Not an active participant
+ }
+ if (! isstudent($course->id, $assessmentowner->id) and !isteacher($course->id,
$assessmentowner->id)) {
- continue; // Not an active participant
- }
+ continue; // Not an active participant
+ }
// don't sent self assessment
- if ($submissionowner->id == $assessmentowner->id) {
+ if ($submissionowner->id == $assessmentowner->id) {
continue;
}
- $strworkshops = get_string("modulenameplural", "workshop");
- $strworkshop = get_string("modulename", "workshop");
-
- // it's an assessment, tell the submission owner
- $USER->lang = $submissionowner->lang;
- $sendto = $submissionowner;
- // "Your assignment \"$submission->title\" has been assessed by"
- if (isstudent($course->id, $assessmentowner->id)) {
- $msg = get_string("mail1", "workshop", $submission->title)." a $course->student.\n";
- }
- else {
- $msg = get_string("mail1", "workshop", $submission->title).
+ $strworkshops = get_string("modulenameplural", "workshop");
+ $strworkshop = get_string("modulename", "workshop");
+
+ // it's an assessment, tell the submission owner
+ $USER->lang = $submissionowner->lang;
+ $sendto = $submissionowner;
+ // "Your assignment \"$submission->title\" has been assessed by"
+ if (isstudent($course->id, $assessmentowner->id)) {
+ $msg = get_string("mail1", "workshop", $submission->title)." a $course->student.\n";
+ }
+ else {
+ $msg = get_string("mail1", "workshop", $submission->title).
" $assessmentowner->firstname $assessmentowner->lastname.\n";
- }
- // "The comments and grade can be seen in the workshop assignment '$workshop->name'
- $msg .= get_string("mail2", "workshop", $workshop->name)."\n\n";
-
- $postsubject = "$course->shortname: $strworkshops: $workshop->name";
- $posttext = "$course->shortname -> $strworkshops -> $workshop->name\n";
- $posttext .= "---------------------------------------------------------------------\n";
- $posttext .= $msg;
- // "You can see it in your workshop assignment"
- $posttext .= get_string("mail3", "workshop").":\n";
- $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
- $posttext .= "---------------------------------------------------------------------\n";
- if ($sendto->mailformat == 1) { // HTML
- $posthtml = "<P><FONT FACE=sans-serif>".
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
- $posthtml .= "<HR><FONT FACE=sans-serif>";
- $posthtml .= "<P>$msg</P>";
- $posthtml .= "<P>".get_string("mail3", "workshop").
- " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
- } else {
- $posthtml = "";
- }
-
- if (!$teacher = get_teacher($course->id)) {
- echo "Error: can not find teacher for course $course->id!\n";
- }
-
- if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
- echo "Error: workshop cron: Could not send out mail for id $submission->id to
+ }
+ // "The comments and grade can be seen in the workshop assignment '$workshop->name'
+ $msg .= get_string("mail2", "workshop", $workshop->name)."\n\n";
+
+ $postsubject = "$course->shortname: $strworkshops: $workshop->name";
+ $posttext = "$course->shortname -> $strworkshops -> $workshop->name\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ $posttext .= $msg;
+ // "You can see it in your workshop assignment"
+ $posttext .= get_string("mail3", "workshop").":\n";
+ $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ if ($sendto->mailformat == 1) { // HTML
+ $posthtml = "<P><FONT FACE=sans-serif>".
+ "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
+ $posthtml .= "<HR><FONT FACE=sans-serif>";
+ $posthtml .= "<P>$msg</P>";
+ $posthtml .= "<P>".get_string("mail3", "workshop").
+ " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
+ } else {
+ $posthtml = "";
+ }
+
+ if (!$teacher = get_teacher($course->id)) {
+ echo "Error: can not find teacher for course $course->id!\n";
+ }
+
+ if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
+ echo "Error: workshop cron: Could not send out mail for id $submission->id to
user $sendto->id ($sendto->email)\n";
- }
- }
- }
-
- // look for new assessments of resubmissions
- if ($assessments = workshop_get_unmailed_resubmissions($cutofftime)) {
+ }
+ }
+ }
+
+ // look for new assessments of resubmissions
+ if ($assessments = workshop_get_unmailed_resubmissions($cutofftime)) {
$timenow = time();
foreach ($assessments as $assessment) {
- echo "Processing workshop assessment $assessment->id\n";
+ echo "Processing workshop assessment $assessment->id\n";
// only process the entry once
- if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
- echo "Could not update the mailed field for id $assessment->id\n";
- }
-
+ if (! set_field("workshop_assessments", "mailed", "1", "id", "$assessment->id")) {
+ echo "Could not update the mailed field for id $assessment->id\n";
+ }
+
if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
- echo "Could not find submission $assessment->submissionid\n";
- continue;
- }
- if (! $workshop = get_record("workshop", "id", $submission->workshopid)) {
- echo "Could not find workshop id $submission->workshopid\n";
- continue;
- }
+ echo "Could not find submission $assessment->submissionid\n";
+ continue;
+ }
+ if (! $workshop = get_record("workshop", "id", $submission->workshopid)) {
+ echo "Could not find workshop id $submission->workshopid\n";
+ continue;
+ }
if (! $course = get_record("course", "id", $workshop->course)) {
error("Could not find course id $workshop->course");
continue;
error("Course Module ID was incorrect");
continue;
}
- if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
- echo "Could not find user $submission->userid\n";
- continue;
- }
- if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
- echo "Could not find user $assessment->userid\n";
- continue;
- }
- if (! isstudent($course->id, $submissionowner->id) and !isteacher($course->id,
+ if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
+ echo "Could not find user $submission->userid\n";
+ continue;
+ }
+ if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
+ echo "Could not find user $assessment->userid\n";
+ continue;
+ }
+ if (! isstudent($course->id, $submissionowner->id) and !isteacher($course->id,
$submissionowner->id)) {
- continue; // Not an active participant
- }
- if (! isstudent($course->id, $assessmentowner->id) and !isteacher($course->id,
+ continue; // Not an active participant
+ }
+ if (! isstudent($course->id, $assessmentowner->id) and !isteacher($course->id,
$assessmentowner->id)) {
- continue; // Not an active participant
- }
-
- $strworkshops = get_string("modulenameplural", "workshop");
- $strworkshop = get_string("modulename", "workshop");
-
- // it's a resubission assessment, tell the assessment owner to (re)assess
- $USER->lang = $assessmentowner->lang;
- $sendto = $assessmentowner;
- // "The assignment \"$submission->title\" is a revised piece of work. "
- $msg = get_string("mail8", "workshop", $submission->title)."\n";
- // "Please assess it in the workshop assignment '$workshop->name'
- $msg .= get_string("mail9", "workshop", $workshop->name)."\n\n";
-
- $postsubject = "$course->shortname: $strworkshops: $workshop->name";
- $posttext = "$course->shortname -> $strworkshops -> $workshop->name\n";
- $posttext .= "---------------------------------------------------------------------\n";
- $posttext .= $msg;
- // "You can assess it in your workshop assignment"
- $posttext .= get_string("mail10", "workshop").":\n";
- $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
- $posttext .= "---------------------------------------------------------------------\n";
- if ($sendto->mailformat == 1) { // HTML
- $posthtml = "<P><FONT FACE=sans-serif>".
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
- $posthtml .= "<HR><FONT FACE=sans-serif>";
- $posthtml .= "<P>$msg</P>";
- $posthtml .= "<P>".get_string("mail3", "workshop").
- " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
- }
+ continue; // Not an active participant
+ }
+
+ $strworkshops = get_string("modulenameplural", "workshop");
+ $strworkshop = get_string("modulename", "workshop");
+
+ // it's a resubission assessment, tell the assessment owner to (re)assess
+ $USER->lang = $assessmentowner->lang;
+ $sendto = $assessmentowner;
+ // "The assignment \"$submission->title\" is a revised piece of work. "
+ $msg = get_string("mail8", "workshop", $submission->title)."\n";
+ // "Please assess it in the workshop assignment '$workshop->name'
+ $msg .= get_string("mail9", "workshop", $workshop->name)."\n\n";
+
+ $postsubject = "$course->shortname: $strworkshops: $workshop->name";
+ $posttext = "$course->shortname -> $strworkshops -> $workshop->name\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ $posttext .= $msg;
+ // "You can assess it in your workshop assignment"
+ $posttext .= get_string("mail10", "workshop").":\n";
+ $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ if ($sendto->mailformat == 1) { // HTML
+ $posthtml = "<P><FONT FACE=sans-serif>".
+ "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
+ $posthtml .= "<HR><FONT FACE=sans-serif>";
+ $posthtml .= "<P>$msg</P>";
+ $posthtml .= "<P>".get_string("mail3", "workshop").
+ " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
+ }
else {
- $posthtml = "";
- }
-
- if (!$teacher = get_teacher($course->id)) {
- echo "Error: can not find teacher for course $course->id!\n";
- }
-
- if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
- echo "Error: workshop cron: Could not send out mail for id $submission->id to
+ $posthtml = "";
+ }
+
+ if (!$teacher = get_teacher($course->id)) {
+ echo "Error: can not find teacher for course $course->id!\n";
+ }
+
+ if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
+ echo "Error: workshop cron: Could not send out mail for id $submission->id to
user $sendto->id ($sendto->email)\n";
- }
- }
- }
-
+ }
+ }
+ }
+
// look for new comments
- if ($comments = workshop_get_unmailed_comments($cutofftime)) {
+ if ($comments = workshop_get_unmailed_comments($cutofftime)) {
$timenow = time();
foreach ($comments as $comment) {
- echo "Processing workshop comment $comment->id\n";
+ echo "Processing workshop comment $comment->id\n";
// only process the entry once
- if (! set_field("workshop_comments", "mailed", "1", "id", "$comment->id")) {
- echo "Could not update the mailed field for comment id $comment->id\n";
- }
-
+ if (! set_field("workshop_comments", "mailed", "1", "id", "$comment->id")) {
+ echo "Could not update the mailed field for comment id $comment->id\n";
+ }
+
if (! $assessment = get_record("workshop_assessments", "id", "$comment->assessmentid")) {
- echo "Could not find assessment $comment->assessmentid\n";
- continue;
- }
- if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
- echo "Could not find submission $assessment->submissionid\n";
- continue;
- }
- if (! $workshop = get_record("workshop", "id", $submission->workshopid)) {
- echo "Could not find workshop id $submission->workshopid\n";
- continue;
- }
+ echo "Could not find assessment $comment->assessmentid\n";
+ continue;
+ }
+ if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
+ echo "Could not find submission $assessment->submissionid\n";
+ continue;
+ }
+ if (! $workshop = get_record("workshop", "id", $submission->workshopid)) {
+ echo "Could not find workshop id $submission->workshopid\n";
+ continue;
+ }
if (! $course = get_record("course", "id", $workshop->course)) {
error("Could not find course id $workshop->course");
continue;
error("Course Module ID was incorrect");
continue;
}
- if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
- echo "Could not find user $submission->userid\n";
- continue;
- }
- if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
- echo "Could not find user $assessment->userid\n";
- continue;
- }
- if (! isstudent($course->id, $submissionowner->id) and !isteacher($course->id,
+ if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
+ echo "Could not find user $submission->userid\n";
+ continue;
+ }
+ if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
+ echo "Could not find user $assessment->userid\n";
+ continue;
+ }
+ if (! isstudent($course->id, $submissionowner->id) and !isteacher($course->id,
$submissionowner->id)) {
- continue; // Not an active participant
- }
- if (! isstudent($course->id, $assessmentowner->id) and !isteacher($course->id,
+ continue; // Not an active participant
+ }
+ if (! isstudent($course->id, $assessmentowner->id) and !isteacher($course->id,
$assessmentowner->id)) {
- continue; // Not an active participant
- }
-
- $strworkshops = get_string("modulenameplural", "workshop");
- $strworkshop = get_string("modulename", "workshop");
-
- // see if the submission owner needs to be told
- if ($comment->userid != $submission->userid) {
- $USER->lang = $submissionowner->lang;
- $sendto = $submissionowner;
- // "A comment has been added to the assignment \"$submission->title\" by
- if (isstudent($course->id, $assessmentowner->id)) {
- $msg = get_string("mail4", "workshop", $submission->title)." a $course->student.\n";
- }
- else {
- $msg = get_string("mail4", "workshop", $submission->title)." $assessmentowner->firstname $assessmentowner->lastname.\n";
- }
- // "The new comment can be seen in the workshop assignment '$workshop->name'
- $msg .= get_string("mail5", "workshop", $workshop->name)."\n\n";
-
- $postsubject = "$course->shortname: $strworkshops: $workshop->name";
- $posttext = "$course->shortname -> $strworkshops -> $workshop->name\n";
- $posttext .= "---------------------------------------------------------------------\n";
- $posttext .= $msg;
- // "You can see it in your workshop assignment"
- $posttext .= get_string("mail3", "workshop").":\n";
- $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
- $posttext .= "---------------------------------------------------------------------\n";
- if ($sendto->mailformat == 1) { // HTML
- $posthtml = "<P><FONT FACE=sans-serif>".
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
- $posthtml .= "<HR><FONT FACE=sans-serif>";
- $posthtml .= "<P>$msg</P>";
- $posthtml .= "<P>".get_string("mail3", "workshop").
- " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>
+ continue; // Not an active participant
+ }
+
+ $strworkshops = get_string("modulenameplural", "workshop");
+ $strworkshop = get_string("modulename", "workshop");
+
+ // see if the submission owner needs to be told
+ if ($comment->userid != $submission->userid) {
+ $USER->lang = $submissionowner->lang;
+ $sendto = $submissionowner;
+ // "A comment has been added to the assignment \"$submission->title\" by
+ if (isstudent($course->id, $assessmentowner->id)) {
+ $msg = get_string("mail4", "workshop", $submission->title)." a $course->student.\n";
+ }
+ else {
+ $msg = get_string("mail4", "workshop", $submission->title)." $assessmentowner->firstname $assessmentowner->lastname.\n";
+ }
+ // "The new comment can be seen in the workshop assignment '$workshop->name'
+ $msg .= get_string("mail5", "workshop", $workshop->name)."\n\n";
+
+ $postsubject = "$course->shortname: $strworkshops: $workshop->name";
+ $posttext = "$course->shortname -> $strworkshops -> $workshop->name\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ $posttext .= $msg;
+ // "You can see it in your workshop assignment"
+ $posttext .= get_string("mail3", "workshop").":\n";
+ $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ if ($sendto->mailformat == 1) { // HTML
+ $posthtml = "<P><FONT FACE=sans-serif>".
+ "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
+ $posthtml .= "<HR><FONT FACE=sans-serif>";
+ $posthtml .= "<P>$msg</P>";
+ $posthtml .= "<P>".get_string("mail3", "workshop").
+ " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>
.</P></FONT><HR>";
- }
- else {
- $posthtml = "";
- }
-
- if (!$teacher = get_teacher($course->id)) {
- echo "Error: can not find teacher for course $course->id!\n";
- }
-
- if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
- echo "Error: workshop cron: Could not send out mail for id $submission->id to user
+ }
+ else {
+ $posthtml = "";
+ }
+
+ if (!$teacher = get_teacher($course->id)) {
+ echo "Error: can not find teacher for course $course->id!\n";
+ }
+
+ if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
+ echo "Error: workshop cron: Could not send out mail for id $submission->id to user
$sendto->id ($sendto->email)\n";
- }
- }
- // see if the assessor needs to to told
- if ($comment->userid != $assessment->userid) {
- $USER->lang = $assessmentowner->lang;
- $sendto = $assessmentowner;
- // "A comment has been added to the assignment \"$submission->title\" by
- if (isstudent($course->id, $submissionowner->id)) {
- $msg = get_string("mail4", "workshop", $submission->title)." a $course->student.\n";
- }
- else {
- $msg = get_string("mail4", "workshop", $submission->title).
+ }
+ }
+ // see if the assessor needs to to told
+ if ($comment->userid != $assessment->userid) {
+ $USER->lang = $assessmentowner->lang;
+ $sendto = $assessmentowner;
+ // "A comment has been added to the assignment \"$submission->title\" by
+ if (isstudent($course->id, $submissionowner->id)) {
+ $msg = get_string("mail4", "workshop", $submission->title)." a $course->student.\n";
+ }
+ else {
+ $msg = get_string("mail4", "workshop", $submission->title).
" $submissionowner->firstname $submissionowner->lastname.\n";
- }
- // "The new comment can be seen in the workshop assignment '$workshop->name'
- $msg .= get_string("mail5", "workshop", $workshop->name)."\n\n";
-
- $postsubject = "$course->shortname: $strworkshops: $workshop->name";
- $posttext = "$course->shortname -> $strworkshops -> $workshop->name\n";
- $posttext .= "---------------------------------------------------------------------\n";
- $posttext .= $msg;
- // "You can see it in your workshop assignment"
- $posttext .= get_string("mail3", "workshop").":\n";
- $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
- $posttext .= "---------------------------------------------------------------------\n";
- if ($sendto->mailformat == 1) { // HTML
- $posthtml = "<P><FONT FACE=sans-serif>".
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
- $posthtml .= "<HR><FONT FACE=sans-serif>";
- $posthtml .= "<P>$msg</P>";
- $posthtml .= "<P>".get_string("mail3", "workshop").
- " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
- }
- else {
- $posthtml = "";
- }
-
- if (!$teacher = get_teacher($course->id)) {
- echo "Error: can not find teacher for course $course->id!\n";
- }
-
- if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
- echo "Error: workshop cron: Could not send out mail for id $submission->id to user
+ }
+ // "The new comment can be seen in the workshop assignment '$workshop->name'
+ $msg .= get_string("mail5", "workshop", $workshop->name)."\n\n";
+
+ $postsubject = "$course->shortname: $strworkshops: $workshop->name";
+ $posttext = "$course->shortname -> $strworkshops -> $workshop->name\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ $posttext .= $msg;
+ // "You can see it in your workshop assignment"
+ $posttext .= get_string("mail3", "workshop").":\n";
+ $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
+ $posttext .= "---------------------------------------------------------------------\n";
+ if ($sendto->mailformat == 1) { // HTML
+ $posthtml = "<P><FONT FACE=sans-serif>".
+ "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
+ $posthtml .= "<HR><FONT FACE=sans-serif>";
+ $posthtml .= "<P>$msg</P>";
+ $posthtml .= "<P>".get_string("mail3", "workshop").
+ " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
+ }
+ else {
+ $posthtml = "";
+ }
+
+ if (!$teacher = get_teacher($course->id)) {
+ echo "Error: can not find teacher for course $course->id!\n";
+ }
+
+ if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
+ echo "Error: workshop cron: Could not send out mail for id $submission->id to user
$sendto->id ($sendto->email)\n";
- }
- if (! set_field("workshop_comments", "mailed", "1", "id", "$comment->id")) {
- echo "Could not update the mailed field for comment id $comment->id\n";
- }
- }
- }
- }
+ }
+ if (! set_field("workshop_comments", "mailed", "1", "id", "$comment->id")) {
+ echo "Could not update the mailed field for comment id $comment->id\n";
+ }
+ }
+ }
+ }
- // look for new gradings
- if ($assessments = workshop_get_unmailed_graded_assessments($cutofftime)) {
+ // look for new gradings
+ if ($assessments = workshop_get_unmailed_graded_assessments($cutofftime)) {
$timenow = time();
foreach ($assessments as $assessment) {
echo "Could not update the mailed field for id $assessment->id\n";
}
- if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
+ if (! $submission = get_record("workshop_submissions", "id", "$assessment->submissionid")) {
echo "Could not find submission $assessment->submissionid\n";
continue;
}
- if (! $workshop = get_record("workshop", "id", $submission->workshopid)) {
- echo "Could not find workshop id $submission->workshopid\n";
- continue;
- }
+ if (! $workshop = get_record("workshop", "id", $submission->workshopid)) {
+ echo "Could not find workshop id $submission->workshopid\n";
+ continue;
+ }
if (! $course = get_record("course", "id", $workshop->course)) {
error("Could not find course id $workshop->course");
continue;
error("Course Module ID was incorrect");
continue;
}
- if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
+ if (! $submissionowner = get_record("user", "id", "$submission->userid")) {
echo "Could not find user $submission->userid\n";
continue;
}
- if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
+ if (! $assessmentowner = get_record("user", "id", "$assessment->userid")) {
echo "Could not find user $assessment->userid\n";
continue;
}
$strworkshops = get_string("modulenameplural", "workshop");
$strworkshop = get_string("modulename", "workshop");
- // it's a grading tell the assessment owner
- $USER->lang = $assessmentowner->lang;
- $sendto = $assessmentowner;
- // Your assessment of the assignment \"$submission->title\" has by reviewed
- $msg = get_string("mail6", "workshop", $submission->title).".\n";
- // The comments given by the $course->teacher can be seen in the Workshop Assignment
- $msg .= get_string("mail7", "workshop", $course->teacher)." '$workshop->name'.\n\n";
+ // it's a grading tell the assessment owner
+ $USER->lang = $assessmentowner->lang;
+ $sendto = $assessmentowner;
+ // Your assessment of the assignment \"$submission->title\" has by reviewed
+ $msg = get_string("mail6", "workshop", $submission->title).".\n";
+ // The comments given by the $course->teacher can be seen in the Workshop Assignment
+ $msg .= get_string("mail7", "workshop", $course->teacher)." '$workshop->name'.\n\n";
- $postsubject = "$course->shortname: $strworkshops: $workshop->name";
+ $postsubject = "$course->shortname: $strworkshops: $workshop->name";
$posttext = "$course->shortname -> $strworkshops -> $workshop->name\n";
$posttext .= "---------------------------------------------------------------------\n";
$posttext .= $msg;
- // "You can see it in your workshop assignment"
- $posttext .= get_string("mail3", "workshop").":\n";
- $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
+ // "You can see it in your workshop assignment"
+ $posttext .= get_string("mail3", "workshop").":\n";
+ $posttext .= " $CFG->wwwroot/mod/workshop/view.php?id=$cm->id\n";
$posttext .= "---------------------------------------------------------------------\n";
if ($sendto->mailformat == 1) { // HTML
- $posthtml = "<P><FONT FACE=sans-serif>".
- "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
- "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
- $posthtml .= "<HR><FONT FACE=sans-serif>";
- $posthtml .= "<P>$msg</P>";
- $posthtml .= "<P>".get_string("mail3", "workshop").
- " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
+ $posthtml = "<P><FONT FACE=sans-serif>".
+ "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/index.php?id=$course->id\">$strworkshops</A> ->".
+ "<A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A></FONT></P>";
+ $posthtml .= "<HR><FONT FACE=sans-serif>";
+ $posthtml .= "<P>$msg</P>";
+ $posthtml .= "<P>".get_string("mail3", "workshop").
+ " <A HREF=\"$CFG->wwwroot/mod/workshop/view.php?id=$cm->id\">$workshop->name</A>.</P></FONT><HR>";
} else {
$posthtml = "";
}
- if (!$teacher = get_teacher($course->id)) {
- echo "Error: can not find teacher for course $course->id!\n";
- }
-
+ if (!$teacher = get_teacher($course->id)) {
+ echo "Error: can not find teacher for course $course->id!\n";
+ }
+
if (! email_to_user($sendto, $teacher, $postsubject, $posttext, $posthtml)) {
echo "Error: workshop cron: Could not send out mail for id $submission->id to user
$sendto->id ($sendto->email)\n";
if (! $workshop = get_record("workshop", "id", "$id")) {
return false;
}
-
- // delete all the associated records in the workshop tables, start positive...
+
+ // delete all the associated records in the workshop tables, start positive...
$result = true;
if (! delete_records("workshop_comments", "workshopid", "$workshop->id")) {
/// only retruns grades in phase 6
global $CFG;
- if ($workshop = get_record("workshop", "id", $workshopid)) {
+ if ($workshop = get_record("workshop", "id", $workshopid)) {
if ($workshop->phase == 6) {
if ($bestsubmissions = get_records_sql("SELECT userid, max(finalgrade) finalgrade FROM
- {$CFG->prefix}workshop_submissions WHERE workshopid = $workshopid GROUP
- BY userid")) {
- foreach ($bestsubmissions as $bestgrade) {
- $return->grades[$bestgrade->userid] = $bestgrade->finalgrade;
+ {$CFG->prefix}workshop_submissions WHERE workshopid = $workshopid GROUP
+ BY userid")) {
+ foreach ($bestsubmissions as $bestgrade) {
+ $return->grades[$bestgrade->userid] = $bestgrade->finalgrade;
}
}
- }
- $return->maxgrade = $workshop->grade;
+ }
+ $return->maxgrade = $workshop->grade;
}
return $return;
}
function workshop_is_recent_activity($course, $isteacher, $timestart) {//jlw1 added for adding mark to courses with activity in My Moodle
global $CFG;
- // have a look for agreed assessments for this user (agree)
+ // have a look for agreed assessments for this user (agree)
$agreecontent = false;
- if (!$isteacher) { // teachers only need to see submissions
- if ($logs = workshop_get_agree_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $agreecontent = true;
- break;
- }
- }
- }
- }
- return false;
+ if (!$isteacher) { // teachers only need to see submissions
+ if ($logs = workshop_get_agree_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $agreecontent = true;
+ break;
+ }
+ }
+ }
+ }
+ return false;
}
function workshop_print_recent_activity($course, $isteacher, $timestart) {
global $CFG;
- // have a look for agreed assessments for this user (agree)
+ // have a look for agreed assessments for this user (agree)
$agreecontent = false;
- if (!$isteacher) { // teachers only need to see submissions
- if ($logs = workshop_get_agree_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $agreecontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($agreecontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("workshopagreedassessments", "workshop").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- if (isteacher($course->id, $log->userid)) {
- echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
- }
- else { // don't break anonymous rule
- echo "<p><font size=1>$date - A $course->student<br />";
- }
- echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
- }
-
- // have a look for new assessments for this user (assess)
+ if (!$isteacher) { // teachers only need to see submissions
+ if ($logs = workshop_get_agree_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $agreecontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($agreecontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("workshopagreedassessments", "workshop").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ if (isteacher($course->id, $log->userid)) {
+ echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
+ }
+ else { // don't break anonymous rule
+ echo "<p><font size=1>$date - A $course->student<br />";
+ }
+ echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+ }
+
+ // have a look for new assessments for this user (assess)
$assesscontent = false;
- if (!$isteacher) { // teachers only need to see submissions
- if ($logs = workshop_get_assess_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $assesscontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($assesscontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("workshopassessments", "workshop").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- if (isteacher($course->id, $log->userid)) {
- echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
- }
- else { // don't break anonymous rule
- echo "<p><font size=1>$date - A $course->student<br />";
- }
- echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
- }
-
- // have a look for new comments for this user (comment)
+ if (!$isteacher) { // teachers only need to see submissions
+ if ($logs = workshop_get_assess_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $assesscontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($assesscontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("workshopassessments", "workshop").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ if (isteacher($course->id, $log->userid)) {
+ echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
+ }
+ else { // don't break anonymous rule
+ echo "<p><font size=1>$date - A $course->student<br />";
+ }
+ echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+ }
+
+ // have a look for new comments for this user (comment)
$commentcontent = false;
- if (!$isteacher) { // teachers only need to see submissions
- if ($logs = workshop_get_comment_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $commentcontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($commentcontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("workshopcomments", "workshop").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- echo "<p><font size=1>$date - A $course->student<br />";
- echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
- }
-
- // have a look for new assessment gradings for this user (grade)
+ if (!$isteacher) { // teachers only need to see submissions
+ if ($logs = workshop_get_comment_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $commentcontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($commentcontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("workshopcomments", "workshop").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ echo "<p><font size=1>$date - A $course->student<br />";
+ echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+ }
+
+ // have a look for new assessment gradings for this user (grade)
$gradecontent = false;
- if ($logs = workshop_get_grade_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $gradecontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($gradecontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("workshopfeedback", "workshop").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- echo "<p><font size=1>$date - $course->teacher<br />";
- echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
-
- // have a look for new submissions (only show to teachers) (submit)
+ if ($logs = workshop_get_grade_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $gradecontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($gradecontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("workshopfeedback", "workshop").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ echo "<p><font size=1>$date - $course->teacher<br />";
+ echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+
+ // have a look for new submissions (only show to teachers) (submit)
$submitcontent = false;
- if ($isteacher) {
- if ($logs = workshop_get_submit_logs($course, $timestart)) {
- // got some, see if any belong to a visible module
- foreach ($logs as $log) {
- // Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $submitcontent = true;
- break;
- }
- }
- // if we got some "live" ones then output them
- if ($submitcontent) {
- $strftimerecent = get_string("strftimerecent");
- print_headline(get_string("workshopsubmissions", "workshop").":");
- foreach ($logs as $log) {
- //Create a temp valid module structure (only need courseid, moduleid)
- $tempmod->course = $course->id;
- $tempmod->id = $log->workshopid;
- //Obtain the visible property from the instance
- if (instance_is_visible("workshop",$tempmod)) {
- $date = userdate($log->time, $strftimerecent);
- echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
- echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
- echo "$log->name";
- echo "</a>\"</font></p>";
- }
- }
- }
- }
- }
+ if ($isteacher) {
+ if ($logs = workshop_get_submit_logs($course, $timestart)) {
+ // got some, see if any belong to a visible module
+ foreach ($logs as $log) {
+ // Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $submitcontent = true;
+ break;
+ }
+ }
+ // if we got some "live" ones then output them
+ if ($submitcontent) {
+ $strftimerecent = get_string("strftimerecent");
+ print_headline(get_string("workshopsubmissions", "workshop").":");
+ foreach ($logs as $log) {
+ //Create a temp valid module structure (only need courseid, moduleid)
+ $tempmod->course = $course->id;
+ $tempmod->id = $log->workshopid;
+ //Obtain the visible property from the instance
+ if (instance_is_visible("workshop",$tempmod)) {
+ $date = userdate($log->time, $strftimerecent);
+ echo "<p><font size=1>$date - $log->firstname $log->lastname<br />";
+ echo "\"<a href=\"$CFG->wwwroot/mod/workshop/$log->url\">";
+ echo "$log->name";
+ echo "</a>\"</font></p>";
+ }
+ }
+ }
+ }
+ }
return $agreecontent or $assesscontent or $commentcontent or $gradecontent or $submitcontent;
}
$workshop->timemodified = time();
$workshop->deadline = make_timestamp($workshop->deadlineyear,
- $workshop->deadlinemonth, $workshop->deadlineday, $workshop->deadlinehour,
- $workshop->deadlineminute);
+ $workshop->deadlinemonth, $workshop->deadlineday, $workshop->deadlinehour,
+ $workshop->deadlineminute);
$workshop->id = $workshop->instance;
///////////////////////////////////////////////////////////////////////////////
function workshop_user_outline($course, $user, $mod, $workshop) {
if ($submissions = workshop_get_user_submissions($workshop, $user)) {
- $result->info = count($submissions)." ".get_string("submissions", "workshop");
- // workshop_get_user_submissions returns the newest one first
- foreach ($submissions as $submission) {
- $result->time = $submission->timecreated;
- break;
- }
+ $result->info = count($submissions)." ".get_string("submissions", "workshop");
+ // workshop_get_user_submissions returns the newest one first
+ foreach ($submissions as $submission) {
+ $result->time = $submission->timecreated;
+ break;
+ }
return $result;
}
return NULL;
if ($value == $selected) {
$output .= " SELECTED";
}
- // stop zero label being replaced by array index value
+ // stop zero label being replaced by array index value
// if ($label) {
// $output .= ">$label</OPTION>\n";
// } else {
// $output .= ">$value</OPTION>\n";
- // }
- $output .= ">$label</OPTION>\n";
+ // }
+ $output .= ">$label</OPTION>\n";
}
}
///////////////////////////////////////////////////////////////////////////////////////////////
function workshop_copy_assessment($assessment, $submission, $withfeedback = false) {
- // adds a copy of the given assessment for the submission specified to the workshop_assessments table.
- // The grades and optionally the comments are added to the workshop_grades table. Returns the new
- // assessment object. The owner of the assessment is not changed.
-
- $yearfromnow = time() + 365 * 86400;
- $newassessment->workshopid = $assessment->workshopid;
- $newassessment->submissionid = $submission->id;
- $newassessment->userid = $assessment->userid;
- $newassessment->timecreated = $yearfromnow;
- $newassessment->grade = $assessment->grade;
- if ($withfeedback) {
- $newassessment->generalcomment = addslashes($assessment->generalcomment);
- $newassessment->teachercomment = addslashes($assessment->teachercomment);
- }
- if (!$newassessment->id = insert_record("workshop_assessments", $newassessment)) {
- error("Copy Assessment: Could not insert workshop assessment!");
- }
-
- if ($grades = get_records("workshop_grades", "assessmentid", $assessment->id)) {
- foreach ($grades as $grade) {
- if (!$withfeedback) {
- $grade->feedback = '';
- }
+ // adds a copy of the given assessment for the submission specified to the workshop_assessments table.
+ // The grades and optionally the comments are added to the workshop_grades table. Returns the new
+ // assessment object. The owner of the assessment is not changed.
+
+ $yearfromnow = time() + 365 * 86400;
+ $newassessment->workshopid = $assessment->workshopid;
+ $newassessment->submissionid = $submission->id;
+ $newassessment->userid = $assessment->userid;
+ $newassessment->timecreated = $yearfromnow;
+ $newassessment->grade = $assessment->grade;
+ if ($withfeedback) {
+ $newassessment->generalcomment = addslashes($assessment->generalcomment);
+ $newassessment->teachercomment = addslashes($assessment->teachercomment);
+ }
+ if (!$newassessment->id = insert_record("workshop_assessments", $newassessment)) {
+ error("Copy Assessment: Could not insert workshop assessment!");
+ }
+
+ if ($grades = get_records("workshop_grades", "assessmentid", $assessment->id)) {
+ foreach ($grades as $grade) {
+ if (!$withfeedback) {
+ $grade->feedback = '';
+ }
else {
$grade->feedback = addslashes($grade->feedback);
}
- $grade->assessmentid = $newassessment->id;
- if (!$grade->id = insert_record("workshop_grades", $grade)) {
- error("Copy Assessment: Could not insert workshop grade!");
- }
- }
- }
- if ($withfeedback) {
+ $grade->assessmentid = $newassessment->id;
+ if (!$grade->id = insert_record("workshop_grades", $grade)) {
+ error("Copy Assessment: Could not insert workshop grade!");
+ }
+ }
+ }
+ if ($withfeedback) {
// remove the slashes from comments as the new assessment record might be used,
// currently this function is only called in upload which does not!
- $newassessment->generalcomment = stripslashes($assessment->generalcomment);
- $newassessment->teachercomment = stripslashes($assessment->teachercomment);
+ $newassessment->generalcomment = stripslashes($assessment->generalcomment);
+ $newassessment->teachercomment = stripslashes($assessment->teachercomment);
}
return $newassessment;
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_all_submissions_for_assessment($workshop, $user) {
- // looks at all submissions and deducts the number which has been assessed by this user
- $n = 0;
- if ($submissions = get_records_select("workshop_submissions", "workshopid = $workshop->id AND
+ // looks at all submissions and deducts the number which has been assessed by this user
+ $n = 0;
+ if ($submissions = get_records_select("workshop_submissions", "workshopid = $workshop->id AND
timecreated > 0")) {
- $n =count($submissions);
- foreach ($submissions as $submission) {
- $n -= count_records("workshop_assessments", "submissionid", $submission->id, "userid", $user->id);
- }
- }
- return $n;
- }
+ $n =count($submissions);
+ foreach ($submissions as $submission) {
+ $n -= count_records("workshop_assessments", "submissionid", $submission->id, "userid", $user->id);
+ }
+ }
+ return $n;
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_assessments($submission) {
- // Return the (real) assessments for this submission,
- $timenow = time();
+ // Return the (real) assessments for this submission,
+ $timenow = time();
return count_records_select("workshop_assessments",
"submissionid = $submission->id AND timecreated < $timenow");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_comments($assessment) {
- // Return the number of comments for this assessment provided they are newer than the assessment,
+ // Return the number of comments for this assessment provided they are newer than the assessment,
return count_records_select("workshop_comments", "(assessmentid = $assessment->id) AND
- timecreated > $assessment->timecreated");
+ timecreated > $assessment->timecreated");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_peer_assessments($workshop, $user) {
- // returns the number of assessments made by students on user's submissions
-
- $n = 0;
- if ($submissions = workshop_get_user_submissions($workshop, $user)) {
- foreach ($submissions as $submission) {
- if ($assessments = workshop_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- // ignore teacher assessments
- if (!isteacher($workshop->course, $assessment->userid)) {
- $n++;
- }
- }
- }
- }
- }
- return $n;
- }
+ // returns the number of assessments made by students on user's submissions
+
+ $n = 0;
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ foreach ($submissions as $submission) {
+ if ($assessments = workshop_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ // ignore teacher assessments
+ if (!isteacher($workshop->course, $assessment->userid)) {
+ $n++;
+ }
+ }
+ }
+ }
+ }
+ return $n;
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_self_assessments($workshop, $user) {
- // returns the number of assessments made by user on their own submissions
-
- $n = 0;
- if ($submissions = workshop_get_user_submissions($workshop, $user)) {
- foreach ($submissions as $submission) {
- if ($assessment = get_record_select("workshop_assessments", "userid = $user->id AND
- submissionid = $submission->id")) {
- $n++;
- }
- }
- }
- return $n;
- }
+ // returns the number of assessments made by user on their own submissions
+
+ $n = 0;
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ foreach ($submissions as $submission) {
+ if ($assessment = get_record_select("workshop_assessments", "userid = $user->id AND
+ submissionid = $submission->id")) {
+ $n++;
+ }
+ }
+ }
+ return $n;
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_student_submissions($workshop) {
- global $CFG;
-
- return count_records_sql("SELECT count(*) FROM {$CFG->prefix}workshop_submissions s,
+ global $CFG;
+
+ return count_records_sql("SELECT count(*) FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u
- WHERE u.course = $workshop->course
+ WHERE u.course = $workshop->course
AND s.userid = u.userid
AND s.workshopid = $workshop->id
- AND timecreated > 0");
- }
+ AND timecreated > 0");
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_student_submissions_for_assessment($workshop, $user) {
- global $CFG;
-
- $timenow = time();
- $n = 0;
- if ($submissions = workshop_get_student_submissions($workshop)) {
- $n =count($submissions);
- foreach ($submissions as $submission) {
- $n -= count_records_select("workshop_assessments", "submissionid = $submission->id AND
- userid = $user->id AND timecreated < $timenow - $CFG->maxeditingtime");
- }
- }
- return $n;
- }
+ global $CFG;
+
+ $timenow = time();
+ $n = 0;
+ if ($submissions = workshop_get_student_submissions($workshop)) {
+ $n =count($submissions);
+ foreach ($submissions as $submission) {
+ $n -= count_records_select("workshop_assessments", "submissionid = $submission->id AND
+ userid = $user->id AND timecreated < $timenow - $CFG->maxeditingtime");
+ }
+ }
+ return $n;
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_teacher_assessments($workshop, $user) {
- // returns the number of assessments made by teachers on user's submissions
-
- $n = 0;
- if ($submissions = workshop_get_user_submissions($workshop, $user)) {
- foreach ($submissions as $submission) {
- if ($assessments = workshop_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- // count only teacher assessments
- if (isteacher($workshop->course, $assessment->userid)) {
- $n++;
- }
- }
- }
- }
- }
- return $n;
- }
+ // returns the number of assessments made by teachers on user's submissions
+
+ $n = 0;
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ foreach ($submissions as $submission) {
+ if ($assessments = workshop_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ // count only teacher assessments
+ if (isteacher($workshop->course, $assessment->userid)) {
+ $n++;
+ }
+ }
+ }
+ }
+ }
+ return $n;
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_teacher_submissions($workshop) {
- global $CFG;
-
- return count_records_sql("SELECT count(*) FROM {$CFG->prefix}workshop_submissions s,
- {$CFG->prefix}user_teachers u
- WHERE u.course = $workshop->course
+ global $CFG;
+
+ return count_records_sql("SELECT count(*) FROM {$CFG->prefix}workshop_submissions s,
+ {$CFG->prefix}user_teachers u
+ WHERE u.course = $workshop->course
AND s.userid = u.userid
AND s.workshopid = $workshop->id");
- }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_teacher_submissions_for_assessment($workshop, $user) {
- $n = 0;
- if ($submissions = workshop_get_teacher_submissions($workshop)) {
- $n =count($submissions);
- foreach ($submissions as $submission) {
- $n -= count_records("workshop_assessments", "submissionid", $submission->id, "userid", $user->id);
- }
- }
- return $n;
- }
+ $n = 0;
+ if ($submissions = workshop_get_teacher_submissions($workshop)) {
+ $n =count($submissions);
+ foreach ($submissions as $submission) {
+ $n -= count_records("workshop_assessments", "submissionid", $submission->id, "userid", $user->id);
+ }
+ }
+ return $n;
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_ungraded_assessments_student($workshop) {
- // function returns the number of ungraded assessments by students of STUDENT submissions
- $n = 0;
- if ($submissions = workshop_get_student_submissions($workshop)) {
- foreach ($submissions as $submission) {
- if ($assessments = workshop_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- if ($assessment->timegraded == 0) {
- // ignore teacher assessments
- if (!isteacher($workshop->course, $assessment->userid)) {
- $n++;
- }
- }
- }
- }
- }
- }
- return $n;
- }
+ // function returns the number of ungraded assessments by students of STUDENT submissions
+ $n = 0;
+ if ($submissions = workshop_get_student_submissions($workshop)) {
+ foreach ($submissions as $submission) {
+ if ($assessments = workshop_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ if ($assessment->timegraded == 0) {
+ // ignore teacher assessments
+ if (!isteacher($workshop->course, $assessment->userid)) {
+ $n++;
+ }
+ }
+ }
+ }
+ }
+ }
+ return $n;
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_ungraded_assessments_teacher($workshop) {
- // function returns the number of ungraded assessments by students of TEACHER submissions
- global $CFG;
-
- $timenow = time();
- $n = 0;
- if ($submissions = workshop_get_teacher_submissions($workshop)) {
- foreach ($submissions as $submission) {
- if ($assessments = workshop_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- if ($assessment->timegraded == 0) {
- // ignore teacher assessments
- if (!isteacher($workshop->course, $assessment->userid)) {
- // must have created a little time ago
- if (($timenow - $assessment->timecreated) > $CFG->maxeditingtime) {
- $n++;
- }
- }
- }
- }
- }
- }
- }
- return $n;
- }
+ // function returns the number of ungraded assessments by students of TEACHER submissions
+ global $CFG;
+
+ $timenow = time();
+ $n = 0;
+ if ($submissions = workshop_get_teacher_submissions($workshop)) {
+ foreach ($submissions as $submission) {
+ if ($assessments = workshop_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ if ($assessment->timegraded == 0) {
+ // ignore teacher assessments
+ if (!isteacher($workshop->course, $assessment->userid)) {
+ // must have created a little time ago
+ if (($timenow - $assessment->timecreated) > $CFG->maxeditingtime) {
+ $n++;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return $n;
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_user_assessments($workshop, $user, $stype = "all") {
- // returns the number of assessments allocated/made by a user, all of them, or just those
+ // returns the number of assessments allocated/made by a user, all of them, or just those
// for the student or teacher submissions. The student's self assessments are included in the count.
- // The maxeditingtime is NOT taken into account here also, allocated assessments which have not yet
- // been done are counted as well
-
- $n = 0;
- if ($assessments = workshop_get_user_assessments($workshop, $user)) {
- foreach ($assessments as $assessment) {
- switch ($stype) {
- case "all" :
- $n++;
- break;
- case "student" :
- $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
- if (isstudent($workshop->course, $submission->userid)) {
- $n++;
- }
- break;
- case "teacher" :
- $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
- if (isteacher($workshop->course, $submission->userid)) {
- $n++;
- }
- break;
- }
- }
- }
- return $n;
- }
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function workshop_count_user_assessments_done($workshop, $user) {
- // returns the number of assessments actually done by a user
- // the student's self assessments are included in the count
- // the maxeditingtime is NOT taken into account here
-
- $n = 0;
- $timenow = time();
- if ($assessments = workshop_get_user_assessments($workshop, $user)) {
- foreach ($assessments as $assessment) {
- if ($assessment->timecreated < $timenow) {
- $n++;
- }
- }
- }
- return $n;
- }
-
+ // The maxeditingtime is NOT taken into account here also, allocated assessments which have not yet
+ // been done are counted as well
+
+ $n = 0;
+ if ($assessments = workshop_get_user_assessments($workshop, $user)) {
+ foreach ($assessments as $assessment) {
+ switch ($stype) {
+ case "all" :
+ $n++;
+ break;
+ case "student" :
+ $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
+ if (isstudent($workshop->course, $submission->userid)) {
+ $n++;
+ }
+ break;
+ case "teacher" :
+ $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
+ if (isteacher($workshop->course, $submission->userid)) {
+ $n++;
+ }
+ break;
+ }
+ }
+ }
+ return $n;
+ }
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+function workshop_count_user_assessments_done($workshop, $user) {
+ // returns the number of assessments actually done by a user
+ // the student's self assessments are included in the count
+ // the maxeditingtime is NOT taken into account here
+
+ $n = 0;
+ $timenow = time();
+ if ($assessments = workshop_get_user_assessments($workshop, $user)) {
+ foreach ($assessments as $assessment) {
+ if ($assessment->timecreated < $timenow) {
+ $n++;
+ }
+ }
+ }
+ return $n;
+ }
+
//////////////////////////////////////////////////////////////////////////////////////
function workshop_count_user_submissions($workshop, $user) {
- // returns the number of (real) submissions make by this user
- return count_records_select("workshop_submissions", "workshopid = $workshop->id AND
- userid = $user->id AND timecreated > 0");
- }
+ // returns the number of (real) submissions make by this user
+ return count_records_select("workshop_submissions", "workshopid = $workshop->id AND
+ userid = $user->id AND timecreated > 0");
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_delete_submitted_files($workshop, $submission) {
// Deletes the files in the workshop area for this submission
- if ($basedir = workshop_file_area($workshop, $submission)) {
- if ($files = get_directory_list($basedir)) {
- foreach ($files as $file) {
- if (unlink("$basedir/$file")) {
- notify("Existing file '$file' has been deleted!");
- }
- else {
- notify("Attempt to delete file $basedir/$file has failed!");
- }
- }
- }
- }
- }
+ if ($basedir = workshop_file_area($workshop, $submission)) {
+ if ($files = get_directory_list($basedir)) {
+ foreach ($files as $file) {
+ if (unlink("$basedir/$file")) {
+ notify("Existing file '$file' has been deleted!");
+ }
+ else {
+ notify("Attempt to delete file $basedir/$file has failed!");
+ }
+ }
+ }
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
// EXCEPT for any file named $exception
if (!$submissions = workshop_get_submissions($workshop, $user)) {
- notify("No submissions!");
- return;
- }
- foreach ($submissions as $submission) {
- if ($basedir = workshop_file_area($workshop, $submission)) {
- if ($files = get_directory_list($basedir)) {
- foreach ($files as $file) {
- if ($file != $exception) {
- unlink("$basedir/$file");
- notify("Existing file '$file' has been deleted!");
- }
- }
- }
- }
- }
- }
+ notify("No submissions!");
+ return;
+ }
+ foreach ($submissions as $submission) {
+ if ($basedir = workshop_file_area($workshop, $submission)) {
+ if ($files = get_directory_list($basedir)) {
+ foreach ($files as $file) {
+ if ($file != $exception) {
+ unlink("$basedir/$file");
+ notify("Existing file '$file' has been deleted!");
+ }
+ }
+ }
+ }
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
function workshop_get_agree_logs($course, $timestart) {
- // get the "agree" entries for this user (the assessment owner and add the first and last names
+ // get the "agree" entries for this user (the assessment owner and add the first and last names
// the last two probably wont be used...
- global $CFG, $USER;
-
- $timethen = time() - $CFG->maxeditingtime;
+ global $CFG, $USER;
+ if (empty($USER->id)) {
+ return false;
+ }
+
+ $timethen = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, a.workshopid, a.userid, e.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}workshop e,
- {$CFG->prefix}workshop_submissions s,
- {$CFG->prefix}workshop_assessments a,
- {$CFG->prefix}user u
+ {$CFG->prefix}workshop e,
+ {$CFG->prefix}workshop_submissions s,
+ {$CFG->prefix}workshop_assessments a,
+ {$CFG->prefix}user u
WHERE l.time > $timestart AND l.time < $timethen
- AND l.course = $course->id AND l.module = 'workshop' AND l.action = 'agree'
- AND a.id = l.info AND s.id = a.submissionid AND a.userid = $USER->id
- AND u.id = s.userid AND e.id = a.workshopid");
+ AND l.course = $course->id AND l.module = 'workshop' AND l.action = 'agree'
+ AND a.id = l.info AND s.id = a.submissionid AND a.userid = $USER->id
+ AND u.id = s.userid AND e.id = a.workshopid");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function workshop_get_assess_logs($course, $timestart) {
- // get the "assess" entries for this user and add the first and last names...
- global $CFG, $USER;
-
- $timethen = time() - $CFG->maxeditingtime;
+ // get the "assess" entries for this user and add the first and last names...
+ global $CFG, $USER;
+ if (empty($USER->id)) {
+ return false;
+ }
+
+ $timethen = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, a.workshopid, a.userid, e.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}workshop e,
- {$CFG->prefix}workshop_submissions s,
- {$CFG->prefix}workshop_assessments a,
- {$CFG->prefix}user u
+ {$CFG->prefix}workshop e,
+ {$CFG->prefix}workshop_submissions s,
+ {$CFG->prefix}workshop_assessments a,
+ {$CFG->prefix}user u
WHERE l.time > $timestart AND l.time < $timethen
- AND l.course = $course->id AND l.module = 'workshop' AND l.action = 'assess'
- AND a.id = l.info AND s.id = a.submissionid AND s.userid = $USER->id
- AND u.id = a.userid AND e.id = a.workshopid");
+ AND l.course = $course->id AND l.module = 'workshop' AND l.action = 'assess'
+ AND a.id = l.info AND s.id = a.submissionid AND s.userid = $USER->id
+ AND u.id = a.userid AND e.id = a.workshopid");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_assessments($submission, $all = '') {
- // Return assessments for this submission ordered oldest first, newest last
- // new assessments made within the editing time are NOT return unless the
- // second argument is set to ALL
- global $CFG;
-
- if ($all != 'ALL') {
- $timenow = time();
- return get_records_select("workshop_assessments", "(submissionid = $submission->id) AND
- (timecreated < $timenow - $CFG->maxeditingtime)", "timecreated DESC");
- } else {
- return get_records_select("workshop_assessments", "submissionid = $submission->id",
+ // Return assessments for this submission ordered oldest first, newest last
+ // new assessments made within the editing time are NOT return unless the
+ // second argument is set to ALL
+ global $CFG;
+
+ if ($all != 'ALL') {
+ $timenow = time();
+ return get_records_select("workshop_assessments", "(submissionid = $submission->id) AND
+ (timecreated < $timenow - $CFG->maxeditingtime)", "timecreated DESC");
+ } else {
+ return get_records_select("workshop_assessments", "submissionid = $submission->id",
"timecreated DESC");
- }
+ }
}
///////////////////////////////////////////////////////////////////////////////////////////////
function workshop_get_comment_logs($course, $timestart) {
- // get the "comment" entries for this user and add the first and last names (which may not be used)...
- global $CFG, $USER;
-
- $timethen = time() - $CFG->maxeditingtime;
+ // get the "comment" entries for this user and add the first and last names (which may not be used)...
+ global $CFG, $USER;
+ if (empty($USER->id)) {
+ return false;
+ }
+
+ $timethen = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, a.workshopid, e.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}workshop e,
- {$CFG->prefix}workshop_submissions s,
- {$CFG->prefix}workshop_assessments a,
- {$CFG->prefix}workshop_comments c,
- {$CFG->prefix}user u
+ {$CFG->prefix}workshop e,
+ {$CFG->prefix}workshop_submissions s,
+ {$CFG->prefix}workshop_assessments a,
+ {$CFG->prefix}workshop_comments c,
+ {$CFG->prefix}user u
WHERE l.time > $timestart AND l.time < $timethen
- AND l.course = $course->id AND l.module = 'workshop' AND l.action = 'comment'
- AND c.id = l.info AND c.userid != $USER->id AND a.id = c.assessmentid
- AND s.id = a.submissionid AND (s.userid = $USER->id OR a.userid = $USER->id)
- AND u.id = a.userid AND e.id = a.workshopid");
+ AND l.course = $course->id AND l.module = 'workshop' AND l.action = 'comment'
+ AND c.id = l.info AND c.userid != $USER->id AND a.id = c.assessmentid
+ AND s.id = a.submissionid AND (s.userid = $USER->id OR a.userid = $USER->id)
+ AND u.id = a.userid AND e.id = a.workshopid");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_comments($assessment) {
- // Return all comments for this assessment provided they are newer than the assessment,
- // and ordered oldest first, newest last
+ // Return all comments for this assessment provided they are newer than the assessment,
+ // and ordered oldest first, newest last
return get_records_select("workshop_comments", "(assessmentid = $assessment->id) AND
- timecreated > $assessment->timecreated",
- "timecreated DESC");
+ timecreated > $assessment->timecreated",
+ "timecreated DESC");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function workshop_get_grade_logs($course, $timestart) {
- // get the "grade" entries for this user and add the first and last names (of submission owner,
+ // get the "grade" entries for this user and add the first and last names (of submission owner,
// better to get name of teacher...
- // ...but not available in assessment record...)
- global $CFG, $USER;
-
- $timethen = time() - $CFG->maxeditingtime;
+ // ...but not available in assessment record...)
+ global $CFG, $USER;
+ if (empty($USER->id)) {
+ return false;
+ }
+
+ $timethen = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, a.workshopid, e.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}workshop e,
- {$CFG->prefix}workshop_submissions s,
- {$CFG->prefix}workshop_assessments a,
- {$CFG->prefix}user u
+ {$CFG->prefix}workshop e,
+ {$CFG->prefix}workshop_submissions s,
+ {$CFG->prefix}workshop_assessments a,
+ {$CFG->prefix}user u
WHERE l.time > $timestart AND l.time < $timethen
- AND l.course = $course->id AND l.module = 'workshop' AND l.action = 'grade'
- AND a.id = l.info AND s.id = a.submissionid AND a.userid = $USER->id
- AND u.id = s.userid AND e.id = a.workshopid");
+ AND l.course = $course->id AND l.module = 'workshop' AND l.action = 'grade'
+ AND a.id = l.info AND s.id = a.submissionid AND a.userid = $USER->id
+ AND u.id = s.userid AND e.id = a.workshopid");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_student_assessments($workshop, $user) {
// Return all assessments on the student submissions by a user, order by youngest first, oldest last
- global $CFG;
-
+ global $CFG;
+
return get_records_sql("SELECT a.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u,
- {$CFG->prefix}workshop_assessments a
+ {$CFG->prefix}workshop_assessments a
WHERE u.course = $workshop->course
AND s.userid = u.userid
AND s.workshopid = $workshop->id
- AND a.submissionid = s.id
- AND a.userid = $user->id
- ORDER BY a.timecreated DESC");
+ AND a.submissionid = s.id
+ AND a.userid = $user->id
+ ORDER BY a.timecreated DESC");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_student_submission($workshop, $user) {
// Return a submission for a particular user
- global $CFG;
+ global $CFG;
$submission = get_record("workshop_submissions", "workshopid", $workshop->id, "userid", $user->id);
if (!empty($submission->timecreated)) {
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_student_submission_assessments($workshop) {
// Return all assessments on the student submissions, order by youngest first, oldest last
- global $CFG;
-
+ global $CFG;
+
return get_records_sql("SELECT a.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u, {$CFG->prefix}workshop_assessments a
WHERE u.course = $workshop->course
AND s.userid = u.userid
AND s.workshopid = $workshop->id
- AND a.submissionid = s.id
- ORDER BY a.timecreated DESC");
+ AND a.submissionid = s.id
+ ORDER BY a.timecreated DESC");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_student_submissions($workshop, $order = "title") {
// Return all ENROLLED student submissions
- global $CFG;
-
- if ($order == "title") {
- $order = "s.title";
- }
- if ($order == "name") {
- $order = "a.firstname, a.lastname";
- }
- if ($order == "grade") {
- $order = "$workshop->teacherweight * s.teachergrade + $workshop->peerweight * s.peergrade DESC";
- }
- return get_records_sql("SELECT s.* FROM {$CFG->prefix}workshop_submissions s,
+ global $CFG;
+
+ if ($order == "title") {
+ $order = "s.title";
+ }
+ if ($order == "name") {
+ $order = "a.firstname, a.lastname";
+ }
+ if ($order == "grade") {
+ $order = "$workshop->teacherweight * s.teachergrade + $workshop->peerweight * s.peergrade DESC";
+ }
+ return get_records_sql("SELECT s.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u, {$CFG->prefix}user a
WHERE u.course = $workshop->course
AND s.userid = u.userid
- AND a.id = u.userid
+ AND a.id = u.userid
AND s.workshopid = $workshop->id
- AND s.timecreated > 0
- ORDER BY $order");
+ AND s.timecreated > 0
+ ORDER BY $order");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_submission_assessment($submission, $user) {
- // Return the user's assessment for this submission (cold or warm, not hot)
+ // Return the user's assessment for this submission (cold or warm, not hot)
$timenow = time();
- return get_record_select("workshop_assessments", "submissionid = $submission->id AND
+ return get_record_select("workshop_assessments", "submissionid = $submission->id AND
userid = $user->id AND timecreated < $timenow");
}
///////////////////////////////////////////////////////////////////////////////////////////////
function workshop_get_submit_logs($course, $timestart) {
- // get the "submit" entries and add the first and last names...
- global $CFG, $USER;
-
- $timethen = time() - $CFG->maxeditingtime;
+ // get the "submit" entries and add the first and last names...
+ global $CFG, $USER;
+
+ $timethen = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, l.info workshopid, e.name
FROM {$CFG->prefix}log l,
- {$CFG->prefix}workshop e,
- {$CFG->prefix}user u
+ {$CFG->prefix}workshop e,
+ {$CFG->prefix}user u
WHERE l.time > $timestart AND l.time < $timethen
- AND l.course = $course->id AND l.module = 'workshop'
- AND l.action = 'submit'
- AND e.id = l.info
- AND u.id = l.userid");
+ AND l.course = $course->id AND l.module = 'workshop'
+ AND l.action = 'submit'
+ AND e.id = l.info
+ AND u.id = l.userid");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_teacher_submission_assessments($workshop) {
// Return all assessments on the teacher submissions, order by youngest first, oldest last
- global $CFG;
-
+ global $CFG;
+
return get_records_sql("SELECT a.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_teachers u, {$CFG->prefix}workshop_assessments a
WHERE u.course = $workshop->course
AND s.userid = u.userid
AND s.workshopid = $workshop->id
- AND a.submissionid = s.id
- ORDER BY a.timecreated DESC");
+ AND a.submissionid = s.id
+ ORDER BY a.timecreated DESC");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_teacher_submissions($workshop) {
// Return all teacher submissions, ordered by title
- global $CFG;
-
- return get_records_sql("SELECT s.* FROM {$CFG->prefix}workshop_submissions s,
+ global $CFG;
+
+ return get_records_sql("SELECT s.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_teachers u
WHERE u.course = $workshop->course
AND s.userid = u.userid
AND s.workshopid = $workshop->id
- ORDER BY s.title");
+ ORDER BY s.title");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_ungraded_assessments($workshop) {
- global $CFG;
- // Return all assessments which have not been graded or just graded
- $cutofftime =time() - $CFG->maxeditingtime;
+ global $CFG;
+ // Return all assessments which have not been graded or just graded
+ $cutofftime =time() - $CFG->maxeditingtime;
return get_records_select("workshop_assessments", "workshopid = $workshop->id AND (timegraded = 0 OR
- timegraded > $cutofftime)", "timecreated");
- }
+ timegraded > $cutofftime)", "timecreated");
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_ungraded_assessments_student($workshop) {
- global $CFG;
- // Return all assessments which have not been graded or just graded of student's submissions
-
- $cutofftime = time() - $CFG->maxeditingtime;
+ global $CFG;
+ // Return all assessments which have not been graded or just graded of student's submissions
+
+ $cutofftime = time() - $CFG->maxeditingtime;
return get_records_sql("SELECT a.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_students u, {$CFG->prefix}workshop_assessments a
WHERE u.course = $workshop->course
AND s.userid = u.userid
AND s.workshopid = $workshop->id
- AND a.submissionid = s.id
- AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
- AND a.timecreated < $cutofftime
- ORDER BY a.timecreated ASC");
- }
+ AND a.submissionid = s.id
+ AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
+ AND a.timecreated < $cutofftime
+ ORDER BY a.timecreated ASC");
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_ungraded_assessments_teacher($workshop) {
- global $CFG;
- // Return all assessments which have not been graded or just graded of teacher's submissions
-
- $cutofftime =time() - $CFG->maxeditingtime;
+ global $CFG;
+ // Return all assessments which have not been graded or just graded of teacher's submissions
+
+ $cutofftime =time() - $CFG->maxeditingtime;
return get_records_sql("SELECT a.* FROM {$CFG->prefix}workshop_submissions s,
{$CFG->prefix}user_teachers u, {$CFG->prefix}workshop_assessments a
WHERE u.course = $workshop->course
AND s.userid = u.userid
AND s.workshopid = $workshop->id
- AND a.submissionid = s.id
- AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
- AND a.timecreated < $cutofftime
- ORDER BY a.timecreated ASC");
- }
+ AND a.submissionid = s.id
+ AND (a.timegraded = 0 OR a.timegraded > $cutofftime)
+ AND a.timecreated < $cutofftime
+ ORDER BY a.timecreated ASC");
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_unmailed_assessments($cutofftime) {
- /// Return list of (ungraded) assessments that have not been mailed out
+ /// Return list of (ungraded) assessments that have not been mailed out
global $CFG;
return get_records_sql("SELECT a.*, g.course, g.name
FROM {$CFG->prefix}workshop_assessments a, {$CFG->prefix}workshop g
WHERE a.mailed = 0
- AND a.timegraded = 0
+ AND a.timegraded = 0
AND a.timecreated < $cutofftime
AND g.id = a.workshopid");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_unmailed_comments($cutofftime) {
- /// Return list of comments that have not been mailed out
+ /// Return list of comments that have not been mailed out
global $CFG;
return get_records_sql("SELECT c.*, g.course, g.name
FROM {$CFG->prefix}workshop_comments c, {$CFG->prefix}workshop g
WHERE c.mailed = 0
- AND c.timecreated < $cutofftime
+ AND c.timecreated < $cutofftime
AND g.id = c.workshopid");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_unmailed_graded_assessments($cutofftime) {
- /// Return list of graded assessments that have not been mailed out
+ /// Return list of graded assessments that have not been mailed out
global $CFG;
return get_records_sql("SELECT a.*, g.course, g.name
FROM {$CFG->prefix}workshop_assessments a, {$CFG->prefix}workshop g
WHERE a.mailed = 0
- AND a.timegraded < $cutofftime
- AND a.timegraded > 0
+ AND a.timegraded < $cutofftime
+ AND a.timegraded > 0
AND g.id = a.workshopid");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_unmailed_resubmissions($cutofftime) {
- /// Return list of assessments of resubmissions that have not been mailed out
+ /// Return list of assessments of resubmissions that have not been mailed out
global $CFG;
return get_records_sql("SELECT a.*, w.course, w.name
FROM {$CFG->prefix}workshop_assessments a, {$CFG->prefix}workshop w
WHERE a.mailed = 0
- AND a.resubmission = 1
+ AND a.resubmission = 1
AND w.id = a.workshopid");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_user_assessments($workshop, $user) {
// Return all the user's assessments, newest first, oldest last (hot, warm and cold ones)
- return get_records_select("workshop_assessments", "workshopid = $workshop->id AND userid = $user->id",
- "timecreated DESC");
+ return get_records_select("workshop_assessments", "workshopid = $workshop->id AND userid = $user->id",
+ "timecreated DESC");
}
// Return all the user's assessments, newest first, oldest last (warm and cold ones only)
// ignores maxeditingtime
$timenow = time();
- return get_records_select("workshop_assessments", "workshopid = $workshop->id AND userid = $user->id
+ return get_records_select("workshop_assessments", "workshopid = $workshop->id AND userid = $user->id
AND timecreated < $timenow",
- "timecreated DESC");
+ "timecreated DESC");
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_user_submissions($workshop, $user) {
- // return real submissions of user newest first, oldest last. Ignores the dummy submissions
- // which get created to hold the final grades for users for make no submissions)
+ // return real submissions of user newest first, oldest last. Ignores the dummy submissions
+ // which get created to hold the final grades for users for make no submissions)
return get_records_select("workshop_submissions", "workshopid = $workshop->id AND
- userid = $user->id AND timecreated > 0", "timecreated DESC" );
+ userid = $user->id AND timecreated > 0", "timecreated DESC" );
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_get_users_done($workshop) {
- global $CFG;
+ global $CFG;
return get_records_sql("SELECT u.*
- FROM {$CFG->prefix}user u, {$CFG->prefix}user_students s,
+ FROM {$CFG->prefix}user u, {$CFG->prefix}user_students s,
{$CFG->prefix}workshop_submissions a
WHERE s.course = '$workshop->course' AND s.user = u.id
AND u.id = a.user AND a.workshop = '$workshop->id'
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_all_submissions($workshop, $user) {
- // list the teacher sublmissions first
- global $CFG;
-
+ // list the teacher sublmissions first
+ global $CFG;
+
if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
}
- $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
+ $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
get_string("comment", "workshop"));
- $table->align = array ("left", "left", "left");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = workshop_get_teacher_submissions($workshop)) {
- foreach ($submissions as $submission) {
- if ($submission->userid == $user->id) {
- $comment = get_string("ownwork", "workshop")."; ";
- }
- else {
- $comment = "";
- }
- // 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 = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">"
- .get_string("view", "workshop")."</A>";
- // has teacher graded user's assessment?
- if ($assessment->timegraded) {
- if (($curtime - $assessment->timegraded) > $CFG->maxeditingtime) {
- $comment .= get_string("gradedbyteacher", "workshop", $course->teacher);
- }
- }
- }
- else { // there's still time left to edit...
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("edit", "workshop")."</A>";
- }
- }
- else { // user has not graded this submission
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</A>";
- }
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action,
+ $table->align = array ("left", "left", "left");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = workshop_get_teacher_submissions($workshop)) {
+ foreach ($submissions as $submission) {
+ if ($submission->userid == $user->id) {
+ $comment = get_string("ownwork", "workshop")."; ";
+ }
+ else {
+ $comment = "";
+ }
+ // 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 = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">"
+ .get_string("view", "workshop")."</A>";
+ // has teacher graded user's assessment?
+ if ($assessment->timegraded) {
+ if (($curtime - $assessment->timegraded) > $CFG->maxeditingtime) {
+ $comment .= get_string("gradedbyteacher", "workshop", $course->teacher);
+ }
+ }
+ }
+ else { // there's still time left to edit...
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("edit", "workshop")."</A>";
+ }
+ }
+ else { // user has not graded this submission
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</A>";
+ }
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action,
$comment);
- }
- print_table($table);
- }
+ }
+ print_table($table);
+ }
- echo "<CENTER><P><B>".get_string("studentsubmissions", "workshop", $course->student).
+ echo "<CENTER><P><B>".get_string("studentsubmissions", "workshop", $course->student).
"</B></CENTER><BR>\n";
- unset($table);
- $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
+ unset($table);
+ $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
get_string("comment", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = workshop_get_student_submissions($workshop)) {
- foreach ($submissions as $submission) {
- if ($submission->userid == $user->id) {
- $comment = get_string("ownwork", "workshop")."; ";
- }
- else {
- $comment = "";
- }
- // 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 = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">".
- get_string("view", "workshop")."</A>";
- // has teacher graded on user's assessment?
- if ($assessment->timegraded) {
- if (($curtime - $assessment->timegraded) > $CFG->maxeditingtime) {
- $comment .= get_string("gradedbyteacher", "workshop", $course->teacher)."; ";
- }
- }
- $otherassessments = workshop_get_assessments($submission);
- if (count($otherassessments) > 1) {
- $comment .= "<A HREF=\"assessments.php?action=viewallassessments&a=$workshop->id&sid=$submission->id\">".
- get_string("viewotherassessments", "workshop")."</A>";
- }
- }
- else { // there's still time left to edit...
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("edit", "workshop")."</A>";
- }
- }
- else { // user has not assessed this submission
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</A>";
- }
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action,
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = workshop_get_student_submissions($workshop)) {
+ foreach ($submissions as $submission) {
+ if ($submission->userid == $user->id) {
+ $comment = get_string("ownwork", "workshop")."; ";
+ }
+ else {
+ $comment = "";
+ }
+ // 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 = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">".
+ get_string("view", "workshop")."</A>";
+ // has teacher graded on user's assessment?
+ if ($assessment->timegraded) {
+ if (($curtime - $assessment->timegraded) > $CFG->maxeditingtime) {
+ $comment .= get_string("gradedbyteacher", "workshop", $course->teacher)."; ";
+ }
+ }
+ $otherassessments = workshop_get_assessments($submission);
+ if (count($otherassessments) > 1) {
+ $comment .= "<A HREF=\"assessments.php?action=viewallassessments&a=$workshop->id&sid=$submission->id\">".
+ get_string("viewotherassessments", "workshop")."</A>";
+ }
+ }
+ else { // there's still time left to edit...
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("edit", "workshop")."</A>";
+ }
+ }
+ else { // user has not assessed this submission
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</A>";
+ }
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action,
$comment);
- }
- print_table($table);
- }
- }
+ }
+ print_table($table);
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_all_ungraded_assessments($workshop) {
- // lists all the assessments for comment by teacher
- global $CFG;
-
- $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->cellpadding = 2;
- $table->cellspacing = 0;
- $timenow = time();
-
- if ($assessments = workshop_get_ungraded_assessments($workshop)) {
- foreach ($assessments as $assessment) {
- if (!isteacher($workshop->course, $assessment->userid)) {
- if (($timenow - $assessment->timegraded) < $CFG->maxeditingtime) {
- $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$workshop->id&aid=$assessment->id\">".
- get_string("edit", "workshop")."</A>";
- }
- else {
- $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$workshop->id&aid=$assessment->id\">".
- get_string("gradeassessment", "workshop")."</A>";
- }
- $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
- $table->data[] = array(workshop_print_submission_title($workshop, $submission),
- userdate($assessment->timecreated), $action);
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- }
- }
-
+ // lists all the assessments for comment by teacher
+ global $CFG;
+
+ $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->cellpadding = 2;
+ $table->cellspacing = 0;
+ $timenow = time();
+
+ if ($assessments = workshop_get_ungraded_assessments($workshop)) {
+ foreach ($assessments as $assessment) {
+ if (!isteacher($workshop->course, $assessment->userid)) {
+ if (($timenow - $assessment->timegraded) < $CFG->maxeditingtime) {
+ $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$workshop->id&aid=$assessment->id\">".
+ get_string("edit", "workshop")."</A>";
+ }
+ else {
+ $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$workshop->id&aid=$assessment->id\">".
+ get_string("gradeassessment", "workshop")."</A>";
+ }
+ $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission),
+ userdate($assessment->timecreated), $action);
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ }
+ }
+
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_assessed_submissions($workshop, $user) {
- // list the submissions that have been assessed by this user and are COLD
- global $CFG;
-
+ // list the submissions that have been assessed by this user and are COLD
+ global $CFG;
+
if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
}
- $table->head = array (get_string("title","workshop"), get_string("action","workshop"),
+ $table->head = array (get_string("title","workshop"), get_string("action","workshop"),
get_string("comment","workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($assessments = workshop_get_student_assessments($workshop, $user)) {
- $timenow = time();
- foreach ($assessments as $assessment) {
- $comment = "";
- $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
- // the assessment may be in three states:
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($assessments = workshop_get_student_assessments($workshop, $user)) {
+ $timenow = time();
+ foreach ($assessments as $assessment) {
+ $comment = "";
+ $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
+ // the assessment may be in three states:
// 1. "hot", just created but not completed (timecreated is in the future)
- // 2. "warm" just created and still capable of being edited, and
+ // 2. "warm" just created and still capable of being edited, and
// 3. "cold" after the editing time
- if ($assessment->timecreated < ($timenow - $CFG->maxeditingtime)) { // it's cold
- $action = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id&".
- "allowcomments=$workshop->agreeassessments\">".
- get_string("view", "workshop")."</A>";
- if ($workshop->agreeassessments and !$assessment->timeagreed) {
- $action .= " | <A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("reassess", "workshop")."</A>";
- }
- if ($assessment->timecreated < $timenow) { // only show the date if it's in the past (future dates cause confusion
- $comment = get_string("assessedon", "workshop", userdate($assessment->timecreated));
- }
- else {
- $comment = '';
- }
- if ($submission->userid == $user->id) { // self assessment?
- $comment .= "; ".get_string("ownwork", "workshop"); // just in case they don't know!
- }
- // has teacher commented on user's assessment?
- if ($assessment->timegraded and ($timenow - $assessment->timegraded > $CFG->maxeditingtime)) {
- $comment .= "; ".get_string("gradedbyteacher", "workshop", $course->teacher);
- }
- // if peer agrrements show whether agreement has been reached
- if ($workshop->agreeassessments) {
- if ($assessment->timeagreed) {
- $comment .= "; ".get_string("assessmentwasagreedon", "workshop",
+ if ($assessment->timecreated < ($timenow - $CFG->maxeditingtime)) { // it's cold
+ $action = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id&".
+ "allowcomments=$workshop->agreeassessments\">".
+ get_string("view", "workshop")."</A>";
+ if ($workshop->agreeassessments and !$assessment->timeagreed) {
+ $action .= " | <A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("reassess", "workshop")."</A>";
+ }
+ if ($assessment->timecreated < $timenow) { // only show the date if it's in the past (future dates cause confusion
+ $comment = get_string("assessedon", "workshop", userdate($assessment->timecreated));
+ }
+ else {
+ $comment = '';
+ }
+ if ($submission->userid == $user->id) { // self assessment?
+ $comment .= "; ".get_string("ownwork", "workshop"); // just in case they don't know!
+ }
+ // has teacher commented on user's assessment?
+ if ($assessment->timegraded and ($timenow - $assessment->timegraded > $CFG->maxeditingtime)) {
+ $comment .= "; ".get_string("gradedbyteacher", "workshop", $course->teacher);
+ }
+ // if peer agrrements show whether agreement has been reached
+ if ($workshop->agreeassessments) {
+ if ($assessment->timeagreed) {
+ $comment .= "; ".get_string("assessmentwasagreedon", "workshop",
userdate($assessment->timeagreed));
- }
- else {
- $comment .= "; ".get_string("assessmentnotyetagreed", "workshop");
- }
- }
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action,
+ }
+ else {
+ $comment .= "; ".get_string("assessmentnotyetagreed", "workshop");
+ }
+ }
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action,
$comment);
- }
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- else {
- echo "<CENTER>".get_string("noassessmentsdone", "workshop")."</CENTER>\n";
- }
- }
+ }
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ else {
+ echo "<CENTER>".get_string("noassessmentsdone", "workshop")."</CENTER>\n";
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_peer_assessments($workshop, $user) {
- global $CFG;
-
- if (! $course = get_record("course", "id", $workshop->course)) {
+ global $CFG;
+
+ if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
}
- $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
+ $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
get_string("comment", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- // get user's submissions
- if ($submissions = workshop_get_user_submissions($workshop, $user)) {
- foreach ($submissions as $submission) {
- // get the assessments
- if ($assessments = workshop_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- // assessments by students only and exclude any self assessments
- if (isstudent($workshop->course, $assessment->userid) and
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ // get user's submissions
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ foreach ($submissions as $submission) {
+ // get the assessments
+ if ($assessments = workshop_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ // assessments by students only and exclude any self assessments
+ if (isstudent($workshop->course, $assessment->userid) and
($assessment->userid != $user->id)) {
- $timenow = time();
- if (($timenow - $assessment->timecreated) > $CFG->maxeditingtime) {
- $action = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id&".
- "allowcomments=$workshop->agreeassessments\">".
- get_string("view", "workshop")."</A>";
- $comment = get_string("assessedon", "workshop",
+ $timenow = time();
+ if (($timenow - $assessment->timecreated) > $CFG->maxeditingtime) {
+ $action = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id&".
+ "allowcomments=$workshop->agreeassessments\">".
+ get_string("view", "workshop")."</A>";
+ $comment = get_string("assessedon", "workshop",
userdate($assessment->timecreated));
- // has teacher commented on user's assessment?
- if ($assessment->timegraded and
+ // has teacher commented on user's assessment?
+ if ($assessment->timegraded and
($timenow - $assessment->timegraded > $CFG->maxeditingtime)) {
- $comment .= "; ".get_string("gradedbyteacher", "workshop", $course->teacher);
- }
- // if peer agrrements show whether agreement has been reached
- if ($workshop->agreeassessments) {
- if ($assessment->timeagreed) {
- $comment .= "; ".get_string("assessmentwasagreedon", "workshop",
+ $comment .= "; ".get_string("gradedbyteacher", "workshop", $course->teacher);
+ }
+ // if peer agrrements show whether agreement has been reached
+ if ($workshop->agreeassessments) {
+ if ($assessment->timeagreed) {
+ $comment .= "; ".get_string("assessmentwasagreedon", "workshop",
userdate($assessment->timeagreed));
- }
- else {
- $comment .= "; ".get_string("assessmentnotyetagreed", "workshop");
- }
- }
- $table->data[] = array(workshop_print_submission_title($workshop, $submission),
+ }
+ else {
+ $comment .= "; ".get_string("assessmentnotyetagreed", "workshop");
+ }
+ }
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission),
$action, $comment);
- }
- }
- }
- }
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- else {
- echo "<CENTER>".get_string("noassessmentsdone", "workshop")."</CENTER>\n";
- }
- }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ else {
+ echo "<CENTER>".get_string("noassessmentsdone", "workshop")."</CENTER>\n";
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_self_assessments($workshop, $user) {
- // list user's submissions for the user to assess
- global $CFG;
-
- if (! $course = get_record("course", "id", $workshop->course)) {
+ // list user's submissions for the user to assess
+ global $CFG;
+
+ if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
}
- $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
+ $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
get_string("comment", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- // get the user's submissions
- if ($submissions = workshop_get_user_submissions($workshop, $user)) {
- foreach ($submissions as $submission) {
- $comment = "";
- if (!$assessment = get_record_select("workshop_assessments", "submissionid = $submission->id AND
- userid = $user->id")) {
- if ($submission->userid == $user->id) { // this will always be true
- $comment = get_string("ownwork", "workshop"); // just in case they don't know!
- }
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</A>";
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
- }
- }
- }
- if (isset($table->data)) {
- echo "<P><CENTER><B>".get_string("pleaseassessyoursubmissions", "workshop", $course->student).
- "</B></CENTER><BR>\n";
- print_table($table);
- }
- }
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ // get the user's submissions
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ foreach ($submissions as $submission) {
+ $comment = "";
+ if (!$assessment = get_record_select("workshop_assessments", "submissionid = $submission->id AND
+ userid = $user->id")) {
+ if ($submission->userid == $user->id) { // this will always be true
+ $comment = get_string("ownwork", "workshop"); // just in case they don't know!
+ }
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</A>";
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
+ }
+ }
+ }
+ if (isset($table->data)) {
+ echo "<P><CENTER><B>".get_string("pleaseassessyoursubmissions", "workshop", $course->student).
+ "</B></CENTER><BR>\n";
+ print_table($table);
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_student_submissions($workshop, $user) {
- // list available submissions for this user to assess, submissions with the least number
- // of assessments are show first
- global $CFG;
-
+ // list available submissions for this user to assess, submissions with the least number
+ // of assessments are show first
+ global $CFG;
+
$timenow = time();
- if (! $course = get_record("course", "id", $workshop->course)) {
+ if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
}
if (! $cm = get_coursemodule_from_instance("workshop", $workshop->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"), get_string("comment", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- // get the number of assessments this user has done on student submission, deduct self assessments
- $nassessed = workshop_count_user_assessments($workshop, $user, "student") -
- workshop_count_self_assessments($workshop, $user);
- // user hasn't been allocated enough, try and get some more
- if ($nassessed < $workshop->nsassessments) {
- // count the number of assessments for each student submission
- if ($submissions = workshop_get_student_submissions($workshop)) {
- // srand ((float)microtime()*1000000); // now done automatically in PHP 4.2.0->
- foreach ($submissions as $submission) {
+ error("Course Module ID was incorrect");
+ }
+
+ $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"), get_string("comment", "workshop"));
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ // get the number of assessments this user has done on student submission, deduct self assessments
+ $nassessed = workshop_count_user_assessments($workshop, $user, "student") -
+ workshop_count_self_assessments($workshop, $user);
+ // user hasn't been allocated enough, try and get some more
+ if ($nassessed < $workshop->nsassessments) {
+ // count the number of assessments for each student submission
+ if ($submissions = workshop_get_student_submissions($workshop)) {
+ // srand ((float)microtime()*1000000); // now done automatically in PHP 4.2.0->
+ foreach ($submissions as $submission) {
// process only cold submissions
if (($submission->timecreated + $CFG->maxeditingtime) > $timenow) {
continue;
}
- $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, 98) / 100;
- }
-
+ $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, 98) / 100;
+ }
+
if (isset($nassessments)) { // make sure we end up with something to play with :-)
// put the submissions with the lowest number of assessments first
asort($nassessments);
}
}
}
- }
- }
+ }
+ }
}
- // now list the student submissions this user has been allocated, list only the hot and warm ones,
+ // now list the student submissions this user has been allocated, list only the hot and warm ones,
// the cold ones are listed in the "your assessments list" (_list_assessed 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_student_submissions: unable to get submission");
- }
- // submission from a student?
- if (isstudent($workshop->course, $submission->userid)) {
- $comment = '';
- // user assessment has three states: record created but not assessed (date created in the future) [hot];
- // just assessed but still editable [warm]; and "static" (may or may not have been graded by teacher, that
- // is shown in the comment) [cold]
- if ($assessment->timecreated > $timenow) { // user needs to assess this submission
- $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</A>";
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
- }
- elseif ($assessment->timecreated > ($timenow - $CFG->maxeditingtime)) { // there's still time left to edit...
- $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
- get_string("edit", "workshop")."</A>";
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
- }
- }
- }
- }
-
- if (isset($table->data)) {
- echo "<P><CENTER><B>".get_string("pleaseassessthesestudentsubmissions", "workshop", $course->student).
- "</B></CENTER><BR>\n";
- print_table($table);
- }
- else {
- echo "<P><CENTER><B>".get_string("nosubmissionsavailableforassessment", "workshop")."</B></CENTER><BR>\n";
- }
- }
+ 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_student_submissions: unable to get submission");
+ }
+ // submission from a student?
+ if (isstudent($workshop->course, $submission->userid)) {
+ $comment = '';
+ // user assessment has three states: record created but not assessed (date created in the future) [hot];
+ // just assessed but still editable [warm]; and "static" (may or may not have been graded by teacher, that
+ // is shown in the comment) [cold]
+ if ($assessment->timecreated > $timenow) { // user needs to assess this submission
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</A>";
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
+ }
+ elseif ($assessment->timecreated > ($timenow - $CFG->maxeditingtime)) { // there's still time left to edit...
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&id=$cm->id&sid=$submission->id\">".
+ get_string("edit", "workshop")."</A>";
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
+ }
+ }
+ }
+ }
+
+ if (isset($table->data)) {
+ echo "<P><CENTER><B>".get_string("pleaseassessthesestudentsubmissions", "workshop", $course->student).
+ "</B></CENTER><BR>\n";
+ print_table($table);
+ }
+ else {
+ echo "<P><CENTER><B>".get_string("nosubmissionsavailableforassessment", "workshop")."</B></CENTER><BR>\n";
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_submissions_for_admin($workshop, $order) {
- // list the teacher sublmissions first
- global $CFG, $USER;
-
+ // list the teacher sublmissions first
+ global $CFG, $USER;
+
if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
}
error("Course Module ID was incorrect");
}
- workshop_print_assignment_info($workshop);
+ workshop_print_assignment_info($workshop);
- // if peer assessments allow teacher to change overallocation option
+ // if peer assessments allow teacher to change overallocation option
if ($workshop->nsassessments) {
print_simple_box_start("center");
- print_heading_with_help(get_string("setoverallocation", "workshop"), "overallocation", "workshop");
- echo "<form name=\"overform\" method=\"post\" action=\"submissions.php\">\n";
- echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\">\n";
- echo "<input type=\"hidden\" name=\"action\" value=\"updateoverallocation\">\n";
- echo "<center><table width=\"90%\" border=\"1\"><tr valign=\"top\">\n";
+ print_heading_with_help(get_string("setoverallocation", "workshop"), "overallocation", "workshop");
+ echo "<form name=\"overform\" method=\"post\" action=\"submissions.php\">\n";
+ echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\">\n";
+ echo "<input type=\"hidden\" name=\"action\" value=\"updateoverallocation\">\n";
+ echo "<center><table width=\"90%\" border=\"1\"><tr valign=\"top\">\n";
echo "<td align=\"right\"><p><b>".get_string("overallocation", "workshop").": </b></p></td>\n";
echo "<td valign=\"middle\">\n";
for ($i=2; $i>=0; $i--) {
- $numbers[$i] = $i;
- }
+ $numbers[$i] = $i;
+ }
choose_from_menu($numbers, "overallocation", "$workshop->overallocation", "");
echo "</td></tr></table><br />\n";
- echo "<INPUT TYPE=submit VALUE=\"".get_string("saveoverallocation", "workshop")."\">\n";
- echo "</form></center>\n";
+ echo "<INPUT TYPE=submit VALUE=\"".get_string("saveoverallocation", "workshop")."\">\n";
+ echo "</form></center>\n";
print_simple_box_end();
}
echo "</center></form>\n";
print_simple_box_end();
- // list any teacher submissions
- $table->head = array (get_string("title", "workshop"), get_string("submittedby", "workshop"), get_string("action", "workshop"));
- $table->align = array ("left", "left", "left");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = workshop_get_teacher_submissions($workshop)) {
- foreach ($submissions as $submission) {
- $action = "<a href=\"submissions.php?action=adminamendtitle&a=$workshop->id&sid=$submission->id\">".
- get_string("amendtitle", "workshop")."</a>";
- // has user already assessed this submission
- if ($assessment = get_record_select("workshop_assessments", "submissionid = $submission->id
- AND userid = $USER->id")) {
- $curtime = time();
- if ($assessment->timecreated > $curtime) { // it's a "hanging" assessment
- $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</a>";
- }
- elseif (($curtime - $assessment->timecreated) > $CFG->maxeditingtime) {
- $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">"
- .get_string("reassess", "workshop")."</a>";
- }
- else { // there's still time left to edit...
- $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("edit", "workshop")."</a>";
- }
- }
- else { // user has not graded this submission
- $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</a>";
- }
- if ($assessments = workshop_get_assessments($submission)) {
- $action .= " | <a href=\"assessments.php?action=adminlist&a=$workshop->id&sid=$submission->id\">".
- get_string("listassessments", "workshop")."</a>";
- }
- $action .= " | <a href=\"submissions.php?action=adminconfirmdelete&a=$workshop->id&sid=$submission->id\">".
- get_string("delete", "workshop")."</a>";
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $course->teacher, $action);
- }
- print_heading(get_string("studentsubmissions", "workshop", $course->teacher), "center");
- print_table($table);
- }
-
- // list student assessments
- // Get all the students...
- if ($users = get_course_students($course->id, "u.firstname, u.lastname")) {
- $timenow = time();
- print_heading(get_string("studentassessments", "workshop", $course->student));
- unset($table);
- $table->head = array(get_string("name"), get_string("title", "workshop"), get_string("action", "workshop"));
- $table->align = array ("left", "left", "left");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
- foreach ($users as $user) {
+ // list any teacher submissions
+ $table->head = array (get_string("title", "workshop"), get_string("submittedby", "workshop"), get_string("action", "workshop"));
+ $table->align = array ("left", "left", "left");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = workshop_get_teacher_submissions($workshop)) {
+ foreach ($submissions as $submission) {
+ $action = "<a href=\"submissions.php?action=adminamendtitle&a=$workshop->id&sid=$submission->id\">".
+ get_string("amendtitle", "workshop")."</a>";
+ // has user already assessed this submission
+ if ($assessment = get_record_select("workshop_assessments", "submissionid = $submission->id
+ AND userid = $USER->id")) {
+ $curtime = time();
+ if ($assessment->timecreated > $curtime) { // it's a "hanging" assessment
+ $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</a>";
+ }
+ elseif (($curtime - $assessment->timecreated) > $CFG->maxeditingtime) {
+ $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">"
+ .get_string("reassess", "workshop")."</a>";
+ }
+ else { // there's still time left to edit...
+ $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("edit", "workshop")."</a>";
+ }
+ }
+ else { // user has not graded this submission
+ $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</a>";
+ }
+ if ($assessments = workshop_get_assessments($submission)) {
+ $action .= " | <a href=\"assessments.php?action=adminlist&a=$workshop->id&sid=$submission->id\">".
+ get_string("listassessments", "workshop")."</a>";
+ }
+ $action .= " | <a href=\"submissions.php?action=adminconfirmdelete&a=$workshop->id&sid=$submission->id\">".
+ get_string("delete", "workshop")."</a>";
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $course->teacher, $action);
+ }
+ print_heading(get_string("studentsubmissions", "workshop", $course->teacher), "center");
+ print_table($table);
+ }
+
+ // list student assessments
+ // Get all the students...
+ if ($users = get_course_students($course->id, "u.firstname, u.lastname")) {
+ $timenow = time();
+ print_heading(get_string("studentassessments", "workshop", $course->student));
+ unset($table);
+ $table->head = array(get_string("name"), get_string("title", "workshop"), get_string("action", "workshop"));
+ $table->align = array ("left", "left", "left");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+ foreach ($users as $user) {
// list the assessments which have been done (exclude the hot ones)
- if ($assessments = workshop_get_user_assessments_done($workshop, $user)) {
- $title ='';
- foreach ($assessments as $assessment) {
- if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
- error("Workshop_list_submissions_for_admin: Submission record not found!");
- }
- $title .= $submission->title;
- // test for allocated assesments which have not been done
- if ($assessment->timecreated < $timenow) {
- $title .= " {".number_format($assessment->grade, 0);
- }
- else { // assessment record created but user has not yet assessed this submission
- $title .= " {-";
- }
- if ($assessment->timegraded) {
- $title .= "/".number_format($assessment->gradinggrade * 100 / COMMENTSCALE, 0)."%";
- }
- $title .= "} ";
- if ($realassessments = workshop_count_user_assessments_done($workshop, $user)) {
- $action = "<a href=\"assessments.php?action=adminlistbystudent&a=$workshop->id&userid=$user->id\">".
- get_string("liststudentsassessments", "workshop")." ($realassessments)</a>";
- }
- else {
- $action ="";
- }
- }
- $table->data[] = array("$user->firstname $user->lastname", $title, $action);
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- }
-
- // now the sudent submissions
- unset($table);
- switch ($order) {
- case "title" :
- $table->head = array("<a href=\"submissions.php?action=adminlist&a=$workshop->id&order=name\">".
- get_string("submittedby", "workshop")."</a>", get_string("title", "workshop"), get_string("action", "workshop"));
- break;
- case "name" :
- $table->head = array (get_string("submittedby", "workshop"),
- "<a href=\"submissions.php?action=adminlist&a=$workshop->id&order=title\">".
- get_string("title", "workshop")."</a>", get_string("action", "workshop"));
- break;
- }
- $table->align = array ("left", "left", "left");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = workshop_get_student_submissions($workshop, $order)) {
- foreach ($submissions as $submission) {
- if (!$user = get_record("user", "id", $submission->userid)) {
- error("workshop_list_submissions_for_admin: failure to get user record");
- }
- $action = "<a href=\"submissions.php?action=adminamendtitle&a=$workshop->id&sid=$submission->id\">".
- get_string("amendtitle", "workshop")."</a>";
- // 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 .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("reassess", "workshop")."</a>";
- }
- else { // there's still time left to edit...
- $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("edit", "workshop")."</a>";
- }
- }
- else { // user has not assessed this submission
- $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</a>";
- }
- if ($nassessments = workshop_count_assessments($submission)) {
- $action .= " | <a href=\"assessments.php?action=adminlist&a=$workshop->id&sid=$submission->id\">".
- get_string("listassessments", "workshop")." ($nassessments)</a>";
- }
- $action .= " | <a href=\"submissions.php?action=adminconfirmdelete&a=$workshop->id&sid=$submission->id\">".
- get_string("delete", "workshop")."</a>";
- $table->data[] = array("$user->firstname $user->lastname", $submission->title.
- " ".workshop_print_submission_assessments($workshop, $submission, "teacher").
- " ".workshop_print_submission_assessments($workshop, $submission, "student"), $action);
- }
- print_heading(get_string("studentsubmissions", "workshop", $course->student), "center");
- print_table($table);
- }
+ if ($assessments = workshop_get_user_assessments_done($workshop, $user)) {
+ $title ='';
+ foreach ($assessments as $assessment) {
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error("Workshop_list_submissions_for_admin: Submission record not found!");
+ }
+ $title .= $submission->title;
+ // test for allocated assesments which have not been done
+ if ($assessment->timecreated < $timenow) {
+ $title .= " {".number_format($assessment->grade, 0);
+ }
+ else { // assessment record created but user has not yet assessed this submission
+ $title .= " {-";
+ }
+ if ($assessment->timegraded) {
+ $title .= "/".number_format($assessment->gradinggrade * 100 / COMMENTSCALE, 0)."%";
+ }
+ $title .= "} ";
+ if ($realassessments = workshop_count_user_assessments_done($workshop, $user)) {
+ $action = "<a href=\"assessments.php?action=adminlistbystudent&a=$workshop->id&userid=$user->id\">".
+ get_string("liststudentsassessments", "workshop")." ($realassessments)</a>";
+ }
+ else {
+ $action ="";
+ }
+ }
+ $table->data[] = array("$user->firstname $user->lastname", $title, $action);
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ }
+
+ // now the sudent submissions
+ unset($table);
+ switch ($order) {
+ case "title" :
+ $table->head = array("<a href=\"submissions.php?action=adminlist&a=$workshop->id&order=name\">".
+ get_string("submittedby", "workshop")."</a>", get_string("title", "workshop"), get_string("action", "workshop"));
+ break;
+ case "name" :
+ $table->head = array (get_string("submittedby", "workshop"),
+ "<a href=\"submissions.php?action=adminlist&a=$workshop->id&order=title\">".
+ get_string("title", "workshop")."</a>", get_string("action", "workshop"));
+ break;
+ }
+ $table->align = array ("left", "left", "left");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = workshop_get_student_submissions($workshop, $order)) {
+ foreach ($submissions as $submission) {
+ if (!$user = get_record("user", "id", $submission->userid)) {
+ error("workshop_list_submissions_for_admin: failure to get user record");
+ }
+ $action = "<a href=\"submissions.php?action=adminamendtitle&a=$workshop->id&sid=$submission->id\">".
+ get_string("amendtitle", "workshop")."</a>";
+ // 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 .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("reassess", "workshop")."</a>";
+ }
+ else { // there's still time left to edit...
+ $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("edit", "workshop")."</a>";
+ }
+ }
+ else { // user has not assessed this submission
+ $action .= " | <a href=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</a>";
+ }
+ if ($nassessments = workshop_count_assessments($submission)) {
+ $action .= " | <a href=\"assessments.php?action=adminlist&a=$workshop->id&sid=$submission->id\">".
+ get_string("listassessments", "workshop")." ($nassessments)</a>";
+ }
+ $action .= " | <a href=\"submissions.php?action=adminconfirmdelete&a=$workshop->id&sid=$submission->id\">".
+ get_string("delete", "workshop")."</a>";
+ $table->data[] = array("$user->firstname $user->lastname", $submission->title.
+ " ".workshop_print_submission_assessments($workshop, $submission, "teacher").
+ " ".workshop_print_submission_assessments($workshop, $submission, "student"), $action);
+ }
+ print_heading(get_string("studentsubmissions", "workshop", $course->student), "center");
+ print_table($table);
+ }
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_teacher_assessments($workshop, $user) {
- global $CFG;
-
- if (! $course = get_record("course", "id", $workshop->course)) {
+ global $CFG;
+
+ if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
}
- $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"), get_string("comment", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- // get user's submissions
- if ($submissions = workshop_get_user_submissions($workshop, $user)) {
- foreach ($submissions as $submission) {
- // get the assessments
- if ($assessments = workshop_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- if (isteacher($workshop->course, $assessment->userid)) { // assessments by teachers only
- $action = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">".
- get_string("view", "workshop")."</A>";
- // has teacher commented on teacher's assessment? shouldn't happen but leave test in
- if ($assessment->timegraded and ($timenow - $assessment->timegraded > $CFG->maxeditingtime)) {
- $comment = get_string("gradedbyteacher", "workshop", $course->teacher);
- }
- else {
- $comment = userdate($assessment->timecreated);
- }
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
- }
- }
- }
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- else {
- echo "<CENTER>".get_string("noassessmentsdone", "workshop")."</CENTER>\n";
- }
- }
+ $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"), get_string("comment", "workshop"));
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ // get user's submissions
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ foreach ($submissions as $submission) {
+ // get the assessments
+ if ($assessments = workshop_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ if (isteacher($workshop->course, $assessment->userid)) { // assessments by teachers only
+ $action = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">".
+ get_string("view", "workshop")."</A>";
+ // has teacher commented on teacher's assessment? shouldn't happen but leave test in
+ if ($assessment->timegraded and ($timenow - $assessment->timegraded > $CFG->maxeditingtime)) {
+ $comment = get_string("gradedbyteacher", "workshop", $course->teacher);
+ }
+ else {
+ $comment = userdate($assessment->timecreated);
+ }
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
+ }
+ }
+ }
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ else {
+ echo "<CENTER>".get_string("noassessmentsdone", "workshop")."</CENTER>\n";
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_teacher_submissions($workshop, $user) {
- global $CFG;
-
- if (! $course = get_record("course", "id", $workshop->course)) {
+ global $CFG;
+
+ if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
}
- $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"), get_string("comment", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- // get the number of assessments this user has done
- $nassessed = count_records_select("workshop_assessments", "workshopid = $workshop->id
- AND userid = $user->id");
- if ($nassessed < $workshop->ntassessments) {
- // if user has not assessed enough, set up "future" assessment records for this user for 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);
- foreach ($nassessments as $submissionid => $n) { // break out of loop when we allocated enough assessments...
- $submission = get_record("workshop_submissions", "id", $submissionid);
- // ... provided the user has NOT already assessed that submission...
- if (!get_record("workshop_assessments", "submissionid", $submission->id, "userid",
+ $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"), get_string("comment", "workshop"));
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ // get the number of assessments this user has done
+ $nassessed = count_records_select("workshop_assessments", "workshopid = $workshop->id
+ AND userid = $user->id");
+ if ($nassessed < $workshop->ntassessments) {
+ // if user has not assessed enough, set up "future" assessment records for this user for 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);
+ foreach ($nassessments as $submissionid => $n) { // break out of loop when we allocated enough assessments...
+ $submission = get_record("workshop_submissions", "id", $submissionid);
+ // ... provided the user has NOT already assessed that submission...
+ if (!get_record("workshop_assessments", "submissionid", $submission->id, "userid",
$user->id)) {
- $yearfromnow = time() + 365 * 86400;
- // ...create one and set timecreated way in the future, this is reset when record is updated
- $assessment->workshopid = $workshop->id;
- $assessment->submissionid = $submission->id;
- $assessment->userid = $user->id;
- $assessment->grade = -1; // set impossible grade
- $assessment->timecreated = $yearfromnow;
- if (!$assessment->id = insert_record("workshop_assessments", $assessment)) {
- error("Could not insert workshop assessment!");
- }
- $nassessed++;
- if ($nassessed >= $workshop->ntassessments) {
- 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");
- }
- // submission from a teacher?
- if (isteacher($workshop->course, $submission->userid)) {
- $comment = '';
- // user assessment has three states: record created but not assessed (date created in the future);
- // just assessed but still editable; and "static" (may or may not have been graded by teacher, that
- // is shown in the comment)
- if ($assessment->timecreated> $timenow) { // user needs to assess this submission
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</A>";
- }
- elseif (($timenow - $assessment->timecreated) < $CFG->maxeditingtime) { // there's still time left to edit...
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("edit", "workshop")."</A>";
- }
- else {
- $action = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">"
- .get_string("view", "workshop")."</A>";
- }
- // see if teacher has graded assessment
- if ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
- $comment .= get_string("thereisfeedbackfromtheteacher", "workshop", $course->teacher);
- }
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
- }
- }
- }
- print_table($table);
- }
+ $yearfromnow = time() + 365 * 86400;
+ // ...create one and set timecreated way in the future, this is reset when record is updated
+ $assessment->workshopid = $workshop->id;
+ $assessment->submissionid = $submission->id;
+ $assessment->userid = $user->id;
+ $assessment->grade = -1; // set impossible grade
+ $assessment->timecreated = $yearfromnow;
+ if (!$assessment->id = insert_record("workshop_assessments", $assessment)) {
+ error("Could not insert workshop assessment!");
+ }
+ $nassessed++;
+ if ($nassessed >= $workshop->ntassessments) {
+ 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");
+ }
+ // submission from a teacher?
+ if (isteacher($workshop->course, $submission->userid)) {
+ $comment = '';
+ // user assessment has three states: record created but not assessed (date created in the future);
+ // just assessed but still editable; and "static" (may or may not have been graded by teacher, that
+ // is shown in the comment)
+ if ($assessment->timecreated> $timenow) { // user needs to assess this submission
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</A>";
+ }
+ elseif (($timenow - $assessment->timecreated) < $CFG->maxeditingtime) { // there's still time left to edit...
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("edit", "workshop")."</A>";
+ }
+ else {
+ $action = "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">"
+ .get_string("view", "workshop")."</A>";
+ }
+ // see if teacher has graded assessment
+ if ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
+ $comment .= get_string("thereisfeedbackfromtheteacher", "workshop", $course->teacher);
+ }
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
+ }
+ }
+ }
+ print_table($table);
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_unassessed_student_submissions($workshop, $user) {
- // list the student submissions not assessed by this user
- global $CFG;
-
- $table->head = array (get_string("title", "workshop"), get_string("submittedby", "workshop"),
- get_string("action", "workshop"), get_string("comment", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = workshop_get_student_submissions($workshop)) {
- foreach ($submissions as $submission) {
- $comment = "";
- // see if user already graded this assessment
- if ($assessment = get_record_select("workshop_assessments", "submissionid = $submission->id
- AND userid = $user->id")) {
- $timenow = time();
- if (($timenow - $assessment->timecreated < $CFG->maxeditingtime)) {
- // last chance salon
- $submissionowner = get_record("user", "id", $submission->userid);
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("edit", "workshop")."</A>";
- $table->data[] = array(workshop_print_submission_title($workshop, $submission),
- $submissionowner->firstname." ".$submissionowner->lastname, $action, $comment);
- }
- }
- else { // no assessment
- $submissionowner = get_record("user", "id", $submission->userid);
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</A>";
- $table->data[] = array(workshop_print_submission_title($workshop, $submission),
- $submissionowner->firstname." ".$submissionowner->lastname, $action, $comment);
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- }
- }
+ // list the student submissions not assessed by this user
+ global $CFG;
+
+ $table->head = array (get_string("title", "workshop"), get_string("submittedby", "workshop"),
+ get_string("action", "workshop"), get_string("comment", "workshop"));
+ $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = workshop_get_student_submissions($workshop)) {
+ foreach ($submissions as $submission) {
+ $comment = "";
+ // see if user already graded this assessment
+ if ($assessment = get_record_select("workshop_assessments", "submissionid = $submission->id
+ AND userid = $user->id")) {
+ $timenow = time();
+ if (($timenow - $assessment->timecreated < $CFG->maxeditingtime)) {
+ // last chance salon
+ $submissionowner = get_record("user", "id", $submission->userid);
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("edit", "workshop")."</A>";
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission),
+ $submissionowner->firstname." ".$submissionowner->lastname, $action, $comment);
+ }
+ }
+ else { // no assessment
+ $submissionowner = get_record("user", "id", $submission->userid);
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</A>";
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission),
+ $submissionowner->firstname." ".$submissionowner->lastname, $action, $comment);
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_unassessed_teacher_submissions($workshop, $user) {
- // list the teacher submissions not assessed by this user
- global $CFG;
-
- $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"), get_string("comment", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = workshop_get_teacher_submissions($workshop)) {
- foreach ($submissions as $submission) {
- $comment = "";
- // see if user already graded this assessment
- if ($assessment = get_record_select("workshop_assessments", "submissionid = $submission->id
- AND userid = $user->id")) {
- $timenow = time();
- if (($timenow - $assessment->timecreated < $CFG->maxeditingtime)) {
- // last chance salon
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("edit", "workshop")."</A>";
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
- }
- }
- else { // no assessment
- $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
- get_string("assess", "workshop")."</A>";
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- }
- }
+ // list the teacher submissions not assessed by this user
+ global $CFG;
+
+ $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"), get_string("comment", "workshop"));
+ $table->align = array ("LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = workshop_get_teacher_submissions($workshop)) {
+ foreach ($submissions as $submission) {
+ $comment = "";
+ // see if user already graded this assessment
+ if ($assessment = get_record_select("workshop_assessments", "submissionid = $submission->id
+ AND userid = $user->id")) {
+ $timenow = time();
+ if (($timenow - $assessment->timecreated < $CFG->maxeditingtime)) {
+ // last chance salon
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("edit", "workshop")."</A>";
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
+ }
+ }
+ else { // no assessment
+ $action = "<A HREF=\"assessments.php?action=assesssubmission&a=$workshop->id&sid=$submission->id\">".
+ get_string("assess", "workshop")."</A>";
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action, $comment);
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
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("submittedby", "workshop"),
- get_string("assessor", "workshop"), 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();
-
- switch ($stype) {
- case "student" :
- $assessments = workshop_get_ungraded_assessments_student($workshop);
- break;
- case "teacher" :
- $assessments = workshop_get_ungraded_assessments_teacher($workshop);
- break;
- }
- if ($assessments) {
- foreach ($assessments as $assessment) {
- if (!isteacher($workshop->course, $assessment->userid)) { // don't let teacher grade their own assessments
- if (($timenow - $assessment->timegraded) < $CFG->maxeditingtime) {
- $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$workshop->id&stype=$stype&aid=$assessment->id\">".
- get_string("edit", "workshop")."</A>";
- }
- else {
- $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$workshop->id&stype=$stype&aid=$assessment->id\">".
- get_string("grade", "workshop")."</A>";
- }
- $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
- $submissionowner = get_record("user", "id", $submission->userid);
- $assessor = get_record("user", "id", $assessment->userid);
- $table->data[] = array(workshop_print_submission_title($workshop, $submission),
- $submissionowner->firstname." ".$submissionowner->lastname,
- $assessor->firstname." ".$assessor->lastname, userdate($assessment->timecreated), $action);
- }
- }
- if (isset($table->data)) {
- print_table($table);
- }
- }
- }
-
+ global $CFG;
+
+ // lists all the assessments of student submissions for grading by teacher
+ $table->head = array (get_string("title", "workshop"), get_string("submittedby", "workshop"),
+ get_string("assessor", "workshop"), 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();
+
+ switch ($stype) {
+ case "student" :
+ $assessments = workshop_get_ungraded_assessments_student($workshop);
+ break;
+ case "teacher" :
+ $assessments = workshop_get_ungraded_assessments_teacher($workshop);
+ break;
+ }
+ if ($assessments) {
+ foreach ($assessments as $assessment) {
+ if (!isteacher($workshop->course, $assessment->userid)) { // don't let teacher grade their own assessments
+ if (($timenow - $assessment->timegraded) < $CFG->maxeditingtime) {
+ $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$workshop->id&stype=$stype&aid=$assessment->id\">".
+ get_string("edit", "workshop")."</A>";
+ }
+ else {
+ $action = "<A HREF=\"assessments.php?action=gradeassessment&a=$workshop->id&stype=$stype&aid=$assessment->id\">".
+ get_string("grade", "workshop")."</A>";
+ }
+ $submission = get_record("workshop_submissions", "id", $assessment->submissionid);
+ $submissionowner = get_record("user", "id", $submission->userid);
+ $assessor = get_record("user", "id", $assessment->userid);
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission),
+ $submissionowner->firstname." ".$submissionowner->lastname,
+ $assessor->firstname." ".$assessor->lastname, userdate($assessment->timecreated), $action);
+ }
+ }
+ if (isset($table->data)) {
+ print_table($table);
+ }
+ }
+ }
+
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_user_submissions($workshop, $user) {
- global $CFG;
-
- $timenow = time();
- $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
- get_string("submitted", "assignment"), get_string("assessments", "workshop"));
- $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
- $table->size = array ("*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = workshop_get_user_submissions($workshop, $user)) {
- foreach ($submissions as $submission) {
- // allow user to delete a submission if it's warm
- if ($submission->timecreated > ($timenow - $CFG->maxeditingtime)) {
- $action = "<a href=\"submissions.php?action=userconfirmdelete&a=$workshop->id&sid=$submission->id\">".
- get_string("delete", "workshop")."</a>";
- }
- else {
- $action = '';
- }
- $n = count_records_select("workshop_assessments", "submissionid = $submission->id AND
- timecreated < ($timenow - $CFG->maxeditingtime)");
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action,
- userdate($submission->timecreated), $n);
- }
- print_table($table);
- }
+ global $CFG;
+
+ $timenow = time();
+ $table->head = array (get_string("title", "workshop"), get_string("action", "workshop"),
+ get_string("submitted", "assignment"), get_string("assessments", "workshop"));
+ $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT");
+ $table->size = array ("*", "*", "*", "*");
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = workshop_get_user_submissions($workshop, $user)) {
+ foreach ($submissions as $submission) {
+ // allow user to delete a submission if it's warm
+ if ($submission->timecreated > ($timenow - $CFG->maxeditingtime)) {
+ $action = "<a href=\"submissions.php?action=userconfirmdelete&a=$workshop->id&sid=$submission->id\">".
+ get_string("delete", "workshop")."</a>";
+ }
+ else {
+ $action = '';
+ }
+ $n = count_records_select("workshop_assessments", "submissionid = $submission->id AND
+ timecreated < ($timenow - $CFG->maxeditingtime)");
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $action,
+ userdate($submission->timecreated), $n);
+ }
+ print_table($table);
+ }
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_print_assessment($workshop, $assessment = false, $allowchanges = false,
- $showcommentlinks = false, $returnto = '') {
- // $allowchanges added 14/7/03
- // $returnto added 28/8/03
- global $CFG, $THEME, $USER, $WORKSHOP_SCALES, $WORKSHOP_EWEIGHTS;
-
+ $showcommentlinks = false, $returnto = '') {
+ // $allowchanges added 14/7/03
+ // $returnto added 28/8/03
+ global $CFG, $THEME, $USER, $WORKSHOP_SCALES, $WORKSHOP_EWEIGHTS;
+
if (! $course = get_record("course", "id", $workshop->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("workshop", $workshop->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $timenow = time();
-
- // reset the internal flags
- if ($assessment) {
- $showgrades = false;
- }
- else { // if no assessment, i.e. specimen grade form always show grading scales
- $showgrades = true;
- }
-
- if ($assessment) {
- // set the internal flag is necessary
- if ($allowchanges or !$workshop->agreeassessments or !$workshop->hidegrades or
+ error("Course is misconfigured");
+ }
+ if (! $cm = get_coursemodule_from_instance("workshop", $workshop->id, $course->id)) {
+ error("Course Module ID was incorrect");
+ }
+
+ $timenow = time();
+
+ // reset the internal flags
+ if ($assessment) {
+ $showgrades = false;
+ }
+ else { // if no assessment, i.e. specimen grade form always show grading scales
+ $showgrades = true;
+ }
+
+ if ($assessment) {
+ // set the internal flag is necessary
+ if ($allowchanges or !$workshop->agreeassessments or !$workshop->hidegrades or
$assessment->timeagreed) {
- $showgrades = true;
- }
-
- echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
- <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
- if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
- error ("Workshop_print_assessment: Submission record not found");
- }
- echo workshop_print_submission_title($workshop, $submission);
- echo "</TD></TR></TABLE><BR CLEAR=ALL>\n";
-
+ $showgrades = true;
+ }
+
+ echo "<CENTER><TABLE BORDER=\"1\" WIDTH=\"30%\"><TR>
+ <TD ALIGN=CENTER BGCOLOR=\"$THEME->cellcontent\">\n";
+ if (!$submission = get_record("workshop_submissions", "id", $assessment->submissionid)) {
+ error ("Workshop_print_assessment: Submission record not found");
+ }
+ echo workshop_print_submission_title($workshop, $submission);
+ echo "</TD></TR></TABLE><BR CLEAR=ALL>\n";
+
// see if this is a pre-filled assessment for a re-submission...
if ($assessment->resubmission) {
// ...and print an explaination
print_heading(get_string("assessmentofresubmission", "workshop"));
}
- // print agreement time if the workshop requires peer agreement
- if ($workshop->agreeassessments and $assessment->timeagreed) {
- echo "<P>".get_string("assessmentwasagreedon", "workshop", userdate($assessment->timeagreed));
- }
-
- // first print any comments on this assessment
- if ($comments = workshop_get_comments($assessment)) {
- echo "<TABLE CELLPADDING=2 BORDER=1>\n";
- $firstcomment = TRUE;
- foreach ($comments as $comment) {
- echo "<TR valign=top><TD BGCOLOR=\"$THEME->cellheading2\"><P><B>".
+ // print agreement time if the workshop requires peer agreement
+ if ($workshop->agreeassessments and $assessment->timeagreed) {
+ echo "<P>".get_string("assessmentwasagreedon", "workshop", userdate($assessment->timeagreed));
+ }
+
+ // first print any comments on this assessment
+ if ($comments = workshop_get_comments($assessment)) {
+ echo "<TABLE CELLPADDING=2 BORDER=1>\n";
+ $firstcomment = TRUE;
+ foreach ($comments as $comment) {
+ echo "<TR valign=top><TD BGCOLOR=\"$THEME->cellheading2\"><P><B>".
get_string("commentby","workshop")." ";
- if (isteacher($workshop->course, $comment->userid)) {
- echo $course->teacher;
- }
- elseif ($assessment->userid == $comment->userid) {
- print_string("assessor", "workshop");
- }
- else {
- print_string("authorofsubmission", "workshop");
- }
- echo " ".get_string("on", "workshop", userdate($comment->timecreated))."</B></P></TD></TR><TR><TD>\n";
- echo text_to_html($comment->comments)." \n";
- // add the links if needed
- if ($firstcomment and $showcommentlinks and !$assessment->timeagreed) {
- // show links depending on who doing the viewing
- $firstcomment = FALSE;
- if (isteacher($workshop->course, $USER->id) and ($comment->userid != $USER->id)) {
- echo "<P ALIGN=RIGHT><A HREF=\"assessments.php?action=addcomment&a=$workshop->id&aid=$assessment->id\">".
- get_string("reply", "workshop")."</A>\n";
- }
- elseif (($comment->userid ==$USER->id) and (($timenow - $comment->timecreated) < $CFG->maxeditingtime)) {
- echo "<P ALIGN=RIGHT><A HREF=\"assessments.php?action=editcomment&a=$workshop->id&cid=$comment->id\">".
- get_string("edit", "workshop")."</A>\n";
- if ($USER->id == $submission->userid) {
- echo " | <A HREF=\"assessments.php?action=agreeassessment&a=$workshop->id&aid=$assessment->id\">".
- get_string("agreetothisassessment", "workshop")."</A>\n";
- }
- }
- elseif (($comment->userid != $USER->id) and (($USER->id == $assessment->userid) or
- ($USER->id == $submission->userid))) {
- echo "<P ALIGN=RIGHT><A HREF=\"assessments.php?action=addcomment&a=$workshop->id&aid=$assessment->id\">".
- get_string("reply", "workshop")."</A>\n";
- if ($USER->id == $submission->userid) {
- echo " | <A HREF=\"assessments.php?action=agreeassessment&a=$workshop->id&aid=$assessment->id\">".
- get_string("agreetothisassessment", "workshop")."</A>\n";
- }
- }
- }
- echo "</TD></TR>\n";
- }
- echo "</TABLE>\n";
- }
-
- // only show the grade if grading strategy > 0 and the grade is positive
- if ($showgrades and $workshop->gradingstrategy and $assessment->grade >= 0) {
- echo "<CENTER><B>".get_string("thegradeis", "workshop").": ".number_format($assessment->grade, 2)." (".
- get_string("maximumgrade")." ".number_format($workshop->grade, 0).")</B></CENTER><BR CLEAR=ALL>\n";
- }
- }
-
- // now print the grading form with the teacher's comments if any
- // FORM is needed for Mozilla browsers, else radio bttons are not checked
- ?>
- <form name="assessmentform" method="post" action="assessments.php">
- <input type="hidden" name="id" value="<?php echo $cm->id ?>">
- <input type="hidden" name="aid" value="<?php echo $assessment->id ?>">
- <input type="hidden" name="action" value="updateassessment">
- <input type="hidden" name="returnto" value="<?php echo $returnto ?>">
- <center>
- <table cellpadding=2 border=1>
- <?php
- echo "<tr valign=top>\n";
- echo " <td colspan=2 bgcolor=\"$THEME->cellheading2\"><center><b>".get_string("assessment", "workshop").
- "</b></center></td>\n";
- echo "</tr>\n";
-
- // get the assignment elements...
- if (!$elementsraw = get_records("workshop_elements", "workshopid", $workshop->id, "elementno ASC")) {
- print_string("noteonassignmentelements", "workshop");
- }
- else {
- foreach ($elementsraw as $element) {
- $elements[] = $element; // to renumber index 0,1,2...
- }
- }
-
- if ($assessment) {
- // get any previous grades...
- if ($gradesraw = get_records_select("workshop_grades", "assessmentid = $assessment->id", "elementno")) {
- foreach ($gradesraw as $grade) {
- $grades[] = $grade; // to renumber index 0,1,2...
- }
- }
- }
- else {
- // setup dummy grades array
- for($i = 0; $i < count($elementsraw); $i++) { // gives a suitable sized loop
- $grades[$i]->feedback = get_string("yourfeedbackgoeshere", "workshop");
- $grades[$i]->grade = 0;
- }
- }
-
- // determine what sort of grading
- switch ($workshop->gradingstrategy) {
- case 0: // no grading
- // now print the form
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","workshop")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- 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 1: // accumulative grading
- // now print the form
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","workshop")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "<P align=right><FONT size=1>".get_string("weight", "workshop").": ".
- number_format($WORKSHOP_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
- echo "</TD></TR>\n";
- if ($showgrades) {
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
- echo " <TD valign=\"top\">\n";
-
- // get the appropriate scale
- $scalenumber=$elements[$i]->scale;
- $SCALE = (object)$WORKSHOP_SCALES[$scalenumber];
- switch ($SCALE->type) {
- case 'radio' :
- // show selections highest first
- echo "<CENTER><B>$SCALE->start</B> ";
- for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
- $checked = false;
- if (isset($grades[$i]->grade)) {
- if ($j == $grades[$i]->grade) {
- $checked = true;
- }
- }
- else { // there's no previous grade so check the lowest option
- if ($j == 0) {
- $checked = true;
- }
- }
- if ($checked) {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
- }
- else {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
- }
- }
- echo " <B>$SCALE->end</B></CENTER>\n";
- break;
- case 'selection' :
- unset($numbers);
- for ($j = $SCALE->size; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$i]->grade)) {
- choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[$i]", 0, "");
- }
- break;
- }
-
- echo " </TD>\n";
- echo "</TR>\n";
- }
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- 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
- // now run through the elements
- $negativecount = 0;
- for ($i=0; $i < count($elements) - 1; $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("element","workshop")." $iplus1:</B></P></TD>\n";
- echo " <TD>".text_to_html($elements[$i]->description);
- echo "<P align=right><FONT size=1>".get_string("weight", "workshop").": ".
- number_format($WORKSHOP_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
- echo "</TD></TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
- echo " <TD valign=\"top\">\n";
-
- // get the appropriate scale - yes/no scale (0)
- $SCALE = (object) $WORKSHOP_SCALES[0];
- switch ($SCALE->type) {
- case 'radio' :
- // show selections highest first
- echo "<CENTER><B>$SCALE->start</B> ";
- for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
- $checked = false;
- if (isset($grades[$i]->grade)) {
- if ($j == $grades[$i]->grade) {
- $checked = true;
- }
- }
- else { // there's no previous grade so check the lowest option
- if ($j == 0) {
- $checked = true;
- }
- }
- if ($checked) {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
- }
- else {
- echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
- }
- }
- echo " <B>$SCALE->end</B></CENTER>\n";
- break;
- case 'selection' :
- unset($numbers);
- for ($j = $SCALE->size; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$i]->grade)) {
- choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[$i]", 0, "");
- }
- break;
- }
-
- echo " </TD>\n";
- echo "</TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[$i]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- if (isset($grades[$i]->feedback)) {
- echo text_to_html($grades[$i]->feedback);
- }
- }
- echo " </TD>\n";
- echo "</TR>\n";
- echo "<TR valign=top>\n";
- echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo "</TR>\n";
- if (empty($grades[$i]->grade)) {
- $negativecount++;
- }
- }
- // print the number of negative elements
- // echo "<TR><TD>".get_string("numberofnegativeitems", "workshop")."</TD><TD>$negativecount</TD></TR>\n";
- // echo "<TR valign=top>\n";
- // echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo "</TABLE></CENTER>\n";
- // now print the grade table
- echo "<P><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 = 100; $j >= 0; $j--) {
- $numbers[$j] = $j;
- }
- for ($i=0; $i<=$workshop->nelements; $i++) {
- if ($i == $negativecount) {
- echo "<TR><TD ALIGN=\"CENTER\"><IMG SRC=\"$CFG->pixpath/t/right.gif\"> $i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
- }
- else {
- echo "<TR><TD ALIGN=\"CENTER\">$i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
- }
- }
- echo "</TABLE></CENTER>\n";
- echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD><b>".get_string("optionaladjustment",
+ if (isteacher($workshop->course, $comment->userid)) {
+ echo $course->teacher;
+ }
+ elseif ($assessment->userid == $comment->userid) {
+ print_string("assessor", "workshop");
+ }
+ else {
+ print_string("authorofsubmission", "workshop");
+ }
+ echo " ".get_string("on", "workshop", userdate($comment->timecreated))."</B></P></TD></TR><TR><TD>\n";
+ echo text_to_html($comment->comments)." \n";
+ // add the links if needed
+ if ($firstcomment and $showcommentlinks and !$assessment->timeagreed) {
+ // show links depending on who doing the viewing
+ $firstcomment = FALSE;
+ if (isteacher($workshop->course, $USER->id) and ($comment->userid != $USER->id)) {
+ echo "<P ALIGN=RIGHT><A HREF=\"assessments.php?action=addcomment&a=$workshop->id&aid=$assessment->id\">".
+ get_string("reply", "workshop")."</A>\n";
+ }
+ elseif (($comment->userid ==$USER->id) and (($timenow - $comment->timecreated) < $CFG->maxeditingtime)) {
+ echo "<P ALIGN=RIGHT><A HREF=\"assessments.php?action=editcomment&a=$workshop->id&cid=$comment->id\">".
+ get_string("edit", "workshop")."</A>\n";
+ if ($USER->id == $submission->userid) {
+ echo " | <A HREF=\"assessments.php?action=agreeassessment&a=$workshop->id&aid=$assessment->id\">".
+ get_string("agreetothisassessment", "workshop")."</A>\n";
+ }
+ }
+ elseif (($comment->userid != $USER->id) and (($USER->id == $assessment->userid) or
+ ($USER->id == $submission->userid))) {
+ echo "<P ALIGN=RIGHT><A HREF=\"assessments.php?action=addcomment&a=$workshop->id&aid=$assessment->id\">".
+ get_string("reply", "workshop")."</A>\n";
+ if ($USER->id == $submission->userid) {
+ echo " | <A HREF=\"assessments.php?action=agreeassessment&a=$workshop->id&aid=$assessment->id\">".
+ get_string("agreetothisassessment", "workshop")."</A>\n";
+ }
+ }
+ }
+ echo "</TD></TR>\n";
+ }
+ echo "</TABLE>\n";
+ }
+
+ // only show the grade if grading strategy > 0 and the grade is positive
+ if ($showgrades and $workshop->gradingstrategy and $assessment->grade >= 0) {
+ echo "<CENTER><B>".get_string("thegradeis", "workshop").": ".number_format($assessment->grade, 2)." (".
+ get_string("maximumgrade")." ".number_format($workshop->grade, 0).")</B></CENTER><BR CLEAR=ALL>\n";
+ }
+ }
+
+ // now print the grading form with the teacher's comments if any
+ // FORM is needed for Mozilla browsers, else radio bttons are not checked
+ ?>
+ <form name="assessmentform" method="post" action="assessments.php">
+ <input type="hidden" name="id" value="<?php echo $cm->id ?>">
+ <input type="hidden" name="aid" value="<?php echo $assessment->id ?>">
+ <input type="hidden" name="action" value="updateassessment">
+ <input type="hidden" name="returnto" value="<?php echo $returnto ?>">
+ <center>
+ <table cellpadding=2 border=1>
+ <?php
+ echo "<tr valign=top>\n";
+ echo " <td colspan=2 bgcolor=\"$THEME->cellheading2\"><center><b>".get_string("assessment", "workshop").
+ "</b></center></td>\n";
+ echo "</tr>\n";
+
+ // get the assignment elements...
+ if (!$elementsraw = get_records("workshop_elements", "workshopid", $workshop->id, "elementno ASC")) {
+ print_string("noteonassignmentelements", "workshop");
+ }
+ else {
+ foreach ($elementsraw as $element) {
+ $elements[] = $element; // to renumber index 0,1,2...
+ }
+ }
+
+ if ($assessment) {
+ // get any previous grades...
+ if ($gradesraw = get_records_select("workshop_grades", "assessmentid = $assessment->id", "elementno")) {
+ foreach ($gradesraw as $grade) {
+ $grades[] = $grade; // to renumber index 0,1,2...
+ }
+ }
+ }
+ else {
+ // setup dummy grades array
+ for($i = 0; $i < count($elementsraw); $i++) { // gives a suitable sized loop
+ $grades[$i]->feedback = get_string("yourfeedbackgoeshere", "workshop");
+ $grades[$i]->grade = 0;
+ }
+ }
+
+ // determine what sort of grading
+ switch ($workshop->gradingstrategy) {
+ case 0: // no grading
+ // now print the form
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","workshop")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ 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 1: // accumulative grading
+ // now print the form
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","workshop")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "<P align=right><FONT size=1>".get_string("weight", "workshop").": ".
+ number_format($WORKSHOP_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
+ echo "</TD></TR>\n";
+ if ($showgrades) {
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
+ echo " <TD valign=\"top\">\n";
+
+ // get the appropriate scale
+ $scalenumber=$elements[$i]->scale;
+ $SCALE = (object)$WORKSHOP_SCALES[$scalenumber];
+ switch ($SCALE->type) {
+ case 'radio' :
+ // show selections highest first
+ echo "<CENTER><B>$SCALE->start</B> ";
+ for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
+ $checked = false;
+ if (isset($grades[$i]->grade)) {
+ if ($j == $grades[$i]->grade) {
+ $checked = true;
+ }
+ }
+ else { // there's no previous grade so check the lowest option
+ if ($j == 0) {
+ $checked = true;
+ }
+ }
+ if ($checked) {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
+ }
+ else {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
+ }
+ }
+ echo " <B>$SCALE->end</B></CENTER>\n";
+ break;
+ case 'selection' :
+ unset($numbers);
+ for ($j = $SCALE->size; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$i]->grade)) {
+ choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[$i]", 0, "");
+ }
+ break;
+ }
+
+ echo " </TD>\n";
+ echo "</TR>\n";
+ }
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ 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
+ // now run through the elements
+ $negativecount = 0;
+ for ($i=0; $i < count($elements) - 1; $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("element","workshop")." $iplus1:</B></P></TD>\n";
+ echo " <TD>".text_to_html($elements[$i]->description);
+ echo "<P align=right><FONT size=1>".get_string("weight", "workshop").": ".
+ number_format($WORKSHOP_EWEIGHTS[$elements[$i]->weight], 2)."</FONT>\n";
+ echo "</TD></TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("grade"). ":</B></P></TD>\n";
+ echo " <TD valign=\"top\">\n";
+
+ // get the appropriate scale - yes/no scale (0)
+ $SCALE = (object) $WORKSHOP_SCALES[0];
+ switch ($SCALE->type) {
+ case 'radio' :
+ // show selections highest first
+ echo "<CENTER><B>$SCALE->start</B> ";
+ for ($j = $SCALE->size - 1; $j >= 0 ; $j--) {
+ $checked = false;
+ if (isset($grades[$i]->grade)) {
+ if ($j == $grades[$i]->grade) {
+ $checked = true;
+ }
+ }
+ else { // there's no previous grade so check the lowest option
+ if ($j == 0) {
+ $checked = true;
+ }
+ }
+ if ($checked) {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED> \n";
+ }
+ else {
+ echo " <INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"> \n";
+ }
+ }
+ echo " <B>$SCALE->end</B></CENTER>\n";
+ break;
+ case 'selection' :
+ unset($numbers);
+ for ($j = $SCALE->size; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$i]->grade)) {
+ choose_from_menu($numbers, "grade[$i]", $grades[$i]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[$i]", 0, "");
+ }
+ break;
+ }
+
+ echo " </TD>\n";
+ echo "</TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[$i]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ if (isset($grades[$i]->feedback)) {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ }
+ echo " </TD>\n";
+ echo "</TR>\n";
+ echo "<TR valign=top>\n";
+ echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</TR>\n";
+ if (empty($grades[$i]->grade)) {
+ $negativecount++;
+ }
+ }
+ // print the number of negative elements
+ // echo "<TR><TD>".get_string("numberofnegativeitems", "workshop")."</TD><TD>$negativecount</TD></TR>\n";
+ // echo "<TR valign=top>\n";
+ // echo " <TD COLSPAN=2 BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</TABLE></CENTER>\n";
+ // now print the grade table
+ echo "<P><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 = 100; $j >= 0; $j--) {
+ $numbers[$j] = $j;
+ }
+ for ($i=0; $i<=$workshop->nelements; $i++) {
+ if ($i == $negativecount) {
+ echo "<TR><TD ALIGN=\"CENTER\"><IMG SRC=\"$CFG->pixpath/t/right.gif\"> $i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ else {
+ echo "<TR><TD ALIGN=\"CENTER\">$i</TD><TD ALIGN=\"CENTER\">{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ }
+ echo "</TABLE></CENTER>\n";
+ echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD><b>".get_string("optionaladjustment",
"workshop")."</b></TD><TD>\n";
- unset($numbers);
- for ($j = 20; $j >= -20; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[$workshop->nelements]->grade)) {
- choose_from_menu($numbers, "grade[$workshop->nelements]", $grades[$workshop->nelements]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[$workshop->nelements]", 0, "");
- }
- echo "</TD></TR>\n";
- break;
-
- case 3: // criteria grading
- echo "<TR valign=top>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","workshop")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("select", "workshop")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("suggestedgrade", "workshop")."</B></TD>\n";
- // find which criteria has been selected (saved in the zero element), if any
- if (isset($grades[0]->grade)) {
- $selection = $grades[0]->grade;
- }
- else {
- $selection = 0;
- }
- // now run through the elements
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=top>\n";
- echo " <TD>$iplus1</TD><TD>".text_to_html($elements[$i]->description)."</TD>\n";
- if ($selection == $i) {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\" CHECKED></TD>\n";
- }
- else {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\"></TD>\n";
- }
- echo "<TD align=center>{$elements[$i]->maxscore}</TD></TR>\n";
- }
- echo "</TABLE></CENTER>\n";
- echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD><b>".get_string("optionaladjustment",
+ unset($numbers);
+ for ($j = 20; $j >= -20; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[$workshop->nelements]->grade)) {
+ choose_from_menu($numbers, "grade[$workshop->nelements]", $grades[$workshop->nelements]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[$workshop->nelements]", 0, "");
+ }
+ echo "</TD></TR>\n";
+ break;
+
+ case 3: // criteria grading
+ echo "<TR valign=top>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"> </TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","workshop")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("select", "workshop")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>".get_string("suggestedgrade", "workshop")."</B></TD>\n";
+ // find which criteria has been selected (saved in the zero element), if any
+ if (isset($grades[0]->grade)) {
+ $selection = $grades[0]->grade;
+ }
+ else {
+ $selection = 0;
+ }
+ // now run through the elements
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=top>\n";
+ echo " <TD>$iplus1</TD><TD>".text_to_html($elements[$i]->description)."</TD>\n";
+ if ($selection == $i) {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\" CHECKED></TD>\n";
+ }
+ else {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[0]\" VALUE=\"$i\"></TD>\n";
+ }
+ echo "<TD align=center>{$elements[$i]->maxscore}</TD></TR>\n";
+ }
+ echo "</TABLE></CENTER>\n";
+ echo "<P><CENTER><TABLE cellpadding=5 border=1><TR><TD><b>".get_string("optionaladjustment",
"workshop")."</b></TD><TD>\n";
- unset($numbers);
- for ($j = 20; $j >= -20; $j--) {
- $numbers[$j] = $j;
- }
- if (isset($grades[1]->grade)) {
- choose_from_menu($numbers, "grade[1]", $grades[1]->grade, "");
- }
- else {
- choose_from_menu($numbers, "grade[1]", 0, "");
- }
- echo "</TD></TR>\n";
- break;
-
- case 4: // rubric grading
- // now run through the elements...
- for ($i=0; $i < count($elements); $i++) {
- $iplus1 = $i+1;
- echo "<TR valign=\"top\">\n";
- echo "<TD align=\"right\"><b>".get_string("element", "workshop")." $iplus1:</b></TD>\n";
- echo "<TD>".text_to_html($elements[$i]->description).
- "<P align=\"right\"><font size=\"1\">".get_string("weight", "workshop").": ".
- number_format($WORKSHOP_EWEIGHTS[$elements[$i]->weight], 2)."</font></TD></tr>\n";
- echo "<TR valign=\"top\">\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\" align=\"center\"><B>".get_string("select", "workshop")."</B></TD>\n";
- echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","workshop")."</B></TD></tr>\n";
- if (isset($grades[$i])) {
- $selection = $grades[$i]->grade;
- } else {
- $selection = 0;
- }
- // ...and the rubrics
- if ($rubricsraw = get_records_select("workshop_rubrics", "workshopid = $workshop->id AND
- elementno = $i", "rubricno ASC")) {
- unset($rubrics);
- foreach ($rubricsraw as $rubic) {
- $rubrics[] = $rubic; // to renumber index 0,1,2...
- }
- for ($j=0; $j<5; $j++) {
- if (empty($rubrics[$j]->description)) {
- break; // out of inner for loop
- }
- echo "<TR valign=top>\n";
- if ($selection == $j) {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED></TD>\n";
- }else {
- echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"></TD>\n";
- }
- echo "<TD>".text_to_html($rubrics[$j]->description)."</TD>\n";
- }
- echo "<TR valign=top>\n";
- echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
- echo " <TD>\n";
- if ($allowchanges) {
- echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
- if (isset($grades[$i]->feedback)) {
- echo $grades[$i]->feedback;
- }
- echo "</textarea>\n";
- }
- else {
- echo text_to_html($grades[$i]->feedback);
- }
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
- echo "</tr>\n";
- }
- }
- break;
- } // end of outer switch
-
- // now get the general comment (present in all types)
- echo "<tr valign=\"top\">\n";
- switch ($workshop->gradingstrategy) {
- case 0:
- case 1:
- case 4 : // no grading, accumulative and rubic
- echo " <td align=\"right\"><P><B>". get_string("generalcomment", "workshop").":</B></P></TD>\n";
- break;
- default :
- echo " <td align=\"right\"><P><B>". get_string("reasonforadjustment", "workshop").":</B></P></TD>\n";
- }
- echo " <td>\n";
- if ($allowchanges) {
- echo " <textarea name=\"generalcomment\" rows=5 cols=75 wrap=\"virtual\">\n";
- if (isset($assessment->generalcomment)) {
- echo $assessment->generalcomment;
- }
- echo "</textarea>\n";
- }
- else {
- if ($assessment) {
- if (isset($assessment->generalcomment)) {
- echo text_to_html($assessment->generalcomment);
- }
- }
- else {
- print_string("yourfeedbackgoeshere", "workshop");
- }
- }
- echo " </td>\n";
- echo "</tr>\n";
- echo "<tr valign=\"top\">\n";
- echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
- echo "</tr>\n";
-
- $timenow = time();
- // now show the teacher's comment if available...
- if ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
- echo "<tr valign=top>\n";
- echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "workshop").":</b></p></td>\n";
- echo " <td>\n";
- echo text_to_html($assessment->teachercomment);
- echo " </td>\n";
- echo "</tr>\n";
- // only show the grading grade if it's the teacher
- if (isteacher($course->id)) {
- echo "<tr valign=\"top\">\n";
- echo " <td align=\"right\"><p><b>". get_string("teachersgrade", "workshop").":</b></p></td>\n";
- echo " <td>\n";
- echo number_format($assessment->gradinggrade * 100 / COMMENTSCALE, 0)."%";
- echo " </td>\n";
- echo "</tr>\n";
- }
- echo "<tr valign=\"top\">\n";
- echo "<td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
- echo "</tr>\n";
- }
-
- // ...and close the table, show submit button if needed...
- echo "</table>\n";
- if ($assessment) {
- if ($allowchanges) {
- echo "<input type=\"submit\" VALUE=\"".get_string("savemyassessment", "workshop")."\">\n";
- }
- // ...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 "<input type=button VALUE=\"".get_string("agreetothisassessment", "workshop")."\"
- onclick=\"document.assessmentform.action.value='agreeassessment';document.assessmentform.submit();\">\n";
- echo "<input type=submit value=\"".get_string("disagreewiththisassessment", "workshop")."\"
- onclick=\"document.assessmentform.action.value='addcomment';document.assessmentform.submit();\">\n";
- }
- }
- echo "</center>";
- echo "</form>\n";
- }
+ unset($numbers);
+ for ($j = 20; $j >= -20; $j--) {
+ $numbers[$j] = $j;
+ }
+ if (isset($grades[1]->grade)) {
+ choose_from_menu($numbers, "grade[1]", $grades[1]->grade, "");
+ }
+ else {
+ choose_from_menu($numbers, "grade[1]", 0, "");
+ }
+ echo "</TD></TR>\n";
+ break;
+
+ case 4: // rubric grading
+ // now run through the elements...
+ for ($i=0; $i < count($elements); $i++) {
+ $iplus1 = $i+1;
+ echo "<TR valign=\"top\">\n";
+ echo "<TD align=\"right\"><b>".get_string("element", "workshop")." $iplus1:</b></TD>\n";
+ echo "<TD>".text_to_html($elements[$i]->description).
+ "<P align=\"right\"><font size=\"1\">".get_string("weight", "workshop").": ".
+ number_format($WORKSHOP_EWEIGHTS[$elements[$i]->weight], 2)."</font></TD></tr>\n";
+ echo "<TR valign=\"top\">\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\" align=\"center\"><B>".get_string("select", "workshop")."</B></TD>\n";
+ echo " <TD BGCOLOR=\"$THEME->cellheading2\"><B>". get_string("criterion","workshop")."</B></TD></tr>\n";
+ if (isset($grades[$i])) {
+ $selection = $grades[$i]->grade;
+ } else {
+ $selection = 0;
+ }
+ // ...and the rubrics
+ if ($rubricsraw = get_records_select("workshop_rubrics", "workshopid = $workshop->id AND
+ elementno = $i", "rubricno ASC")) {
+ unset($rubrics);
+ foreach ($rubricsraw as $rubic) {
+ $rubrics[] = $rubic; // to renumber index 0,1,2...
+ }
+ for ($j=0; $j<5; $j++) {
+ if (empty($rubrics[$j]->description)) {
+ break; // out of inner for loop
+ }
+ echo "<TR valign=top>\n";
+ if ($selection == $j) {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\" CHECKED></TD>\n";
+ }else {
+ echo " <TD align=center><INPUT TYPE=\"RADIO\" NAME=\"grade[$i]\" VALUE=\"$j\"></TD>\n";
+ }
+ echo "<TD>".text_to_html($rubrics[$j]->description)."</TD>\n";
+ }
+ echo "<TR valign=top>\n";
+ echo " <TD align=right><P><B>". get_string("feedback").":</B></P></TD>\n";
+ echo " <TD>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"feedback[]\" rows=3 cols=75 wrap=\"virtual\">\n";
+ if (isset($grades[$i]->feedback)) {
+ echo $grades[$i]->feedback;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ echo text_to_html($grades[$i]->feedback);
+ }
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</tr>\n";
+ }
+ }
+ break;
+ } // end of outer switch
+
+ // now get the general comment (present in all types)
+ echo "<tr valign=\"top\">\n";
+ switch ($workshop->gradingstrategy) {
+ case 0:
+ case 1:
+ case 4 : // no grading, accumulative and rubic
+ echo " <td align=\"right\"><P><B>". get_string("generalcomment", "workshop").":</B></P></TD>\n";
+ break;
+ default :
+ echo " <td align=\"right\"><P><B>". get_string("reasonforadjustment", "workshop").":</B></P></TD>\n";
+ }
+ echo " <td>\n";
+ if ($allowchanges) {
+ echo " <textarea name=\"generalcomment\" rows=5 cols=75 wrap=\"virtual\">\n";
+ if (isset($assessment->generalcomment)) {
+ echo $assessment->generalcomment;
+ }
+ echo "</textarea>\n";
+ }
+ else {
+ if ($assessment) {
+ if (isset($assessment->generalcomment)) {
+ echo text_to_html($assessment->generalcomment);
+ }
+ }
+ else {
+ print_string("yourfeedbackgoeshere", "workshop");
+ }
+ }
+ echo " </td>\n";
+ echo "</tr>\n";
+ echo "<tr valign=\"top\">\n";
+ echo " <td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </TD>\n";
+ echo "</tr>\n";
+
+ $timenow = time();
+ // now show the teacher's comment if available...
+ if ($assessment->timegraded and (($timenow - $assessment->timegraded) > $CFG->maxeditingtime)) {
+ echo "<tr valign=top>\n";
+ echo " <td align=\"right\"><p><b>". get_string("teacherscomment", "workshop").":</b></p></td>\n";
+ echo " <td>\n";
+ echo text_to_html($assessment->teachercomment);
+ echo " </td>\n";
+ echo "</tr>\n";
+ // only show the grading grade if it's the teacher
+ if (isteacher($course->id)) {
+ echo "<tr valign=\"top\">\n";
+ echo " <td align=\"right\"><p><b>". get_string("teachersgrade", "workshop").":</b></p></td>\n";
+ echo " <td>\n";
+ echo number_format($assessment->gradinggrade * 100 / COMMENTSCALE, 0)."%";
+ echo " </td>\n";
+ echo "</tr>\n";
+ }
+ echo "<tr valign=\"top\">\n";
+ echo "<td colspan=\"2\" bgcolor=\"$THEME->cellheading2\"> </td>\n";
+ echo "</tr>\n";
+ }
+
+ // ...and close the table, show submit button if needed...
+ echo "</table>\n";
+ if ($assessment) {
+ if ($allowchanges) {
+ echo "<input type=\"submit\" VALUE=\"".get_string("savemyassessment", "workshop")."\">\n";
+ }
+ // ...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 "<input type=button VALUE=\"".get_string("agreetothisassessment", "workshop")."\"
+ onclick=\"document.assessmentform.action.value='agreeassessment';document.assessmentform.submit();\">\n";
+ echo "<input type=submit value=\"".get_string("disagreewiththisassessment", "workshop")."\"
+ onclick=\"document.assessmentform.action.value='addcomment';document.assessmentform.submit();\">\n";
+ }
+ }
+ echo "</center>";
+ echo "</form>\n";
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_print_assessments_by_user_for_admin($workshop, $user) {
- if ($assessments =workshop_get_user_assessments($workshop, $user)) {
- foreach ($assessments as $assessment) {
- echo "<p><center><b>".get_string("assessmentby", "workshop", $user->firstname." ".$user->lastname)."</b></center></p>\n";
- workshop_print_assessment($workshop, $assessment);
- echo "<p align=\"right\"><a href=\"assessments.php?action=adminconfirmdelete&a=$workshop->id&aid=$assessment->id\">".
- get_string("delete", "workshop")."</a></p><hr>\n";
- }
- }
- }
+ if ($assessments =workshop_get_user_assessments($workshop, $user)) {
+ foreach ($assessments as $assessment) {
+ echo "<p><center><b>".get_string("assessmentby", "workshop", $user->firstname." ".$user->lastname)."</b></center></p>\n";
+ workshop_print_assessment($workshop, $assessment);
+ echo "<p align=\"right\"><a href=\"assessments.php?action=adminconfirmdelete&a=$workshop->id&aid=$assessment->id\">".
+ get_string("delete", "workshop")."</a></p><hr>\n";
+ }
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_print_assessments_for_admin($workshop, $submission) {
- if ($assessments =workshop_get_assessments($submission)) {
- foreach ($assessments as $assessment) {
- if (!$user = get_record("user", "id", $assessment->userid)) {
- error (" workshop_print_assessments_for_admin: unable to get user record");
- }
- echo "<p><center><b>".get_string("assessmentby", "workshop", $user->firstname." ".$user->lastname)."</b></center></p>\n";
- workshop_print_assessment($workshop, $assessment);
- echo "<p align=\"right\"><a href=\"assessments.php?action=adminconfirmdelete&a=$workshop->id&aid=$assessment->id\">".
- get_string("delete", "workshop")."</a></p><hr>\n";
- }
- }
- }
+ if ($assessments =workshop_get_assessments($submission)) {
+ foreach ($assessments as $assessment) {
+ if (!$user = get_record("user", "id", $assessment->userid)) {
+ error (" workshop_print_assessments_for_admin: unable to get user record");
+ }
+ echo "<p><center><b>".get_string("assessmentby", "workshop", $user->firstname." ".$user->lastname)."</b></center></p>\n";
+ workshop_print_assessment($workshop, $assessment);
+ echo "<p align=\"right\"><a href=\"assessments.php?action=adminconfirmdelete&a=$workshop->id&aid=$assessment->id\">".
+ get_string("delete", "workshop")."</a></p><hr>\n";
+ }
+ }
+ }
//////////////////////////////////////////////////////////////////////////////////////
function workshop_print_assignment_info($workshop) {
- if (! $course = get_record("course", "id", $workshop->course)) {
+ if (! $course = get_record("course", "id", $workshop->course)) {
error("Course is misconfigured");
}
if (! $cm = get_coursemodule_from_instance("workshop", $workshop->id, $course->id)) {
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 />";
- echo "<b>".get_string("maximumgrade")."</b>: $workshop->grade<br />";
- echo "<b>".get_string("detailsofassessment", "workshop")."</b>:
- <a href=\"assessments.php?id=$cm->id&action=displaygradingform\">".
- get_string("specimenassessmentform", "workshop")."</a><br />";
- print_simple_box_end();
- echo "<br />";
- echo format_text($workshop->description, $workshop->format);
- print_simple_box_end();
- echo "<br />";
- }
+ }
+ // 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 />";
+ echo "<b>".get_string("maximumgrade")."</b>: $workshop->grade<br />";
+ echo "<b>".get_string("detailsofassessment", "workshop")."</b>:
+ <a href=\"assessments.php?id=$cm->id&action=displaygradingform\">".
+ get_string("specimenassessmentform", "workshop")."</a><br />";
+ print_simple_box_end();
+ echo "<br />";
+ echo format_text($workshop->description, $workshop->format);
+ print_simple_box_end();
+ echo "<br />";
+ }
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
function workshop_print_league_table($workshop) {
- // print an order table of (student) submissions showing teacher's and student's assessments
-
- if (! $course = get_record("course", "id", $workshop->course)) {
- error("Print league table: Course is misconfigured");
- }
- $nentries = $workshop->showleaguetable;
- if ($nentries == 99) {
- $nentries = 999999; // a large number
- }
-
- if ($workshop->anonymous and isstudent($course->id)) {
- $table->head = array (get_string("title", "workshop"),
- get_string("teacherassessments", "workshop", $course->teacher),
- get_string("studentassessments", "workshop", $course->student), get_string("overallgrade", "workshop"));
- $table->align = array ("left", "center", "center", "center");
- $table->size = array ("*", "*", "*", "*");
- }
- else { // show names
- $table->head = array (get_string("title", "workshop"), get_string("name"),
- get_string("teacherassessments", "workshop", $course->teacher),
- get_string("studentassessments", "workshop", $course->student), get_string("overallgrade", "workshop"));
- $table->align = array ("left", "left", "center", "center", "center");
- $table->size = array ("*", "*", "*", "*", "*");
- }
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- if ($submissions = workshop_get_student_submissions($workshop, "grade")) {
- $n = 1;
- foreach ($submissions as $submission) {
- if (!$user = get_record("user", "id", $submission->userid)) {
- error("Print league table: user not found");
- }
- if ($workshop->anonymous and isstudent($course->id)) {
- $table->data[] = array(workshop_print_submission_title($workshop, $submission),
- workshop_print_submission_assessments($workshop, $submission, "teacher"),
- workshop_print_submission_assessments($workshop, $submission, "student"),
- number_format(($workshop->teacherweight * $submission->teachergrade + $workshop->peerweight *
- $submission->peergrade) / ($workshop->teacherweight + $workshop->peerweight), 1)) ;
- }
- else {
- $table->data[] = array(workshop_print_submission_title($workshop, $submission), $user->firstname." ".
- $user->lastname, workshop_print_submission_assessments($workshop, $submission, "teacher"),
- workshop_print_submission_assessments($workshop, $submission, "student"),
- number_format(($workshop->teacherweight * $submission->teachergrade + $workshop->peerweight *
- $submission->peergrade) / ($workshop->teacherweight + $workshop->peerweight), 1)) ;
- }
- $n++;
- if ($n > $nentries) {
- break;
- }
- }
- print_heading(get_string("leaguetable", "workshop"));
- print_table($table);
+ // print an order table of (student) submissions showing teacher's and student's assessments
+
+ if (! $course = get_record("course", "id", $workshop->course)) {
+ error("Print league table: Course is misconfigured");
+ }
+ $nentries = $workshop->showleaguetable;
+ if ($nentries == 99) {
+ $nentries = 999999; // a large number
+ }
+
+ if ($workshop->anonymous and isstudent($course->id)) {
+ $table->head = array (get_string("title", "workshop"),
+ get_string("teacherassessments", "workshop", $course->teacher),
+ get_string("studentassessments", "workshop", $course->student), get_string("overallgrade", "workshop"));
+ $table->align = array ("left", "center", "center", "center");
+ $table->size = array ("*", "*", "*", "*");
+ }
+ else { // show names
+ $table->head = array (get_string("title", "workshop"), get_string("name"),
+ get_string("teacherassessments", "workshop", $course->teacher),
+ get_string("studentassessments", "workshop", $course->student), get_string("overallgrade", "workshop"));
+ $table->align = array ("left", "left", "center", "center", "center");
+ $table->size = array ("*", "*", "*", "*", "*");
+ }
+ $table->cellpadding = 2;
+ $table->cellspacing = 0;
+
+ if ($submissions = workshop_get_student_submissions($workshop, "grade")) {
+ $n = 1;
+ foreach ($submissions as $submission) {
+ if (!$user = get_record("user", "id", $submission->userid)) {
+ error("Print league table: user not found");
+ }
+ if ($workshop->anonymous and isstudent($course->id)) {
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission),
+ workshop_print_submission_assessments($workshop, $submission, "teacher"),
+ workshop_print_submission_assessments($workshop, $submission, "student"),
+ number_format(($workshop->teacherweight * $submission->teachergrade + $workshop->peerweight *
+ $submission->peergrade) / ($workshop->teacherweight + $workshop->peerweight), 1)) ;
+ }
+ else {
+ $table->data[] = array(workshop_print_submission_title($workshop, $submission), $user->firstname." ".
+ $user->lastname, workshop_print_submission_assessments($workshop, $submission, "teacher"),
+ workshop_print_submission_assessments($workshop, $submission, "student"),
+ number_format(($workshop->teacherweight * $submission->teachergrade + $workshop->peerweight *
+ $submission->peergrade) / ($workshop->teacherweight + $workshop->peerweight), 1)) ;
+ }
+ $n++;
+ if ($n > $nentries) {
+ break;
+ }
+ }
+ print_heading(get_string("leaguetable", "workshop"));
+ print_table($table);
echo "<p>< > ".get_string("assessmentdropped", "workshop")."</p>\n";
- }
- }
-
+ }
+ }
+
//////////////////////////////////////////////////////////////////////////////////////
function workshop_print_submission_assessments($workshop, $submission, $type) {
- // Returns the teacher or peer grade and a hyperlinked list of grades for this submission
-
- $str = '';
- if ($assessments = workshop_get_assessments($submission)) {
- switch ($type) {
- case "teacher" :
- if ($submission->teachergrade) { // if there's a final teacher's grade...
- $str = "$submission->teachergrade ";
- }
- foreach ($assessments as $assessment) {
- if (isteacher($workshop->course, $assessment->userid)) {
+ // Returns the teacher or peer grade and a hyperlinked list of grades for this submission
+
+ $str = '';
+ if ($assessments = workshop_get_assessments($submission)) {
+ switch ($type) {
+ case "teacher" :
+ if ($submission->teachergrade) { // if there's a final teacher's grade...
+ $str = "$submission->teachergrade ";
+ }
+ foreach ($assessments as $assessment) {
+ if (isteacher($workshop->course, $assessment->userid)) {
- $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">";
+ $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">";
if ($assessment->donotuse) {
$str .= "<";
} else {
$str .= "[";
}
- $str .= number_format($assessment->grade, 0);
- if ($assessment->gradinggrade) { // funny, teacher is grading self!
- $str .= "/".number_format($assessment->gradinggrade*100/COMMENTSCALE, 0)."%";
- }
+ $str .= number_format($assessment->grade, 0);
+ if ($assessment->gradinggrade) { // funny, teacher is grading self!
+ $str .= "/".number_format($assessment->gradinggrade*100/COMMENTSCALE, 0)."%";
+ }
if ($assessment->donotuse) {
- $str .= "></A> ";
+ $str .= "></A> ";
} else {
- $str .= "]</A> ";
+ $str .= "]</A> ";
}
- }
- }
- break;
- case "student" :
- if ($submission->peergrade) { // if there's a final peer grade...
- $str = "$submission->peergrade ";
- }
- foreach ($assessments as $assessment) {
- if (isstudent($workshop->course, $assessment->userid)) {
- $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">";
+ }
+ }
+ break;
+ case "student" :
+ if ($submission->peergrade) { // if there's a final peer grade...
+ $str = "$submission->peergrade ";
+ }
+ foreach ($assessments as $assessment) {
+ if (isstudent($workshop->course, $assessment->userid)) {
+ $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">";
if ($assessment->donotuse) {
$str .= "<";
} else {
$str .= "{";
}
- $str .= number_format($assessment->grade, 0);
- if ($assessment->gradinggrade) {
- $str .= "/".number_format($assessment->gradinggrade*100/COMMENTSCALE, 0)."%";
- }
+ $str .= number_format($assessment->grade, 0);
+ if ($assessment->gradinggrade) {
+ $str .= "/".number_format($assessment->gradinggrade*100/COMMENTSCALE, 0)."%";
+ }
if ($assessment->donotuse) {
- $str .= "></A> ";
+ $str .= "></A> ";
} else {
- $str .= "}</A> ";
+ $str .= "}</A> ";
}
- }
- }
- break;
- }
- }
- if (!$str) {
- $str = " "; // be kind to Mozilla browsers!
- }
+ }
+ }
+ break;
+ }
+ }
+ if (!$str) {
+ $str = " "; // be kind to Mozilla browsers!
+ }
return $str;
}
// Arguments are objects
global $CFG;
-
- if (!$submission->timecreated) { // a "no submission"
- return $submission->title;
- }
+
+ if (!$submission->timecreated) { // a "no submission"
+ return $submission->title;
+ }
$filearea = workshop_file_area_name($workshop, $submission);
if ($basedir = workshop_file_area($workshop, $submission)) {
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;
-
+// $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>";
- }
+ $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->names)) {
echo "<tr>";
- echo "<td class=\"generaltablecell\">".
- "<img width=\"10\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\"></td>\n";
+ 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=\"$align[$key]\"";
+ } else {
$alignment = "align=\"center\"";
}
if (isset($size[$key])) {
$width = "width=\"$size[$key]\"";
} else {
- $width = "";
- }
+ $width = "";
+ }
if (isset($wrap[$key])) {
- $wrapping = "no wrap";
- } else {
+ $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";
+ 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 "<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();
+ // print_simple_box_end();
return true;
}
}
if (! $cm = get_coursemodule_from_instance("workshop", $workshop->id, $course->id)) {
error("Course Module ID was incorrect");
- }
+ }
echo "<DIV ALIGN=CENTER>";
echo "<FORM ENCTYPE=\"multipart/form-data\" METHOD=\"POST\" ACTION=upload.php>";
echo " <INPUT TYPE=hidden NAME=MAX_FILE_SIZE value=\"$workshop->maxbytes\">";
echo " <INPUT TYPE=hidden NAME=id VALUE=\"$cm->id\">";
- echo "<b>".get_string("title", "workshop")."</b>: <INPUT NAME=\"title\" TYPE=\"text\" SIZE=\"60\" MAXSIZE=\"100\"><BR><BR>\n";
+ echo "<b>".get_string("title", "workshop")."</b>: <INPUT NAME=\"title\" TYPE=\"text\" SIZE=\"60\" MAXSIZE=\"100\"><BR><BR>\n";
echo " <INPUT NAME=\"newfile\" TYPE=\"file\" size=\"50\">";
echo " <INPUT TYPE=submit NAME=save VALUE=\"".get_string("uploadthisfile")."\">";
echo "</FORM>";
//////////////////////////////////////////////////////////////////////////////////////
function workshop_print_user_assessments($workshop, $user) {
- // Returns the number of assessments and a hyperlinked list of grading grades for the assessments made by this user
-
- if ($assessments = workshop_get_user_assessments_done($workshop, $user)) {
- $n = count($assessments);
- $str = "$n (";
- foreach ($assessments as $assessment) {
- if ($assessment->timegraded) {
- $gradingscaled = intval($assessment->gradinggrade * $workshop->grade / COMMENTSCALE);
- $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">";
- $str .= "$gradingscaled</A> ";
- }
- else {
- $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">";
+ // Returns the number of assessments and a hyperlinked list of grading grades for the assessments made by this user
+
+ if ($assessments = workshop_get_user_assessments_done($workshop, $user)) {
+ $n = count($assessments);
+ $str = "$n (";
+ foreach ($assessments as $assessment) {
+ if ($assessment->timegraded) {
+ $gradingscaled = intval($assessment->gradinggrade * $workshop->grade / COMMENTSCALE);
+ $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">";
+ $str .= "$gradingscaled</A> ";
+ }
+ else {
+ $str .= "<A HREF=\"assessments.php?action=viewassessment&a=$workshop->id&aid=$assessment->id\">";
if ($assessment->donotuse) {
$str .= "<".number_format($assessment->grade, 0)."></A> ";
} else {
$str .= number_format($assessment->grade, 0)."</A> ";
}
- }
- }
- $str .= ")";
- }
- else {
- $str ="0";
- }
+ }
+ }
+ $str .= ")";
+ }
+ else {
+ $str ="0";
+ }
return $str;
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_test_user_assessments($workshop, $user) {
- // see if user has assessed required number of assessments of teachers submissions...
- global $CFG;
-
- $result = true;
- $n = 0;
- $timenow =time();
- if ($submissions = workshop_get_teacher_submissions($workshop)) {
- foreach ($submissions as $submission) {
- if ($assessment = workshop_get_submission_assessment($submission, $user)) {
- // ...the date stamp on the assessment should be in the past
- if ($assessment->timecreated < $timenow) {
- $n++;
- }
- }
- }
- if ($n < min($workshop->ntassessments, workshop_count_teacher_submissions($workshop))) {
- $result = false;
- }
- }
- return $result;
- }
-
+ // see if user has assessed required number of assessments of teachers submissions...
+ global $CFG;
+
+ $result = true;
+ $n = 0;
+ $timenow =time();
+ if ($submissions = workshop_get_teacher_submissions($workshop)) {
+ foreach ($submissions as $submission) {
+ if ($assessment = workshop_get_submission_assessment($submission, $user)) {
+ // ...the date stamp on the assessment should be in the past
+ if ($assessment->timecreated < $timenow) {
+ $n++;
+ }
+ }
+ }
+ if ($n < min($workshop->ntassessments, workshop_count_teacher_submissions($workshop))) {
+ $result = false;
+ }
+ }
+ return $result;
+ }
+
function workshop_get_recent_mod_activity(&$activities, &$index, $sincetime, $courseid,
$workshop="0", $user="", $groupid="") {
// Returns all workshop posts since a given time. If workshop is specified then