Moodle
  1. Moodle
  2. MDL-36804

New Feature Request: Assignment Resubmission System - We need a clear and user-friendly of method of handling resubmitted assignments.

    Details

    • Testing Instructions:
      Hide

      (Apologies)

      1. Run all assignment unit tests on all databases
      2. Run codechecker on mod/assign and verify no warnings or errors

      Manual test 1 (looking for regressions)

      1. Create an assignment with:
        1. File submissions enabled
        2. File feedback enabled
        3. Require students click submit disabled
        4. Attempts reopened "Never"
      2. Login as a student
      3. Add a submission
      4. Login as a teacher and grade the student
      5. Check that the grade appears in the gradebook
      6. Override the grade in the gradebook
      7. Un override the grade in the gradebook

      Manual test 2 (simple manual reopen)

      1. Create an assignment with:
        1. File submissions enabled
        2. File feedback enabled
        3. Require students click submit disabled
        4. Attempts reopened "Manually"
      2. Login as a student
      3. Add a submission
      4. Login as a teacher and grade the student (Make sure allow another attempt is set to No)
      5. Check that the grade appears in the gradebook
      6. Override the grade in the gradebook
      7. Un override the grade in the gradebook
      8. Login as the student, verify they can edit their submission and see the grade
      9. login as a teacher, grade the student again, but set "Allow another attempt" to yes
      10. Verify that the student submission status is changed to reopened
      11. Login as a student and verify that the previous attempt appears at the bottom of the submission page
      12. Verify the student can start a new submission or continue from their previous one
      13. Reopen the previous submission and make some changes to it
      14. Verify the status has changed to submitted
      15. Login as a teacher and grade the student again
      16. Verify the teacher can see the previous submission at the bottom of the grading page
      17. Verify the teacher can edit the feedback/grade for the previous submission (there is an edit icon against each version in the history)
      18. Verify that when a teacher edits the grade for a previous submission, it is not pushed to the gradebook

      Automated test 3 (grade to pass)

      1. Create an assignment with:
        1. File submissions enabled
        2. File feedback enabled
        3. Require students click submit disabled
        4. Attempts reopened "Automatically until pass"
      2. Set a grade to pass in the gradebook for this assignment (50?)
      3. Login as a student
      4. Add a submission
      5. Login as a teacher and give the student a grade that is below the grade to pass
      6. Check that the grade appears in the gradebook
      7. Verify the submission is reopened
      8. Login as a student and verify that the previous attempt appears at the bottom of the submission page
      9. Verify the student can start a new submission or continue from their previous one
      10. Reopen the previous submission and make some changes to it
      11. Verify the status has changed to submitted
      12. Login as a teacher and grade the student again (give them a passing mark)
      13. Verify that the submission is not reopened

      Automated test 3 (grade to pass with max attempts)

      1. Create an assignment with:
        1. File submissions enabled
        2. File feedback enabled
        3. Require students click submit enabled
        4. Attempts reopened "Automatically until pass"
        5. Max attempts 2
      2. Set a grade to pass in the gradebook for this assignment (50?)
      3. Login as a student
      4. Add a submission
      5. Submit the submission
      6. Login as a teacher and give the student a grade that is below the grade to pass
      7. Check that the grade appears in the gradebook
      8. Verify the submission is reopened
      9. Login as a student and verify that the previous attempt appears at the bottom of the submission page
      10. Verify the student can start a new submission or continue from their previous one
      11. Reopen the previous submission and make some changes to it
      12. Submit the submission again
      13. Verify the status has changed to submitted
      14. Login as a teacher and grade the student again (give them a failing mark)
      15. Verify that the submission is not reopened

      Manual test 4 (manual reopen with group assignments)

      1. Create an assignment with:
        1. File submissions enabled
        2. File feedback enabled
        3. Require students click submit enabled
        4. Attempts reopened "Manually"
        5. Students submit in groups enabled
      2. Login as a student
      3. Add a submission
      4. Submit the submission
      5. Login as a teacher and give the student a grade (set allow another attempt to yes)
      6. Check that the submission is reopened for all members of the group
      7. Login as a different student in the same group
      8. Verify that this student can see the previous submission in the history at the bottom of the submission page
      9. Verify the student can start a new submission or continue from the previous one
      10. Reopen the previous submission and make some changes to it
      11. Submit the submission again
      12. Verify the status has changed to submitted
      13. Login as a teacher and grade the new student

      Other features

      1. Enable quick grading (if it isn't already) and grade some students
      2. Enable offline marking, download a marking spreadsheet, make some changes and reupload it
      3. Create a new assignment with blind marking enabled, verify that the student or grader are not revealed in the attempt history.
      Show
      (Apologies) Run all assignment unit tests on all databases Run codechecker on mod/assign and verify no warnings or errors Manual test 1 (looking for regressions) Create an assignment with: File submissions enabled File feedback enabled Require students click submit disabled Attempts reopened "Never" Login as a student Add a submission Login as a teacher and grade the student Check that the grade appears in the gradebook Override the grade in the gradebook Un override the grade in the gradebook Manual test 2 (simple manual reopen) Create an assignment with: File submissions enabled File feedback enabled Require students click submit disabled Attempts reopened "Manually" Login as a student Add a submission Login as a teacher and grade the student (Make sure allow another attempt is set to No) Check that the grade appears in the gradebook Override the grade in the gradebook Un override the grade in the gradebook Login as the student, verify they can edit their submission and see the grade login as a teacher, grade the student again, but set "Allow another attempt" to yes Verify that the student submission status is changed to reopened Login as a student and verify that the previous attempt appears at the bottom of the submission page Verify the student can start a new submission or continue from their previous one Reopen the previous submission and make some changes to it Verify the status has changed to submitted Login as a teacher and grade the student again Verify the teacher can see the previous submission at the bottom of the grading page Verify the teacher can edit the feedback/grade for the previous submission (there is an edit icon against each version in the history) Verify that when a teacher edits the grade for a previous submission, it is not pushed to the gradebook Automated test 3 (grade to pass) Create an assignment with: File submissions enabled File feedback enabled Require students click submit disabled Attempts reopened "Automatically until pass" Set a grade to pass in the gradebook for this assignment (50?) Login as a student Add a submission Login as a teacher and give the student a grade that is below the grade to pass Check that the grade appears in the gradebook Verify the submission is reopened Login as a student and verify that the previous attempt appears at the bottom of the submission page Verify the student can start a new submission or continue from their previous one Reopen the previous submission and make some changes to it Verify the status has changed to submitted Login as a teacher and grade the student again (give them a passing mark) Verify that the submission is not reopened Automated test 3 (grade to pass with max attempts) Create an assignment with: File submissions enabled File feedback enabled Require students click submit enabled Attempts reopened "Automatically until pass" Max attempts 2 Set a grade to pass in the gradebook for this assignment (50?) Login as a student Add a submission Submit the submission Login as a teacher and give the student a grade that is below the grade to pass Check that the grade appears in the gradebook Verify the submission is reopened Login as a student and verify that the previous attempt appears at the bottom of the submission page Verify the student can start a new submission or continue from their previous one Reopen the previous submission and make some changes to it Submit the submission again Verify the status has changed to submitted Login as a teacher and grade the student again (give them a failing mark) Verify that the submission is not reopened Manual test 4 (manual reopen with group assignments) Create an assignment with: File submissions enabled File feedback enabled Require students click submit enabled Attempts reopened "Manually" Students submit in groups enabled Login as a student Add a submission Submit the submission Login as a teacher and give the student a grade (set allow another attempt to yes) Check that the submission is reopened for all members of the group Login as a different student in the same group Verify that this student can see the previous submission in the history at the bottom of the submission page Verify the student can start a new submission or continue from the previous one Reopen the previous submission and make some changes to it Submit the submission again Verify the status has changed to submitted Login as a teacher and grade the new student Other features Enable quick grading (if it isn't already) and grade some students Enable offline marking, download a marking spreadsheet, make some changes and reupload it Create a new assignment with blind marking enabled, verify that the student or grader are not revealed in the attempt history.
    • Affected Branches:
      MOODLE_23_STABLE, MOODLE_25_STABLE
    • Fixed Branches:
      MOODLE_25_STABLE
    • Pull from Repository:
    • Pull Master Branch:
      MDL-36804-master
    • Rank:
      46320

      Description

      New Feature Request: Assignment Resubmission System

      We need a clear and user-friendly of method of handling resubmitted assignments.
      After a resubmission, all previous submission should be stored and easily accessible. All submissions should be shown in chronological order and accessible to the student and the teacher. On the teacher side, an assignment that has been resubmitted should be just as easy to locate and grade as 1st submissions.

      The following is a suggestion* on how to implement such a system:

      *Controlling the resubmission option: Bring back the "allow resubmission" option in the Assignment settings and add a "conditional resubmission" (based on "grade-to-pass") setting, like this: http://screencast.com/t/172nIJmiWLS. To make the conditional resubmission option easier to manage, the grade-to-pass value (which is buried in the gradebook) should also be added to the Assignment settings, like this: http://screencast.com/t/a9zUxjDP2w. In effect, if a student is able to resubmit an assignment, she would see a "Resubmit this Assignment" button. Clicking on this button would "revert the assignment to draft" but also save the past submission (along with grade, teacher feedback, etc.)

      *For students - Showing current and past submission: Keep a running list of all submissions at the bottom of the assignment, like this: http://screencast.com/t/tROSTGirFqf (alternatively, you could have a "Show past submissions" button").

      *For teachers - Showing current and past submission: Same idea as the student view, except that it would show up in the marking interface. Also, for quick identification, the "submission status" could show the submission number (attempt), like this: http://screencast.com/t/sU1d7qC4gU.

      Note that this is only ONE idea. The purpose of this Feature Request is not tied to this suggested method... it is just meant to spark discussion. We need SOME KIND of Assignment resubmission system that works!

      If you also see a need for this feature, please vote for this ticket. If you have other ideas/suggestions, please post them.

      1. assignmentresubmit.pdf
        603 kB
        Ted Green
      2. moodle re-submission and outcomes process.pdf
        271 kB
        Martin Matthews
      3. resubmission_history_draft1.pdf
        507 kB
        Fernando Oliveira
      4. resubmission_history_draft2.pdf
        757 kB
        Fernando Oliveira
      5. resubmission_history_draft3.pdf
        782 kB
        Fernando Oliveira

        Issue Links

          Activity

          Hide
          Fernando Oliveira added a comment -

          This request is related to http://tracker.moodle.org/browse/MDL-34881

          Show
          Fernando Oliveira added a comment - This request is related to http://tracker.moodle.org/browse/MDL-34881
          Hide
          Ted Green added a comment -

          Thank you for posting this request Fernando. Teacher access to a WSYIWYG editor for both teacher and student is really useful for commenting and sharing edit suggestions directly inside the student submission box . This allows for adding links, images and other suggestions that the learner might not have considered in the original submission. The ability to archive ongoing feedback/dialog related to each re-submission without losing previous versions is indispensable. Flexible ability to view dialog related to each re-submission is especially valuable for expanding ideas, tweaking and proofreading, or exploring alternatives in a project.

          Show
          Ted Green added a comment - Thank you for posting this request Fernando. Teacher access to a WSYIWYG editor for both teacher and student is really useful for commenting and sharing edit suggestions directly inside the student submission box . This allows for adding links, images and other suggestions that the learner might not have considered in the original submission. The ability to archive ongoing feedback/dialog related to each re-submission without losing previous versions is indispensable. Flexible ability to view dialog related to each re-submission is especially valuable for expanding ideas, tweaking and proofreading, or exploring alternatives in a project.
          Hide
          Damyon Wiese added a comment -

          Thanks for adding this issue to the tracker.

          A link to the relevant forum discussion is here: https://moodle.org/mod/forum/discuss.php?d=205060

          This sounds like a great idea, if we can agree on the implementation I would love to see this added to Moodle.

          Any further detail you can provide in terms of specs would be appreciated and if anyone is willing to work on a code solution for this that will help others who may have the same need and will increase the chance of this improvement/feature coming about sooner. If you are able to provide a patch or links to your Git repository branch, please add a patch label so we will spot it.

          Regards, Damyon

          Show
          Damyon Wiese added a comment - Thanks for adding this issue to the tracker. A link to the relevant forum discussion is here: https://moodle.org/mod/forum/discuss.php?d=205060 This sounds like a great idea, if we can agree on the implementation I would love to see this added to Moodle. Any further detail you can provide in terms of specs would be appreciated and if anyone is willing to work on a code solution for this that will help others who may have the same need and will increase the chance of this improvement/feature coming about sooner. If you are able to provide a patch or links to your Git repository branch, please add a patch label so we will spot it. Regards, Damyon
          Hide
          Davo Smith added a comment -

          Just FYI I had a brief go over the weekend at a code implementation.

          It is not finished enough to be worth even sharing for people to look at (it doesn't work yet!), however I'm willing to put in a bit more time on making it into a working implementation. Even if it is only really created as a discussion piece, rather than the final implementation ...

          Show
          Davo Smith added a comment - Just FYI I had a brief go over the weekend at a code implementation. It is not finished enough to be worth even sharing for people to look at (it doesn't work yet!), however I'm willing to put in a bit more time on making it into a working implementation. Even if it is only really created as a discussion piece, rather than the final implementation ...
          Hide
          Fernando Oliveira added a comment -

          Thanks for jumping into this so quickly, Davo! This is a pretty major requirement for our teachers. I'd be glad to test your code when it become available.

          Show
          Fernando Oliveira added a comment - Thanks for jumping into this so quickly, Davo! This is a pretty major requirement for our teachers. I'd be glad to test your code when it become available.
          Hide
          Damyon Wiese added a comment -

          Thanks Davo - I put a page in the wiki where people can try and work on the spec for this feature.

          http://docs.moodle.org/dev/Assignment_Resubmission_History_Proposal

          Everyone: Feel free to put as much detail in this spec as possible which will be helpful for anyone who is helping to implement this feature. Also feel free to change what I have written as it is probably wrong or could be done better.

          Show
          Damyon Wiese added a comment - Thanks Davo - I put a page in the wiki where people can try and work on the spec for this feature. http://docs.moodle.org/dev/Assignment_Resubmission_History_Proposal Everyone: Feel free to put as much detail in this spec as possible which will be helpful for anyone who is helping to implement this feature. Also feel free to change what I have written as it is probably wrong or could be done better.
          Hide
          Fernando Oliveira added a comment -

          Hi Damyon,

          I made some additions to the wiki. I was reluctant to change what you wrote since it sounds like we may have differing ideas about this feature, so i added my entries as 'other thoughts". I will return to this doc later with fresher eyes to see if I can hone my ideas and post some mock-ups.

          Show
          Fernando Oliveira added a comment - Hi Damyon, I made some additions to the wiki. I was reluctant to change what you wrote since it sounds like we may have differing ideas about this feature, so i added my entries as 'other thoughts". I will return to this doc later with fresher eyes to see if I can hone my ideas and post some mock-ups.
          Hide
          Fernando Oliveira added a comment - - edited

          I finally got around to reviewing the new assignment module and marking system in greater detail. I must say that the the "revert to draft" feature and the gradebook format make it difficult to come up with an elegant (simple) solution, but here my first stab at it. The attached "resubmission_history_draft1.pdf" doc contains mock-ups for the Assignment Resubmission System. Feedback and alternative ideas are welcome.

          Show
          Fernando Oliveira added a comment - - edited I finally got around to reviewing the new assignment module and marking system in greater detail. I must say that the the "revert to draft" feature and the gradebook format make it difficult to come up with an elegant (simple) solution, but here my first stab at it. The attached "resubmission_history_draft1.pdf" doc contains mock-ups for the Assignment Resubmission System. Feedback and alternative ideas are welcome.
          Hide
          Martin Matthews added a comment -

          Fernando I think I agree with what you are asking for whilst also feeling that it would be a lot of work to make the changes needed work for everyone. If it can be done it should be done. Please make sure though that you do not forget those who do not use numeric grades. I currently use a scale of Fail, Refer, Complete for assignments and this is common to the way a lot of qualifications work in the UK.

          This is criteria-based assessment where each assignment may have one or more criteria associated with it. In addition to the assignment grade as above each associated criterion is set up as an outcome with it's own custom scale Not met/Met. Any grade/feedback history would be useless (for me and those like me) without it also recording the outcomes and changes in their status as well as assignment grades and feedback. To me that sounds like a nightmare web of changes but maybe it wouldn't be.

          As a compromise I can record the flow of changes in one feedback text area as mentioned on the above wiki page under Interface Changes. That would also be a working solution for your scenario I think but obviously the comments quickly become substantial. However, your emphasis seems to be similar to mine - providing extensive feedback to allow improvement - and one feedback text area allows the flow of that to be monitored.

          Show
          Martin Matthews added a comment - Fernando I think I agree with what you are asking for whilst also feeling that it would be a lot of work to make the changes needed work for everyone. If it can be done it should be done. Please make sure though that you do not forget those who do not use numeric grades. I currently use a scale of Fail, Refer, Complete for assignments and this is common to the way a lot of qualifications work in the UK. This is criteria-based assessment where each assignment may have one or more criteria associated with it. In addition to the assignment grade as above each associated criterion is set up as an outcome with it's own custom scale Not met/Met. Any grade/feedback history would be useless (for me and those like me) without it also recording the outcomes and changes in their status as well as assignment grades and feedback. To me that sounds like a nightmare web of changes but maybe it wouldn't be. As a compromise I can record the flow of changes in one feedback text area as mentioned on the above wiki page under Interface Changes. That would also be a working solution for your scenario I think but obviously the comments quickly become substantial. However, your emphasis seems to be similar to mine - providing extensive feedback to allow improvement - and one feedback text area allows the flow of that to be monitored.
          Hide
          Damyon Wiese added a comment -

          Thanks Fernando for your feedback - and feel free to make whatever changes you want to the wiki (that's why its a wiki).

          I have one comment about your proposal in the PDF - the drop down menu is used for a few different assignment features (grant extensions, lock/unlock submission) - not just revert to draft so it will still be needed.

          Any proposal will have to work with all the different grading methods that assignment supports such as outcomes, advanced grading and custom scales.

          Show
          Damyon Wiese added a comment - Thanks Fernando for your feedback - and feel free to make whatever changes you want to the wiki (that's why its a wiki). I have one comment about your proposal in the PDF - the drop down menu is used for a few different assignment features (grant extensions, lock/unlock submission) - not just revert to draft so it will still be needed. Any proposal will have to work with all the different grading methods that assignment supports such as outcomes, advanced grading and custom scales.
          Hide
          Davo Smith added a comment -

          Personally, I never considered 'revert to draft' a good way to manage resubmissions. The only use I've ever found for that feature (and I mostly used it in Moodle 1.9, as that was the version in use at the college where I used to teach) was for when a student uploaded something by mistake, submitted it for marking, then wanted to make a quick correction, before grading took place.

          To my mind, formal resubmissions after grading has been completed should be a separate feature (including the ability to limit the number of resubmissions and to choose between manual resubmissions, controlled by the teacher, and 'automatic' resubmissions controlled by receiving either any grade or a non-passing grade).

          As already stated in the docs, 'revert to draft' is a kind of 'undo' (which removes the original submission from ever existing), whilst 'add resubmission' is a way to add a new version, building on the old.

          Show
          Davo Smith added a comment - Personally, I never considered 'revert to draft' a good way to manage resubmissions. The only use I've ever found for that feature (and I mostly used it in Moodle 1.9, as that was the version in use at the college where I used to teach) was for when a student uploaded something by mistake, submitted it for marking, then wanted to make a quick correction, before grading took place. To my mind, formal resubmissions after grading has been completed should be a separate feature (including the ability to limit the number of resubmissions and to choose between manual resubmissions, controlled by the teacher, and 'automatic' resubmissions controlled by receiving either any grade or a non-passing grade). As already stated in the docs, 'revert to draft' is a kind of 'undo' (which removes the original submission from ever existing), whilst 'add resubmission' is a way to add a new version, building on the old.
          Hide
          Fernando Oliveira added a comment -

          Are you saying that we could sidestep the “revert-to-draft” requirement altogether? That would be ideal. Well, in that case, how about adding a “Resubmission Settings” section to the Assignment Settings screen, something like this: http://screencast.com/t/VgUGGCcOpF6 ?

          Show
          Fernando Oliveira added a comment - Are you saying that we could sidestep the “revert-to-draft” requirement altogether? That would be ideal. Well, in that case, how about adding a “Resubmission Settings” section to the Assignment Settings screen, something like this: http://screencast.com/t/VgUGGCcOpF6 ?
          Hide
          Davo Smith added a comment -

          Fernando - yes, that is roughly what I was looking at. I've got something like that partially coded, as an experiment, but it has several bits missing, so I'm not ready to share the code yet.

          Show
          Davo Smith added a comment - Fernando - yes, that is roughly what I was looking at. I've got something like that partially coded, as an experiment, but it has several bits missing, so I'm not ready to share the code yet.
          Hide
          Fernando Oliveira added a comment -

          Martin, Thanks for bringing up the issue of non-numeric grades. Adding Grade Letters to the interface should be pretty straight forward; however your description of the Scales sounds like it could be a challenge. Still, it’s worth exploring. Could you post some screenshots or mock-ups that could help others better understand how you use criteria-based assessment?

          Show
          Fernando Oliveira added a comment - Martin, Thanks for bringing up the issue of non-numeric grades. Adding Grade Letters to the interface should be pretty straight forward; however your description of the Scales sounds like it could be a challenge. Still, it’s worth exploring. Could you post some screenshots or mock-ups that could help others better understand how you use criteria-based assessment?
          Hide
          Martin Matthews added a comment - - edited

          I use the assignment/outcome/scale approach currently in 2.3 so will do screenshots tomorrow asap. Too tired now so I'd probably mess it up! Sorry for delay as I do appreciate the efforts being taken to sort this.

          Edit: see moodle re-submission and outcomes process.pdf

          Ted Green: I did look at your document quickly but couldn't see anything which can't be done in 2.3 as is anyway. Did I miss the point? If re-submissions can be handled properly the rest is already in place I think.

          Show
          Martin Matthews added a comment - - edited I use the assignment/outcome/scale approach currently in 2.3 so will do screenshots tomorrow asap. Too tired now so I'd probably mess it up! Sorry for delay as I do appreciate the efforts being taken to sort this. Edit: see moodle re-submission and outcomes process.pdf Ted Green: I did look at your document quickly but couldn't see anything which can't be done in 2.3 as is anyway. Did I miss the point? If re-submissions can be handled properly the rest is already in place I think.
          Hide
          Ted Green added a comment -

          I have no background with coding but I thought I would share some thoughts with respect to WYSIWYG windows within the resubmission system. I am wondering if the ability to toggle this capability is something worthy of consideration. "assignmentresubmit.pdf"

          Show
          Ted Green added a comment - I have no background with coding but I thought I would share some thoughts with respect to WYSIWYG windows within the resubmission system. I am wondering if the ability to toggle this capability is something worthy of consideration. "assignmentresubmit.pdf"
          Hide
          Fernando Oliveira added a comment - - edited

          General comment: Probably a good idea to try to keep a small footprint. In my mind, we are trying to do 2 things here:

          1. The Assignment Settings: Allow the teacher/course creator to control the resubmission settings

          2. The Assignment Submission History: When a student views as assignment, she should be able to see her resubmission history. When a teacher grades an assignment (in the expanded view), she should see the resubmission history (same view as student).

          In other words, I think we should avoid touching other functions/systems that deal with the way students submit assignments and the way teachers grade assignments. I know there’s a number of things that we’d like to change here (especially in that crazy gradebook!), but it would make things easier if we narrow the focus.

          Martin:
          Here’s my take on how we could include the outcomes/expectations piece. IF we are able to incorporate this feature, I would suggest that we keep it out of the Assignment Setting screen altogether and stick with the GRADE as the trigger for “conditional resubmissions”. This makes sense, in my mind anyway, since the expectations are ultimately used by the teacher to come up with a grade. The important piece would be to include the expectations that were met/not within the resubmission history, like this: http://screencast.com/t/vttdTW0J3c9k. Thoughts?

          Ted: I think the mock-ups that you posted (assignmentresubmit.pdf) are mostly related to our custom “Marking Manager” module. I am hoping that, if/when an assignment resubmission system is incorporate into the Moodle core, then we can incorporate it into our Marking Manager module and then begin to address other issues, such as the ones you’ve highlighted in your PDF.

          Show
          Fernando Oliveira added a comment - - edited General comment: Probably a good idea to try to keep a small footprint. In my mind, we are trying to do 2 things here: 1. The Assignment Settings: Allow the teacher/course creator to control the resubmission settings 2. The Assignment Submission History: When a student views as assignment, she should be able to see her resubmission history. When a teacher grades an assignment (in the expanded view), she should see the resubmission history (same view as student). In other words, I think we should avoid touching other functions/systems that deal with the way students submit assignments and the way teachers grade assignments. I know there’s a number of things that we’d like to change here (especially in that crazy gradebook!), but it would make things easier if we narrow the focus. Martin: Here’s my take on how we could include the outcomes/expectations piece. IF we are able to incorporate this feature, I would suggest that we keep it out of the Assignment Setting screen altogether and stick with the GRADE as the trigger for “conditional resubmissions”. This makes sense, in my mind anyway, since the expectations are ultimately used by the teacher to come up with a grade. The important piece would be to include the expectations that were met/not within the resubmission history, like this: http://screencast.com/t/vttdTW0J3c9k . Thoughts? Ted: I think the mock-ups that you posted (assignmentresubmit.pdf) are mostly related to our custom “Marking Manager” module. I am hoping that, if/when an assignment resubmission system is incorporate into the Moodle core, then we can incorporate it into our Marking Manager module and then begin to address other issues, such as the ones you’ve highlighted in your PDF.
          Hide
          Martin Matthews added a comment -

          On what triggers the archiving definitely use the grade change and save.

          Ideally I would like the outcomes displayed without an extra click as they are more important to us and the students than the grade. Having to click to see them is not a big problem but it does make the feedback less transparent to students. It's definitely a compromise I'd accept if it is needed.

          Note that I can also accept leaving the outcomes out of the saved history entirely if that means the main changes are successful. Only the latest outcomes are completely required as their status can be inferred from feedback (we tell them how to fix what is wrong and would normally mention eahc outcome by name.

          A thought though. If it is possible to store the outcomes at each stage then what is the problem with displaying them in the history? The data is there anyway. Is it to keep the display clear? If so then I'd suggest the current approach. If there are no outcomes there is no display. If there are outcomes they are displayed (as in my second screen grab).

          Show
          Martin Matthews added a comment - On what triggers the archiving definitely use the grade change and save. Ideally I would like the outcomes displayed without an extra click as they are more important to us and the students than the grade. Having to click to see them is not a big problem but it does make the feedback less transparent to students. It's definitely a compromise I'd accept if it is needed. Note that I can also accept leaving the outcomes out of the saved history entirely if that means the main changes are successful. Only the latest outcomes are completely required as their status can be inferred from feedback (we tell them how to fix what is wrong and would normally mention eahc outcome by name. A thought though. If it is possible to store the outcomes at each stage then what is the problem with displaying them in the history? The data is there anyway. Is it to keep the display clear? If so then I'd suggest the current approach. If there are no outcomes there is no display. If there are outcomes they are displayed (as in my second screen grab).
          Hide
          Fernando Oliveira added a comment -

          Martin: I imagine it is POSSIBLE to show the outcomes within the history section. Ideally, it would be good to have that as an OPTION that teachers can toggle on/off. My main concern here has to do with the amount of work and refactoring that may be required. Are we able to just "plop" the outcomes page "as-is" into the assignment history section or would we need to create a new page to deal with format issues and remove redundant details, if any? Not sure. Depends on what the coder is willing/able to take on.

          General note: I have updated my draft (resubmission_history_draft.pdf). Please feel free to comment.

          Show
          Fernando Oliveira added a comment - Martin: I imagine it is POSSIBLE to show the outcomes within the history section. Ideally, it would be good to have that as an OPTION that teachers can toggle on/off. My main concern here has to do with the amount of work and refactoring that may be required. Are we able to just "plop" the outcomes page "as-is" into the assignment history section or would we need to create a new page to deal with format issues and remove redundant details, if any? Not sure. Depends on what the coder is willing/able to take on. General note: I have updated my draft (resubmission_history_draft.pdf). Please feel free to comment.
          Hide
          Martin Matthews added a comment -

          I don't believe there would be any needed changes to the submission status page as the outcomes are currently shown there anyway. The change would presumably be in a query having to now get the data from a linked table rather than within a single one handling feedback (I have not looked at the tables involved) but presumably that would b part of these changes anyway as the historic grades would come from a new table also (perhaps the same one). As I mentioned I am not saying that we must have outcomes shown just that if it does not cause too much extra work it would be a great help to show all the related information on one page so that students do not need to click repeatedly (remember anyone not using outcomes would see absolutely nothing about them so no need for a setting).

          Show
          Martin Matthews added a comment - I don't believe there would be any needed changes to the submission status page as the outcomes are currently shown there anyway. The change would presumably be in a query having to now get the data from a linked table rather than within a single one handling feedback (I have not looked at the tables involved) but presumably that would b part of these changes anyway as the historic grades would come from a new table also (perhaps the same one). As I mentioned I am not saying that we must have outcomes shown just that if it does not cause too much extra work it would be a great help to show all the related information on one page so that students do not need to click repeatedly (remember anyone not using outcomes would see absolutely nothing about them so no need for a setting).
          Hide
          Fernando Oliveira added a comment -

          3 more suggestions:

          1) In my latest mock-up (resubmission_history_draft2.pdf), the resubmission controls are available in the Assignment Settings. Might be a good idea to also add (override) controls in the grading page so that teachers can allow/disallow resubmission on a case-by-case basis.

          2) For quick identification, add the resubmission number to the Submission Status section of the marking page. Probably a good idea to show this in the gradebook too, if possible.

          These 2 can be seen here: http://screencast.com/t/ihMNC9Vg

          3) Latest mock-up for the student view (submission section) uses the “reverted to draft” layout. I think we need a different layout for Resubmissions (so that it communicates the idea of “redo” rather than “undo”). Maybe just reuse the same format as in the history section, like this: http://screencast.com/t/F4eBAS7s7LUk . Note that the orange background colour in the “grade” cell is used to indicate “needs improvement”.

          I have updated my PDF to include these new features. Please take a look at resubmission_history_draft3.pdf and post feedback or alternative ideas.

          Show
          Fernando Oliveira added a comment - 3 more suggestions: 1) In my latest mock-up (resubmission_history_draft2.pdf), the resubmission controls are available in the Assignment Settings. Might be a good idea to also add (override) controls in the grading page so that teachers can allow/disallow resubmission on a case-by-case basis. 2) For quick identification, add the resubmission number to the Submission Status section of the marking page. Probably a good idea to show this in the gradebook too, if possible. These 2 can be seen here: http://screencast.com/t/ihMNC9Vg 3) Latest mock-up for the student view (submission section) uses the “reverted to draft” layout. I think we need a different layout for Resubmissions (so that it communicates the idea of “redo” rather than “undo”). Maybe just reuse the same format as in the history section, like this: http://screencast.com/t/F4eBAS7s7LUk . Note that the orange background colour in the “grade” cell is used to indicate “needs improvement”. I have updated my PDF to include these new features. Please take a look at resubmission_history_draft3.pdf and post feedback or alternative ideas.
          Hide
          Kevin Dempsey added a comment -

          It's exciting to see all this discussion around this feature. For our teachers/students it's really an essential feature. If any given course involves 400 submitted activities from all the active students, I'd estimate that an additional 50 - 100 are resubmissions. This greatly affects student success in our courses. Currently for those courses we are running in Moodle 2 (rather than 1.9) our students are having to email resubmissions. I'm crossing my fingers that this goes ahead.

          Show
          Kevin Dempsey added a comment - It's exciting to see all this discussion around this feature. For our teachers/students it's really an essential feature. If any given course involves 400 submitted activities from all the active students, I'd estimate that an additional 50 - 100 are resubmissions. This greatly affects student success in our courses. Currently for those courses we are running in Moodle 2 (rather than 1.9) our students are having to email resubmissions. I'm crossing my fingers that this goes ahead.
          Hide
          Martin Matthews added a comment -

          Fernando the override "Allow resubmission" setting is a great idea.

          Remember that it will be necessary to have outcomes available for recording in the teacher's view as per the current grading page(as in my screenshot if you don't have outcomes to look at). I also think that it might be easier to show the student the outcomes in a similar layout rather than embedding the whole grade book. That would avoid problems if the grade book later changed layout as well.

          Show
          Martin Matthews added a comment - Fernando the override "Allow resubmission" setting is a great idea. Remember that it will be necessary to have outcomes available for recording in the teacher's view as per the current grading page(as in my screenshot if you don't have outcomes to look at). I also think that it might be easier to show the student the outcomes in a similar layout rather than embedding the whole grade book. That would avoid problems if the grade book later changed layout as well.
          Hide
          Davo Smith added a comment -

          As previously mentioned, I have put together a bit of basic code to implement some of this (more as a talking point, rather than as a final implementation). I've realised that I'm unlikely to have much free time to work on this again immediately, so I thought I'd share what I've done, and see if it helps the discussion (or sparks someone else off on finishing it).

          The code is here: https://github.com/davosmith/moodle/tree/MDL-36804_assign_resubmissions

          What it does:

          • Adds settings to the mod_assign settings form for resubmission type: none / manual / when graded / when non-passing grade; also a setting for max resubmissions. Both of these settings are saved, but they are not actually used (yet) or backed up / restored.
          • Adds a new item to the drop-down menu on the grading overview table, alongside 'grade / revert to draft', called 'add resubmission'. This implements the 'manual' resubmission mode, but doesn't currently put any restrictions on when it can be used (resubmissions can be opened whether or not the student has submitted anything or the teacher has given a grade, the max resubmissions limit is ignored).
          • Once a resubmission has been opened, students will find they can start a fresh submission (again, an option to copy the current submission across to the resubmission would be good, probably best implemented as a new function call into the assignsubmission plugins)
          • Once there is more than one submission, a paging bar appears at the top of the grading table to allow switching between every student's first, second, third, etc. submission.

          Still to do:

          • Automatic opening of resubmissions based on being given a grade / passing grade
          • Restrictions on the number of resubmissions
          • Prevent manual resubmissions when no submission / grade have been given
          • Outputting of submission history on the individual grade & student views
          • Backup & restore
          • (Optionally) populating the resubmission with the original submission (also would need to check that the resubmission would not be already marked as 'submitted' before the user had actually made any changes).
          • Checking whether the feedback would be properly tied to each resubmission (rather than being given globally).
          • Adjust the 'precheck_submission' and 'submit_for_grading' function calls to make sure they include the 'assign_submission' record, so the submission plugins can determine which of the user's submissions is being submitted.

          A little bit about how it works under the hood (to help anyone else who wanted to build on this):
          A new field is added to the 'mdl_assign_submission' table called 'submissionnum'. As the assignsubmission and assignfeedback plugins work with the ID for the 'mdl_assign_submission' table, this means that they automatically work with the resubmission once a new submission record (with incremented 'submissionnum') is created.

          I'll probably be back to this again in a week or so, but it's out there for the moment.

          Show
          Davo Smith added a comment - As previously mentioned, I have put together a bit of basic code to implement some of this (more as a talking point, rather than as a final implementation). I've realised that I'm unlikely to have much free time to work on this again immediately, so I thought I'd share what I've done, and see if it helps the discussion (or sparks someone else off on finishing it). The code is here: https://github.com/davosmith/moodle/tree/MDL-36804_assign_resubmissions What it does: Adds settings to the mod_assign settings form for resubmission type: none / manual / when graded / when non-passing grade; also a setting for max resubmissions. Both of these settings are saved, but they are not actually used (yet) or backed up / restored. Adds a new item to the drop-down menu on the grading overview table, alongside 'grade / revert to draft', called 'add resubmission'. This implements the 'manual' resubmission mode, but doesn't currently put any restrictions on when it can be used (resubmissions can be opened whether or not the student has submitted anything or the teacher has given a grade, the max resubmissions limit is ignored). Once a resubmission has been opened, students will find they can start a fresh submission (again, an option to copy the current submission across to the resubmission would be good, probably best implemented as a new function call into the assignsubmission plugins) Once there is more than one submission, a paging bar appears at the top of the grading table to allow switching between every student's first, second, third, etc. submission. Still to do: Automatic opening of resubmissions based on being given a grade / passing grade Restrictions on the number of resubmissions Prevent manual resubmissions when no submission / grade have been given Outputting of submission history on the individual grade & student views Backup & restore (Optionally) populating the resubmission with the original submission (also would need to check that the resubmission would not be already marked as 'submitted' before the user had actually made any changes). Checking whether the feedback would be properly tied to each resubmission (rather than being given globally). Adjust the 'precheck_submission' and 'submit_for_grading' function calls to make sure they include the 'assign_submission' record, so the submission plugins can determine which of the user's submissions is being submitted. A little bit about how it works under the hood (to help anyone else who wanted to build on this): A new field is added to the 'mdl_assign_submission' table called 'submissionnum'. As the assignsubmission and assignfeedback plugins work with the ID for the 'mdl_assign_submission' table, this means that they automatically work with the resubmission once a new submission record (with incremented 'submissionnum') is created. I'll probably be back to this again in a week or so, but it's out there for the moment.
          Hide
          Martin Matthews added a comment -

          Fernando - I forgot to mention that there is a short name for outcomes. We use that just to hold the criteria reference (P1, M2, D1 etc.) and displaying this should be much neater than the full name at least in student terms. Teachers will benefit from th longer name which we use to hold the actual criteria.

          Show
          Martin Matthews added a comment - Fernando - I forgot to mention that there is a short name for outcomes. We use that just to hold the criteria reference (P1, M2, D1 etc.) and displaying this should be much neater than the full name at least in student terms. Teachers will benefit from th longer name which we use to hold the actual criteria.
          Hide
          Fernando Oliveira added a comment -

          Hi Davo,

          Thanks for the code… that’s a huge start!
          I went ahead and installed it to see what was done so far (and to take a peek at Moodle 2.4). I can see the new resubmission options in the Assignment Settings screen (http://screencast.com/t/vdGGiBByES), but I can’t figure out how to actually grade a submission (http://screencast.com/t/eus4nuxpomZ). Not sure if this is a bug in Moodle 2.4 or if the new resubmission code is causing problems. At any rate, a couple questions for you:

          1) Will we be able to use this new Assignment module in Moodle 2.3?

          2)Our teachers are pretty desperate for this feature and we would like to help push it along. Looks like you’re the only coder here and I imagine you’re pretty busy preparing for the Moodle 2.4 release. Do you (or anyone else watching this ticket) know of a coder that has the time to jump on this? Would it help if we placed this into the Moodle Jobs forums?

          Show
          Fernando Oliveira added a comment - Hi Davo, Thanks for the code… that’s a huge start! I went ahead and installed it to see what was done so far (and to take a peek at Moodle 2.4). I can see the new resubmission options in the Assignment Settings screen ( http://screencast.com/t/vdGGiBByES ), but I can’t figure out how to actually grade a submission ( http://screencast.com/t/eus4nuxpomZ ). Not sure if this is a bug in Moodle 2.4 or if the new resubmission code is causing problems. At any rate, a couple questions for you: 1) Will we be able to use this new Assignment module in Moodle 2.3? 2)Our teachers are pretty desperate for this feature and we would like to help push it along. Looks like you’re the only coder here and I imagine you’re pretty busy preparing for the Moodle 2.4 release. Do you (or anyone else watching this ticket) know of a coder that has the time to jump on this? Would it help if we placed this into the Moodle Jobs forums?
          Hide
          Davo Smith added a comment -

          Have you tried clicking on the dropdown and choosing 'grade submission'? Or switching on 'quick grading' to grade via the main overview? It is entirely possible that I've introduced a bug to break grading completely on that version, I'd have to check carefully (I wrote the code a week ago and, as I've mentioned above, it is in a half-finished state).

          1) A new feature like this would not normally be backported to earlier versions of Moodle and would only be likely to appear in the next version (which would now be 2.5). It would be possible to transfer a feature like this to an earlier version for a specific install, but it would mean modifying the core Moodle code, which leads to maintenance issues in the future (unless you've got a developer on hand to deal with those issues).

          2) I don't work for Moodle HQ, but for Moodle Partner Synergy Learning, so I'm not directly involved in the 2.4 release. My main day job is working on custom Moodle features for specific customers, I also do the odd bit of community coding in my spare time (which is the capacity in which I did this coding) and sometimes in company time. If you wanted to contact someone at Synergy Learning for a quote, then info@synergy-learning.com is the address. There are also other Moodle partners listed at http://moodle.com who can do this sort of work (or, as you mentioned, the jobs list is another option). To be clear Damyon Wiese (from Netspot), the original developer of the Moodle 2.3 assign module has also been posting here, so he is well placed to take this forward.

          Just for clarity - I've released the example code as a service to the community in my free time - I'm not specifically touting for business

          Show
          Davo Smith added a comment - Have you tried clicking on the dropdown and choosing 'grade submission'? Or switching on 'quick grading' to grade via the main overview? It is entirely possible that I've introduced a bug to break grading completely on that version, I'd have to check carefully (I wrote the code a week ago and, as I've mentioned above, it is in a half-finished state). 1) A new feature like this would not normally be backported to earlier versions of Moodle and would only be likely to appear in the next version (which would now be 2.5). It would be possible to transfer a feature like this to an earlier version for a specific install, but it would mean modifying the core Moodle code, which leads to maintenance issues in the future (unless you've got a developer on hand to deal with those issues). 2) I don't work for Moodle HQ, but for Moodle Partner Synergy Learning, so I'm not directly involved in the 2.4 release. My main day job is working on custom Moodle features for specific customers, I also do the odd bit of community coding in my spare time (which is the capacity in which I did this coding) and sometimes in company time. If you wanted to contact someone at Synergy Learning for a quote, then info@synergy-learning.com is the address. There are also other Moodle partners listed at http://moodle.com who can do this sort of work (or, as you mentioned, the jobs list is another option). To be clear Damyon Wiese (from Netspot), the original developer of the Moodle 2.3 assign module has also been posting here, so he is well placed to take this forward. Just for clarity - I've released the example code as a service to the community in my free time - I'm not specifically touting for business
          Hide
          Damyon Wiese added a comment -

          Big thanks to Davo for the work in progress code.

          This is a new feature and it is against our policy to backport new features to stable versions (Imagine if everyone had to update their training manuals all the time). So the earliest version that this feature could be in is 2.5.

          I haven't checked the code yet but I'll take a look this week.

          Regards, Damyon

          Show
          Damyon Wiese added a comment - Big thanks to Davo for the work in progress code. This is a new feature and it is against our policy to backport new features to stable versions (Imagine if everyone had to update their training manuals all the time). So the earliest version that this feature could be in is 2.5. I haven't checked the code yet but I'll take a look this week. Regards, Damyon
          Hide
          Fernando Oliveira added a comment -

          Martin, Would be good to SEE how you envision the Outcomes part in the student view (base of assignment) and teacher view (grading page). Would you mind posting some mockups?

          Show
          Fernando Oliveira added a comment - Martin, Would be good to SEE how you envision the Outcomes part in the student view (base of assignment) and teacher view (grading page). Would you mind posting some mockups?
          Hide
          Martin Matthews added a comment -

          Sorry, even if I had any graphics skills (I don't) I am so frantic at work I just don't have time. I just assumed it would look like the text and drop downs the teacher sees (as in my document) but with the outcome scale showing as a text/label instead of a drop down. As long as it shows the short name of the outcome and it's latest status anything would do. It could be as simple as a list of outcomes:

          • P1 met
          • P2 not met
          • M1 met

          Hope that helps.

          Show
          Martin Matthews added a comment - Sorry, even if I had any graphics skills (I don't) I am so frantic at work I just don't have time. I just assumed it would look like the text and drop downs the teacher sees (as in my document) but with the outcome scale showing as a text/label instead of a drop down. As long as it shows the short name of the outcome and it's latest status anything would do. It could be as simple as a list of outcomes: P1 met P2 not met M1 met Hope that helps.
          Hide
          Davo Smith added a comment -

          I'm making some progress on this, so I'm hoping to have a complete implementation to share back soon (which would be great to get included in 2.5).

          Show
          Davo Smith added a comment - I'm making some progress on this, so I'm hoping to have a complete implementation to share back soon (which would be great to get included in 2.5).
          Hide
          Fernando Oliveira added a comment - - edited

          Here’s an update on this ticket:

          The development of this feature is currently being funded by Keewaytinook Okimakanak (www.knet.ca) under the umbrella of the MoodleFN project (www.moodlefn.knet.ca). Davo Smith from Synergy Learning has taken on this work and, with any luck, should be done this week.

          A more thorough description will be provided when the work is done, but here’s a quick overview:

          What it does:

          • Provides three resubmission options within the Assignment Settings page: Yes, No, Until grade-to-pass is met
          • As shown in the mock-up, if 'Allow resubmissions = Yes', the 'Default resubmission setting when grading assignments' option is also shown. This option increases efficiency during the grading process . For example, if teacher wants to turn ON the resubmissions feature but only allow a few resubmissions based on certain criteria, setting Allow Resubmissions to YES and Default to NO would facilitate quicker grading (since MOST students won’t be allowed to resubmit).
          • Provides a Submission History section that can be seen by both teacher and student.

          What it does not do:

          • There is no support for assignments that use the OUTCOMES grading method at this time (only grade-based assignments are supported). While we’d love to see this functionality in place, we do not have the budget for it. We welcome others to take on the development or funding of this feature. We’d also be willing to help out with the design, if needed.

          More info to come.

          Fernando

          Show
          Fernando Oliveira added a comment - - edited Here’s an update on this ticket: The development of this feature is currently being funded by Keewaytinook Okimakanak (www.knet.ca) under the umbrella of the MoodleFN project (www.moodlefn.knet.ca). Davo Smith from Synergy Learning has taken on this work and, with any luck, should be done this week. A more thorough description will be provided when the work is done, but here’s a quick overview: Mock-up showing Submission options: http://screencast.com/t/agkVD1WsFJ Screenshot of Submission History section: http://screencast.com/t/vE9t2cFlIqmC What it does: Provides three resubmission options within the Assignment Settings page: Yes, No, Until grade-to-pass is met As shown in the mock-up, if 'Allow resubmissions = Yes', the 'Default resubmission setting when grading assignments' option is also shown. This option increases efficiency during the grading process . For example, if teacher wants to turn ON the resubmissions feature but only allow a few resubmissions based on certain criteria, setting Allow Resubmissions to YES and Default to NO would facilitate quicker grading (since MOST students won’t be allowed to resubmit). Provides a Submission History section that can be seen by both teacher and student. What it does not do: There is no support for assignments that use the OUTCOMES grading method at this time (only grade-based assignments are supported). While we’d love to see this functionality in place, we do not have the budget for it. We welcome others to take on the development or funding of this feature. We’d also be willing to help out with the design, if needed. More info to come. Fernando
          Hide
          Derek Chirnside added a comment -

          Fernando/Davo. Well done. Is this a good example of the Moodle Open Source collaborative model and community working well together? I think so.

          -Derek

          Show
          Derek Chirnside added a comment - Fernando/Davo. Well done. Is this a good example of the Moodle Open Source collaborative model and community working well together? I think so. -Derek
          Hide
          Michael Hughes added a comment -

          I was just going reading this (and liking what I'm reading) but I was slightly concerned about how some of the (embryonic) discussions about extensions (global activity extensions:https://tracker.moodle.org/browse/MDL-7315) might affect or be affected by these changes.

          I thought it might be worth mentioning it so that these 2 things aren't being developed in isolation.

          Show
          Michael Hughes added a comment - I was just going reading this (and liking what I'm reading) but I was slightly concerned about how some of the (embryonic) discussions about extensions (global activity extensions: https://tracker.moodle.org/browse/MDL-7315 ) might affect or be affected by these changes. I thought it might be worth mentioning it so that these 2 things aren't being developed in isolation.
          Hide
          Davo Smith added a comment -

          The extension development shouldn't impact on resubmissions, as resubmissions (as implemented so far) work by adding extra submissions and are constrained by the overall deadlines for the assignment.

          The only issue would be if the deadline extension data was stored within the assign_submission table (but that wouldn't be very difficult to work around even if it was, it would just require a couple of key functions to be updated).

          As for the patch that implements resubmissions, it is currently undergoing a bit of internal testing, before it can be posted up here. Obviously, then will come a process of adapting the implementation to meet the needs for a core part of Moodle and fixing any issues / coding guideline problems found during peer review.

          Show
          Davo Smith added a comment - The extension development shouldn't impact on resubmissions, as resubmissions (as implemented so far) work by adding extra submissions and are constrained by the overall deadlines for the assignment. The only issue would be if the deadline extension data was stored within the assign_submission table (but that wouldn't be very difficult to work around even if it was, it would just require a couple of key functions to be updated). As for the patch that implements resubmissions, it is currently undergoing a bit of internal testing, before it can be posted up here. Obviously, then will come a process of adapting the implementation to meet the needs for a core part of Moodle and fixing any issues / coding guideline problems found during peer review.
          Hide
          Fernando Oliveira added a comment -

          I’m a little baffled by the “Require students to click submit button: Yes/No” option in the assignment settings page: http://screencast.com/t/oolAOoCx1. Wondering if the new resubmission function that is being developed here could help simplify/clarify things.

          IMHO, when working on assignments, students should have TWO options: Save (for later editing) or Submit (for marking). The current system seems to allow teachers to grade “saved” assignments. This makes no sense to me. I assume the point here is to allow the students to edit/improve their submissions, but it doesn’t allow students maintain a DRAFT version of their work for their OWN use/development.

          Suggestion:

          1. Remove the “Require students to click…” option from the setting page and add 2 buttons to assignment page (student view): [Save for later editing] and [Submit for Grading]. This provides students with 2 clear choices.

          2. Use separate resubmission control system (such as the one developed here) to handle resubmissions.

          Anyone care to comment on this? What would be lost via this approach?

          Show
          Fernando Oliveira added a comment - I’m a little baffled by the “Require students to click submit button: Yes/No” option in the assignment settings page: http://screencast.com/t/oolAOoCx1 . Wondering if the new resubmission function that is being developed here could help simplify/clarify things. IMHO, when working on assignments, students should have TWO options: Save (for later editing) or Submit (for marking). The current system seems to allow teachers to grade “saved” assignments. This makes no sense to me. I assume the point here is to allow the students to edit/improve their submissions, but it doesn’t allow students maintain a DRAFT version of their work for their OWN use/development. Suggestion: 1. Remove the “Require students to click…” option from the setting page and add 2 buttons to assignment page (student view): [Save for later editing] and [Submit for Grading] . This provides students with 2 clear choices. 2. Use separate resubmission control system (such as the one developed here) to handle resubmissions. Anyone care to comment on this? What would be lost via this approach?
          Hide
          Joshua Holden added a comment -

          My understanding was that teachers are allowed to grade "saved" assignments to avoid hassle when the deadline has passed and students have simply forgotten to click the submit button. Personally I never use the submit button and I just grade whatever draft is current at the deadline (or sometimes whenever I get around to grading). But YMMV.

          Show
          Joshua Holden added a comment - My understanding was that teachers are allowed to grade "saved" assignments to avoid hassle when the deadline has passed and students have simply forgotten to click the submit button. Personally I never use the submit button and I just grade whatever draft is current at the deadline (or sometimes whenever I get around to grading). But YMMV.
          Hide
          Martin Matthews added a comment -

          I'm with Joshua H. Not only would students forget to press the submit final button but they might deliberately not do so as a way to try to extend a deadline. They do find the current wording confusing as well which is why I turn it off. Fernando's wording is FAR clearer and more appropriate.

          Show
          Martin Matthews added a comment - I'm with Joshua H. Not only would students forget to press the submit final button but they might deliberately not do so as a way to try to extend a deadline. They do find the current wording confusing as well which is why I turn it off. Fernando's wording is FAR clearer and more appropriate.
          Hide
          Graham Bowman added a comment -

          So happy to see this being developed. Do we know if this system would handle feedback files as well as the grade and feedback? Sometimes I find myself having to upload a feedback file 2 or 3 times and renaming the file as 'old feedback' with the date.

          Show
          Graham Bowman added a comment - So happy to see this being developed. Do we know if this system would handle feedback files as well as the grade and feedback? Sometimes I find myself having to upload a feedback file 2 or 3 times and renaming the file as 'old feedback' with the date.
          Hide
          Davo Smith added a comment -

          Currently it associates each resubmission with a different assignment grade. Which means that all types of feedback (comment, grade, files, etc) will be separate for each resubmission. Although, there will only be one grade (the highest) inserted into the grade book.

          Show
          Davo Smith added a comment - Currently it associates each resubmission with a different assignment grade. Which means that all types of feedback (comment, grade, files, etc) will be separate for each resubmission. Although, there will only be one grade (the highest) inserted into the grade book.
          Hide
          Graham Bowman added a comment -

          Great news. I'm happy to test this when it is ready to test!

          Show
          Graham Bowman added a comment - Great news. I'm happy to test this when it is ready to test!
          Hide
          Davo Smith added a comment -

          I've added links to an implementation of assignment resubmissions, as funded by Fernando Oliveira via the Moodle First Nations project.

          This adds a number of new features:

          • New items on the settings page:
            • Resubmisison - used to enable resubmissions and choose between 'yes' or 'until grade-to-pass reached' mode
            • Resubmission default - enabled when resubmission mode = yes, sets the default for the 'grading' screen 'resubmission' option and controls whether resubmissions are automatically created when a grade is given via 'quick grading' on the grading overview page
            • Max resubmissions - the number of resubmissions that are allowed (including the first submission)
          • For 'Yes' mode, the 'grade single submission' page gains an extra option to 'open a resubmission' (assuming the maximum number of resubmissions has not been reached and that a grade is assigned to the student)
          • In 'Yes' mode, the 'grading overview' page gains an extra 'open resubmission' option in the 'actions' drop-down (only if the maximum resubmissions has not yet been reached and the student has received a grade)
          • In 'until grade-to-pass is reached' mode, the 'grade single submission' page gains a small bit of text explaining the situation and a new resubmission is automatically added (if needed) once the most recent submission has been graded
          • Once there are resubmissions, a 'paging bar' appears at the top of the 'grading overview' page to view (and update grades for) each of the resubmissions for all the students
          • The 'grade single submission' page and the 'student view' both gain a 'submission history' section, below the current submission, with all submission and feedback details for previous submissions.
          • The 'grade single submission' page gains new buttons to allow navigation between submissions for a single student.
          • When a new resubmission is opened, the original submission is locked and the student is presented with a new, empty submission to edit with the status displayed as 'ready for resubmission' (all previously submitted data is displayed below).
          • Optionally, the student may click on a button to copy the previous submission into their resubmission, so that they can then edit it, before resubmitting it (the alternative is to start afresh with an empty submission).
          • The maximum grade across all submissions is the one entered into the grade book (the teacher is allowed to edit any previous grade + feedback, students are restricted to only editing their latest submission).
          • All new settings and student resubmissions are included in the Moodle backup and restore process

          I'm quite open to making further changes to this (code fixes, design changes, etc.), but I hope it's a good starting point for implementing this feature (which is certainly something I would have loved to have had when I was marking assignments).

          Show
          Davo Smith added a comment - I've added links to an implementation of assignment resubmissions, as funded by Fernando Oliveira via the Moodle First Nations project. This adds a number of new features: New items on the settings page: Resubmisison - used to enable resubmissions and choose between 'yes' or 'until grade-to-pass reached' mode Resubmission default - enabled when resubmission mode = yes, sets the default for the 'grading' screen 'resubmission' option and controls whether resubmissions are automatically created when a grade is given via 'quick grading' on the grading overview page Max resubmissions - the number of resubmissions that are allowed (including the first submission) For 'Yes' mode, the 'grade single submission' page gains an extra option to 'open a resubmission' (assuming the maximum number of resubmissions has not been reached and that a grade is assigned to the student) In 'Yes' mode, the 'grading overview' page gains an extra 'open resubmission' option in the 'actions' drop-down (only if the maximum resubmissions has not yet been reached and the student has received a grade) In 'until grade-to-pass is reached' mode, the 'grade single submission' page gains a small bit of text explaining the situation and a new resubmission is automatically added (if needed) once the most recent submission has been graded Once there are resubmissions, a 'paging bar' appears at the top of the 'grading overview' page to view (and update grades for) each of the resubmissions for all the students The 'grade single submission' page and the 'student view' both gain a 'submission history' section, below the current submission, with all submission and feedback details for previous submissions. The 'grade single submission' page gains new buttons to allow navigation between submissions for a single student. When a new resubmission is opened, the original submission is locked and the student is presented with a new, empty submission to edit with the status displayed as 'ready for resubmission' (all previously submitted data is displayed below). Optionally, the student may click on a button to copy the previous submission into their resubmission, so that they can then edit it, before resubmitting it (the alternative is to start afresh with an empty submission). The maximum grade across all submissions is the one entered into the grade book (the teacher is allowed to edit any previous grade + feedback, students are restricted to only editing their latest submission). All new settings and student resubmissions are included in the Moodle backup and restore process I'm quite open to making further changes to this (code fixes, design changes, etc.), but I hope it's a good starting point for implementing this feature (which is certainly something I would have loved to have had when I was marking assignments).
          Hide
          Damyon Wiese added a comment -

          Thanks Davo for the patch.

          Overall the code is great and the concept of the feature is sound (adding submissionnum to submission and grade tables works quite well).

          This is definitely a very tricky feature to add with out breaking anything (especially with the new features added in mod_assign for 2.4).

          Below are some notes I took while looking at this patch (sorry for the english / formatting). If any of this doesn't make sense, just ask.

          Some general feedback:

          UI / Design
          Grading table does not make sense to only show submission X for all students. Each student can/will have a different number of submissions, so if student A has 3 submissions and student B has 1 submission, you click on "View resubmission 3" and it looks like student B has not submitted anything and they get an F. I think it should just show the latest "submitted" submission with a count of the number of submissions for each student. The count could be a link to the single grade page where they can see all the submissions for that student.

          Single grading page - I think we should remove the "Previous submission / Next submission" buttons from the submission status row and always show the last submitted submission there (and show full details of all previous submissions below. It is confusing if you add grades / feedback for a previous submission (it changes the old comment - does not add a new one - but pushes the new grade to the gradebook).

          After grading a student - their submission is in a weird state "Ready for resubmission" - until they login and click "Resubmit assignment" - can't we skip this (I don't see the point of it - as a student - I should see my previous submission and "edit" or "submit" buttons)? Also (related) If I mark a student and then change the mark, this will create 2 resubmissions with the second being empty (because the student didn't click that button in between) (I am guessing this is required for grade to pass - I think we should work around that). Also when in this "Ready for resubmission" state - it looks like there is feedback or submission data for this student.

          Issue: "Allow resubmission" appears in the grading table menu even for submissions that have not been submitted. This allows a teacher to use up all the students re-submissions

          Why does the teacher grading action even trigger a resubmission - shouldn't it only make a copy when the student "submits" something?

          So:

          Student does some work (submission is draft)
          Student does some more work (submission is draft)
          Student submits work (submission becomes "submitted", new draft submission is created)
          Teacher grades - grades + feedback get applied to last "submitted" submission
          Student makes more changes to their draft submission
          Student submits work again (2nd submission becomes "submitted", new draft submission created)

          Teacher grades - grades + feedback get applied to last "submitted" submission (2nd one)

          We can make the latest draft visible in the single grading page - but default to showing the latest "submitted" version.

          That means we can get rid of the "resubmissiondefault" settings which is also confusing.

          Other general issues / problems:

          Some warnings printed (Log as student view own submission that has not been graded - "Require students click submit" = Off)

          : Trying to get property of non-object in /home/damyonw/Documents/Moodle/instances/im/moodle/mod/assign/locallib.php on line 3259

          Lots of codechecker warnings - mod_assign has been cleaned up (there are currently only 2 warnings on master) so all new code for mod_assign
          must pass codechecker with 0 new warnings or errors.

          Does not work with group assignments (the old submissions never have any files listed and the page after clicking the "resubmit" button does not have any data (old submission is lost).

          Upload grading worksheet no longer applies any upgraded grades.

          Should string "No more resubmissions are allowed" be "No more submissions are allowed"?

          There is some commented out code in the renderer.

          Could use some unit tests for the new functionality.

          This change breaks all the existing unit tests - they need to be fixed. (I think adding resubmission to the generator would fix most of them).
          Shortcuts for running only assignment unit tests:
          ./vendor/bin/phpunit assign_locallib_testcase mod/assign/tests/locallib_test.php
          ./vendor/bin/phpunit assign_upgradelib_testcase mod/assign/tests/upgradelib_test.php
          ./vendor/bin/phpunit assign_lib_testcase mod/assign/tests/lib_test.php

          Thanks again for working on this - I think it is a great feature.

          Regards, Damyon

          Show
          Damyon Wiese added a comment - Thanks Davo for the patch. Overall the code is great and the concept of the feature is sound (adding submissionnum to submission and grade tables works quite well). This is definitely a very tricky feature to add with out breaking anything (especially with the new features added in mod_assign for 2.4). Below are some notes I took while looking at this patch (sorry for the english / formatting). If any of this doesn't make sense, just ask. Some general feedback: UI / Design Grading table does not make sense to only show submission X for all students. Each student can/will have a different number of submissions, so if student A has 3 submissions and student B has 1 submission, you click on "View resubmission 3" and it looks like student B has not submitted anything and they get an F. I think it should just show the latest "submitted" submission with a count of the number of submissions for each student. The count could be a link to the single grade page where they can see all the submissions for that student. Single grading page - I think we should remove the "Previous submission / Next submission" buttons from the submission status row and always show the last submitted submission there (and show full details of all previous submissions below. It is confusing if you add grades / feedback for a previous submission (it changes the old comment - does not add a new one - but pushes the new grade to the gradebook). After grading a student - their submission is in a weird state "Ready for resubmission" - until they login and click "Resubmit assignment" - can't we skip this (I don't see the point of it - as a student - I should see my previous submission and "edit" or "submit" buttons)? Also (related) If I mark a student and then change the mark, this will create 2 resubmissions with the second being empty (because the student didn't click that button in between) (I am guessing this is required for grade to pass - I think we should work around that). Also when in this "Ready for resubmission" state - it looks like there is feedback or submission data for this student. Issue: "Allow resubmission" appears in the grading table menu even for submissions that have not been submitted. This allows a teacher to use up all the students re-submissions Why does the teacher grading action even trigger a resubmission - shouldn't it only make a copy when the student "submits" something? So: Student does some work (submission is draft) Student does some more work (submission is draft) Student submits work (submission becomes "submitted", new draft submission is created) Teacher grades - grades + feedback get applied to last "submitted" submission Student makes more changes to their draft submission Student submits work again (2nd submission becomes "submitted", new draft submission created) Teacher grades - grades + feedback get applied to last "submitted" submission (2nd one) We can make the latest draft visible in the single grading page - but default to showing the latest "submitted" version. That means we can get rid of the "resubmissiondefault" settings which is also confusing. Other general issues / problems: Some warnings printed (Log as student view own submission that has not been graded - "Require students click submit" = Off) : Trying to get property of non-object in /home/damyonw/Documents/Moodle/instances/im/moodle/mod/assign/locallib.php on line 3259 Lots of codechecker warnings - mod_assign has been cleaned up (there are currently only 2 warnings on master) so all new code for mod_assign must pass codechecker with 0 new warnings or errors. Does not work with group assignments (the old submissions never have any files listed and the page after clicking the "resubmit" button does not have any data (old submission is lost). Upload grading worksheet no longer applies any upgraded grades. Should string "No more resubmissions are allowed" be "No more submissions are allowed"? There is some commented out code in the renderer. Could use some unit tests for the new functionality. This change breaks all the existing unit tests - they need to be fixed. (I think adding resubmission to the generator would fix most of them). Shortcuts for running only assignment unit tests: ./vendor/bin/phpunit assign_locallib_testcase mod/assign/tests/locallib_test.php ./vendor/bin/phpunit assign_upgradelib_testcase mod/assign/tests/upgradelib_test.php ./vendor/bin/phpunit assign_lib_testcase mod/assign/tests/lib_test.php Thanks again for working on this - I think it is a great feature. Regards, Damyon
          Hide
          Davo Smith added a comment -

          Thanks for the feedback Damyon.

          I'm not going to be able to work on this again for a few days, but I'll put together a quick response to the points you have raised:

          UI / Design
          I would like to have some way of browsing through the different submissions on the grading overview, I'm not quite sure what the alternative is. Would a column 'viewing submission x/y' work (it could be capped so that if the student only had 2 submissions, then viewing submission 3 overall would only show submission 2/2 (with those that had it showing 3/3 ?)

          It is always the highest grade that is pushed into the gradebook when a grade is updated. As a former teacher, I would always want to err on the side of giving the teacher the opportunity to go back and fix a typo in a previous grade comment. Without this the grade feedback would be locked as soon as a resubmission was allowed, preventing the teacher from correcting any mis-selected grade / mistyped feedback.

          The 'ready for resubmission' state tells the student that their work has been marked and that they have been allowed to create a resubmission. This gives the teacher control over whether or not they are allowing a student to resubmit their work (for example, if I had a student who had done a very good piece of work, but had fallen short of a mark due to a couple of minor omissions, I would allow an extra, discretionary submission; if the student had turned in a terrible piece of work, then the resubmission may not be given). It also allows a teacher to give partial feedback and then later complete the feedback, before allowing the student to resubmit their work.

          It is not possible to open up further resubmissions unless a grade has been given for the most recent submission (the button to 'allow resubmission' only appears once a grade has been given). There are scenarios when a resubmission is 'used up', without a student submitting any work. For example, when I was teaching BTEC assignments, there was an initial deadline, the work was marked, then there was a further 2 week period during which students were expected to resubmit their assignments. The ability to give an empty submission a grade of 0 and then opening up a resubmission allows such submisison/resubmission deadlines to be enforced. A student missing all deadlines this way would, quite rightly, end up using up all their resubmissions without submitting any work.

          Teacher grading only triggers a resubmission if the teacher decides that a resubmission is allowed. The copying of the files into the resubmission is triggered at the point where the student goes to edit their submission (actually my preference is to offer the student a choice of starting a clean, empty resubmission or a resubmission based on their latest submission - on assignments I have taught, students would be expected to upload freshly corrected files, rather than including the old versions of those files - however, this functionality has been disabled as requested by Fernando).

          The resubmissiondefault setting is there to cover two different situations: should the resubmission be the normal expectation (to be overridden if the teacher decides the student should not be allowed a resubmission in this case) or should it be an exception (if the teacher decided at their discretion that a resubmission should be allowed). I could not think of a better way controlling this, as I have come across both situations.

          General issues / problems:

          I'll check the warnings - I hadn't seen any when I was developing, but something may have been introduced whilst resolving merge conflicts when rebasing onto the latest code.

          I'll check the codechecker warnings - when you say 0 warnings, does that include lines that are longer than recommended, but still within the hard limit (ie not an 'error')?

          I'll check the group assignments - I thought I'd coded to take those into account (but I could easily have missed something, as I concentrated my testing on individual assignments).

          I've not used the upload grading worksheet feature - I'll have to see how that works.

          I think that 'No more resubmissions are allowed' is the correct text - 'No more submissions allowed' would, to my mind, imply that the assignment had been completely closed and was no longer accepting submissions from any students (even if they had submitted nothing yet), whereas using the word 'resubmissions' it makes it clearer that it is specific to the resubmission allowance for a particular student.

          I'll look at unit tests - I need to get PHPUnit set up locally before I can tackle that.

          Hopefully I can address these issues (in the next week or so) and then see if the code can be integrated.

          Show
          Davo Smith added a comment - Thanks for the feedback Damyon. I'm not going to be able to work on this again for a few days, but I'll put together a quick response to the points you have raised: UI / Design I would like to have some way of browsing through the different submissions on the grading overview, I'm not quite sure what the alternative is. Would a column 'viewing submission x/y' work (it could be capped so that if the student only had 2 submissions, then viewing submission 3 overall would only show submission 2/2 (with those that had it showing 3/3 ?) It is always the highest grade that is pushed into the gradebook when a grade is updated. As a former teacher, I would always want to err on the side of giving the teacher the opportunity to go back and fix a typo in a previous grade comment. Without this the grade feedback would be locked as soon as a resubmission was allowed, preventing the teacher from correcting any mis-selected grade / mistyped feedback. The 'ready for resubmission' state tells the student that their work has been marked and that they have been allowed to create a resubmission. This gives the teacher control over whether or not they are allowing a student to resubmit their work (for example, if I had a student who had done a very good piece of work, but had fallen short of a mark due to a couple of minor omissions, I would allow an extra, discretionary submission; if the student had turned in a terrible piece of work, then the resubmission may not be given). It also allows a teacher to give partial feedback and then later complete the feedback, before allowing the student to resubmit their work. It is not possible to open up further resubmissions unless a grade has been given for the most recent submission (the button to 'allow resubmission' only appears once a grade has been given). There are scenarios when a resubmission is 'used up', without a student submitting any work. For example, when I was teaching BTEC assignments, there was an initial deadline, the work was marked, then there was a further 2 week period during which students were expected to resubmit their assignments. The ability to give an empty submission a grade of 0 and then opening up a resubmission allows such submisison/resubmission deadlines to be enforced. A student missing all deadlines this way would, quite rightly, end up using up all their resubmissions without submitting any work. Teacher grading only triggers a resubmission if the teacher decides that a resubmission is allowed. The copying of the files into the resubmission is triggered at the point where the student goes to edit their submission (actually my preference is to offer the student a choice of starting a clean, empty resubmission or a resubmission based on their latest submission - on assignments I have taught, students would be expected to upload freshly corrected files, rather than including the old versions of those files - however, this functionality has been disabled as requested by Fernando). The resubmissiondefault setting is there to cover two different situations: should the resubmission be the normal expectation (to be overridden if the teacher decides the student should not be allowed a resubmission in this case) or should it be an exception (if the teacher decided at their discretion that a resubmission should be allowed). I could not think of a better way controlling this, as I have come across both situations. General issues / problems: I'll check the warnings - I hadn't seen any when I was developing, but something may have been introduced whilst resolving merge conflicts when rebasing onto the latest code. I'll check the codechecker warnings - when you say 0 warnings, does that include lines that are longer than recommended, but still within the hard limit (ie not an 'error')? I'll check the group assignments - I thought I'd coded to take those into account (but I could easily have missed something, as I concentrated my testing on individual assignments). I've not used the upload grading worksheet feature - I'll have to see how that works. I think that 'No more resubmissions are allowed' is the correct text - 'No more submissions allowed' would, to my mind, imply that the assignment had been completely closed and was no longer accepting submissions from any students (even if they had submitted nothing yet), whereas using the word 'resubmissions' it makes it clearer that it is specific to the resubmission allowance for a particular student. I'll look at unit tests - I need to get PHPUnit set up locally before I can tackle that. Hopefully I can address these issues (in the next week or so) and then see if the code can be integrated.
          Hide
          Martin Matthews added a comment -

          I agree with Davo on the triggering of resubmission. This has to be under the control of the marker not the student.

          I also agree (as a teacher) that the marker should have access to the feedback afterwards to make corrections but that would reduce the effectiveness of moodle as an audit trail of work and assessment. The same argument applies to student work. I couldn't tell from the posts above if students can change a submission after marking (as is currently the case). This should absolutely not be possible to allow for malicious students who might change their work and then appeal a decision as well as to prevent genuine mistakes.

          One final thought. Are outcomes still OK with the new module? Can they be attached and different outcome results saved for each submission?

          Bear in mind I comment as a user not a developer.

          Show
          Martin Matthews added a comment - I agree with Davo on the triggering of resubmission. This has to be under the control of the marker not the student. I also agree (as a teacher) that the marker should have access to the feedback afterwards to make corrections but that would reduce the effectiveness of moodle as an audit trail of work and assessment. The same argument applies to student work. I couldn't tell from the posts above if students can change a submission after marking (as is currently the case). This should absolutely not be possible to allow for malicious students who might change their work and then appeal a decision as well as to prevent genuine mistakes. One final thought. Are outcomes still OK with the new module? Can they be attached and different outcome results saved for each submission? Bear in mind I comment as a user not a developer.
          Hide
          Davo Smith added a comment -

          Students cannot make changes to previous submissions after a resubmission has been granted.

          Outcomes should still work (as each submission / grade is effectively a different entity), but would need some careful testing (you could always grab the assign_resubmission branch from my repo above and try it out for yourself, if you have a computer with a webserver on it).

          Show
          Davo Smith added a comment - Students cannot make changes to previous submissions after a resubmission has been granted. Outcomes should still work (as each submission / grade is effectively a different entity), but would need some careful testing (you could always grab the assign_resubmission branch from my repo above and try it out for yourself, if you have a computer with a webserver on it).
          Hide
          Fernando Oliveira added a comment - - edited

          Here’s some comments that I expressed earlier (not on this forum). Most have been raised by Damyon above, but just thought I’d share them anyway to help push the discussion along:

          1. Allowing a teacher to change a grade for a submission that has already been returned and subsequently resubmitted: This could be problematic. Every time a student resubmits an assignment, she does so based on feedback from the previous submission. If a student resubmits an assignment 5 times, for example, it doesn’t seem fair that a teacher should be able to change the grade/feedback for the 3rd submission or any other submission except the most recent one. In effect, it allows the teacher to manipulate the Submission History, which is actually a LOG that records the interaction between student and teacher around a particular assignment. I think such a feature compromises the integrity of the grading process. Consider also that, if a teacher decides to change the comment/grade on work that has already been returned and subsequently resubmitted, the student is not notified.

          2. The “View Resubmission” navigating feature on the gradebook page:

          As already mentioned above, this feature is has some negative effects. Consider this example:

          Student A resubmits an assignment 2 times and student B resubmits 5 times. When the teacher open this assignment in the gradebook, it defaults to the 5th submission. Problem is that Student A only submitted twice so the status on his submission reads “No Submission”, even though there’s a submission waiting for a grade: http://screencast.com/t/SMrvMxn8.

          Suggestion: Remove “view resubmission” selector from the gradebook page altogether, like this http://screencast.com/t/RkWim5hcwZV? On the gradebook page, teachers would only see the latest submission. To see previous submissions, teacher would have to open the grading page (http://screencast.com/t/pCecNUFlOB7V).

          3. To echo Damyon’s comment, I also think we can do away with the "Previous submission / Next submission" buttons (http://screencast.com/t/nqGLhmiu), since all submissions are already shown in the Submission History at the bottom of the grading page. If the intent is to allow teachers to change the grade/comment on previous submissions (again, personally, I’m not fond of this idea), then it might be cleaner (interface wise) to do it directly in the Submission History, like this: http://screencast.com/t/lMtHJwc99Sn.

          4. Currently, when a teacher grades an assignment, the Assignment History is shown at the bottom of the page. This is very useful as it allows the teacher to gage the student’s progression. It would be handy if the student could also see the Assignment History when she’s constructing her resubmission (http://screencast.com/t/JTf4oZzZII7 ). This would likely require another patch, but thought I’d mention it since it’s directly related.

          5. Regarding the question of whether a resubmission should be “triggered” by the teacher (after grading) or by the student (when resubmission is sent for marking). Davo and I had a brief discussion about this a while back. I’m still not clear on all the intricacies, and I probably I don’t have the coding knowledge to make an informed opinion here, but it would be helpful have more discussion about this, since it seems to dictate some fundamental assumption about this work.

          Show
          Fernando Oliveira added a comment - - edited Here’s some comments that I expressed earlier (not on this forum). Most have been raised by Damyon above, but just thought I’d share them anyway to help push the discussion along: 1. Allowing a teacher to change a grade for a submission that has already been returned and subsequently resubmitted: This could be problematic. Every time a student resubmits an assignment, she does so based on feedback from the previous submission. If a student resubmits an assignment 5 times, for example, it doesn’t seem fair that a teacher should be able to change the grade/feedback for the 3rd submission or any other submission except the most recent one. In effect, it allows the teacher to manipulate the Submission History, which is actually a LOG that records the interaction between student and teacher around a particular assignment. I think such a feature compromises the integrity of the grading process. Consider also that, if a teacher decides to change the comment/grade on work that has already been returned and subsequently resubmitted, the student is not notified. 2. The “View Resubmission” navigating feature on the gradebook page: As already mentioned above, this feature is has some negative effects. Consider this example: Student A resubmits an assignment 2 times and student B resubmits 5 times. When the teacher open this assignment in the gradebook, it defaults to the 5th submission. Problem is that Student A only submitted twice so the status on his submission reads “No Submission”, even though there’s a submission waiting for a grade: http://screencast.com/t/SMrvMxn8 . Suggestion: Remove “view resubmission” selector from the gradebook page altogether, like this http://screencast.com/t/RkWim5hcwZV? On the gradebook page, teachers would only see the latest submission. To see previous submissions, teacher would have to open the grading page ( http://screencast.com/t/pCecNUFlOB7V ). 3. To echo Damyon’s comment, I also think we can do away with the "Previous submission / Next submission" buttons ( http://screencast.com/t/nqGLhmiu ), since all submissions are already shown in the Submission History at the bottom of the grading page. If the intent is to allow teachers to change the grade/comment on previous submissions (again, personally, I’m not fond of this idea), then it might be cleaner (interface wise) to do it directly in the Submission History, like this: http://screencast.com/t/lMtHJwc99Sn . 4. Currently, when a teacher grades an assignment, the Assignment History is shown at the bottom of the page. This is very useful as it allows the teacher to gage the student’s progression. It would be handy if the student could also see the Assignment History when she’s constructing her resubmission ( http://screencast.com/t/JTf4oZzZII7 ). This would likely require another patch, but thought I’d mention it since it’s directly related. 5. Regarding the question of whether a resubmission should be “triggered” by the teacher (after grading) or by the student (when resubmission is sent for marking). Davo and I had a brief discussion about this a while back. I’m still not clear on all the intricacies, and I probably I don’t have the coding knowledge to make an informed opinion here, but it would be helpful have more discussion about this, since it seems to dictate some fundamental assumption about this work.
          Hide
          Graham Bowman added a comment - - edited

          I guess that the plugin has been written for Moodle 2.5? After copying the whole moodle folder from gibhub and updating the database to 2.5 I can now see the resubmission option.

          I definitely agree that the Grade to Pass setting should be included in the edit assignment page. It was a mission to find it. I have set a custom scale with 4 values: Needs Improvement, Complete, Good, Excellent. I was expecting them to be assigned values 1,2,3,4 but it looks like that isn't the case. Still it's not too difficult to set the resubmission manually.

          One thing I'm not too keen on is the "View resubmission" numbers when viewing all submissions. This should just show the most recent submission, with the option to view previous submissions when grading. I think this was mentioned earlier but now I've seen it I totally agree.

          Another annoyance, if you "Require students click submit button", after selecting allow resubmission, you still have to go back and revert to draft before they can resubmit. I would expect it to do that automatically.

          These issues I have are from the teachers point of view... from a student angle it looks great. Good work on this so far it's massive progress!

          Show
          Graham Bowman added a comment - - edited I guess that the plugin has been written for Moodle 2.5? After copying the whole moodle folder from gibhub and updating the database to 2.5 I can now see the resubmission option. I definitely agree that the Grade to Pass setting should be included in the edit assignment page. It was a mission to find it. I have set a custom scale with 4 values: Needs Improvement, Complete, Good, Excellent. I was expecting them to be assigned values 1,2,3,4 but it looks like that isn't the case. Still it's not too difficult to set the resubmission manually. One thing I'm not too keen on is the "View resubmission" numbers when viewing all submissions. This should just show the most recent submission, with the option to view previous submissions when grading. I think this was mentioned earlier but now I've seen it I totally agree. Another annoyance, if you "Require students click submit button", after selecting allow resubmission, you still have to go back and revert to draft before they can resubmit. I would expect it to do that automatically. These issues I have are from the teachers point of view... from a student angle it looks great. Good work on this so far it's massive progress!
          Hide
          Davo Smith added a comment -

          After more thought and some discussion here (and via email), I will make the following changes to the patch:

          1. I will change the way that assignments are marked as being ready for resubmissions - currently a new submission is added and marked as being a 'resubmission', I will change this so that the status of the 'current' submission is changed to 'resubmission' and the new submission record is created at the point where the student clicks on resubmit. (In cases whereby a teacher gives a grade to a student who has missed their submission deadline, a submission record will be created at the point where the resubmission is opened, but this will be there to hold the 'lack of first submission', rather than being to hold the resubmission itself).
          I think, on balance this is a better approach and will solve many of the points of confusion that I have introduced with the first version (and will allow teachers to 'take back' granted resubmissions, before students have submitted anything, as well as continuing to display the previous submission as the 'current' submission up to the point when students have submitted something new).

          2. In the light of 1., it makes more sense to drop the resubmission navigation from the 'grading overview' table and only show the most recent submission / grades in that table (this requires a bit of a rewrite of the SQL used to populate this table, but I have already done that for Fernando directly).

          3. Drop the next / previous buttons from the individual grading page - instead adding the suggested 'edit' buttons to the submission history list (again, in the light 1., teachers will continue to be able to edit their feedback to the 'current' submission until the point that the student has added a resubmission, which makes navigating through the submission history and editing it a less critical matter).

          Note that 1. will require a careful (but hopefully fairly limited) rewrite of several parts of the patch, so it may be a few evenings before I can complete it. The other parts should be quicker to do.

          I'm aware that there are still the warnings / code checker / PHP Unit tests + broken features to address, I will look at these as well.

          Show
          Davo Smith added a comment - After more thought and some discussion here (and via email), I will make the following changes to the patch: 1. I will change the way that assignments are marked as being ready for resubmissions - currently a new submission is added and marked as being a 'resubmission', I will change this so that the status of the 'current' submission is changed to 'resubmission' and the new submission record is created at the point where the student clicks on resubmit. (In cases whereby a teacher gives a grade to a student who has missed their submission deadline, a submission record will be created at the point where the resubmission is opened, but this will be there to hold the 'lack of first submission', rather than being to hold the resubmission itself). I think, on balance this is a better approach and will solve many of the points of confusion that I have introduced with the first version (and will allow teachers to 'take back' granted resubmissions, before students have submitted anything, as well as continuing to display the previous submission as the 'current' submission up to the point when students have submitted something new). 2. In the light of 1., it makes more sense to drop the resubmission navigation from the 'grading overview' table and only show the most recent submission / grades in that table (this requires a bit of a rewrite of the SQL used to populate this table, but I have already done that for Fernando directly). 3. Drop the next / previous buttons from the individual grading page - instead adding the suggested 'edit' buttons to the submission history list (again, in the light 1., teachers will continue to be able to edit their feedback to the 'current' submission until the point that the student has added a resubmission, which makes navigating through the submission history and editing it a less critical matter). Note that 1. will require a careful (but hopefully fairly limited) rewrite of several parts of the patch, so it may be a few evenings before I can complete it. The other parts should be quicker to do. I'm aware that there are still the warnings / code checker / PHP Unit tests + broken features to address, I will look at these as well.
          Hide
          Davo Smith added a comment -

          Still work in progress, so the code still needs rebasing and tidying but:

          1. Is done - brief testing shows it is working, more detailed testing still needed.
          2 + 3. Also done - need to check through carefully to make sure no redundant code / variables still hanging around.

          Not yet started on code checker / unit tests.

          Show
          Davo Smith added a comment - Still work in progress, so the code still needs rebasing and tidying but: 1. Is done - brief testing shows it is working, more detailed testing still needed. 2 + 3. Also done - need to check through carefully to make sure no redundant code / variables still hanging around. Not yet started on code checker / unit tests.
          Hide
          Damyon Wiese added a comment -

          Thanks again Davo - I'll have time to look over this again tomorrow.

          Cheers - Damyon

          Show
          Damyon Wiese added a comment - Thanks again Davo - I'll have time to look over this again tomorrow. Cheers - Damyon
          Hide
          Fernando Oliveira added a comment -

          For anyone who wants to test this patch on Moodle 2.4:

          1. Go this GitHub repository: https://github.com/fernandooliveira/moodlefn-assignment_resubmission

          2. Click on the “zip” button (http://screencast.com/t/tA6rZpuZ) and download the file. The zip will contain a directory called “moodlefn-assignment_resubmission-master”. Rename this directory to “assign”.

          3. Replace /yourmoodlesite/mod/assign with the new assign directory that you download from GitHub.

          4. Log into your Moodle site as admin to trigger the database update.

          Please do not test this on your production server.

          Show
          Fernando Oliveira added a comment - For anyone who wants to test this patch on Moodle 2.4: 1. Go this GitHub repository: https://github.com/fernandooliveira/moodlefn-assignment_resubmission 2. Click on the “zip” button ( http://screencast.com/t/tA6rZpuZ ) and download the file. The zip will contain a directory called “moodlefn-assignment_resubmission-master”. Rename this directory to “assign”. 3. Replace /yourmoodlesite/mod/assign with the new assign directory that you download from GitHub. 4. Log into your Moodle site as admin to trigger the database update. Please do not test this on your production server.
          Hide
          Martin Matthews added a comment -

          Thanks for that Fernando, helped a lot. Currently trying to set up a test run complete with outcomes.

          Show
          Martin Matthews added a comment - Thanks for that Fernando, helped a lot. Currently trying to set up a test run complete with outcomes.
          Hide
          Martin Matthews added a comment -

          I have grabbed a few minutes here and there through the day to try the module so these thoughts are not necessarily based on a lot of experience or well considered! I wanted to feedback before next week.

          I was happy with the way the module worked for the teacher. The student's bit confused me. To resubmit the student has to click a button which says edit submission. That is just about acceptable if it means not needing to mess with too much in the assignment module code. However when they do click it they see their original work (upload). They now don't know whether they should leave it, delete it or open and edit it thinking it will save back to Moodle. To me the upload area should be empty prior to resubmission.

          I will try to get a better look at it next week but well done so far.

          Show
          Martin Matthews added a comment - I have grabbed a few minutes here and there through the day to try the module so these thoughts are not necessarily based on a lot of experience or well considered! I wanted to feedback before next week. I was happy with the way the module worked for the teacher. The student's bit confused me. To resubmit the student has to click a button which says edit submission. That is just about acceptable if it means not needing to mess with too much in the assignment module code. However when they do click it they see their original work (upload). They now don't know whether they should leave it, delete it or open and edit it thinking it will save back to Moodle. To me the upload area should be empty prior to resubmission. I will try to get a better look at it next week but well done so far.
          Hide
          Fernando Oliveira added a comment -

          Martin, you should see a "Resubmit Assignment" button like this: http://screencast.com/t/jiVyWQyBuQso

          Show
          Fernando Oliveira added a comment - Martin, you should see a "Resubmit Assignment" button like this: http://screencast.com/t/jiVyWQyBuQso
          Hide
          Martin Matthews added a comment -

          Told you I was rushed and not sure of what I was saying! I had marked it as complete so off course no submission was possible. However, I still maintain that a student should not be able to edit a submission which has been graded so that may still be a problem.

          Another thought. Would the drop down which allows you to lock or unlock the listed submissions be a useful place to allow a new resubmission on a block basis (I would have to allow automatically so it wouldn't worry me either way).

          Show
          Martin Matthews added a comment - Told you I was rushed and not sure of what I was saying! I had marked it as complete so off course no submission was possible. However, I still maintain that a student should not be able to edit a submission which has been graded so that may still be a problem. Another thought. Would the drop down which allows you to lock or unlock the listed submissions be a useful place to allow a new resubmission on a block basis (I would have to allow automatically so it wouldn't worry me either way).
          Hide
          Davo Smith added a comment -

          Quick update:

          • allow/prevent resubmission now appears to be working solidly for single-user submissions (not tried team submissions yet)
          • batch allow/prevent resubmission now available
          • resubmission default option removed (as batch operation is a better way to handle this)
          • codechecker errors / warnings fixed (except for 1 error that is forced by matching the function being overridden in the parent class)

          Still need to work on team resubmissions (or at least test it), grading worksheet upload (test to see if it works), unit tests (install phpunit first ...)

          I hope to get time to finish this before I head off to the Moodle Moot next week ...

          Show
          Davo Smith added a comment - Quick update: allow/prevent resubmission now appears to be working solidly for single-user submissions (not tried team submissions yet) batch allow/prevent resubmission now available resubmission default option removed (as batch operation is a better way to handle this) codechecker errors / warnings fixed (except for 1 error that is forced by matching the function being overridden in the parent class) Still need to work on team resubmissions (or at least test it), grading worksheet upload (test to see if it works), unit tests (install phpunit first ...) I hope to get time to finish this before I head off to the Moodle Moot next week ...
          Hide
          Martin Dougiamas added a comment -

          Damyon, I was just hearing from Fernando about this at the CA moot. TTYL

          Show
          Martin Dougiamas added a comment - Damyon, I was just hearing from Fernando about this at the CA moot. TTYL
          Hide
          Fernando Oliveira added a comment - - edited

          This proposed resubmission functionality makes good sense to me and I’m excited to see that it’s coming together. However, I'm concerned that, should this system get adopted in the Moodle core, it will add yet more options to a assignment submission-handling system that is already somewhat complicated on both the teacher and student side. At the risk of pushing this too far, I would like to make 2 proposals that I think would help simplify things. Here they are:

          ----------
          Proposal 1: Get rid of the “Require students to click submit button” option in the assignment settings screen http://screencast.com/t/PYYWeSOpYIfT.

          The Moodle docs says:
          “The submit button allows students to upload draft versions of the assignment until such time as they are ready to submit. It allows students to keep a draft version of their assignment on the system until submission. Once they click the submit button they indicate to the teacher that they have finished working on the assignment.”

          Problem is that draft versions are available for grading by the teacher, which makes things confusing. Allowing students to keep “drafts” online allows them to build their submission over time. When a student decides that she is finished, then she should be able to “submit” her work. In other words, an assignment should have a status of DRAFT or SUBMITTED but not both, as is currently the case. If an assignment is in draft status, it should imply that the student has not requested a grade.

          That being said, in situations when the submission deadline is past due (or the course is nearing the end) and students have "un-submitted" work, the teacher may want to grade draft assignments so that this work does not go unrewarded. To accommodate this need, the teacher should be able to convert the submission status from DRAFT to SUBMITTED – in turn the student should automatically get notified. In effect, the teacher is "clicking" the SUBMIT button on the student's behalf. Note that teachers are still not permitted to grade a DRAFT… it must be SUBMITTED first.

          This would mean that, when working on assignments, students ALWAYS have two (separate) options:

          1) Save as draft
          2) Submit for grading

          ----------
          Proposal 2: Do away with the “Revert Submission to Draft” and “Prevent Submission Changes” option in the gradebook. http://screencast.com/t/F4OCMLEfpkR3

          I think the proposed resubmission feature covers these 2 situations. Either the ALLOWED RESUBMIT = YES, which is equivalent to “revert to draft” or ALLOW RESUBMIT = NO, which is equivalent to “prevent submission changes”.

          The Moodle docs says (http://docs.moodle.org/23/en/Assignment_settings#Require_students_click_submit_button) that the “Revert to draft” feature may be applicable in 2 situations:

          1) Teachers are providing feedback on drafts, or
          2) Where the assignment is iterative in nature.

          Again, I think the resubmission feature covers these situations and even provides a more robust feedback process via the SUBMISSION HISTORY, which allows the teacher and student to track progress over time. Moreover, if needed, the "submission comments" system could still be used, since it does not require grading: http://screencast.com/t/pjROwUJhM0b

          *********

          In short, I'm proposing we take stuff OUT. Would be good to get some feedback here… what would we lose if we adopted these 2 proposals? I think these changes would go a long way to make the submission/grading more transparent and user-friendly but it would be helpful to hear some counter points.

          Show
          Fernando Oliveira added a comment - - edited This proposed resubmission functionality makes good sense to me and I’m excited to see that it’s coming together. However, I'm concerned that, should this system get adopted in the Moodle core, it will add yet more options to a assignment submission-handling system that is already somewhat complicated on both the teacher and student side. At the risk of pushing this too far, I would like to make 2 proposals that I think would help simplify things. Here they are: ---------- Proposal 1: Get rid of the “Require students to click submit button” option in the assignment settings screen http://screencast.com/t/PYYWeSOpYIfT . The Moodle docs says: “The submit button allows students to upload draft versions of the assignment until such time as they are ready to submit. It allows students to keep a draft version of their assignment on the system until submission. Once they click the submit button they indicate to the teacher that they have finished working on the assignment.” Problem is that draft versions are available for grading by the teacher, which makes things confusing. Allowing students to keep “drafts” online allows them to build their submission over time. When a student decides that she is finished, then she should be able to “submit” her work. In other words, an assignment should have a status of DRAFT or SUBMITTED but not both, as is currently the case. If an assignment is in draft status, it should imply that the student has not requested a grade. That being said, in situations when the submission deadline is past due (or the course is nearing the end) and students have "un-submitted" work, the teacher may want to grade draft assignments so that this work does not go unrewarded. To accommodate this need, the teacher should be able to convert the submission status from DRAFT to SUBMITTED – in turn the student should automatically get notified. In effect, the teacher is "clicking" the SUBMIT button on the student's behalf. Note that teachers are still not permitted to grade a DRAFT… it must be SUBMITTED first. This would mean that, when working on assignments, students ALWAYS have two (separate) options: 1) Save as draft 2) Submit for grading ---------- Proposal 2: Do away with the “Revert Submission to Draft” and “Prevent Submission Changes” option in the gradebook. http://screencast.com/t/F4OCMLEfpkR3 I think the proposed resubmission feature covers these 2 situations. Either the ALLOWED RESUBMIT = YES, which is equivalent to “revert to draft” or ALLOW RESUBMIT = NO, which is equivalent to “prevent submission changes”. The Moodle docs says ( http://docs.moodle.org/23/en/Assignment_settings#Require_students_click_submit_button ) that the “Revert to draft” feature may be applicable in 2 situations: 1) Teachers are providing feedback on drafts, or 2) Where the assignment is iterative in nature. Again, I think the resubmission feature covers these situations and even provides a more robust feedback process via the SUBMISSION HISTORY, which allows the teacher and student to track progress over time. Moreover, if needed, the "submission comments" system could still be used, since it does not require grading: http://screencast.com/t/pjROwUJhM0b ********* In short, I'm proposing we take stuff OUT. Would be good to get some feedback here… what would we lose if we adopted these 2 proposals? I think these changes would go a long way to make the submission/grading more transparent and user-friendly but it would be helpful to hear some counter points.
          Hide
          Damyon Wiese added a comment -

          FYI merged this into master to take a look at the updates:

          https://github.com/damyon/moodle/branches/MDL-36804-master

          Show
          Damyon Wiese added a comment - FYI merged this into master to take a look at the updates: https://github.com/damyon/moodle/branches/MDL-36804-master
          Hide
          Damyon Wiese added a comment -

          Hi All

          Fernando
          Re: Proposal 1: The reason for the existing option to disable the "Require students click submit button" is that there are lots of different users of Moodle. Some (like Unis) require that students click submit to indicate that they have finished working on something and it is ready for marking. This allows teachers to see that the submission can be marked even before the deadline. Others (like small schools) may have students that would be confused by the extra step of clicking "submit" so they do not get shown the option and their uploads are always counted as "submitted". Further more - a teacher should be able to look and provide feedback for a students submission whether or not it is ready for marking.

          The reason "Lock/Unlock submissions" is there is so that a teacher who has not set a duedate/cutoffdate or is marking before the duedate/cutoffdate can prevent the student from making any more changes to a piece of marked work. I don't think the new functionality covers this use case so we need to keep this feature.

          I do agree that there is overlap between this new feature and the "Require students click submit" / "revert submissions to draft" feature. I do think we should replace that feature with this one - ie, if "Resubmission" is enabled, students submissions should be in draft status until they click the submit button. We can remove the "Revert to draft" option from the menu and replace it with "Allow resubmission".

          Perhaps we can even rename that database column so it becomes the default for this new setting.

          My last comment is in the current version the student has 2 options:

          Resubmit assignment
          and
          Resubmit assignment (empty)

          Neither of these 2 options remotely describe what happens when I click on them - I think we should have long and descriptive text on these buttons - real estate is not an issue but it is really important for students to understand the difference.

          "Start a new submission"
          "Start a new submission based on my previous attempt"
          (just a suggestion) - and add help icons with text for each

          Lastly - advanced grading forms are not shown in the submission history. This should be a simple change.

          Thanks again, Damyon

          Show
          Damyon Wiese added a comment - Hi All Fernando Re: Proposal 1: The reason for the existing option to disable the "Require students click submit button" is that there are lots of different users of Moodle. Some (like Unis) require that students click submit to indicate that they have finished working on something and it is ready for marking. This allows teachers to see that the submission can be marked even before the deadline. Others (like small schools) may have students that would be confused by the extra step of clicking "submit" so they do not get shown the option and their uploads are always counted as "submitted". Further more - a teacher should be able to look and provide feedback for a students submission whether or not it is ready for marking. The reason "Lock/Unlock submissions" is there is so that a teacher who has not set a duedate/cutoffdate or is marking before the duedate/cutoffdate can prevent the student from making any more changes to a piece of marked work. I don't think the new functionality covers this use case so we need to keep this feature. I do agree that there is overlap between this new feature and the "Require students click submit" / "revert submissions to draft" feature. I do think we should replace that feature with this one - ie, if "Resubmission" is enabled, students submissions should be in draft status until they click the submit button. We can remove the "Revert to draft" option from the menu and replace it with "Allow resubmission". Perhaps we can even rename that database column so it becomes the default for this new setting. My last comment is in the current version the student has 2 options: Resubmit assignment and Resubmit assignment (empty) Neither of these 2 options remotely describe what happens when I click on them - I think we should have long and descriptive text on these buttons - real estate is not an issue but it is really important for students to understand the difference. "Start a new submission" "Start a new submission based on my previous attempt" (just a suggestion) - and add help icons with text for each Lastly - advanced grading forms are not shown in the submission history. This should be a simple change. Thanks again, Damyon
          Hide
          Davo Smith added a comment -

          I'm at the Dublin Moodle Moot hackfest and had hoped to look at this patch during the day - it doesn't look like there will be time, so will have to wait for another couple of days (when I'm back home again).

          I'll adjust the resubmission button text strings and then look at the list I posted further up in the comments.

          Show
          Davo Smith added a comment - I'm at the Dublin Moodle Moot hackfest and had hoped to look at this patch during the day - it doesn't look like there will be time, so will have to wait for another couple of days (when I'm back home again). I'll adjust the resubmission button text strings and then look at the list I posted further up in the comments.
          Hide
          Fernando Oliveira added a comment - - edited

          Hi Damyon,

          Here’s my frustration with the current “require... submit button” option: Unless I haven’t quite figured things out (which is entirely possible), there isn’t a way for the teacher to prevent drafts from showing up in the gradebook.

          IMHO, grade-able drafts complicate the gradebook and the grading process in general and it would be very helpful if teachers could turn it off. The status “Draft (not submitted)” is somewhat misleading, since it shows up in the gradebook and the teacher can grade it. In essence, the only difference between “Draft” and “Submitted” is the status description: http://screencast.com/t/WYHO28WHXOeW. Consider also that, when an assignment is in draft mode, there’s no way for the teacher to know when a student has made changes to the draft. Take this example:

          Assignment A is due in two weeks. On day one, 15 students have saved some “draft” work, with varying degrees of completeness. The teacher provides feedback to all 15 drafts. The following day, X number of students have updated their draft... but which ones? The teacher has no way of knowing which drafts have been changed so she has to check all submissions manually. Moreover, with no logging system to track changes, the teacher must figure out what part (if any) of the submission has been changed. If the teacher wants to provide regular feedback, she must do this on daily basis until the due date arrives. Throw in a few more assignments and this quickly becomes unmanageable.

          In regards to your suggestion to replace the “require... submit button” with “if "Resubmission" is enabled, students submissions should be in draft status until they click the submit button” … still have to give it more thought, but I don’t think it resolves the issue mentioned above. I’m my mind, Drafts and Resubmissions are two different beasts… and, to further the analogy, if the idea is to keep the Draft beast in the family, then we should probably keep them separate. I know this is obvious, but still helpful (for me at least) to keep in mind:

          • A resubmission can only happen after a submission (each resubmission is like a separate/additional submission)
          • A draft is a single submission that can be edited multiple times (changes are made to the SAME submission).

          Here’s an alternative remedy. If the intent is to keep the current Draft system in place, we could leave the “require... submit button” option in the settings page but make it behave like this:

          If “require... submit button = YES”, then do not show drafts in the gradebook until the student actually clicks on the “submit assignment” button. This way, if teachers want to be able to have back-and-forth feedback with draft assignments (and/or avoid the extra step of clicking “submit” button), they can set “require… submit button=NO”, but if a teacher wants to ONLY use the (proposed) resubmission system for feedback, then they can set “require... submit button=YES”.

          Not the most elegant way of doing it, but would provide teacher with the option of NOT showing drafts in the gradebook. I will think about it some more tomorrow with fresh eyes to see if there’s a cleaner way of doing it. Alternative ideas/suggestions welcome.

          On a separate note… regarding the options to “Resubmit assignment” and “Resubmit assignment (empty)”, your suggestion to use long and descriptive text makes sense to me. My only concern is that having both these options at bottom of the assignment makes the screen cluttered and less user-friendly – again, it’s an aesthetic thing. What do you think about sticking to a single “Resubmit this assignment” button that, if clicked, show the two options. Same idea as when a teacher tries to duplicate an activity or delete a block… something like this: http://screencast.com/t/IvtoxuBZN

          Thx,
          Fernando

          Show
          Fernando Oliveira added a comment - - edited Hi Damyon, Here’s my frustration with the current “require... submit button” option: Unless I haven’t quite figured things out (which is entirely possible), there isn’t a way for the teacher to prevent drafts from showing up in the gradebook. IMHO, grade-able drafts complicate the gradebook and the grading process in general and it would be very helpful if teachers could turn it off. The status “Draft (not submitted)” is somewhat misleading, since it shows up in the gradebook and the teacher can grade it. In essence, the only difference between “Draft” and “Submitted” is the status description: http://screencast.com/t/WYHO28WHXOeW . Consider also that, when an assignment is in draft mode, there’s no way for the teacher to know when a student has made changes to the draft. Take this example: Assignment A is due in two weeks. On day one, 15 students have saved some “draft” work, with varying degrees of completeness. The teacher provides feedback to all 15 drafts. The following day, X number of students have updated their draft... but which ones? The teacher has no way of knowing which drafts have been changed so she has to check all submissions manually. Moreover, with no logging system to track changes, the teacher must figure out what part (if any) of the submission has been changed. If the teacher wants to provide regular feedback, she must do this on daily basis until the due date arrives. Throw in a few more assignments and this quickly becomes unmanageable. In regards to your suggestion to replace the “require... submit button” with “if "Resubmission" is enabled, students submissions should be in draft status until they click the submit button” … still have to give it more thought, but I don’t think it resolves the issue mentioned above. I’m my mind, Drafts and Resubmissions are two different beasts… and, to further the analogy, if the idea is to keep the Draft beast in the family, then we should probably keep them separate. I know this is obvious, but still helpful (for me at least) to keep in mind: A resubmission can only happen after a submission (each resubmission is like a separate/additional submission) A draft is a single submission that can be edited multiple times (changes are made to the SAME submission). Here’s an alternative remedy. If the intent is to keep the current Draft system in place, we could leave the “require... submit button” option in the settings page but make it behave like this: If “require... submit button = YES”, then do not show drafts in the gradebook until the student actually clicks on the “submit assignment” button. This way, if teachers want to be able to have back-and-forth feedback with draft assignments (and/or avoid the extra step of clicking “submit” button), they can set “require… submit button=NO”, but if a teacher wants to ONLY use the (proposed) resubmission system for feedback, then they can set “require... submit button=YES”. Not the most elegant way of doing it, but would provide teacher with the option of NOT showing drafts in the gradebook. I will think about it some more tomorrow with fresh eyes to see if there’s a cleaner way of doing it. Alternative ideas/suggestions welcome. On a separate note… regarding the options to “Resubmit assignment” and “Resubmit assignment (empty)”, your suggestion to use long and descriptive text makes sense to me. My only concern is that having both these options at bottom of the assignment makes the screen cluttered and less user-friendly – again, it’s an aesthetic thing. What do you think about sticking to a single “Resubmit this assignment” button that, if clicked, show the two options. Same idea as when a teacher tries to duplicate an activity or delete a block… something like this: http://screencast.com/t/IvtoxuBZN Thx, Fernando
          Hide
          Fernando Oliveira added a comment -

          Just reread my previous post... I’m rambling... my apologies for the long post! Here’s one more thought, just in case your eyes aren’t bleeding yet...

          If a DRAFT can be graded and the ALLOW RESUBMISSION option is triggered when a submission is graded, does that mean that the resubmission system doesn’t work if “require… submit button = No”?

          Show
          Fernando Oliveira added a comment - Just reread my previous post... I’m rambling... my apologies for the long post! Here’s one more thought, just in case your eyes aren’t bleeding yet... If a DRAFT can be graded and the ALLOW RESUBMISSION option is triggered when a submission is graded, does that mean that the resubmission system doesn’t work if “require… submit button = No”?
          Hide
          Damyon Wiese added a comment -

          Hi Fernando - re your last comment - yes that is what I am proposing - (Drafts + resubmission) OR (no drafts and no resubmission)

          Show
          Damyon Wiese added a comment - Hi Fernando - re your last comment - yes that is what I am proposing - (Drafts + resubmission) OR (no drafts and no resubmission)
          Hide
          Damyon Wiese added a comment - - edited

          Re this suggestion:

          http://screencast.com/t/IvtoxuBZN

          IMO this is just adding an extra click for no benefit.

          I do like the layout/spacing of your 2 buttons though we couldn't we just stick that on the first page (with help icons)?

          Show
          Damyon Wiese added a comment - - edited Re this suggestion: http://screencast.com/t/IvtoxuBZN IMO this is just adding an extra click for no benefit. I do like the layout/spacing of your 2 buttons though we couldn't we just stick that on the first page (with help icons)?
          Hide
          Damyon Wiese added a comment -

          Also re your longer first comment:

          If you dont want to grade draft assignments, you can change the filter on the table to "submitted". If you want to see which assignments have been changed since you last gave feedback - you can use the "requires grading filter".

          I think preventing teachers from giving feedback on in-progress assignments would be a mistake. If a teacher wanted to give feedback on a draft they would have to submit it in behalf of a student (this is a also a big no no IMO) using up one of the students submission attempts, then they leave feedback, then the student has to start a new submission to continue from where they were.

          On that point above - it is important that teachers do not submit on behalf of students. It breaks the integrity of the system - and you can't go back and say this student definitely did/did not submit their assignment. In the database I specifically split it into 2 tables for this reason - all teacher actions affect only the grade table and student actions only affect the submission table.

          Thanks for the continued discussion on this feature - it will help make it as good as it can be.

          Show
          Damyon Wiese added a comment - Also re your longer first comment: If you dont want to grade draft assignments, you can change the filter on the table to "submitted". If you want to see which assignments have been changed since you last gave feedback - you can use the "requires grading filter". I think preventing teachers from giving feedback on in-progress assignments would be a mistake. If a teacher wanted to give feedback on a draft they would have to submit it in behalf of a student (this is a also a big no no IMO) using up one of the students submission attempts, then they leave feedback, then the student has to start a new submission to continue from where they were. On that point above - it is important that teachers do not submit on behalf of students. It breaks the integrity of the system - and you can't go back and say this student definitely did/did not submit their assignment. In the database I specifically split it into 2 tables for this reason - all teacher actions affect only the grade table and student actions only affect the submission table. Thanks for the continued discussion on this feature - it will help make it as good as it can be.
          Hide
          Fernando Oliveira added a comment -

          Hi Damyon (and all),

          Thanks for the feedback.

          The trick, of course, is to simplify without sacrificing functionality... not so easy, as seen in this discussion and many other Moodle forums. Still, it’s worth the effort, especially on anything that touches the gradebook, which, IMO, is a very unwieldy machine.

          However, I don’t want to hijack the discussion here with side-issues, so I’ll just leave you with my 2 main suggestions and then move on:

          • A. Remove the “Require... submit button” option from the setting page and make draft-control a default function. In other words, students ALWAYS have the option to Save as Draft or Submit for Marking, like this: http://screencast.com/t/bfFoHmj8Hn
          • B. Allow teachers to provide feedback to draft assignments, but NOT A GRADE - unless the assignment is "locked" (http://screencast.com/t/8VBQMTHSHMO). Also, in the grading interface, since “Drafts” are “not submitted”, the Filter option “Submitted” should be changed to “Draft” to avoid the current discrepancy shown here: http://screencast.com/t/Q1R7Ltf6gZ

          That said, while I think these suggestions (or some variation) could help simplify the assignment resubmission options/process, they aren’t a prerequisite for the proposed resubmission feature itself so I won’t perseverate on this any further (thanks for hearing me out). Instead, it might be helpful to figure out how the resubmission handling will work ALONGSIDE the existing Draft/Require-submit-button system. Still need to wrap my head around the various configurations! Here’s some questions that might prompt further thinking:

          • Question 2: How would the “Require submit button” and “Allow resubmit” options work together? What changes do we need to make (if any) to simplify the Save draft/Submit options on the student side? If we just take the existing functionality on both systems, would the options look this this? http://screencast.com/t/uNNivzeITHab
          • Question 3: If the options chart in Question2 is correct, should we prevent “Edit Draft” and “Resubmit” options from showing up together after an assignment has been graded? http://screencast.com/t/sv9ev2MLQV

          I apologize if I’m making things overly complicated. Just trying to cover all the bases so that we can integrate the resubmission feature in a way that makes it easy to use.

          Fernando

          Show
          Fernando Oliveira added a comment - Hi Damyon (and all), Thanks for the feedback. The trick, of course, is to simplify without sacrificing functionality... not so easy, as seen in this discussion and many other Moodle forums. Still, it’s worth the effort, especially on anything that touches the gradebook, which, IMO, is a very unwieldy machine. However, I don’t want to hijack the discussion here with side-issues, so I’ll just leave you with my 2 main suggestions and then move on: A. Remove the “Require... submit button” option from the setting page and make draft-control a default function. In other words, students ALWAYS have the option to Save as Draft or Submit for Marking, like this: http://screencast.com/t/bfFoHmj8Hn B. Allow teachers to provide feedback to draft assignments, but NOT A GRADE - unless the assignment is "locked" ( http://screencast.com/t/8VBQMTHSHMO ). Also, in the grading interface, since “Drafts” are “not submitted”, the Filter option “Submitted” should be changed to “Draft” to avoid the current discrepancy shown here: http://screencast.com/t/Q1R7Ltf6gZ That said, while I think these suggestions (or some variation) could help simplify the assignment resubmission options/process, they aren’t a prerequisite for the proposed resubmission feature itself so I won’t perseverate on this any further (thanks for hearing me out). Instead, it might be helpful to figure out how the resubmission handling will work ALONGSIDE the existing Draft/Require-submit-button system. Still need to wrap my head around the various configurations! Here’s some questions that might prompt further thinking: Question 1: How does the “Require… submit button” effect the Submission status of an assignment? Does it work like this? http://screencast.com/t/rJb4bKAyt Question 2: How would the “Require submit button” and “Allow resubmit” options work together? What changes do we need to make (if any) to simplify the Save draft/Submit options on the student side? If we just take the existing functionality on both systems, would the options look this this? http://screencast.com/t/uNNivzeITHab Question 3: If the options chart in Question2 is correct, should we prevent “Edit Draft” and “Resubmit” options from showing up together after an assignment has been graded? http://screencast.com/t/sv9ev2MLQV Question 4: On the teacher side, how/where do we use “Allow Resubmission” vs. “Revert to Draft”? Do we do it like this? http://screencast.com/t/G2S9kNLQfwf I apologize if I’m making things overly complicated. Just trying to cover all the bases so that we can integrate the resubmission feature in a way that makes it easy to use. Fernando
          Hide
          Martin Matthews added a comment -

          Damyon said:

          "Hi Fernando - re your last comment - yes that is what I am proposing - (Drafts + resubmission) OR (no drafts and no resubmission)"

          Again I am posting without the time to either read properly or experiment so please feel free to correct me. I NEVER allow students to submit work. They only upload work when it is in a (supposedly) fit state to mark. All drafts are kept locally by them. I would ALWAYS allow resubmissions. If I understand the quoted bit I would fit into the new system perfectly so wanted to speak up for it! I cannot see the need for both draft/submitted and resubmission personally but obviously everyone works differently. What would be the need?

          Show
          Martin Matthews added a comment - Damyon said: "Hi Fernando - re your last comment - yes that is what I am proposing - (Drafts + resubmission) OR (no drafts and no resubmission)" Again I am posting without the time to either read properly or experiment so please feel free to correct me. I NEVER allow students to submit work. They only upload work when it is in a (supposedly) fit state to mark. All drafts are kept locally by them. I would ALWAYS allow resubmissions. If I understand the quoted bit I would fit into the new system perfectly so wanted to speak up for it! I cannot see the need for both draft/submitted and resubmission personally but obviously everyone works differently. What would be the need?
          Hide
          Davo Smith added a comment -

          I wanted to quickly share my experience of marking assignments.

          When I was teaching BTEC assignments, students were allowed 1 first submission and 1 resubmission.

          When working under such restrictions, I do not want students to lose their resubmissions due to me marking work that they had not finished. In this case it is very important that the students click on 'submit for marking' so that I know that they consider the submission complete and ready for marking.

          However, in the same situation they may be finishing their initial submission over a number of weeks, so it is quite reasonable for them to upload sections of the work as they are going along (to avoid them forgetting a section when preparing the final submission). I also, sometimes, asked them to upload, without submitting, the first section of an assignment so I could check they were on-target to complete the work for the deadline.

          I think this is a situation where it is clear that 'drafts ('submit for marking' button) + resubmissions' is a valid situation. From Fernando's use-case, it appears that 'no drafts (no 'submit for marking' button) + resubmissions' is also a valid requirement.

          The one place it gets messy is the following case:

          • No 'submit for marking' button
          • Student uploads work
          • Teacher marks work and selects 'No' for resubmission
          • Teacher does not 'lock' the submission.

          At this point the student can continue to edit the submission (referring back to the BTEC use-case I referred to above, this is often what I would have wanted, so I give a quick bit of feedback to say 'thank you for uploading the first task, now get on with the rest of the tasks before the deadline'). Maybe it is worth extending the 'Resubmission' option on the grading screen to have the following options, when the 'submit for marking' button is disabled (rewording may be needed):

          • Allow resubmission (this would set the status to 'resub' and the student would see the resubmission buttons)
          • Lock submission (student is no longer able to make any changes, no resubmission allowed)
          • Allow student to continue editing current submission (nothing changes - student can continue to edit)
          Show
          Davo Smith added a comment - I wanted to quickly share my experience of marking assignments. When I was teaching BTEC assignments, students were allowed 1 first submission and 1 resubmission. When working under such restrictions, I do not want students to lose their resubmissions due to me marking work that they had not finished. In this case it is very important that the students click on 'submit for marking' so that I know that they consider the submission complete and ready for marking. However, in the same situation they may be finishing their initial submission over a number of weeks, so it is quite reasonable for them to upload sections of the work as they are going along (to avoid them forgetting a section when preparing the final submission). I also, sometimes, asked them to upload, without submitting, the first section of an assignment so I could check they were on-target to complete the work for the deadline. I think this is a situation where it is clear that 'drafts ('submit for marking' button) + resubmissions' is a valid situation. From Fernando's use-case, it appears that 'no drafts (no 'submit for marking' button) + resubmissions' is also a valid requirement. The one place it gets messy is the following case: No 'submit for marking' button Student uploads work Teacher marks work and selects 'No' for resubmission Teacher does not 'lock' the submission. At this point the student can continue to edit the submission (referring back to the BTEC use-case I referred to above, this is often what I would have wanted, so I give a quick bit of feedback to say 'thank you for uploading the first task, now get on with the rest of the tasks before the deadline'). Maybe it is worth extending the 'Resubmission' option on the grading screen to have the following options, when the 'submit for marking' button is disabled (rewording may be needed): Allow resubmission (this would set the status to 'resub' and the student would see the resubmission buttons) Lock submission (student is no longer able to make any changes, no resubmission allowed) Allow student to continue editing current submission (nothing changes - student can continue to edit)
          Hide
          Martin Matthews added a comment -

          It does seem that all combinations need to be available. I don't use drafts because our manager sees fit to allow unlimited submissions which is, thankfully, not the case in many colleges. My main concern all along is that students should be able to resubmit new work but not be able to affect the old, marked submission in any way. Once work has been marked it should not be open to student changes. If feedback can be linked to submission it helps a lot and that is what this development offers.

          Show
          Martin Matthews added a comment - It does seem that all combinations need to be available. I don't use drafts because our manager sees fit to allow unlimited submissions which is, thankfully, not the case in many colleges. My main concern all along is that students should be able to resubmit new work but not be able to affect the old, marked submission in any way. Once work has been marked it should not be open to student changes. If feedback can be linked to submission it helps a lot and that is what this development offers.
          Hide
          Kevin Dempsey added a comment -

          I'll share our high schoolper rspective on this:

          Our current customized 1.9 system gives choices
          to "Save and work on later" or "submit", which is perfect. The problem in 2.4 is
          that requiring students to click submit seems to result in several more
          clicks and screenloads than we are used to, and for our poor (remote communities) connectivity, this is a problem.

          Ideally, we'd like the same system we have now:

          1. student opens an assignment
          2. student works on assignment immediately
          3. student clicks either "save and work on this later" or "submit"

          Instead our choices are:

          1. student opens assignment
          2. student clicks "add submission" and waits for screenload
          3. student works on assignment
          4. student clicks "save changes" (becomes a draft, no need to click submit)

          or

          1. 2. 3. same as above
          4. student clicks "save changes" waits for screenload
          5. student scrolls to bottom again, clicks "submit" waits for screenload
          6. student clicks "continue" waits for screenload

          This last option is time consuming and requires our students to remember
          to submit after saving, which many will forget to do.

          With regards to people working on an assignment over an extended period of time through multiple drafts, we would do one of two things:
          a) allow for resubmissions
          b) have two separate assignments so that one can be submitted as a first draft to be edited, but the final draft is a separate assignment/submission.

          Show
          Kevin Dempsey added a comment - I'll share our high schoolper rspective on this: Our current customized 1.9 system gives choices to "Save and work on later" or "submit", which is perfect. The problem in 2.4 is that requiring students to click submit seems to result in several more clicks and screenloads than we are used to, and for our poor (remote communities) connectivity, this is a problem. Ideally, we'd like the same system we have now: 1. student opens an assignment 2. student works on assignment immediately 3. student clicks either "save and work on this later" or "submit" Instead our choices are: 1. student opens assignment 2. student clicks "add submission" and waits for screenload 3. student works on assignment 4. student clicks "save changes" (becomes a draft, no need to click submit) or 1. 2. 3. same as above 4. student clicks "save changes" waits for screenload 5. student scrolls to bottom again, clicks "submit" waits for screenload 6. student clicks "continue" waits for screenload This last option is time consuming and requires our students to remember to submit after saving, which many will forget to do. With regards to people working on an assignment over an extended period of time through multiple drafts, we would do one of two things: a) allow for resubmissions b) have two separate assignments so that one can be submitted as a first draft to be edited, but the final draft is a separate assignment/submission.
          Hide
          Damyon Wiese added a comment -

          Thanks for the comments - Based on the feedback I think we should not make any changes to the draft/submit button as part of this feature.

          Regarding the extra screen reload for submitting an assignment - we could look at ways to improve that in a separate issue (I opened an issue - MDL-38270).

          Show
          Damyon Wiese added a comment - Thanks for the comments - Based on the feedback I think we should not make any changes to the draft/submit button as part of this feature. Regarding the extra screen reload for submitting an assignment - we could look at ways to improve that in a separate issue (I opened an issue - MDL-38270 ).
          Hide
          Fernando Oliveira added a comment -

          Sorry hear that, Damyon... was hoping this would lead to some simplification around the draft/resubmit functions. Thanks for considering it just the same. I have created a separate tracker issue here https://tracker.moodle.org/browse/MDL-38283 to see if there's any interest in continuing to push the discussion forward.

          In your previous post you proposed "(Drafts + resubmission) OR (no drafts and no resubmission)". Have you considered an additional option of "No Drafts + Resubmission"?

          Thx,
          Fernando

          Show
          Fernando Oliveira added a comment - Sorry hear that, Damyon... was hoping this would lead to some simplification around the draft/resubmit functions. Thanks for considering it just the same. I have created a separate tracker issue here https://tracker.moodle.org/browse/MDL-38283 to see if there's any interest in continuing to push the discussion forward. In your previous post you proposed "(Drafts + resubmission) OR (no drafts and no resubmission)". Have you considered an additional option of "No Drafts + Resubmission"? Thx, Fernando
          Hide
          Davo Smith added a comment -

          I've tidied the commits into one commit.

          As far as I am aware, the outstanding issues are:

          • Advanced grading not showing in submission history
          • Team submissions (not tested by me, so I don't know the current status)
          • Grading worksheet upload (not tested by me, so I don't know the current status)
          • Unit tests

          Damyon - if you can take on any/all of the above, that would be much appreciated, as I'm getting pretty pushed for time at the moment.

          Show
          Davo Smith added a comment - I've tidied the commits into one commit. As far as I am aware, the outstanding issues are: Advanced grading not showing in submission history Team submissions (not tested by me, so I don't know the current status) Grading worksheet upload (not tested by me, so I don't know the current status) Unit tests Damyon - if you can take on any/all of the above, that would be much appreciated, as I'm getting pretty pushed for time at the moment.
          Hide
          Damyon Wiese added a comment -

          Thanks Davo - I'll go through this in the next couple of days and try and address all 4 points above.

          • Damyon
          Show
          Damyon Wiese added a comment - Thanks Davo - I'll go through this in the next couple of days and try and address all 4 points above. Damyon
          Hide
          Damyon Wiese added a comment -

          Hi all - still working on the cleanup of this code - my WIP is here:

          https://github.com/damyon/moodle/branches/MDL-36804-master

          Show
          Damyon Wiese added a comment - Hi all - still working on the cleanup of this code - my WIP is here: https://github.com/damyon/moodle/branches/MDL-36804-master
          Hide
          Davo Smith added a comment -

          Hi Damyon.

          I just had a quick glance through the changes you have made on top of my changes.

          Many good changes in there, but I'm a bit concerned about some of the code you've stripped out.

          • It now doesn't seem possible to allow/disallow new submissions from the overview page (either via the actions drop-down or the 'bulk actions' drop down). This is going to make it very difficult for teachers who use the 'quick grading' option to have control over which students are allowed further attempts (without having to go through each grading screen one at a time, somewhat negating the usefulness of 'quick grading').
          • When trying it out, after grading via quick-grading then visiting the grading page, I no longer had an option to allow / disallow further submissions (when I logged in as a student I was able to make further edits to my submission, but not start a new submission). Could this be related to me grading an empty submission, before the student handed anything in?
          • There were a few places where I corrected PHP Docs (e.g. PHPDocs stated '@return void' when the actual return type was string, or places where parameters were missing) - has this been reverted as it belongs in a separate issue?
          • The functionality for copying the previous submission seems to have been retained within the submission plugins, but removed from the base class. The functions to (optionally) call this when a student starts their next submission also appear to have gone (or have they moved elsewhere and I've missed it?)
          • The $submission parameter I added to the precheck_submission and submit_for_grading functions has been taken out again. This was added so that the plugin handling the submission would know exactly which submission it was processing (given that there are now multiple submissions per user). Is it a bad idea to have it there?
          • There were a number of places where I switched 'status != DRAFT' checks to 'status == SUBMITTED', as the new state 'resub' (or 'reopened' as you've renamed it), is, effectively, a non-submitted state (in that the work has been submitted, but the next lot has not been submitted, so it is not ready to be treated as 'submitted' again). By reverting that change (back to checking for 'status != DRAFT'), you seem to be treating 'reopened' as 'submitted' in a few places (but I may be getting totally confused in here).

          Overall, I do like the moving of the user state (extension, lock, etc.) in to a new table - it makes it a lot cleaner. Also a lot of nice tidy-ups to the settings page and other sections.

          Looking forward to seeing the final version.

          Show
          Davo Smith added a comment - Hi Damyon. I just had a quick glance through the changes you have made on top of my changes. Many good changes in there, but I'm a bit concerned about some of the code you've stripped out. It now doesn't seem possible to allow/disallow new submissions from the overview page (either via the actions drop-down or the 'bulk actions' drop down). This is going to make it very difficult for teachers who use the 'quick grading' option to have control over which students are allowed further attempts (without having to go through each grading screen one at a time, somewhat negating the usefulness of 'quick grading'). When trying it out, after grading via quick-grading then visiting the grading page, I no longer had an option to allow / disallow further submissions (when I logged in as a student I was able to make further edits to my submission, but not start a new submission). Could this be related to me grading an empty submission, before the student handed anything in? There were a few places where I corrected PHP Docs (e.g. PHPDocs stated '@return void' when the actual return type was string, or places where parameters were missing) - has this been reverted as it belongs in a separate issue? The functionality for copying the previous submission seems to have been retained within the submission plugins, but removed from the base class. The functions to (optionally) call this when a student starts their next submission also appear to have gone (or have they moved elsewhere and I've missed it?) The $submission parameter I added to the precheck_submission and submit_for_grading functions has been taken out again. This was added so that the plugin handling the submission would know exactly which submission it was processing (given that there are now multiple submissions per user). Is it a bad idea to have it there? There were a number of places where I switched 'status != DRAFT' checks to 'status == SUBMITTED', as the new state 'resub' (or 'reopened' as you've renamed it), is, effectively, a non-submitted state (in that the work has been submitted, but the next lot has not been submitted, so it is not ready to be treated as 'submitted' again). By reverting that change (back to checking for 'status != DRAFT'), you seem to be treating 'reopened' as 'submitted' in a few places (but I may be getting totally confused in here). Overall, I do like the moving of the user state (extension, lock, etc.) in to a new table - it makes it a lot cleaner. Also a lot of nice tidy-ups to the settings page and other sections. Looking forward to seeing the final version.
          Hide
          Damyon Wiese added a comment -

          Thanks for taking a look at the branch Davo - you will know this better than anyone.

          Don't worry about the missing features - I am writing unit tests and then implementing one piece of the original patch at a time. So all the features will make it to the final version.

          Re: quick grading - (bane of my life) - I haven't tried it yet but definitely will add unit tests for it since you mentioned you found a bug.

          Re: Docs - it's because I am moving code between the two branches piece by piece in order to make sure unit tests cover as much of the new code as possible. I'll check for the docs edits and make sure they come across.

          Re: The copy submission will be there - it's just not moved yet.

          Re: Thanks for mentioning the changes to the precheck and submit_for_grading functions - I'll make sure I don't miss them.

          Re: status == SUBMITTED - I changed the ones that I caught with a unit test - I'll search for status != DRAFT to make sure I get them all (and see if there can be a unit test for this).

          Thanks again.

          Show
          Damyon Wiese added a comment - Thanks for taking a look at the branch Davo - you will know this better than anyone. Don't worry about the missing features - I am writing unit tests and then implementing one piece of the original patch at a time. So all the features will make it to the final version. Re: quick grading - (bane of my life) - I haven't tried it yet but definitely will add unit tests for it since you mentioned you found a bug. Re: Docs - it's because I am moving code between the two branches piece by piece in order to make sure unit tests cover as much of the new code as possible. I'll check for the docs edits and make sure they come across. Re: The copy submission will be there - it's just not moved yet. Re: Thanks for mentioning the changes to the precheck and submit_for_grading functions - I'll make sure I don't miss them. Re: status == SUBMITTED - I changed the ones that I caught with a unit test - I'll search for status != DRAFT to make sure I get them all (and see if there can be a unit test for this). Thanks again.
          Hide
          Damyon Wiese added a comment -

          The branch is now fairly complete. I have added the code for team submissions - but it needs more testing. Will do so tomorrow (and write dev docs for integration).

          Show
          Damyon Wiese added a comment - The branch is now fairly complete. I have added the code for team submissions - but it needs more testing. Will do so tomorrow (and write dev docs for integration).
          Hide
          Davo Smith added a comment -

          Great - thanks Damyon. I'll try and take a look at it later tonight.

          Show
          Davo Smith added a comment - Great - thanks Damyon. I'll try and take a look at it later tonight.
          Hide
          Fernando Oliveira added a comment -

          Hi Damyon,

          Here’s some feedback on the latest code. Mostly about semantics and layout…

          -1. Attempt Number: If the submission has not been graded, and the assignment has a “resubmissions = manual” setting, the “Unlimited attempts are not allowed” message doesn’t make sense here: http://screencast.com/t/0kuC3To8h4L . In other words, until the teacher has graded the work (or provided feedback), a decision has not been made as to allow or prohibit a resubmission. In the meantime, it is just “submitted for grading”.

          I suppose the “unlimited attempts are allowed” message could be shown AFTER the teacher has graded the submission, but even then it’s somewhat misleading since the teacher can stop allowing resubmissions at any point... so it's not really unlimited. Perhaps we need some kind of On/Off indicator here… something like: “Resubmission is ALLOWED” and “Resubmission is NOT ALLOWED”, or something like that.

          -2. Assignment Settings Screen: What do you think about using the word “Resubmission” instead of “Attempts” and “Open”, as shown here: http://screencast.com/t/csBSWIvJ4c . This seems clearer to me, but I guess it comes down to personal preference.

          -3. Alignment: Some of the elements are centred on the page while others are left-justified. What do you think about centering everything, as shown here:

          -Student Side: http://screencast.com/t/ImSrMEgJW > http://screencast.com/t/d2BD9fBAP7
          -Teacher side: http://screencast.com/t/eFvrLHZG
          -Submission History: http://screencast.com/t/ynQNhDcrS

          Thanks for your work on this.

          Fernando

          Show
          Fernando Oliveira added a comment - Hi Damyon, Here’s some feedback on the latest code. Mostly about semantics and layout… -1. Attempt Number: If the submission has not been graded, and the assignment has a “resubmissions = manual” setting, the “Unlimited attempts are not allowed” message doesn’t make sense here: http://screencast.com/t/0kuC3To8h4L . In other words, until the teacher has graded the work (or provided feedback), a decision has not been made as to allow or prohibit a resubmission. In the meantime, it is just “submitted for grading”. I suppose the “unlimited attempts are allowed” message could be shown AFTER the teacher has graded the submission, but even then it’s somewhat misleading since the teacher can stop allowing resubmissions at any point... so it's not really unlimited. Perhaps we need some kind of On/Off indicator here… something like: “Resubmission is ALLOWED” and “Resubmission is NOT ALLOWED”, or something like that. -2. Assignment Settings Screen: What do you think about using the word “Resubmission” instead of “Attempts” and “Open”, as shown here: http://screencast.com/t/csBSWIvJ4c . This seems clearer to me, but I guess it comes down to personal preference. -3. Alignment: Some of the elements are centred on the page while others are left-justified. What do you think about centering everything, as shown here: -Student Side: http://screencast.com/t/ImSrMEgJW > http://screencast.com/t/d2BD9fBAP7 -Teacher side: http://screencast.com/t/eFvrLHZG -Submission History: http://screencast.com/t/ynQNhDcrS Thanks for your work on this. Fernando
          Hide
          Damyon Wiese added a comment -

          Thanks Fernando,

          Re 1. That makes sense I'll have another think about the language and probably have a separate message when the maxattempts is unlimited.

          Re 2. I specifically changed this to use the same/similar language as the quiz - both for consistency and clarity.

          Re 3. Yes - I tried to improve the CSS generally but not I'm not sure that I have. The goal was to fit the entire text editor in a narrow screen - but now it looks odd on a wide screen. I'll ask around for ways to improve this - if I can't find any I'll revert to the old ugly CSS.

          Show
          Damyon Wiese added a comment - Thanks Fernando, Re 1. That makes sense I'll have another think about the language and probably have a separate message when the maxattempts is unlimited. Re 2. I specifically changed this to use the same/similar language as the quiz - both for consistency and clarity. Re 3. Yes - I tried to improve the CSS generally but not I'm not sure that I have. The goal was to fit the entire text editor in a narrow screen - but now it looks odd on a wide screen. I'll ask around for ways to improve this - if I can't find any I'll revert to the old ugly CSS.
          Hide
          Damyon Wiese added a comment -

          Comments for the integrator:

          The main idea behind this change is that there is an additional column on the submission and grade tables for the assignment that records the attempt number. Only the latest attempt is shown in most screens (there are some joins added to achieve this). Also - it made sense to move user specific options like extension date to their own table as they do not belong with the submission/grade attempt anymore.

          There is DB upgrade code, backup/restore code (special handling for backups from before this change included), assignment upgrade tool changes, and unit tests.

          In writing these comments I thought of what is missing (webservices). Once these are added this will be ready for integration (IMO).

          • Damyon
          Show
          Damyon Wiese added a comment - Comments for the integrator: The main idea behind this change is that there is an additional column on the submission and grade tables for the assignment that records the attempt number. Only the latest attempt is shown in most screens (there are some joins added to achieve this). Also - it made sense to move user specific options like extension date to their own table as they do not belong with the submission/grade attempt anymore. There is DB upgrade code, backup/restore code (special handling for backups from before this change included), assignment upgrade tool changes, and unit tests. In writing these comments I thought of what is missing (webservices). Once these are added this will be ready for integration (IMO). Damyon
          Hide
          Damyon Wiese added a comment -

          Webservice changes added (and I changed the unit test to show the failure - should only return the latest grade/submission for each student).

          Show
          Damyon Wiese added a comment - Webservice changes added (and I changed the unit test to show the failure - should only return the latest grade/submission for each student).
          Hide
          Damyon Wiese added a comment -

          Added one commit to add a CSS change which fixes the width of the left hand columns for the history and submission tables.

          Show
          Damyon Wiese added a comment - Added one commit to add a CSS change which fixes the width of the left hand columns for the history and submission tables.
          Hide
          Martin Dougiamas added a comment -

          Note for future fix: I don't think these submimssions should be represented as tables at all (for accessibility). They should be re-implemented, but this could be later, as it was already a problem in assignment.

          Show
          Martin Dougiamas added a comment - Note for future fix: I don't think these submimssions should be represented as tables at all (for accessibility). They should be re-implemented, but this could be later, as it was already a problem in assignment.
          Hide
          Amanda Doughty added a comment -

          I'm being a bit lazy asking this question without checking the code myself :/ But just in case a quick answer is available...Will this change provide an audit trail where a student can save and delete many times before the due date, but the assignment is only submitted for grading once?

          Show
          Amanda Doughty added a comment - I'm being a bit lazy asking this question without checking the code myself :/ But just in case a quick answer is available...Will this change provide an audit trail where a student can save and delete many times before the due date, but the assignment is only submitted for grading once?
          Hide
          Damyon Wiese added a comment -

          Amanda - not quite - it will make a copy of the submission when the teacher manually either grades or adds a new attempt for the student. So a student could make many changes to their submission while it is a draft, then submit it for grading and it will only be seen as one attempt.

          Show
          Damyon Wiese added a comment - Amanda - not quite - it will make a copy of the submission when the teacher manually either grades or adds a new attempt for the student. So a student could make many changes to their submission while it is a draft, then submit it for grading and it will only be seen as one attempt.
          Hide
          Damyon Wiese added a comment -

          (Just delaying this issue till next week).

          Show
          Damyon Wiese added a comment - (Just delaying this issue till next week).
          Hide
          Damyon Wiese added a comment -

          The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week.

          Thanks!

          Show
          Damyon Wiese added a comment - The main moodle.git repository has just been updated with latest weekly modifications. You may wish to rebase your PULL branches to simplify history and avoid any possible merge conflicts. This would also make integrator's life easier next week. Thanks!
          Hide
          Fernando Oliveira added a comment -

          Damyon, Can't see to find the latest code. Could you please post a link. Thanks.

          Show
          Fernando Oliveira added a comment - Damyon, Can't see to find the latest code. Could you please post a link. Thanks.
          Hide
          Dan Marsden added a comment -

          get_all_submissions uses $USER without
          global $USER;

          Show
          Dan Marsden added a comment - get_all_submissions uses $USER without global $USER;
          Show
          Dan Marsden added a comment - also: https://github.com/damyon/moodle/compare/371b7fc397a40f8a65e454df9fe2c4b3d5a7bb56...MDL-36804-master#L12R5498 $user->id should be $userid ?
          Hide
          Dan Marsden added a comment -

          also - Magic numbers - might come from existing code but we're supposed to use constants right?

          "The mailed flag can be one of 3 values: 0 is unsent, 1 is sent and 2 is do not send yet. "

          Show
          Dan Marsden added a comment - also - Magic numbers - might come from existing code but we're supposed to use constants right? "The mailed flag can be one of 3 values: 0 is unsent, 1 is sent and 2 is do not send yet. "
          Hide
          Dan Marsden added a comment -
          Show
          Dan Marsden added a comment - another one (sorry for these being separate comments instead of just one) locked/mailed shouldn't be here should they? https://github.com/damyon/moodle/compare/371b7fc397a40f8a65e454df9fe2c4b3d5a7bb56...MDL-36804-master#L22R87 https://github.com/damyon/moodle/compare/371b7fc397a40f8a65e454df9fe2c4b3d5a7bb56...MDL-36804-master#L22L87
          Hide
          Damyon Wiese added a comment -

          Thanks for looking Dan, I added a fix for the undefined variable $userid and the missing global $USER.

          The magic numbers are existing code - they should be constants but probably better to change them in a separate patch.

          Re: locked/mailed in the backup restore - yes they should be there.

          This means new backups will have a section for the user flags - but if restoring from an old backup where they were stored on the grade - the settings will still be restored.

          Note: - I rebased the branch so the links you posted don't quite match up anymore.

          Show
          Damyon Wiese added a comment - Thanks for looking Dan, I added a fix for the undefined variable $userid and the missing global $USER. The magic numbers are existing code - they should be constants but probably better to change them in a separate patch. Re: locked/mailed in the backup restore - yes they should be there. This means new backups will have a section for the user flags - but if restoring from an old backup where they were stored on the grade - the settings will still be restored. Note: - I rebased the branch so the links you posted don't quite match up anymore.
          Hide
          Dan Marsden added a comment - - edited

          No worries - the locked/mailed stuff I meant was in mod/assign/tests/externallib_test.php test_get_grades () and inserting into assign_grades which doesn't seem right.

          Show
          Dan Marsden added a comment - - edited No worries - the locked/mailed stuff I meant was in mod/assign/tests/externallib_test.php test_get_grades () and inserting into assign_grades which doesn't seem right.
          Hide
          Damyon Wiese added a comment -

          Thanks - I'll relook at the locked/mailed stuff (had to guess because the links weren't working).

          Show
          Damyon Wiese added a comment - Thanks - I'll relook at the locked/mailed stuff (had to guess because the links weren't working).
          Hide
          Damyon Wiese added a comment -

          Yes - that query in external lib will have to be changed to join on the flags table now. Thanks Dan!

          Show
          Damyon Wiese added a comment - Yes - that query in external lib will have to be changed to join on the flags table now. Thanks Dan!
          Hide
          Dan Poltawski added a comment -

          Waiting a little bit in the hope Damyon can look at the issue today

          Show
          Dan Poltawski added a comment - Waiting a little bit in the hope Damyon can look at the issue today
          Hide
          Aparup Banerjee added a comment -

          dumping my notes when i was looking at this

          • lots of the setType() PARAM issues for the new forms.

          ( ! ) Notice: Undefined property: stdClass::$configured in /Users/aparup/Sites/i/message/lib.php on line 2322
          Call Stack # Time Memory Function Location
          1 0.0002 256944

          {main}

          ( ) ../view.php:0
          2 0.2265 34734560 assign->view( ) ../view.php:53
          3 0.2265 34736144 assign->process_save_submission( ) ../locallib.php:363
          4 0.3398 37597056 assign->notify_student_submission_receipt( ) ../locallib.php:4788
          5 0.340 37731392 assign->send_notification( ) ../locallib.php:4117
          6 0.3513 37740744 assign::send_assignment_notification( ) ../locallib.php:4065
          7 0.3523 37747664 message_send( ) ../locallib.php:4036
          8 0.3524 37751336 get_message_processors( ) ../messagelib.php

          Show
          Aparup Banerjee added a comment - dumping my notes when i was looking at this lots of the setType() PARAM issues for the new forms. ( ! ) Notice: Undefined property: stdClass::$configured in /Users/aparup/Sites/i/message/lib.php on line 2322 Call Stack # Time Memory Function Location 1 0.0002 256944 {main} ( ) ../view.php:0 2 0.2265 34734560 assign->view( ) ../view.php:53 3 0.2265 34736144 assign->process_save_submission( ) ../locallib.php:363 4 0.3398 37597056 assign->notify_student_submission_receipt( ) ../locallib.php:4788 5 0.340 37731392 assign->send_notification( ) ../locallib.php:4117 6 0.3513 37740744 assign::send_assignment_notification( ) ../locallib.php:4065 7 0.3523 37747664 message_send( ) ../locallib.php:4036 8 0.3524 37751336 get_message_processors( ) ../messagelib.php
          Hide
          Damyon Wiese added a comment -

          Fix for the locked/mailed flags has been pushed.

          Show
          Damyon Wiese added a comment - Fix for the locked/mailed flags has been pushed.
          Hide
          Damyon Wiese added a comment -

          Aparup - that message lib warning sounds like something to do with your local messaging configuration - have you configured / not configured that ?

          Show
          Damyon Wiese added a comment - Aparup - that message lib warning sounds like something to do with your local messaging configuration - have you configured / not configured that ?
          Hide
          Damyon Wiese added a comment -

          Also - I think the setType issues should be dealt with in MDL-38710 (This patch adds no new forms - so most of the bugs will be existing).

          Show
          Damyon Wiese added a comment - Also - I think the setType issues should be dealt with in MDL-38710 (This patch adds no new forms - so most of the bugs will be existing).
          Hide
          Dan Poltawski added a comment -

          Hi Everyone,

          WOW! What a great discussion and collaboration on this issue. Was great to read through the development of this issue.

          I've reviewed the code and can't really find anything much to comment about:

          1. Do any of the changes in function prototypes need documenting in upgrade.txt? I'm not really familiar enough with the assign plugin system to say, it just seemed like some were public/protected and could affect third parties.
          2. Personally I prefer these types of assignments to be wrapped in parenthesis to indidcate that they are logic statements:
            $ismanual = $this->assignment->get_instance()->attemptreopenmethod == ASSIGN_ATTEMPT_REOPEN_METHOD_MANUAL;
            $hasattempts = $isunlimited || $row->attemptnumber < $this->assignment->get_instance()->maxattempts - 1;
            
          3. mod/assign/assignmentplugin.php has a needless line added
          Show
          Dan Poltawski added a comment - Hi Everyone, WOW! What a great discussion and collaboration on this issue. Was great to read through the development of this issue. I've reviewed the code and can't really find anything much to comment about: Do any of the changes in function prototypes need documenting in upgrade.txt? I'm not really familiar enough with the assign plugin system to say, it just seemed like some were public/protected and could affect third parties. Personally I prefer these types of assignments to be wrapped in parenthesis to indidcate that they are logic statements: $ismanual = $ this ->assignment->get_instance()->attemptreopenmethod == ASSIGN_ATTEMPT_REOPEN_METHOD_MANUAL; $hasattempts = $isunlimited || $row->attemptnumber < $ this ->assignment->get_instance()->maxattempts - 1; mod/assign/assignmentplugin.php has a needless line added
          Hide
          Dan Poltawski added a comment - - edited

          Thanks Damyon and everyone who worked on this issue! Damyon added an upgrade.txt so i've pushed this now.

          Its integrated into master and handed on to our super testing team!

          Show
          Dan Poltawski added a comment - - edited Thanks Damyon and everyone who worked on this issue! Damyon added an upgrade.txt so i've pushed this now. Its integrated into master and handed on to our super testing team!
          Hide
          Michael de Raadt added a comment -

          I've had some fun trying to get the unit tests to run in Oracle (not because of this issue, but MDL-35073). I've managed to complete the PHPUnit tests for MySQL and Oracle with no errors so far. I will continue this tomorrow (that's enough Oracle for one day).

          Show
          Michael de Raadt added a comment - I've had some fun trying to get the unit tests to run in Oracle (not because of this issue, but MDL-35073 ). I've managed to complete the PHPUnit tests for MySQL and Oracle with no errors so far. I will continue this tomorrow (that's enough Oracle for one day).
          Hide
          Michael de Raadt added a comment -

          Assignment unit tests pass on MSSQL and PostgreSQL also.

          Show
          Michael de Raadt added a comment - Assignment unit tests pass on MSSQL and PostgreSQL also.
          Hide
          Michael de Raadt added a comment -

          I ran into an issue with this. After grading in the assignment, the grade did not appear in the gradebook. I'll have to talk to Damyon about this.

          Show
          Michael de Raadt added a comment - I ran into an issue with this. After grading in the assignment, the grade did not appear in the gradebook. I'll have to talk to Damyon about this.
          Hide
          Michael de Raadt added a comment -

          When saving a grade in assignment, the following error was shown...

          Notice: Undefined property: stdClass::$attemptnumber in D:\xampp\htdocs\master_integration\mod\assign\locallib.php on line 1705
          
          Show
          Michael de Raadt added a comment - When saving a grade in assignment, the following error was shown... Notice: Undefined property: stdClass::$attemptnumber in D:\xampp\htdocs\master_integration\mod\assign\locallib.php on line 1705
          Hide
          Damyon Wiese added a comment -

          Thanks Michael,

          I added a branch based on current integration/master with one extra commit to fix this issue.

          Repo: git://github.com/damyon/moodle.git
          Branch: MDL-36804-master-fix1

          (Will ping Dan)

          Show
          Damyon Wiese added a comment - Thanks Michael, I added a branch based on current integration/master with one extra commit to fix this issue. Repo: git://github.com/damyon/moodle.git Branch: MDL-36804 -master-fix1 (Will ping Dan)
          Hide
          Dan Poltawski added a comment -

          Pushed that - thanks

          Show
          Dan Poltawski added a comment - Pushed that - thanks
          Hide
          Michael de Raadt added a comment -

          I will continue with the testing...

          Show
          Michael de Raadt added a comment - I will continue with the testing...
          Hide
          Michael de Raadt added a comment -

          I encountered an error attempting to save a grade for an assignment where the pass mark was set and students were allowed reattempts until they passed.

          The error was...

          Fatal error: Call to undefined method stdClass::is_passed() in D:\xampp\htdocs\master_integration\mod\assign\locallib.php on line 5510
          
          Show
          Michael de Raadt added a comment - I encountered an error attempting to save a grade for an assignment where the pass mark was set and students were allowed reattempts until they passed. The error was... Fatal error: Call to undefined method stdClass::is_passed() in D:\xampp\htdocs\master_integration\mod\assign\locallib.php on line 5510
          Hide
          Damyon Wiese added a comment -

          I just pushed another branch with a fix for Michaels latest error.

          Repo: git://github.com/damyon/moodle.git
          Branch: MDL-36804-master-fix1

          (Will ping Dan again).

          Show
          Damyon Wiese added a comment - I just pushed another branch with a fix for Michaels latest error. Repo: git://github.com/damyon/moodle.git Branch: MDL-36804 -master-fix1 (Will ping Dan again).
          Hide
          Dan Poltawski added a comment -

          I've pulled the fix in, thanks.

          (I think you meant -fix2 and thats what I pulled in)

          Show
          Dan Poltawski added a comment - I've pulled the fix in, thanks. (I think you meant -fix2 and thats what I pulled in)
          Hide
          Damyon Wiese added a comment -

          Yes - fix2. Maybe better to have a typo in a comment than in the branch.

          Show
          Damyon Wiese added a comment - Yes - fix2. Maybe better to have a typo in a comment than in the branch.
          Hide
          Michael de Raadt added a comment -

          Now, where was I...

          Show
          Michael de Raadt added a comment - Now, where was I...
          Hide
          Michael de Raadt added a comment -

          Something I noted (and this is not really a bug, but it will annoy people). In order to resubmit an attempt based on a previous attempt, the old file has to be deleted. This is not clear to students. I think the natural response would be to attempt to overwrite the previous files with a new one, but this is not possible.

          Show
          Michael de Raadt added a comment - Something I noted (and this is not really a bug, but it will annoy people). In order to resubmit an attempt based on a previous attempt, the old file has to be deleted. This is not clear to students. I think the natural response would be to attempt to overwrite the previous files with a new one, but this is not possible.
          Hide
          Michael de Raadt added a comment -

          I found that when the student was required to click Submit, the Submit button is no longer present. This might be restricted to the case where multiple attempts are allowed. Where reattempts were not allowed, the submit button still appears.

          Show
          Michael de Raadt added a comment - I found that when the student was required to click Submit, the Submit button is no longer present. This might be restricted to the case where multiple attempts are allowed. Where reattempts were not allowed, the submit button still appears.
          Hide
          Damyon Wiese added a comment - - edited

          And now fix3 for the missing submit button (when require students click submit is on).

          Sorry for all the bugs.

          Show
          Damyon Wiese added a comment - - edited And now fix3 for the missing submit button (when require students click submit is on). Sorry for all the bugs.
          Hide
          Dan Poltawski added a comment -

          Pulled that in again, over to you Michael!

          Show
          Dan Poltawski added a comment - Pulled that in again, over to you Michael!
          Hide
          Michael de Raadt added a comment -

          I found that previous attempts disappeared when blind marking was turned on. I have reported that as MDL-38973.

          Apart from that, all the show stoppers seem to be resolved.

          I hope the QA testing gives this a more thorough, focussed testing.

          Show
          Michael de Raadt added a comment - I found that previous attempts disappeared when blind marking was turned on. I have reported that as MDL-38973 . Apart from that, all the show stoppers seem to be resolved. I hope the QA testing gives this a more thorough, focussed testing.
          Hide
          Dan Poltawski added a comment -

          Did you remember to call thankDevelopers() for 'this_weeks_work'? Defaulting to PARAM_SHODDY thanking.

          line 1289 of \lib\changes.php: call to debugging()
          line 281 of \lib\are.php: call to moodleform->detectMissingThanks()
          line 202 of \lib\now.php: call to moodleform->_is_poor_form()
          line 73 of \course\upstream.php: call to moodleform->forgetingToThank()

          Show
          Dan Poltawski added a comment - Did you remember to call thankDevelopers() for 'this_weeks_work'? Defaulting to PARAM_SHODDY thanking. line 1289 of \lib\changes.php: call to debugging() line 281 of \lib\are.php: call to moodleform->detectMissingThanks() line 202 of \lib\now.php: call to moodleform->_is_poor_form() line 73 of \course\upstream.php: call to moodleform->forgetingToThank()
          Hide
          Mary Cooch added a comment -

          Removing docs_required as I mentioned this in http://docs.moodle.org/25/en/Assignment_settings

          Show
          Mary Cooch added a comment - Removing docs_required as I mentioned this in http://docs.moodle.org/25/en/Assignment_settings
          Hide
          Graham Bowman added a comment -

          I have an issue upgrading from 2.4 to 2.5 after installing the patch of this by Fernando. Explained in more detail at https://moodle.org/mod/forum/discuss.php?d=227926
          Any suggestions how to fix this?

          Show
          Graham Bowman added a comment - I have an issue upgrading from 2.4 to 2.5 after installing the patch of this by Fernando. Explained in more detail at https://moodle.org/mod/forum/discuss.php?d=227926 Any suggestions how to fix this?
          Hide
          Martin Dougiamas added a comment -

          I suspect you may have to look closely at the two database structures and upgrade them manually using SQL, then comment that bit out of mod/assign/db/upgrade.php

          Show
          Martin Dougiamas added a comment - I suspect you may have to look closely at the two database structures and upgrade them manually using SQL, then comment that bit out of mod/assign/db/upgrade.php
          Hide
          Davo Smith added a comment -

          Graham - I've answered your issue in the forum post.

          Show
          Davo Smith added a comment - Graham - I've answered your issue in the forum post.
          Hide
          Damyon Wiese added a comment -

          Please see this issue for the upgrade problem: MDL-39476. The fix has been integrated already.

          Show
          Damyon Wiese added a comment - Please see this issue for the upgrade problem: MDL-39476 . The fix has been integrated already.
          Hide
          Adam Wright added a comment -

          Originally back on the old Moodle (1.9) we could set it so submitted files could not be deleted, and reverting the assignment back to draft allowed students to submit resubmission PDFs which got attached to the end of the original piece of work. At our college we only ask for the task changes for resubmissions, not the entire piece of work again. This was good because it got tagged onto the end of the original work, and students could not delete the original submission. All annotations from submission 1 still remained.

          Show
          Adam Wright added a comment - Originally back on the old Moodle (1.9) we could set it so submitted files could not be deleted, and reverting the assignment back to draft allowed students to submit resubmission PDFs which got attached to the end of the original piece of work. At our college we only ask for the task changes for resubmissions, not the entire piece of work again. This was good because it got tagged onto the end of the original work, and students could not delete the original submission. All annotations from submission 1 still remained.
          Hide
          Martin Matthews added a comment -

          Not sure what your point is here Adam as the new system does this as well. It mimics old-fashioned paper marking where each new submission/feedback/commenting attempt is kept as a single entity which is then protected while new submissions can be complete or just the missing bits. Previous attempts are available so you can check what you asked them to do.

          Show
          Martin Matthews added a comment - Not sure what your point is here Adam as the new system does this as well. It mimics old-fashioned paper marking where each new submission/feedback/commenting attempt is kept as a single entity which is then protected while new submissions can be complete or just the missing bits. Previous attempts are available so you can check what you asked them to do.

            People

            • Votes:
              46 Vote for this issue
              Watchers:
              33 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: