Multi Submit and Multi feedback

Multi Submit and Multi feedback

by Mat Cannings -
Number of replies: 1
I have a member of staff who requires an assignment submission with the process....

Student submits assignment, Staff provides feedback
Student resubmits improved assignment, Staff provides feedback
Student resubmits assignment, staff provides feedback, repeating until a final point reached where the last submitted assignment would be the one to be marked.

One of the requirements is that each submission/feedback cycle needs to be retained so that the various versions and changes can be reviewed at the end.

At the moment the resubmissions override previous versions as does the feedback.

Is it possible to do anything like this using anything currently available.
Average of ratings: -
In reply to Mat Cannings

Re: Multi Submit and Multi feedback

by Alan Barrett -

I have a patch which I think does exactly what you want. In the attached ZIP file you will find two files

1) lib.php should be placed in /mod/assignment (replacing existing file). It captures all submissions and stores them in a separate folder structure. The key code from this is the line "$this->record_submission($submission); //ALAN" and the associated "function record_submission($submission)", "function copy_dir($from_file, $to_file)" and "function copy_file($from_file, $to_file)".

2) studentsubmissions.php should be placed in /course (this is a new file). If you access the URL: http://yoursite/course/studentsubmissions.php?id=X where X is the userid of any particular student you will get a history of all submissions and a history of all grades for that student. On my site I have a way of navigating to this page for each student, but that part is specific to my site and would not work for you.

Before using the above code, the relevant database table will have to be created by hand with the following SQL commands...

CREATE TABLE mdl_recorded_submissions (
 id BIGINT(10) unsigned NOT NULL auto_increment,
 submission BIGINT(10) unsigned NOT NULL DEFAULT 0,
 assignment BIGINT(10) unsigned NOT NULL DEFAULT 0,
 userid BIGINT(10) unsigned NOT NULL DEFAULT 0,
 timemodified BIGINT(10) unsigned NOT NULL DEFAULT 0,
    data1 TEXT,
    data2 TEXT,
 CONSTRAINT PRIMARY KEY (id)
);
CREATE INDEX mdl_recorded_submissions_sid_ix ON mdl_recorded_submissions (submission);
CREATE INDEX mdl_recorded_submissions_aid_ix ON mdl_recorded_submissions (assignment);
CREATE INDEX mdl_recorded_submissions_uid_ix ON mdl_recorded_submissions (userid);
CREATE INDEX mdl_recorded_submissions_tim_ix ON mdl_recorded_submissions (timemodified);

This code is tested and works with the 20090520 weekly build (although that part of Moodle is stable, so I think it will work with builds going back, at least, to late September). The only assumption that I can remember in the code is that it assumes the database prefix is mdl_ (the default, I know that is lazy.)

One other thing is that there is some other code in lib.php which is specific to my installation but which will not be triggered by your installation, so should not be an issue.

Please tell me if it works for you. If there is something specific to my installation that I have forgotten and causes you a problem, I am willing to change it for you.

    Alan.