Workshop module now works with dates rather than phases, see http://moodle.org/mod/forum/discuss.php?d=15541.

This commit is contained in:
gustav_delius 2004-12-05 11:49:18 +00:00
parent 47cb2991e5
commit ab98918f09
16 changed files with 1825 additions and 1830 deletions

View File

@ -22,6 +22,8 @@ $string['assessedon'] = 'Assessed on $a';
$string['assessment'] = 'Assessment';
$string['assessmentby'] = 'Assessment by $a';
$string['assessmentdropped'] = 'Assessment Dropped';
$string['assessmentend'] = 'End of assessments';
$string['assessmentendevent'] = 'End of assessments for $a';
$string['assessmentgrade'] = 'Assessment Grade: $a';
$string['assessmentnotyetagreed'] = 'Assessment not yet agreed';
$string['assessmentnotyetgraded'] = 'Assessment not yet graded';
@ -33,6 +35,8 @@ $string['assessmentsby'] = 'Assessments by $a';
$string['assessmentsdone'] = 'Assessments Done';
$string['assessmentsexcluded'] = 'Number of Assessments excluded for this $a';
$string['assessmentsmustbeagreed'] = 'Assessments must be agreed';
$string['assessmentstart'] = 'Start of assessments';
$string['assessmentstartevent'] = 'Start of assessments for $a';
$string['assessmentwasagreedon'] = 'Assessment was agreed on $a';
$string['assessor'] = 'Assessor';
$string['assessthissubmission'] = 'Assess this submission';
@ -54,8 +58,9 @@ $string['confirmdeletionofthisitem'] = 'Confirm Deletion of this $a';
$string['correct'] = 'Correct';
$string['count'] = 'Count';
$string['criterion'] = 'Criterion';
$string['deadline'] = 'Deadline';
$string['deadlineis'] = 'The Deadline is $a';
$string['currentphase'] = 'Current phase';
$string['deadline'] = 'Deadline for submission';
$string['deadlineis'] = 'The Deadline for submission is $a';
$string['delete'] = 'Delete';
$string['deleting'] = 'Deleting';
$string['description'] = 'Description';
@ -102,6 +107,8 @@ $string['hidegradesbeforeagreement'] = 'Hide Grades before Agreement';
$string['hidenamesfromstudents'] = 'Hide Names from $a';
$string['includeteachersgrade'] = 'Include Teacher\'s Grade';
$string['incorrect'] = 'Incorrect';
$string['info'] = 'Info';
$string['invaliddates'] = 'The dates you have entered are not possible.<br />Use the browser\'s Back button to return to the form and correct the dates.';
$string['iteration'] = 'Iteration $a completed';
$string['lax'] = "Lax";
$string['leaguetable'] = 'League Table of Submitted Work';
@ -137,14 +144,15 @@ $string['noassessmentsdone'] = 'No Assessments Done';
$string['noattachments'] = 'No Attachments';
$string['nosubmission'] = 'No Submission';
$string['nosubmissionsavailableforassessment'] = 'No Submissions available for assessment';
$string['notallowed'] = 'You are not allowed on this page at this time';
$string['notavailable'] = 'Not Available';
$string['notenoughexamplessubmitted'] = 'Not enough Examples submitted.';
$string['noteonassessmentelements'] = 'Note that grading is broken down into a number of \'Assessment Elements\'.<br />
This makes the grading easier and more consistent. As teacher you must add these <br />
Elements before making the assignment available to students. This is done by<br />
clicking on the assignment in the course, if no elements are present you will be asked<br />
to add them. You can change the number of elements using the Edit Assignment screen,<br />
the elements themselves can be amended from the &quot;Managing Assessment&quot; screen. ';
This makes the grading easier and more consistent. As teacher you must add these <br />
Elements before making the assignment available to students. This is done by<br />
clicking on the assignment in the course, if no elements are present you will be asked<br />
to add them. You can change the number of elements using the Edit Assignment screen,<br />
the elements themselves can be amended from the &quot;Managing Assessment&quot; screen. ';
$string['noteonstudentassessments'] = '{Grade from Student / Grading Grade for Assessment}';
$string['notgraded'] = 'Not Graded';
$string['notitle'] = 'No Title';
@ -173,6 +181,8 @@ $string['ownwork'] = 'Own Work';
$string['passwordprotectedworkshop'] = "Password Protected Workshop";
$string['percentageofassessments'] = 'Percentage of Assessments to Drop';
$string['phase'] = 'Phase';
$string['phase0'] = 'Inactive';
$string['phase0short'] = 'Inactive';
$string['phase1'] = 'Set Up Assignment';
$string['phase1short'] = 'Set Up';
$string['phase2'] = 'Allow $a Submissions';
@ -228,8 +238,12 @@ $string['studentgrades'] = '$a Grades';
$string['studentsubmissions'] = '$a Submissions';
$string['studentsubmissionsforassessment'] = '$a Student Submissions for Assessment';
$string['submission'] = 'Submission';
$string['submissionend'] = 'End of submissions';
$string['submissionendevent'] = 'End of submissions for $a';
$string['submissions'] = 'Submissions';
$string['submissionsnolongerallowed'] = 'Submissions no longer allowed';
$string['submissionstart'] = 'Start of submissions';
$string['submissionstartevent'] = 'Start of submissions for $a';
$string['submissionsused'] = '$a Submissions used in this table';
$string['submitassignment'] = 'Submit Assignment';
$string['submitassignmentusingform'] = 'Submit your Assignment using this Form';

File diff suppressed because it is too large Load Diff

View File

@ -65,7 +65,10 @@
fwrite ($bf,full_tag("ANONYMOUS",4,false,$workshop->anonymous));
fwrite ($bf,full_tag("INCLUDESELF",4,false,$workshop->includeself));
fwrite ($bf,full_tag("MAXBYTES",4,false,$workshop->maxbytes));
fwrite ($bf,full_tag("DEADLINE",4,false,$workshop->deadline));
fwrite ($bf,full_tag("SUBMISSIONSTART",4,false,$workshop->submissionstart));
fwrite ($bf,full_tag("ASSESSMENTSTART",4,false,$workshop->assessmentstart));
fwrite ($bf,full_tag("SUBMISSIONEND",4,false,$workshop->submissionend));
fwrite ($bf,full_tag("ASSESSMENTEND",4,false,$workshop->submissionstart));
fwrite ($bf,full_tag("RELEASEGRADES",4,false,$workshop->releasegrades));
fwrite ($bf,full_tag("GRADE",4,false,$workshop->grade));
fwrite ($bf,full_tag("GRADINGGRADE",4,false,$workshop->gradinggrade));

View File

@ -7,52 +7,52 @@ function workshop_upgrade($oldversion) {
global $CFG;
if ($oldversion < 2003050400) {
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` CHANGE `graded` `agreeassessments` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL");
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` CHANGE `showgrades` `hidegrades` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL");
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD `timeagreed` INT(10) UNSIGNED DEFAULT '0' NOT NULL AFTER `timecreated`");
execute_sql("
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` CHANGE `graded` `agreeassessments` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL");
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` CHANGE `showgrades` `hidegrades` TINYINT(2) UNSIGNED DEFAULT '0' NOT NULL");
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD `timeagreed` INT(10) UNSIGNED DEFAULT '0' NOT NULL AFTER `timecreated`");
execute_sql("
CREATE TABLE `{$CFG->prefix}workshop_comments` (
`id` int(10) unsigned NOT NULL auto_increment,
# workshopid not necessary just makes deleting instance easier
`workshopid` int(10) unsigned NOT NULL default '0',
# workshopid not necessary just makes deleting instance easier
`workshopid` int(10) unsigned NOT NULL default '0',
`assessmentid` int(10) unsigned NOT NULL default '0',
`userid` int(10) unsigned NOT NULL default '0',
`timecreated` int(10) unsigned NOT NULL default '0',
`mailed` tinyint(2) unsigned NOT NULL default '0',
`mailed` tinyint(2) unsigned NOT NULL default '0',
`comments` text NOT NULL,
PRIMARY KEY (`id`)
) COMMENT='Defines comments'
");
}
}
if ($oldversion < 2003051400) {
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` ADD `showleaguetable` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `gradingweight`");
execute_sql("
CREATE TABLE `{$CFG->prefix}workshop_rubrics` (
`id` int(10) unsigned NOT NULL auto_increment,
`workshopid` int(10) unsigned NOT NULL default '0',
`elementid` int(10) unsigned NOT NULL default '0',
`rubricno` tinyint(3) unsigned NOT NULL default '0',
`description` text NOT NULL,
PRIMARY KEY (`id`)
) COMMENT='Info about the rubrics marking scheme'
if ($oldversion < 2003051400) {
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` ADD `showleaguetable` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `gradingweight`");
execute_sql("
CREATE TABLE `{$CFG->prefix}workshop_rubrics` (
`id` int(10) unsigned NOT NULL auto_increment,
`workshopid` int(10) unsigned NOT NULL default '0',
`elementid` int(10) unsigned NOT NULL default '0',
`rubricno` tinyint(3) unsigned NOT NULL default '0',
`description` text NOT NULL,
PRIMARY KEY (`id`)
) COMMENT='Info about the rubrics marking scheme'
");
}
if ($oldversion < 2003082200) {
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_rubrics` CHANGE `elementid` `elementno` INT(10) UNSIGNED NOT NULL DEFAULT '0'");
}
}
if ($oldversion < 2003082200) {
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_rubrics` CHANGE `elementid` `elementno` INT(10) UNSIGNED NOT NULL DEFAULT '0'");
}
if ($oldversion < 2003092500) {
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` ADD `overallocation` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `nsassessments`");
}
if ($oldversion < 2003092500) {
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop` ADD `overallocation` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `nsassessments`");
}
if ($oldversion < 2003100200) {
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD `resubmission` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `mailed`");
}
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD `resubmission` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `mailed`");
}
if ($oldversion < 2003100800) {
// tidy up log_display entries
execute_sql("DELETE FROM `{$CFG->prefix}log_display` WHERE `module` = 'workshop'");
@ -82,8 +82,8 @@ function workshop_upgrade($oldversion) {
}
if ($oldversion < 2004081100) {
table_column("workshop", "", "gradinggrade", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "grade");
table_column("workshop", "", "assessmentcomps", "INTEGER", "4", "UNSIGNED", "2", "NOT NULL", "ntassessments");
table_column("workshop", "", "gradinggrade", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "grade");
table_column("workshop", "", "assessmentcomps", "INTEGER", "4", "UNSIGNED", "2", "NOT NULL", "ntassessments");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop` DROP COLUMN `gradingweight`");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop` DROP COLUMN `mergegrades`");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop` DROP COLUMN `peerweight`");
@ -95,18 +95,18 @@ function workshop_upgrade($oldversion) {
}
if ($oldversion < 2004092400) {
table_column("workshop", "", "nattachments", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "nelements");
table_column("workshop_submissions", "", "description", "TEXT", "", "", "", "", "mailed");
table_column("workshop", "", "nattachments", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "nelements");
table_column("workshop_submissions", "", "description", "TEXT", "", "", "", "", "mailed");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_submissions` ADD INDEX (`userid`)");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD INDEX (`submissionid`)");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_assessments` ADD INDEX (`userid`)");
}
if ($oldversion < 2004092700) {
table_column("workshop", "", "wtype", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "description");
table_column("workshop", "", "usepassword", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
table_column("workshop", "", "password", "VARCHAR", "32", "", "", "NOT NULL");
table_column("workshop_submissions", "", "late", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
table_column("workshop", "", "wtype", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "description");
table_column("workshop", "", "usepassword", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
table_column("workshop", "", "password", "VARCHAR", "32", "", "", "NOT NULL");
table_column("workshop_submissions", "", "late", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
// update wkey value
if ($workshops = get_records("workshop")) {
@ -120,22 +120,22 @@ function workshop_upgrade($oldversion) {
}
if ($oldversion < 2004102800) {
table_column("workshop", "", "releasegrades", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", "deadline");
execute_sql("
table_column("workshop", "", "releasegrades", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", "deadline");
execute_sql("
CREATE TABLE `{$CFG->prefix}workshop_stockcomments` (
`id` int(10) unsigned NOT NULL auto_increment,
`workshopid` int(10) unsigned NOT NULL default '0',
`workshopid` int(10) unsigned NOT NULL default '0',
`elementno` int(10) unsigned NOT NULL default '0',
`comments` text NOT NULL,
PRIMARY KEY (`id`)
) COMMENT='Defines stockcomments, the teacher comment bank'
");
}
}
if ($oldversion < 2004111000) {
table_column("workshop_elements", "", "stddev", "FLOAT", "", "", "0", "NOT NULL");
table_column("workshop_elements", "", "totalassessments", "INTEGER", "10", "", "0", "NOT NULL");
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_elements` CHANGE `weight` `weight` INT(4) UNSIGNED NOT NULL DEFAULT '11'");
table_column("workshop_elements", "", "stddev", "FLOAT", "", "", "0", "NOT NULL");
table_column("workshop_elements", "", "totalassessments", "INTEGER", "10", "", "0", "NOT NULL");
execute_sql(" ALTER TABLE `{$CFG->prefix}workshop_elements` CHANGE `weight` `weight` INT(4) UNSIGNED NOT NULL DEFAULT '11'");
table_column("workshop_submissions", "", "nassessments", "INTEGER", "10", "", "0", "NOT NULL");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_submissions` DROP COLUMN `teachergrade`");
execute_sql("ALTER TABLE `{$CFG->prefix}workshop_submissions` DROP COLUMN `peergrade`");
@ -177,6 +177,26 @@ function workshop_upgrade($oldversion) {
modify_database('','ALTER TABLE prefix_workshop_submissions ADD INDEX mailed (mailed);');
}
if ($oldversion < 2004120402) {
table_column('workshop', '', 'submissionstart', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'maxbytes');
table_column('workshop', '', 'assessmentstart', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'submissionstart');
table_column('workshop', 'deadline', 'submissionend', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'assessmentstart');
table_column('workshop', '', 'assessmentend', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'submissionend');
$workshops = get_records('workshop');
foreach ($workshops as $workshop) {
$early = (time() < $workshop->submissionend) ? 0 : $workshop->submissionend;
$late = (time() > $workshop->submissionend) ? 0 : $workshop->submissionend;
set_field('workshop', 'submissionstart', ($workshop->phase > 1) ? $early : $late, 'id', $workshop->id);
set_field('workshop', 'assessmentstart', ($workshop->phase > 2) ? $early : $late, 'id', $workshop->id);
set_field('workshop', 'submissionend', ($workshop->phase > 3) ? $early : $late, 'id', $workshop->id);
set_field('workshop', 'assessmentend', ($workshop->phase > 4) ? $early : $late, 'id', $workshop->id);
}
execute_sql('ALTER TABLE '. $CFG->prefix .'workshop DROP COLUMN phase');
execute_sql("UPDATE {$CFG->prefix}event SET eventtype = 'submissionend' WHERE eventtype = 'deadline' AND modulename = 'workshop'", false);
}
return true;
}

View File

@ -19,7 +19,10 @@ CREATE TABLE `prefix_workshop` (
`anonymous` tinyint(2) unsigned NOT NULL default '0',
`includeself` tinyint(2) unsigned NOT NULL default '0',
`maxbytes` int(10) unsigned NOT NULL default '100000',
`deadline` int(10) unsigned NOT NULL default '0',
`submissionstart` int(10) unsigned NOT NULL default '0',
`assessmentstart` int(10) unsigned NOT NULL default '0',
`submissionend` int(10) unsigned NOT NULL default '0',
`assessmentend` int(10) unsigned NOT NULL default '0',
`releasegrades` int(10) unsigned NOT NULL default '0',
`grade` tinyint(3) NOT NULL default '0',
`gradinggrade` tinyint(3) NOT NULL default '0',
@ -182,4 +185,3 @@ INSERT INTO `prefix_log_display` VALUES ('workshop', 'set up', 'workshop', 'name
INSERT INTO `prefix_log_display` VALUES ('workshop', 'submissions', 'workshop', 'name');
INSERT INTO `prefix_log_display` VALUES ('workshop', 'view', 'workshop', 'name');
INSERT INTO `prefix_log_display` VALUES ('workshop', 'update', 'workshop', 'name');

View File

@ -7,18 +7,18 @@ function workshop_upgrade($oldversion) {
global $CFG;
if ($oldversion < 2003050400) {
table_column("workshop","graded", "agreeassessments", "INT","2", "", "0" ,"NOT NULL");
table_column("workshop", "showgrades","hidegrades", "INT","2", "","0", "NOT NULL");
table_column("workshop_assessments","","timeagreed", "INT","8", "UNSIGNED", "0", "NOT NULL" );
execute_sql("
table_column("workshop","graded", "agreeassessments", "INT","2", "", "0" ,"NOT NULL");
table_column("workshop", "showgrades","hidegrades", "INT","2", "","0", "NOT NULL");
table_column("workshop_assessments","","timeagreed", "INT","8", "UNSIGNED", "0", "NOT NULL" );
execute_sql("
CREATE TABLE {$CFG->prefix}workshop_comments (
id SERIAL8 PRIMARY KEY ,
workshopid int8 NOT NULL default '0',
assessmentid int8 NOT NULL default '0',
userid int8 NOT NULL default '0',
timecreated int8 NOT NULL default '0',
mailed int2 NOT NULL default '0',
mailed int2 NOT NULL default '0',
comments text NOT NULL
)
");
@ -26,30 +26,30 @@ function workshop_upgrade($oldversion) {
if ($oldversion < 2003051400) {
table_column("workshop","","showleaguetable", "INTEGER", "4", "unsigned", "0", "not null", "gradingweight");
execute_sql("
CREATE TABLE {$CFG->prefix}workshop_rubrics (
id SERIAL8 PRIMARY KEY,
workshopid int8 NOT NULL default '0',
elementid int8 NOT NULL default '0',
rubricno int4 NOT NULL default '0',
description text NOT NULL,
)
execute_sql("
CREATE TABLE {$CFG->prefix}workshop_rubrics (
id SERIAL8 PRIMARY KEY,
workshopid int8 NOT NULL default '0',
elementid int8 NOT NULL default '0',
rubricno int4 NOT NULL default '0',
description text NOT NULL,
)
");
}
if ($oldversion < 2003082200) {
table_column("workshop_rubrics", "elementid", "elementno", "INTEGER", "10", "unsigned", "0", "not null", "id");
}
}
if ($oldversion < 2003082200) {
table_column("workshop_rubrics", "elementid", "elementno", "INTEGER", "10", "unsigned", "0", "not null", "id");
}
if ($oldversion < 2003092500) {
if ($oldversion < 2003092500) {
table_column("workshop", "", "overallocation", "INTEGER", "4", "unsigned", "0", "not null", "nsassesments");
}
}
if ($oldversion < 2003100200) {
table_column("workshop_assesments", "", "resubmission", "INTEGER", "4", "unsigned", "0", "not null", "mailed");
}
}
if ($oldversion < 2003100800) {
// tidy up log_display entries
execute_sql("DELETE FROM {$CFG->prefix}log_display WHERE module = 'workshop'");
@ -76,8 +76,8 @@ function workshop_upgrade($oldversion) {
}
if ($oldversion < 2004081100) {
table_column("workshop", "", "gradinggrade", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "grade");
table_column("workshop", "", "assessmentcomps", "INTEGER", "4", "UNSIGNED", "2", "NOT NULL", "ntassessments");
table_column("workshop", "", "gradinggrade", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "grade");
table_column("workshop", "", "assessmentcomps", "INTEGER", "4", "UNSIGNED", "2", "NOT NULL", "ntassessments");
execute_sql("ALTER TABLE {$CFG->prefix}workshop DROP COLUMN gradingweight");
execute_sql("ALTER TABLE {$CFG->prefix}workshop DROP COLUMN mergegrades");
execute_sql("ALTER TABLE {$CFG->prefix}workshop DROP COLUMN peerweight");
@ -89,18 +89,18 @@ function workshop_upgrade($oldversion) {
}
if ($oldversion < 2004092400) {
table_column("workshop", "", "nattachments", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "nelements");
table_column("workshop_submissions", "", "description", "TEXT", "", "", "", "", "mailed");
table_column("workshop", "", "nattachments", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "nelements");
table_column("workshop_submissions", "", "description", "TEXT", "", "", "", "", "mailed");
execute_sql("CREATE INDEX {$CFG->prefix}workshop_submissions_userid_idx ON {$CFG->prefix}workshop_submissions (userid)");
execute_sql("CREATE INDEX {$CFG->prefix}workshop_assessments_submissionid_idx ON {$CFG->prefix}workshop_assessments (submissionid)");
execute_sql("CREATE INDEX {$CFG->prefix}workshop_assessments_userid_idx ON {$CFG->prefix}workshop_assessments (userid)");
}
if ($oldversion < 2004092700) {
table_column("workshop", "", "wtype", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "description");
table_column("workshop", "", "usepassword", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
table_column("workshop", "", "password", "VARCHAR", "32", "", "", "NOT NULL");
table_column("workshop_submissions", "", "late", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
table_column("workshop", "", "wtype", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL", "description");
table_column("workshop", "", "usepassword", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
table_column("workshop", "", "password", "VARCHAR", "32", "", "", "NOT NULL");
table_column("workshop_submissions", "", "late", "INTEGER", "4", "UNSIGNED", "0", "NOT NULL");
// update wkey value
if ($workshops = get_records("workshop")) {
@ -114,21 +114,21 @@ function workshop_upgrade($oldversion) {
}
if ($oldversion < 2004102800) {
table_column("workshop", "", "releasegrades", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", "deadline");
execute_sql("
table_column("workshop", "", "releasegrades", "INTEGER", "10", "UNSIGNED", "0", "NOT NULL", "deadline");
execute_sql("
CREATE TABLE {$CFG->prefix}workshop_stockcomments (
id SERIAL PRIMARY KEY,
workshopid INT8 NOT NULL default '0',
workshopid INT8 NOT NULL default '0',
elementno INT8 NOT NULL default '0',
comments text NOT NULL
)
");
}
}
if ($oldversion < 2004111000) {
table_column("workshop_elements", "", "stddev", "FLOAT", "", "", "0", "NOT NULL");
table_column("workshop_elements", "", "totalassessments", "INTEGER", "10", "", "0", "NOT NULL");
table_column("workshop_elements", "weight", "weight", "INTEGER", "4", "UNSIGNED", "11", "NOT NULL");
table_column("workshop_elements", "", "stddev", "FLOAT", "", "", "0", "NOT NULL");
table_column("workshop_elements", "", "totalassessments", "INTEGER", "10", "", "0", "NOT NULL");
table_column("workshop_elements", "weight", "weight", "INTEGER", "4", "UNSIGNED", "11", "NOT NULL");
table_column("workshop_submissions", "", "nassessments", "INTEGER", "10", "", "0", "NOT NULL");
execute_sql("ALTER TABLE {$CFG->prefix}workshop_submissions DROP COLUMN teachergrade");
execute_sql("ALTER TABLE {$CFG->prefix}workshop_submissions DROP COLUMN peergrade");
@ -170,6 +170,26 @@ function workshop_upgrade($oldversion) {
modify_database('','CREATE INDEX prefix_workshop_submissions_mailed_idx ON prefix_workshop_submissions (mailed);');
}
if ($oldversion < 2004120402) {
table_column('workshop', '', 'submissionstart', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'maxbytes');
table_column('workshop', '', 'assessmentstart', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'submissionstart');
table_column('workshop', 'deadline', 'submissionend', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'assessmentstart');
table_column('workshop', '', 'assessmentend', 'INTEGER', '10', 'UNSIGNED', '0', 'NOT NULL', 'submissionend');
$workshops = get_records('workshop');
foreach ($workshops as $workshop) {
$early = (time() < $workshop->submissionend) ? 0 : $workshop->submissionend;
$late = (time() > $workshop->submissionend) ? 0 : $workshop->submissionend;
set_field('workshop', 'submissionstart', ($workshop->phase > 1) ? $early : $late, 'id', $workshop->id);
set_field('workshop', 'assessmentstart', ($workshop->phase > 2) ? $early : $late, 'id', $workshop->id);
set_field('workshop', 'submissionend', ($workshop->phase > 3) ? $early : $late, 'id', $workshop->id);
set_field('workshop', 'assessmentend', ($workshop->phase > 4) ? $early : $late, 'id', $workshop->id);
}
execute_sql('ALTER TABLE '. $CFG->prefix .'workshop DROP COLUMN phase');
execute_sql("UPDATE {$CFG->prefix}event SET eventtype = 'submissionend' WHERE eventtype = 'deadline' AND modulename = 'workshop'", false);
}
return true;
}

View File

@ -19,7 +19,10 @@ CREATE TABLE prefix_workshop (
anonymous INT2 NOT NULL default '0',
includeself INT2 NOT NULL default '0',
maxbytes INT8 NOT NULL default '100000',
deadline INT8 NOT NULL default '0',
submissionstart INT8 NOT NULL default '0',
assessmentstart INT8 NOT NULL default '0',
submissionend INT8 NOT NULL default '0',
assessmentend INT8 NOT NULL default '0',
releasegrades INT8 NOT NULL "0",
grade INT8 NOT NULL default '0',
gradinggrade INT4 NOT NULL default '0',

View File

@ -48,35 +48,24 @@
foreach ($workshops as $workshop) {
if (isteacher($course->id, $USER->id)) { // teacher see info (students see grade)
switch ($workshop->phase) {
case 0:
case 1: $info = get_string("phase1short", "workshop");
break;
case 2: $info = get_string("phase2short", "workshop");
break;
case 3: $info = get_string("phase3short", "workshop");
break;
case 4: $info = get_string("phase4short", "workshop");
break;
case 5: $info = get_string("phase5short", "workshop");
break;
}
if ($workshop->phase > 1) {
$info = workshop_phase($workshop, 'short');
if (time() > $workshop->submissionstart) {
if ($num = workshop_count_student_submissions_for_assessment($workshop, $USER)) {
$info .= " [".get_string("unassessed", "workshop", $num)."]";
}
}
}
$due = userdate($workshop->submissionend);
if ($submissions = workshop_get_user_submissions($workshop, $USER)) {
foreach ($submissions as $submission) {
if ($submission->timecreated <= $workshop->deadline) {
if ($submission->timecreated <= $workshop->submissionend) {
$submitted = userdate($submission->timecreated);
}
else {
$submitted = "<font color=\"red\">".userdate($submission->timecreated)."</font>";
}
$due = userdate($workshop->deadline);
if (!$workshop->visible) {
//Show dimmed if the mod is hidden
$link = "<a class=\"dimmed\" href=\"view.php?id=$workshop->coursemodule\">$workshop->name</a><br />";
@ -119,7 +108,6 @@
}
else { // no submission
$submitted = get_string("no");
$due = userdate($workshop->deadline);
if (!$workshop->visible) {
//Show dimmed if the mod is hidden
$link = "<a class=\"dimmed\" href=\"view.php?id=$workshop->coursemodule\">$workshop->name</a>";

View File

@ -65,6 +65,7 @@ $WORKSHOP_ASSESSMENT_COMPS = array (
/*** Standard Moodle functions ******************
workshop_add_instance($workshop)
workshop_check_dates($workshop)
workshop_cron ()
workshop_delete_instance($id)
workshop_grades($workshopid)
@ -83,35 +84,74 @@ function workshop_add_instance($workshop) {
// of the new instance.
$workshop->timemodified = time();
$workshop->deadline = make_timestamp($workshop->deadlineyear,
$workshop->deadlinemonth, $workshop->deadlineday, $workshop->deadlinehour,
$workshop->deadlineminute);
$workshop->submissionstart = make_timestamp($workshop->submissionstartyear,
$workshop->submissionstartmonth, $workshop->submissionstartday, $workshop->submissionstarthour,
$workshop->submissionstartminute);
$workshop->assessmentstart = make_timestamp($workshop->assessmentstartyear,
$workshop->assessmentstartmonth, $workshop->assessmentstartday, $workshop->assessmentstarthour,
$workshop->assessmentstartminute);
$workshop->submissionend = make_timestamp($workshop->submissionendyear,
$workshop->submissionendmonth, $workshop->submissionendday, $workshop->submissionendhour,
$workshop->submissionendminute);
$workshop->assessmentend = make_timestamp($workshop->assessmentendyear,
$workshop->assessmentendmonth, $workshop->assessmentendday, $workshop->assessmentendhour,
$workshop->assessmentendminute);
$workshop->releasegrades = make_timestamp($workshop->releaseyear,
$workshop->releasemonth, $workshop->releaseday, $workshop->releasehour,
$workshop->releaseminute);
if (!workshop_check_dates($workshop)) {
return get_string('invaliddates', 'workshop');
}
if ($returnid = insert_record("workshop", $workshop)) {
$event = NULL;
$event->name = $workshop->name;
$event->name = get_string('submissionstartevent','workshop', $workshop->name);
$event->description = $workshop->description;
$event->courseid = $workshop->course;
$event->groupid = 0;
$event->userid = 0;
$event->modulename = 'workshop';
$event->instance = $returnid;
$event->eventtype = 'deadline';
$event->timestart = $workshop->deadline;
$event->eventtype = 'submissionstart';
$event->timestart = $workshop->submissionstart;
$event->timeduration = 0;
add_event($event);
$event->name = get_string('submissionendevent','workshop', $workshop->name);
$event->eventtype = 'submissionend';
$event->timestart = $workshop->submissionend;
add_event($event);
$event->name = get_string('assessmentstartevent','workshop', $workshop->name);
$event->eventtype = 'assessmentstart';
$event->timestart = $workshop->assessmentstart;
add_event($event);
$event->name = get_string('assessmentendevent','workshop', $workshop->name);
$event->eventtype = 'assessmentend';
$event->timestart = $workshop->assessmentend;
add_event($event);
}
return $returnid;
}
///////////////////////////////////////////////////////////////////////////////
// returns true if the dates are valid, false otherwise
function workshop_check_dates($workshop) {
return ($workshop->submissionstart < $workshop->submissionend and
$workshop->submissionstart <= $workshop->assessmentstart and
$workshop->assessmentstart <= $workshop->assessmentend and
$workshop->submissionend < $workshop->assessmentend);
}
///////////////////////////////////////////////////////////////////////////////
function workshop_cron () {
@ -525,13 +565,13 @@ function workshop_delete_instance($id) {
///////////////////////////////////////////////////////////////////////////////
function workshop_grades($workshopid) {
/// Must return an array of grades, indexed by user, and a max grade.
/// only returns grades in phase 2 or greater
/// only returns grades once assessment has started
/// returns nothing if workshop is not graded
global $CFG;
$return = null;
if ($workshop = get_record("workshop", "id", $workshopid)) {
if (($workshop->phase > 1) and $workshop->gradingstrategy) {
if (($workshop->assessmentstart < time()) and $workshop->gradingstrategy) {
if ($students = get_course_students($workshop->course)) {
foreach ($students as $student) {
if ($workshop->wtype) {
@ -809,26 +849,37 @@ function workshop_refresh_events($courseid = 0) {
$moduleid = get_field('modules', 'id', 'name', 'workshop');
foreach ($workshops as $workshop) {
$event = NULL;
$event->name = addslashes($workshop->name);
$event->description = addslashes($workshop->description);
$event->timestart = $workshop->deadline;
if ($event->id = get_field('event', 'id', 'modulename', 'workshop', 'instance', $workshop->id)) {
update_event($event);
} else {
$event->courseid = $workshop->course;
$event->groupid = 0;
$event->userid = 0;
$event->modulename = 'workshop';
$event->instance = $workshop->id;
$event->eventtype = 'deadline';
$event->timeduration = 0;
$event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $workshop->id);
add_event($event);
$dates = array(
'submissionstart' => $workshop->submissionstart,
'submissionend' => $workshop->submissionend,
'assessmentstart' => $workshop->assessmentstart,
'assessmentend' => $workshop->assessmentend
);
foreach ($dates as $type => $date) {
if ($date) {
if ($event = get_record('event', 'modulename', 'workshop', 'instance', $workshop->id, 'eventtype', $type)) {
$event->name = addslashes(get_string($type.'event','workshop', $workshop->name));
$event->description = addslashes($workshop->description);
$event->eventtype = $type;
$event->timestart = $date;
update_event($event);
} else {
$event->courseid = $workshop->course;
$event->modulename = 'workshop';
$event->instance = $workshop->id;
$event->name = addslashes(get_string($type.'event','workshop', $workshop->name));
$event->description = addslashes($workshop->description);
$event->eventtype = $type;
$event->timestart = $date;
$event->timeduration = 0;
$event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $workshop->id);
add_event($event);
}
}
}
}
return true;
}
@ -842,13 +893,29 @@ function workshop_update_instance($workshop) {
$workshop->timemodified = time();
$workshop->deadline = make_timestamp($workshop->deadlineyear,
$workshop->deadlinemonth, $workshop->deadlineday, $workshop->deadlinehour,
$workshop->deadlineminute);
$workshop->submissionstart = make_timestamp($workshop->submissionstartyear,
$workshop->submissionstartmonth, $workshop->submissionstartday, $workshop->submissionstarthour,
$workshop->submissionstartminute);
$workshop->assessmentstart = make_timestamp($workshop->assessmentstartyear,
$workshop->assessmentstartmonth, $workshop->assessmentstartday, $workshop->assessmentstarthour,
$workshop->assessmentstartminute);
$workshop->submissionend = make_timestamp($workshop->submissionendyear,
$workshop->submissionendmonth, $workshop->submissionendday, $workshop->submissionendhour,
$workshop->submissionendminute);
$workshop->assessmentend = make_timestamp($workshop->assessmentendyear,
$workshop->assessmentendmonth, $workshop->assessmentendday, $workshop->assessmentendhour,
$workshop->assessmentendminute);
$workshop->releasegrades = make_timestamp($workshop->releaseyear,
$workshop->releasemonth, $workshop->releaseday, $workshop->releasehour,
$workshop->releaseminute);
if (!workshop_check_dates($workshop)) {
return get_string('invaliddates', 'workshop');
}
// set the workshop's type
$wtype = 0; // 3 phases, no grading grades
@ -858,31 +925,51 @@ function workshop_update_instance($workshop) {
// encode password if necessary
if (!empty($workshop->password)) {
$workshop->password = md5($workshop->password);
} else {
unset($workshop->password);
}
$workshop->password = md5($workshop->password);
} else {
unset($workshop->password);
}
$workshop->id = $workshop->instance;
if ($returnid = update_record("workshop", $workshop)) {
$event = NULL;
if ($event->id = get_field('event', 'id', 'modulename', 'workshop', 'instance', $workshop->id)) {
$event->name = $workshop->name;
$event->description = $workshop->description;
$event->timestart = $workshop->deadline;
update_event($event);
$dates = array(
'submissionstart' => $workshop->submissionstart,
'submissionend' => $workshop->submissionend,
'assessmentstart' => $workshop->assessmentstart,
'assessmentend' => $workshop->assessmentend
);
$moduleid = get_field('modules', 'id', 'name', 'workshop');
foreach ($dates as $type => $date) {
if ($event = get_record('event', 'modulename', 'workshop', 'instance', $workshop->id, 'eventtype', $type)) {
$event->name = get_string($type.'event','workshop', $workshop->name);
$event->description = $workshop->description;
$event->eventtype = $type;
$event->timestart = $date;
update_event($event);
} else if ($date) {
$event = NULL;
$event->name = get_string($type.'event','workshop', $workshop->name);
$event->description = $workshop->description;
$event->courseid = $workshop->course;
$event->groupid = 0;
$event->userid = 0;
$event->modulename = 'workshop';
$event->instance = $workshop->instance;
$event->eventtype = $type;
$event->timestart = $date;
$event->timeduration = 0;
$event->visible = get_field('course_modules', 'visible', 'module', $moduleid, 'instance', $workshop->id);
add_event($event);
}
}
}
return $returnid;
}
///////////////////////////////////////////////////////////////////////////////
function workshop_user_complete($course, $user, $mod, $workshop) {
if ($submission = workshop_get_student_submission($workshop, $user)) {

View File

@ -67,6 +67,7 @@ workshop_list_unassessed_teacher_submissions($workshop, $user) {
workshop_list_ungraded_assessments($workshop, $stype) {
workshop_list_user_submissions($workshop, $user) {
workshop_calculate_phase($workshop, $style='') {
workshop_print_assessment($workshop, $assessment, $allowchanges, $showcommentlinks, $returnto)
workshop_print_assessments_by_user_for_admin($workshop, $user) {
@ -77,7 +78,6 @@ workshop_print_feedback($course, $submission) {
workshop_print_league_table($workshop) {
workshop_print_submission_assessments($workshop, $submission, $type) {
workshop_print_submission_title($workshop, $user) {
workshop_print_tabbed_table($table) {
workshop_print_time_to_deadline($time) {
workshop_print_upload_form($workshop) {
workshop_print_user_assessments($workshop, $user) {
@ -959,6 +959,7 @@ function workshop_list_assessed_submissions($workshop, $user) {
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_list_peer_assessments($workshop, $user) {
global $CFG;
@ -1791,9 +1792,8 @@ function workshop_list_user_submissions($workshop, $user) {
if ($submissions = workshop_get_user_submissions($workshop, $user)) {
foreach ($submissions as $submission) {
// allow user to edit or delete a submission if it's warm OR if the workshop is still in
// the submission phase
if (($submission->timecreated > ($timenow - $CFG->maxeditingtime)) or ($workshop->phase == 2)) {
// allow user to edit or delete a submission if it's warm OR if assessment period has not started
if (($submission->timecreated > ($timenow - $CFG->maxeditingtime)) or ($workshop->assessmentstart > time())) {
$action = "<a href=\"submissions.php?action=editsubmission&amp;id=$cm->id&amp;sid=$submission->id\">".
get_string("edit", "workshop")."</a> | ".
"<a href=\"submissions.php?action=userconfirmdelete&amp;id=$cm->id&amp;sid=$submission->id\">".
@ -1816,6 +1816,33 @@ function workshop_list_user_submissions($workshop, $user) {
}
///////////////////////////////////////////////////////////////////////////////
function workshop_phase($workshop, $style='') {
$time = time();
if ($time < $workshop->submissionstart) {
return get_string('phase1'.$style, 'workshop');
}
else if ($time < $workshop->submissionend) {
if ($time < $workshop->assessmentstart) {
return get_string('phase2'.$style, 'workshop');
} else {
return get_string('phase3'.$style, 'workshop');
}
}
else if ($time < $workshop->assessmentstart) {
return get_string('phase0'.$style, 'workshop');
}
else if ($time < $workshop->assessmentend) {
return get_string('phase4'.$style, 'workshop');
}
else {
return get_string('phase5'.$style, 'workshop');
}
error('Something is wrong with the workshop dates');
}
//////////////////////////////////////////////////////////////////////////////////////
function workshop_print_assessment($workshop, $assessment = false, $allowchanges = false,
$showcommentlinks = false, $returnto = '') {
@ -2543,17 +2570,31 @@ function workshop_print_assignment_info($workshop) {
error("Course Module ID was incorrect");
}
// print standard assignment heading
$strdifference = format_time($workshop->deadline - time());
if (($workshop->deadline - time()) < 0) {
$strdifference = "<font color=\"red\">$strdifference</font>";
}
$strduedate = userdate($workshop->deadline)." ($strdifference)";
print_simple_box_start("center");
print_heading($workshop->name, "center");
print_simple_box_start("center");
echo "<b>".get_string("duedate", "assignment")."</b>: $strduedate<br />";
// print phase and date info
$string = '<b>'.get_string('currentphase', 'workshop').'</b>: '.workshop_phase($workshop).'<br />';
$dates = array(
'submissionstart' => $workshop->submissionstart,
'submissionend' => $workshop->submissionend,
'assessmentstart' => $workshop->assessmentstart,
'assessmentend' => $workshop->assessmentend
);
foreach ($dates as $type => $date) {
if ($date) {
$strdifference = format_time($date - time());
if (($date - time()) < 0) {
$strdifference = "<font color=\"red\">$strdifference</font>";
}
$string .= '<b>'.get_string($type, 'workshop').'</b>: '.userdate($date)." ($strdifference)<br />";
}
}
echo $string;
$grade = $workshop->gradinggrade + $workshop->grade;
echo "<b>".get_string("maximumgrade")."</b>: $grade<br />";
echo "<br /><b>".get_string("maximumgrade")."</b>: $grade<br />";
echo "<b>".get_string("detailsofassessment", "workshop")."</b>:
<a href=\"assessments.php?id=$cm->id&amp;action=displaygradingform\">".
get_string("specimenassessmentform", "workshop")."</a><br />";
@ -2836,90 +2877,6 @@ function workshop_print_submission_title($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;
if (isset($tabs->names)) {
foreach ($tabs->names as $key => $name) {
if (!empty($tabs->urls[$key])) {
$url =$tabs->urls[$key];
if ($tabs->highlight == $key) {
$tabcontents[$key] = "<b>$name</b>";
} else {
$tabcontents[$key] = "<a class= \"dimmed\" href=\"$url\"><b>$name</b></a>";
}
} else {
$tabcontents[$key] = "<b>$name</b>";
}
}
}
if (empty($tabs->width)) {
$tabs->width = "80%";
}
if (empty($tabs->cellpadding)) {
$tabs->cellpadding = "5";
}
// print_simple_box_start("center", "$table->width", "#ffffff", 0);
echo "<table width=\"$tabs-width\" border=\"0\" align=\"center\" ";
echo " cellpadding=\"$tabs->cellpadding\" cellspacing=\"0\" class=\"generaltable\">\n";
if (!empty($tabs->names)) {
echo "<tr>";
echo "<td class=\"generaltablecell\">".
"<img width=\"10\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\" /></td>\n";
foreach ($tabcontents as $key => $tab) {
if (isset($align[$key])) {
$alignment = "align=\"$align[$key]\"";
} else {
$alignment = "align=\"center\"";
}
if (isset($size[$key])) {
$width = "width=\"$size[$key]\"";
} else {
$width = "";
}
if (isset($wrap[$key])) {
$wrapping = "no wrap";
} else {
$wrapping = "";
}
if ($key == $tabs->highlight) {
echo "<td valign=\"top\" class=\"generaltabselected\" $alignment $width $wrapping bgcolor=\"$THEME->cellheading2\">$tab</td>\n";
} else {
echo "<td valign=\"top\" class=\"generaltab\" $alignment $width $wrapping bgcolor=\"$THEME->cellheading\">$tab</td>\n";
}
echo "<td class=\"generaltablecell\">".
"<img width=\"10\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\" /></td>\n";
}
echo "</tr>\n";
} else {
echo "<tr><td>No names specified</td></tr>\n";
}
// bottom stripe
$ncells = count($tabs->names)*2 +1;
$height = 2;
echo "<tr><td colspan=\"$ncells\" bgcolor=\"$THEME->cellheading2\">".
"<img height=\"$height\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\" /></td></tr>\n";
echo "</table>\n";
// print_simple_box_end();
return true;
}
function workshop_print_time_to_deadline($time) {
if ($time < 0) {

View File

@ -1,5 +1,5 @@
<?php
require("$CFG->dirroot/mod/workshop/lib.php"); // for parameter arrays
require_once("$CFG->dirroot/mod/workshop/lib.php"); // for parameter arrays
// ...and fill the form if needed
if (empty($form->name)) {
$form->name = "";
@ -17,8 +17,8 @@
$form->grade = 100;
}
if (!isset($form->gradingstrategy)) {
$form->gradingstrategy = 1; // default is accumulative
}
$form->gradingstrategy = 1; // default is accumulative
}
if (!isset($form->nelements)) {
$form->nelements = 1;
}
@ -64,8 +64,20 @@
if (empty($form->maxbytes)) {
$form->maxbytes = "";
}
if (empty($form->deadline)) {
$form->deadline = "";
if (empty($form->submissionstart)) {
$form->submissionstart = time();
}
if (empty($form->assessmentstart)) {
$form->assessmentstart = time();
}
if (empty($form->submissionend)) {
$form->submissionend = time();
}
if (empty($form->assessmentend)) {
$form->assessmentend = time();
}
if (empty($form->releasegrades)) {
$form->releasegrades = time();
}
?>
@ -143,7 +155,7 @@
<td align="right"><b><?php print_string("gradingstrategy", "workshop") ?>:</b></td>
<td>
<?php
choose_from_menu($WORKSHOP_TYPE, "gradingstrategy", $form->gradingstrategy, "");
choose_from_menu($WORKSHOP_TYPE, "gradingstrategy", $form->gradingstrategy, "");
helpbutton("gradingstrategy", get_string("gradingstrategy", "workshop"), "workshop");
?>
</td>
@ -190,14 +202,14 @@
<tr valign="top">
<td align="right"><b><?php print_string("numberofassessmentsofteachersexamples", "workshop") ?>:</b></td>
<td>
<?php
<?php
unset($numbers);
for ($i=20; $i>=0; $i--) {
$numbers[$i] = $i;
}
choose_from_menu($numbers, "ntassessments", $form->ntassessments, "");
for ($i=20; $i>=0; $i--) {
$numbers[$i] = $i;
}
choose_from_menu($numbers, "ntassessments", $form->ntassessments, "");
helpbutton("nassessmentsofteachersexamples", get_string("numberofassessmentsofteachersexamples", "workshop"), "workshop");
?>
?>
</td>
</tr>
@ -205,10 +217,10 @@
<td align="right"><b><?php print_string("comparisonofassessments", "workshop") ?>:</b></td>
<td>
<?php
// set up comparison names
// set up comparison names
foreach ($WORKSHOP_ASSESSMENT_COMPS as $KEY => $COMPARISON) {
$COMPARISONS[] = $COMPARISON['name'];
}
}
choose_from_menu($COMPARISONS, "assessmentcomps", $form->assessmentcomps, "");
helpbutton("comparisonofassessments", get_string("comparisonofassessments", "workshop"), "workshop");
?>
@ -218,28 +230,28 @@
<tr valign="top">
<td align="right"><b><?php print_string("numberofassessmentsofstudentsubmissions", "workshop") ?>:</b></td>
<td>
<?php
<?php
unset($numbers);
for ($i=20; $i>=0; $i--) {
$numbers[$i] = $i;
}
choose_from_menu($numbers, "nsassessments", $form->nsassessments, "");
for ($i=20; $i>=0; $i--) {
$numbers[$i] = $i;
}
choose_from_menu($numbers, "nsassessments", $form->nsassessments, "");
helpbutton("nassessmentsofstudentsubmissions", get_string("numberofassessmentsofstudentsubmissions", "workshop"), "workshop");
?>
?>
</td>
</tr>
<tr valign="top">
<td align="right"><b><?php print_string("weightforteacherassessments", "workshop") ?>:</b></td>
<td>
<?php
<?php
unset($numbers);
for ($i=10; $i>=0; $i--) {
$numbers[$i] = $i;
}
choose_from_menu($numbers, "teacherweight", $form->teacherweight, "");
for ($i=10; $i>=0; $i--) {
$numbers[$i] = $i;
}
choose_from_menu($numbers, "teacherweight", $form->teacherweight, "");
helpbutton("teacherweight", get_string("weightforteacherassessments", "workshop"), "workshop");
?>
?>
</td>
</tr>
@ -319,7 +331,7 @@
<td>
<?php
$options[0] = get_string("no"); $options[1] = get_string("yes");
choose_from_menu($options, "usepassword", $form->usepassword, "");
choose_from_menu($options, "usepassword", $form->usepassword, "");
helpbutton("usepassword", get_string("usepassword", "workshop"), "workshop");
?>
</td>
@ -329,7 +341,7 @@
<td align="right"><b><?php print_string("password"); ?>:</b></td>
<td>
<input type="text" name="password" size="10" value="" alt="<?php print_string("password"); ?>" /> <?php echo " (".get_string("leavetokeep").")"; ?>
<?php helpbutton("password", get_string("password"), "workshop"); ?>
<?php helpbutton("password", get_string("password"), "workshop"); ?>
</td>
</tr>
@ -360,14 +372,44 @@
</tr>
<tr valign="top">
<td align="right"><b><?php print_string("deadline", "workshop") ?>:</b></td>
<td align="right"><b><?php print_string("submissionstart", "workshop") ?>:</b></td>
<td><?php
print_date_selector("deadlineday", "deadlinemonth", "deadlineyear", $form->deadline);
echo "&nbsp;-&nbsp;";
print_time_selector("deadlinehour", "deadlineminute", $form->deadline);
print_date_selector("submissionstartday", "submissionstartmonth", "submissionstartyear", $form->submissionstart);
echo "&nbsp;-&nbsp;";
print_time_selector("submissionstarthour", "submissionstartminute", $form->submissionstart);
helpbutton("submissionstart", get_string("submissionstart", "workshop"), "workshop");
?></td>
</tr>
<tr valign="top">
<td align="right"><b><?php print_string("assessmentstart", "workshop") ?>:</b></td>
<td><?php
print_date_selector("assessmentstartday", "assessmentstartmonth", "assessmentstartyear", $form->assessmentstart);
echo "&nbsp;-&nbsp;";
print_time_selector("assessmentstarthour", "assessmentstartminute", $form->assessmentstart);
helpbutton("assessmentstart", get_string("assessmentstart", "workshop"), "workshop");
?></td>
</tr>
<tr valign="top">
<td align="right"><b><?php print_string("submissionend", "workshop") ?>:</b></td>
<td><?php
print_date_selector("submissionendday", "submissionendmonth", "submissionendyear", $form->submissionend);
echo "&nbsp;-&nbsp;";
print_time_selector("submissionendhour", "submissionendminute", $form->submissionend);
helpbutton("submissionend", get_string("submissionend", "workshop"), "workshop");
?></td>
</tr>
<tr valign="top">
<td align="right"><b><?php print_string("assessmentend", "workshop") ?>:</b></td>
<td><?php
print_date_selector("assessmentendday", "assessmentendmonth", "assessmentendyear", $form->assessmentend);
echo "&nbsp;-&nbsp;";
print_time_selector("assessmentendhour", "assessmentendminute", $form->assessmentend);
helpbutton("assessmentend", get_string("assessmentend", "workshop"), "workshop");
?></td>
</tr>
<tr valign="top">
<td align="right"><b><?php print_string("releaseteachergrades", "workshop") ?>:</b></td>
<td><?php

View File

@ -68,7 +68,10 @@
$workshop->anonymous = backup_todb($info['MOD']['#']['ANONYMOUS']['0']['#']);
$workshop->includeself = backup_todb($info['MOD']['#']['INCLUDESELF']['0']['#']);
$workshop->maxbytes = backup_todb($info['MOD']['#']['MAXBYTES']['0']['#']);
$workshop->deadline = backup_todb($info['MOD']['#']['DEADLINE']['0']['#']);
$workshop->submissionstart = backup_todb($info['MOD']['#']['SUBMISSIONSTART']['0']['#']);
$workshop->assessmentstart = backup_todb($info['MOD']['#']['ASSESSMENTSTART']['0']['#']);
$workshop->submissionend = backup_todb($info['MOD']['#']['SUBMISSIONEND']['0']['#']);
$workshop->assessmentend = backup_todb($info['MOD']['#']['ASSESSMENTEND']['0']['#']);
$workshop->releasegrades = backup_todb($info['MOD']['#']['RELEASEGRADES']['0']['#']);
$workshop->grade = backup_todb($info['MOD']['#']['GRADE']['0']['#']);
$workshop->gradinggrade = backup_todb($info['MOD']['#']['GRADINGGRADE']['0']['#']);

View File

@ -5,8 +5,8 @@
dminamendtitle
adminconfirmdelete
admindelete
adminlist
admindelete
adminlist
displayfinalgrades (teachers only)
editsubmission
listallsubmissions
@ -24,7 +24,7 @@
require("lib.php");
require("locallib.php");
require_variable($id); // Course Module ID
require_variable($id); // Course Module ID
// get some useful stuff...
if (! $cm = get_record("course_modules", "id", $id)) {
@ -232,41 +232,41 @@
}
/*************** display final grades (by teacher) ***************************/
elseif ($action == 'displayfinalgrades') {
/*************** display final grades (by teacher) ***************************/
elseif ($action == 'displayfinalgrades') {
if (groupmode($course, $cm) == SEPARATEGROUPS) {
$groupid = get_current_group($course->id);
} else {
$groupid = 0;
}
// Get all the students
if (!$users = get_course_students($course->id, "u.lastname, u.firstname")) {
print_heading(get_string("nostudentsyet"));
print_footer($course);
exit;
}
// show the final grades as stored in the tables...
print_heading_with_help(get_string("displayoffinalgrades", "workshop"), "finalgrades", "workshop");
echo "<center><table border=\"1\" width=\"90%\"><tr>
<td bgcolor=\"$THEME->cellheading2\"><b>".$course->student."</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\"><b>".get_string("submission", "workshop")."</b></td>";
if ($workshop->wtype) {
// Get all the students
if (!$users = get_course_students($course->id, "u.lastname, u.firstname")) {
print_heading(get_string("nostudentsyet"));
print_footer($course);
exit;
}
// show the final grades as stored in the tables...
print_heading_with_help(get_string("displayoffinalgrades", "workshop"), "finalgrades", "workshop");
echo "<center><table border=\"1\" width=\"90%\"><tr>
<td bgcolor=\"$THEME->cellheading2\"><b>".$course->student."</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\"><b>".get_string("submission", "workshop")."</b></td>";
if ($workshop->wtype) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsdone", "workshop").
"</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforassessments",
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforassessments",
"workshop")."</b></td>";
}
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
$course->teachers)."</b></td>";
if ($workshop->wtype) {
if ($workshop->wtype) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
$course->students)."</b></td>";
}
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforsubmission",
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforsubmission",
"workshop")."</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("overallgrade", "workshop").
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("overallgrade", "workshop").
"</b></td></tr>\n";
foreach ($users as $user) {
@ -276,48 +276,48 @@
continue;
}
}
if ($submissions = workshop_get_user_submissions($workshop, $user)) {
if ($submissions = workshop_get_user_submissions($workshop, $user)) {
$gradinggrade = workshop_gradinggrade($workshop, $user);
foreach ($submissions as $submission) {
foreach ($submissions as $submission) {
$grade = workshop_submission_grade($workshop, $submission);
echo "<tr><td>$user->firstname $user->lastname</td>";
echo "<td>".workshop_print_submission_title($workshop, $submission)."</td>\n";
if ($workshop->wtype) {
echo "<tr><td>$user->firstname $user->lastname</td>";
echo "<td>".workshop_print_submission_title($workshop, $submission)."</td>\n";
if ($workshop->wtype) {
echo "<td align=\"center\">".workshop_print_user_assessments($workshop, $user)."</td>";
echo "<td align=\"center\">$gradinggrade</td>";
echo "<td align=\"center\">$gradinggrade</td>";
}
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
"teacher")."</td>";
if ($workshop->wtype) {
if ($workshop->wtype) {
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
"student")."</td>";
}
echo "<td align=\"center\">$grade</td>";
echo "<td align=\"center\">".number_format($gradinggrade + $grade, 1)."</td></tr>\n";
}
}
}
echo "</table><br clear=\"all\" />\n";
echo "<td align=\"center\">$grade</td>";
echo "<td align=\"center\">".number_format($gradinggrade + $grade, 1)."</td></tr>\n";
}
}
}
echo "</table><br clear=\"all\" />\n";
workshop_print_key($workshop);
if ($workshop->showleaguetable) {
workshop_print_league_table($workshop);
if ($workshop->anonymous) {
echo "<p>".get_string("namesnotshowntostudents", "workshop", $course->students)."</p>\n";
}
}
print_continue("view.php?id=$cm->id");
}
if ($workshop->showleaguetable) {
workshop_print_league_table($workshop);
if ($workshop->anonymous) {
echo "<p>".get_string("namesnotshowntostudents", "workshop", $course->students)."</p>\n";
}
}
print_continue("view.php?id=$cm->id");
}
/*************** display current grades (by teacher) ***************************/
elseif ($action == 'displaycurrentgrades') {
/*************** display current grades (by teacher) ***************************/
elseif ($action == 'displaycurrentgrades') {
if (groupmode($course, $cm) == SEPARATEGROUPS) {
$groupid = get_current_group($course->id);
} else {
$groupid = 0;
}
print_heading_with_help(get_string("displayofcurrentgrades", "workshop"), "finalgrades", "workshop");
print_heading_with_help(get_string("displayofcurrentgrades", "workshop"), "finalgrades", "workshop");
if ($workshop->ntassessments) {
// display the teacher's submissions
@ -341,32 +341,32 @@
workshop_print_key($workshop);
}
// Get all the students
if (!$users = get_course_students($course->id, "u.lastname, u.firstname")) {
print_heading(get_string("nostudentsyet"));
print_footer($course);
exit;
}
// show the current grades as stored in the tables...
echo "<center><table border=\"1\" width=\"90%\"><tr>
<td bgcolor=\"$THEME->cellheading2\"><b>".$course->student."</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\"><b>".get_string("submission", "workshop")."</b></td>";
if ($workshop->wtype) {
// Get all the students
if (!$users = get_course_students($course->id, "u.lastname, u.firstname")) {
print_heading(get_string("nostudentsyet"));
print_footer($course);
exit;
}
// show the current grades as stored in the tables...
echo "<center><table border=\"1\" width=\"90%\"><tr>
<td bgcolor=\"$THEME->cellheading2\"><b>".$course->student."</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\"><b>".get_string("submission", "workshop")."</b></td>";
if ($workshop->wtype) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsdone", "workshop").
"</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforassessments",
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforassessments",
"workshop")."</b></td>";
}
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
$course->teachers)."</b></td>";
if ($workshop->wtype) {
if ($workshop->wtype) {
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("assessmentsby", "workshop",
$course->students)."</b></td>";
}
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforsubmission",
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("gradeforsubmission",
"workshop")."</b></td>";
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("overallgrade", "workshop").
echo "<td bgcolor=\"$THEME->cellheading2\" align=\"center\"><b>".get_string("overallgrade", "workshop").
"</b></td></tr>\n";
foreach ($users as $user) {
@ -376,31 +376,31 @@
continue;
}
}
if ($submissions = workshop_get_user_submissions($workshop, $user)) {
if ($submissions = workshop_get_user_submissions($workshop, $user)) {
$gradinggrade = workshop_gradinggrade($workshop, $user);
foreach ($submissions as $submission) {
foreach ($submissions as $submission) {
$grade = workshop_submission_grade($workshop, $submission);
echo "<tr><td>$user->firstname $user->lastname</td>";
echo "<td>".workshop_print_submission_title($workshop, $submission)."</td>\n";
if ($workshop->wtype) {
echo "<tr><td>$user->firstname $user->lastname</td>";
echo "<td>".workshop_print_submission_title($workshop, $submission)."</td>\n";
if ($workshop->wtype) {
echo "<td align=\"center\">".workshop_print_user_assessments($workshop, $user)."</td>";
echo "<td align=\"center\">$gradinggrade</td>";
echo "<td align=\"center\">$gradinggrade</td>";
}
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
"teacher")."</td>";
if ($workshop->wtype) {
if ($workshop->wtype) {
echo "<td align=\"center\">".workshop_print_submission_assessments($workshop, $submission,
"student")."</td>";
}
echo "<td align=\"center\">$grade</td>";
echo "<td align=\"center\">".number_format($gradinggrade + $grade, 1)."</td></tr>\n";
}
}
}
echo "</table><br clear=\"all\" />\n";
echo "<td align=\"center\">$grade</td>";
echo "<td align=\"center\">".number_format($gradinggrade + $grade, 1)."</td></tr>\n";
}
}
}
echo "</table><br clear=\"all\" />\n";
workshop_print_key($workshop);
print_continue("view.php?id=$cm->id");
}
print_continue("view.php?id=$cm->id");
}
/******************* edit submission ************************************/
@ -416,6 +416,9 @@
if ($submission->userid <> $USER->id) {
error("Edit submission: Userids do not match");
}
if (($submission->timecreated < ($timenow - $CFG->maxeditingtime)) and ($workshop->assessmentstart < time()) {
error(get_string('notallowed', 'workshop'));
}
?>
<form name="editform" enctype="multipart/form-data" action="submissions.php" method="post">
<input type="hidden" name="action" value="updatesubmission" />
@ -471,45 +474,45 @@
}
/******************* list all submissions ************************************/
elseif ($action == 'listallsubmissions' ) {
if (!$users = get_course_students($course->id)) {
print_heading(get_string("nostudentsyet"));
print_footer($course);
exit;
}
print_heading(get_string("listofallsubmissions", "workshop").":", "CENTER");
workshop_list_all_submissions($workshop, $USER);
print_continue("view.php?id=$cm->id");
}
/******************* list all submissions ************************************/
elseif ($action == 'listallsubmissions' ) {
if (!$users = get_course_students($course->id)) {
print_heading(get_string("nostudentsyet"));
print_footer($course);
exit;
}
print_heading(get_string("listofallsubmissions", "workshop").":", "CENTER");
workshop_list_all_submissions($workshop, $USER);
print_continue("view.php?id=$cm->id");
}
/******************* list for assessment student (submissions) ************************************/
elseif ($action == 'listforassessmentstudent' ) {
if (!$users = get_course_students($course->id)) {
print_heading(get_string("nostudentsyet"));
print_footer($course);
exit;
}
workshop_list_unassessed_student_submissions($workshop, $USER);
print_continue("view.php?id=$cm->id");
}
/******************* list for assessment student (submissions) ************************************/
elseif ($action == 'listforassessmentstudent' ) {
if (!$users = get_course_students($course->id)) {
print_heading(get_string("nostudentsyet"));
print_footer($course);
exit;
}
workshop_list_unassessed_student_submissions($workshop, $USER);
print_continue("view.php?id=$cm->id");
}
/******************* list for assessment teacher (submissions) ************************************/
elseif ($action == 'listforassessmentteacher' ) {
/******************* list for assessment teacher (submissions) ************************************/
elseif ($action == 'listforassessmentteacher' ) {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
error("Only teachers can look at this page");
}
workshop_list_unassessed_teacher_submissions($workshop, $USER);
print_continue("view.php?id=$cm->id");
}
workshop_list_unassessed_teacher_submissions($workshop, $USER);
print_continue("view.php?id=$cm->id");
}
/******************* remove (all) attachments ************************************/
elseif ($action == 'removeattachments' ) {
@ -545,7 +548,7 @@
$submission = get_record("workshop_submissions", "id", $_GET['sid']);
workshop_print_submission($workshop, $submission);
print_continue("view.php?id=$cm->id");
print_continue("view.php?id=$cm->id");
}

View File

@ -60,14 +60,14 @@
$newsubmission->title = $title;
$newsubmission->description = trim($form->description);
$newsubmission->timecreated = $timenow;
if ($timenow > $workshop->deadline) {
if ($timenow > $workshop->submissionend) {
$newsubmission->late = 1;
}
if (!$newsubmission->id = insert_record("workshop_submissions", $newsubmission)) {
error("Workshop upload: Failure to create new submission record!");
}
// see if this is a resubmission by looking at the previous submissions...
if ($submissions and ($workshop->phase >1)) { // ...but not teacher submissions
if ($submissions and ($workshop->submissionstart > time())) { // ...but not teacher submissions
// find the last submission
foreach ($submissions as $submission) {
$lastsubmission = $submission;

View File

@ -5,8 +5,8 @@
// This fragment is called by /admin/index.php
////////////////////////////////////////////////////////////////////////////////
$module->version = 2004111200;
$module->requires = 2004091700; // Requires this Moodle version
$module->version = 2004120402;
$module->requires = 2004052505; // Requires this Moodle version
$module->cron = 60;
?>

View File

@ -3,13 +3,8 @@
/*************************************************
ACTIONS handled are:
allowassessments (for teachers)
allowboth (for teachers)
allowsubmissions (for teachers)
close workshop( for teachers)
displayfinalgrade (for students)
notavailable (for students)
setupassignment (for teachers)
studentsview
submitexample
teachersview
@ -19,8 +14,8 @@
require("../../config.php");
require("lib.php");
require("locallib.php");
require_variable($id); // Course Module ID
require_variable($id); // Course Module ID
// get some useful stuff...
if (! $cm = get_record("course_modules", "id", $id)) {
@ -50,99 +45,46 @@
optional_variable($action);
if (isteacher($course->id)) {
if (empty($action)) { // no action specified, either go straight to elements page else the admin page
// has the assignment any elements
if (count_records("workshop_elements", "workshopid", $workshop->id) >= $workshop->nelements) {
$action = "teachersview";
}
else {
redirect("assessments.php?action=editelements&id=$cm->id");
}
}
}
elseif (!isguest()) { // it's a student then
if (!$cm->visible) {
notice(get_string("activityiscurrentlyhidden"));
}
switch ($workshop->phase) {
case 0 :
case 1 : $action = 'notavailable'; break;
case 2 :
case 3 :
case 4 : $action = 'studentsview'; break;
case 5 : $action = 'displayfinalgrade';
}
}
else { // it's a guest, oh no!
$action = 'notavailable';
}
/************** allow (peer) assessments only (move to phase 4) (for teachers)**/
if ($action == 'allowassessments') {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
// move to phase 4
set_field("workshop", "phase", 4, "id", "$workshop->id");
add_to_log($course->id, "workshop", "assessments only", "view.php?id=$cm->id", "$workshop->id", $cm->id);
redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 4));
}
/************** allow both (submissions and assessments) (move to phase 3) (for teachers)**/
if ($action == 'allowboth') {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
// move to phase 3
set_field("workshop", "phase", 3, "id", "$workshop->id");
add_to_log($course->id, "workshop", "allow both", "view.php?id=$cm->id", "$workshop->id", $cm->id);
redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 3));
}
/************** allow submissions only (move to phase 2) (for teachers)**/
if ($action == 'allowsubmissions') {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
// move to phase 2, check that teacher has made enough submissions
if (workshop_count_teacher_submissions($workshop) < $workshop->ntassessments) {
redirect("view.php?id=$cm->id", get_string("notenoughexamplessubmitted", "workshop",
$course->teacher));
}
else {
if ($n = workshop_count_teacher_submissions_for_assessment($workshop, $USER)) {
notify(get_string("teachersubmissionsforassessment", "workshop", $n));
if (empty($action)) { // no action specified, either go straight to elements page else the admin page
// has the assignment any elements
if (count_records("workshop_elements", "workshopid", $workshop->id) >= $workshop->nelements) {
$action = "teachersview";
}
set_field("workshop", "phase", 2, "id", "$workshop->id");
add_to_log($course->id, "workshop", "submissions", "view.php?id=$cm->id", "$workshop->id", $cm->id);
redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 2));
}
}
else {
redirect("assessments.php?action=editelements&id=$cm->id");
}
}
}
elseif (!isguest()) { // it's a student then
if (!$cm->visible) {
notice(get_string("activityiscurrentlyhidden"));
}
if (time() < $workshop->submissionstart) {
$action = 'notavailable';
} else if (time() < $workshop->assessmentend) {
$action = 'studentsview';
} else {
$action = 'displayfinalgrade';
}
}
else { // it's a guest, oh no!
$action = 'notavailable';
}
/****************** display final grade (for students) ************************************/
elseif ($action == 'displayfinalgrade' ) {
// show the final grades as stored in the tables...
print_heading_with_help(get_string("displayoffinalgrades", "workshop"), "finalgrades", "workshop");
if ($submissions = workshop_get_user_submissions($workshop, $USER)) { // any submissions from user?
echo "<center><table border=\"1\" width=\"90%\"><tr>";
echo "<td><b>".get_string("submissions", "workshop")."</b></td>";
/****************** display final grade (for students) ************************************/
if ($action == 'displayfinalgrade' ) {
// show the final grades as stored in the tables...
print_heading_with_help(get_string("displayoffinalgrades", "workshop"), "finalgrades", "workshop");
if ($submissions = workshop_get_user_submissions($workshop, $USER)) { // any submissions from user?
echo "<center><table border=\"1\" width=\"90%\"><tr>";
echo "<td><b>".get_string("submissions", "workshop")."</b></td>";
if ($workshop->wtype) {
echo "<td align=\"center\"><b>".get_string("assessmentsdone", "workshop")."</b></td>";
echo "<td align=\"center\"><b>".get_string("gradeforassessments", "workshop")."</b></td>";
}
echo "<td align=\"center\"><b>".get_string("teacherassessments", "workshop",
echo "<td align=\"center\"><b>".get_string("teacherassessments", "workshop",
$course->teacher)."</b></td>";
if ($workshop->wtype) {
echo "<td align=\"center\"><b>".get_string("studentassessments", "workshop",
@ -169,88 +111,62 @@
}
}
echo "</table><br clear=\"all\" />\n";
workshop_print_key($workshop);
workshop_print_key($workshop);
if ($workshop->showleaguetable) {
workshop_print_league_table($workshop);
}
}
workshop_print_league_table($workshop);
}
}
/****************** assignment not available (for students)***********************/
elseif ($action == 'notavailable') {
print_heading(get_string("notavailable", "workshop"));
}
/****************** make final grades available (go to phase 5) (for teachers only)********/
elseif ($action == 'makefinalgradesavailable') {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
set_field("workshop", "phase", 5, "id", "$workshop->id");
add_to_log($course->id, "workshop", "display grades", "view.php?id=$cm->id", "$workshop->id", $cm->id);
redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 5));
}
/****************** assignment not available (for students)***********************/
elseif ($action == 'notavailable') {
print_heading(get_string("notavailable", "workshop"));
}
/****************** set up assignment (move back to phase 1) (for teachers)***********************/
elseif ($action == 'setupassignment') {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
set_field("workshop", "phase", 1, "id", "$workshop->id");
add_to_log($course->id, "workshop", "set up", "view.php?id=$cm->id", "$workshop->id", $cm->id);
redirect("view.php?id=$cm->id", get_string("movingtophase", "workshop", 1));
}
/****************** student's view could be in 1 of 4 stages ***********************/
elseif ($action == 'studentsview') {
/****************** student's view could be in 1 of 4 stages ***********************/
elseif ($action == 'studentsview') {
// is a password needed?
if ($workshop->usepassword) {
$correctpass = false;
if (isset($_POST['userpassword'])) {
if ($workshop->password == md5(trim($_POST['userpassword']))) {
$USER->workshoploggedin[$workshop->id] = true;
$correctpass = true;
}
} elseif (isset($USER->workshoploggedin[$workshop->id])) {
$correctpass = true;
}
if ($workshop->usepassword) {
$correctpass = false;
if (isset($_POST['userpassword'])) {
if ($workshop->password == md5(trim($_POST['userpassword']))) {
$USER->workshoploggedin[$workshop->id] = true;
$correctpass = true;
}
} elseif (isset($USER->workshoploggedin[$workshop->id])) {
$correctpass = true;
}
if (!$correctpass) {
print_simple_box_start("center");
echo "<form name=\"password\" method=\"post\" action=\"view.php\">\n";
echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\" />\n";
echo "<table cellpadding=\"7px\">";
if (isset($_POST['userpassword'])) {
echo "<tr align=\"center\" style='color:#DF041E;'><td>".get_string("wrongpassword", "workshop").
if (!$correctpass) {
print_simple_box_start("center");
echo "<form name=\"password\" method=\"post\" action=\"view.php\">\n";
echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\" />\n";
echo "<table cellpadding=\"7px\">";
if (isset($_POST['userpassword'])) {
echo "<tr align=\"center\" style='color:#DF041E;'><td>".get_string("wrongpassword", "workshop").
"</td></tr>";
}
echo "<tr align=\"center\"><td>".get_string("passwordprotectedworkshop", "workshop", $workshop->name).
}
echo "<tr align=\"center\"><td>".get_string("passwordprotectedworkshop", "workshop", $workshop->name).
"</td></tr>";
echo "<tr align=\"center\"><td>".get_string("enterpassword", "workshop").
echo "<tr align=\"center\"><td>".get_string("enterpassword", "workshop").
" <input type=\"password\" name=\"userpassword\" /></td></tr>";
echo "<tr align=\"center\"><td>";
echo "<input type=\"button\" value=\"".get_string("cancel").
echo "<tr align=\"center\"><td>";
echo "<input type=\"button\" value=\"".get_string("cancel").
"\" onclick=\"parent.location='../../course/view.php?id=$course->id';\"> ";
echo "<input type=\"button\" value=\"".get_string("continue").
echo "<input type=\"button\" value=\"".get_string("continue").
"\" onclick=\"document.password.submit();\" />";
echo "</td></tr></table>";
print_simple_box_end();
exit();
}
}
workshop_print_assignment_info($workshop);
// in Stage 1? - are there any teacher's submissions? and...
// ...has student assessed the required number of the teacher's submissions
if ($workshop->ntassessments and (!workshop_test_user_assessments($workshop, $USER))) {
print_heading(get_string("pleaseassesstheseexamplesfromtheteacher", "workshop",
echo "</td></tr></table>";
print_simple_box_end();
exit();
}
}
workshop_print_assignment_info($workshop);
// in Stage 1? - are there any teacher's submissions? and...
// ...has student assessed the required number of the teacher's submissions
if ($workshop->ntassessments and (!workshop_test_user_assessments($workshop, $USER))) {
print_heading(get_string("pleaseassesstheseexamplesfromtheteacher", "workshop",
$course->teacher));
workshop_list_teacher_submissions($workshop, $USER);
}
@ -262,9 +178,9 @@
$course->teacher));
workshop_list_teacher_submissions($workshop, $USER);
}
// has user submitted anything yet? (only allowed in phases 2 and 3)
// has user submitted anything yet?
if (!workshop_get_user_submissions($workshop, $USER)) {
if ($workshop->phase < 4) {
if (time() < $workshop->submissionend) {
// print upload form
print_heading(get_string("submitassignmentusingform", "workshop").":");
workshop_print_upload_form($workshop);
@ -279,8 +195,8 @@
// prints a table if there are any submissions which have not been self assessed yet
workshop_list_self_assessments($workshop, $USER);
}
// if peer assessments are being done and workshop is in phase 3 then show some to assess...
if ($workshop->nsassessments and ($workshop->phase > 2)) {
// if peer assessments are being done then show some to assess...
if ($workshop->nsassessments and ($workshop->assessmentstart > time() and $workshop->assessmentend < time())) {
workshop_list_student_submissions($workshop, $USER);
}
// ..and any they have already done (and have gone cold)...
@ -303,7 +219,7 @@
print_heading(get_string("submissions", "workshop"));
workshop_list_user_submissions($workshop, $USER);
// are resubmissions allowed and the workshop is in submission/assessment phase?
if ($workshop->resubmit and ($workshop->phase == 3)) {
if ($workshop->resubmit and (time() > $workshop->assessmentstart and time() < $workshop->submissionend)) {
// see if there are any cold assessments of the last submission
// if there are then print upload form
if ($submissions = workshop_get_user_submissions($workshop, $USER)) {
@ -326,46 +242,40 @@
echo "<hr size=\"1\" noshade=\"noshade\" />";
}
}
}
}
}
}
}
}
}
}
/****************** submission of example by teacher only***********************/
elseif ($action == 'submitexample') {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
$strdifference = format_time($workshop->deadline - time());
if (($workshop->deadline - time()) < 0) {
$strdifference = "<font color=\"red\">$strdifference</font>";
}
$strduedate = userdate($workshop->deadline)." ($strdifference)";
workshop_print_assignment_info($workshop);
// list previous submissions from teacher
workshop_list_user_submissions($workshop, $USER);
echo "<hr size=\"1\" noshade=\"noshade\" />";
// print upload form
print_heading(get_string("submitexampleassignment", "workshop").":");
workshop_print_upload_form($workshop);
}
/****************** submission of example by teacher only***********************/
elseif ($action == 'submitexample') {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
workshop_print_assignment_info($workshop);
// list previous submissions from teacher
workshop_list_user_submissions($workshop, $USER);
echo "<hr size=\"1\" noshade=\"noshade\" />";
// print upload form
print_heading(get_string("submitexampleassignment", "workshop").":");
workshop_print_upload_form($workshop);
}
/****************** teacher's view - display admin page (current phase options) ************/
elseif ($action == 'teachersview') {
/****************** teacher's view - display admin page ************/
elseif ($action == 'teachersview') {
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
if (!isteacher($course->id)) {
error("Only teachers can look at this page");
}
/// Check to see if groups are being used in this workshop
/// Check to see if groups are being used in this workshop
/// and if so, set $currentgroup to reflect the current group
$changegroup = isset($_GET['group']) ? $_GET['group'] : -1; // Group change requested?
$groupmode = groupmode($course, $cm); // Groups are being used?
@ -377,130 +287,73 @@
print_group_menu($groups, $groupmode, $currentgroup, "view.php?id=$cm->id");
}
}
print_heading_with_help(get_string("managingassignment", "workshop"), "managing2", "workshop");
workshop_print_assignment_info($workshop);
if ($workshop->wtype < 2) {
$tabs->names = array("1. ".get_string("phase1", "workshop"),
"2. ".get_string("phase2", "workshop", $course->student),
"3. ".get_string("phase5", "workshop"));
$tabs->urls = array("view.php?id=$cm->id&amp;action=setupassignment",
"view.php?id=$cm->id&amp;action=allowboth",
"view.php?id=$cm->id&amp;action=makefinalgradesavailable");
} else {
$tabs->names = array("1. ".get_string("phase1", "workshop"),
"2. ".get_string("phase2", "workshop", $course->student),
"3. ".get_string("phase3", "workshop", $course->student),
"4. ".get_string("phase4", "workshop", $course->student),
"5. ".get_string("phase5", "workshop"));
if (isteacheredit($course->id)) {
$tabs->urls = array("view.php?id=$cm->id&amp;action=setupassignment",
"view.php?id=$cm->id&amp;action=allowsubmissions",
"view.php?id=$cm->id&amp;action=allowboth",
"view.php?id=$cm->id&amp;action=allowassessments",
"view.php?id=$cm->id&amp;action=makefinalgradesavailable");
} else {
// non editing teachers cannot change phase
$tabs->urls = array("view.php?id=$cm->id",
"view.php?id=$cm->id",
"view.php?id=$cm->id",
"view.php?id=$cm->id",
"view.php?id=$cm->id");
}
}
if ($workshop->phase) { // phase 1 or more
if ($workshop->wtype < 2) {
$tabs->highlight = ($workshop->phase - 1) / 2;
} else {
$tabs->highlight = $workshop->phase - 1;
}
} else {
$tabs->highlight = 0; // phase is zero
}
workshop_print_tabbed_heading($tabs);
print_heading_with_help(get_string("managingassignment", "workshop"), "managing2", "workshop");
workshop_print_assignment_info($workshop);
echo "<center>\n";
switch ($workshop->phase) {
case 0:
case 1: // set up assignment
if ($workshop->nelements) {
echo "<br /><b><a href=\"assessments.php?id=$cm->id&amp;action=editelements\">".
get_string("amendassessmentelements", "workshop")."</a></b> \n";
helpbutton("elements", get_string("amendassessmentelements", "workshop"), "workshop");
}
if ($workshop->ntassessments) {
// if teacher examples show submission and assessment links
echo "<br /><b><a href=\"view.php?id=$cm->id&amp;action=submitexample\">".
get_string("submitexampleassignment", "workshop")."</a></b> \n";
helpbutton("submissionofexamples", get_string("submitexampleassignment", "workshop"),
"workshop");
echo "<br /><b><a href=\"submissions.php?id=$cm->id&amp;action=listforassessmentteacher\">".
get_string("teachersubmissionsforassessment", "workshop",
workshop_count_teacher_submissions_for_assessment($workshop, $USER)).
"</a></b> \n";
helpbutton("assessmentofexamples", get_string("teachersubmissionsforassessment",
"workshop"), "workshop");
}
break;
// if there are assessment elements show link to edit them
if ($workshop->nelements) {
echo "<br /><b><a href=\"assessments.php?id=$cm->id&amp;action=editelements\">".
get_string("amendassessmentelements", "workshop")."</a></b> \n";
helpbutton("elements", get_string("amendassessmentelements", "workshop"), "workshop");
}
// if teacher examples show submission and assessment links
if ($workshop->ntassessments) {
// submission link for teacher examples
echo "<br /><b><a href=\"view.php?id=$cm->id&amp;action=submitexample\">".
get_string("submitexampleassignment", "workshop")."</a></b> \n";
helpbutton("submissionofexamples", get_string("submitexampleassignment", "workshop"),
"workshop");
// show assessment link for teachers examples only once there are such examples
if ($n = workshop_count_teacher_submissions_for_assessment($workshop, $USER)) {
echo "<br /><b><a href=\"submissions.php?id=$cm->id&amp;action=listforassessmentteacher\">".
get_string("teachersubmissionsforassessment", "workshop", $n)."</a></b> \n";
helpbutton("assessmentofexamples", get_string("teachersubmissionsforassessment",
"workshop"), "workshop");
}
}
case 2: // submissions
case 3: // submissions and assessments
case 4: // assessments
if ($workshop->ntassessments) { // if teacher examples show assessment link
if ($n = workshop_count_teacher_submissions_for_assessment($workshop, $USER)) {
echo "<br /><b><a href=\"submissions.php?id=$cm->id&amp;action=listforassessmentteacher\">".
get_string("teachersubmissionsforassessment", "workshop", $n)."</a></b> \n";
helpbutton("assessmentofexamples", get_string("teachersubmissionsforassessment",
"workshop"), "workshop");
}
}
// only show grading assessments if there are grading grades involved
if ($workshop->wtype) {
echo "<br /><b><a href=\"assessments.php?id=$cm->id&amp;action=gradeallassessments\">".
get_string("ungradedassessments", "workshop",
workshop_count_ungraded_assessments($workshop))."</a></b> \n";
helpbutton("ungradedassessments",
get_string("ungradedassessments", "workshop"), "workshop");
}
// don't show the assessment of student submissions in phase 2 if it's a 5 phase workshop
if (!(($workshop->phase == 2) and ($workshop->wtype > 1))) {
echo "<br /><b><a href=\"submissions.php?id=$cm->id&amp;action=listforassessmentstudent\">".
get_string("studentsubmissionsforassessment", "workshop",
workshop_count_student_submissions_for_assessment($workshop, $USER))."</a></b> \n";
helpbutton("gradingsubmissions",
get_string("studentsubmissionsforassessment", "workshop"), "workshop");
}
print_heading("<a href=\"submissions.php?id=$cm->id&amp;action=displaycurrentgrades\">".
get_string("displayofcurrentgrades", "workshop")."</a>");
break;
if ($workshop->wtype) {
// only show grading assessments if there are grading grades involved
if ($numberofassessments = workshop_count_ungraded_assessments($workshop)) {
echo "<br /><b><a href=\"assessments.php?id=$cm->id&amp;action=gradeallassessments\">".
get_string("ungradedassessments", "workshop",
$numberofassessments)."</a></b> \n";
helpbutton("ungradedassessments",
get_string("ungradedassessments", "workshop"), "workshop");
}
}
case 5: // Show "Final" Grades
if ($workshop->ntassessments) { // if teacher examples show assessment link
if ($n = workshop_count_teacher_submissions_for_assessment($workshop, $USER)) {
echo "<br /><b><a href=\"submissions.php?id=$cm->id&amp;action=listforassessmentteacher\">".
get_string("teachersubmissionsforassessment", "workshop", $n)."</a></b> \n";
helpbutton("assessmentofexamples", get_string("teachersubmissionsforassessment",
"workshop"), "workshop");
}
}
if ($workshop->wtype) {
echo "<br /><b><a href=\"assessments.php?id=$cm->id&amp;action=gradeallassessments\">".
get_string("ungradedassessments", "workshop",
workshop_count_ungraded_assessments($workshop))."</a></b> \n";
helpbutton("ungradedassessments", get_string("ungradedassessments", "workshop"), "workshop");
}
// Show link to student submissions for assessment only if assessment has started
if (time() > $workshop->assessmentstart) {
if ($numberofsubmissions = workshop_count_student_submissions_for_assessment($workshop, $USER)) {
echo "<br /><b><a href=\"submissions.php?id=$cm->id&amp;action=listforassessmentstudent\">".
get_string("studentsubmissionsforassessment", "workshop",
workshop_count_student_submissions_for_assessment($workshop, $USER))."</a></b> \n";
$numberofsubmissions)."</a></b> \n";
helpbutton("gradingsubmissions",
get_string("studentsubmissionsforassessment", "workshop"), "workshop");
print_heading("<a href=\"submissions.php?id=$cm->id&amp;action=displayfinalgrades\">".
get_string("displayoffinalgrades", "workshop")."</a>");
get_string("studentsubmissionsforassessment", "workshop"), "workshop");
}
}
echo '</center>';
print_heading("<a href=\"submissions.php?id=$cm->id&amp;action=adminlist\">".
get_string("administration")."</a>");
// Show link to current grades
if (time() > $workshop->assessmentstart) {
if (time() < $workshop->assessmentend) {
echo "<br /><b><a href=\"submissions.php?id=$cm->id&amp;action=displaycurrentgrades\">".
get_string("displayofcurrentgrades", "workshop")."</a></b> \n";
} else {
echo "<br /><b><a href=\"submissions.php?id=$cm->id&amp;action=displayfinalgrades\">".
get_string("displayoffinalgrades", "workshop")."</a></b> \n";
}
}
echo "<br /><b><a href=\"submissions.php?id=$cm->id&amp;action=adminlist\">".
get_string("administration")."</a></b> \n";
echo '</center><br />';
}