Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assignment submission after due date: Allowed late days #9

Closed
soachishti opened this issue Aug 30, 2017 · 23 comments
Closed

Assignment submission after due date: Allowed late days #9

soachishti opened this issue Aug 30, 2017 · 23 comments
Assignees

Comments

@soachishti
Copy link
Collaborator

No description provided.

@recluze
Copy link
Collaborator

recluze commented Sep 3, 2017

Thanks for the good work.

If possible, let's tackle this before other enhancements (other than the reports, of course).

Brief description: For each "course", the instructor can set "allowed late days" for the course. Every student gets these for the whole course. At submission time, if they are over due, they get a question asking them if they want to use their late day (big warning). If they agree, we submit and the usual submission process continues (subtracting from their credit).

In the submission report, (there should be a little red text saying "1 late day used" in the row for the student.

If possible, we should also add a "course students" type page/view which shows how many days every student has left. (just to give them extra credit at end ... if the instructor wants.)

@soachishti soachishti changed the title Student assignment submission after due date Assignment submission after due date: Allowed late days Sep 15, 2017
@recluze
Copy link
Collaborator

recluze commented Sep 16, 2017

Did you get a chance to think about this?

@soachishti
Copy link
Collaborator Author

Not yet but it is in the plan :)

@soachishti
Copy link
Collaborator Author

@recluze When student is one day late then one will be subtracted from their credit and when they are two days late then two will be subtracted from their credit?

@bilalzaib will be working on this issue.

Expected Changes:

  1. New field in Course Model (We will change that field from admin panel) - Default: 3
  2. A new attribute in Submission which will indicate whether that submission is submitted late. (This can holds late day eg. 2 ) - Default = 0 (Zero mean on time)
  3. A small warning in Assignment report attached with student name.
  4. A new method in Student with parameter course_id which will return used_late_day by iterated through student's Assignment submissions.
  5. Available late day will be shown in Course view of student.
  6. Some changes will goes in run.py file for sending late days assignment when student opt that option.

These are the changes I can think of right now. However there are other possibilities available for (Step 2, 4) solving this problem, you can use another solution if you find easier.

@recluze
Copy link
Collaborator

recluze commented Sep 22, 2017

Thanks.

Yes, seems right. Point 6 is most important. When due date has passed, student should be given a warning that due date has passed and if they want to use their late days (should also show how many late days will be used if they say "yes" and how many total they have left). They should also be warned in bold letters that they will not be able to change their decision later.

For the submission, after they are shown the warning, they must enter the whole word "yes" (not just "y") to submit late.

Also, and this will require some thought: once a late submission has been made, they should be able to use that day to submit as many times as they want (since they just got that day). Only if they overshoot these 24 hours should they be shown the warning again ... (Let me know if this isn't clear so we can discuss).

@recluze
Copy link
Collaborator

recluze commented Sep 22, 2017

I think a better way (instead of changing the submission script) would be to have a button in the individual assignment page "Request Extension" -- if they have some days left. Once they request an extension, we can have a new table that has student_assignment_deadline information. Basically, if they request an extension for a particular assignment, we put a record in this table for student, assignment_id and due_date. This overrides the due_date in the assignment model... All the rest of the points can stay the same for record keeping.

Does this make sense?

@recluze
Copy link
Collaborator

recluze commented Sep 22, 2017

Also, "request extension" only becomes available after the due date has passed.

@soachishti
Copy link
Collaborator Author

soachishti commented Sep 24, 2017

@recluze Question; if student is trying to submit assignment after two day of due day then two "late days" will be deducted. If they are one week late then they cannot submit the assignment and "Request Extension" button will be disabled. If student requested his extension of 1 day at last minute of first day after due day then it won't be of any use for him?

Just wondering what if student start submitting assignment after month by using "Request Extension"?

Upper problem/solution can get complex, we can also limit student to use late days within first week after due date?

Hope you understood what I am trying to convey :)

@bilalzaib

@recluze
Copy link
Collaborator

recluze commented Sep 24, 2017

Assignment due date was Monday 1200hrs.

Scenario 1: Student comes to the page at 1210hrs on Monday. They see button "Request Extension" and can get one late day (provided they have the credit). They have until Tuesday 1200hrs (original due date + 24 hours) to finish the assignment.

Scenario 2: Student comes in on Tuesday 1210hrs. Now, if they want to request extension, they will have to have 2 days. (If they originally requested an extension earlier, their due date would now be Tuesday 1200hrs and they would have to request one additional day -- either way it's 2 days). Now they can submit until Wednesday 1200hrs.

Scenario 3: Same as above except they request on Wed 1210hrs and can go another 24 hours.

Scenario 4: They come in after three days. In this case, they see message: "you cannot request extension".

If this is not clear, I guess we will have to talk verbally =]

@soachishti
Copy link
Collaborator Author

soachishti commented Sep 24, 2017

Crystal clear =]

@recluze
Copy link
Collaborator

recluze commented Oct 1, 2017

Any progress on this? Since the assignments are going to be set quite frequently now, we might need this pretty soon.

@recluze
Copy link
Collaborator

recluze commented Oct 1, 2017

Ok, so I know this is your project but since you are stuck with me, I have merged #70 =]

Pull master and migrate the db on your end. I will post the changes needed on the student side in a minute.

@soachishti
Copy link
Collaborator Author

soachishti commented Oct 1, 2017

@bilalzaib Over to you. =]

@recluze
Copy link
Collaborator

recluze commented Oct 1, 2017

@soachishti Does something need to be set with permissions for new models?

@soachishti
Copy link
Collaborator Author

soachishti commented Oct 1, 2017

@recluze Where?

@recluze
Copy link
Collaborator

recluze commented Oct 1, 2017

I don't know =]

For the new model, I'm getting this error on admin backend:

Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user.

Everything else is fine, db permissions are fine, shell insertion of record for this model is fine.

@recluze
Copy link
Collaborator

recluze commented Oct 1, 2017

@soachishti @bilalzaib Got it. It's fixed. Phew.

@bilalzaib Hope you're not mad at me for ruining your code. I can explain later =]

@recluze
Copy link
Collaborator

recluze commented Oct 1, 2017

@bilalzaib Please see the extension model here: https://github.com/BilalZaib/AutoGrader/blob/2be59f29df1956946577ad36d5a41305950f4518/AutoGrade/models.py#L210

Max days is defined in Course: https://github.com/BilalZaib/AutoGrader/blob/2be59f29df1956946577ad36d5a41305950f4518/AutoGrade/models.py#L56

On the assignment submission page, if the deadline has passed (can be seen by looking at https://github.com/BilalZaib/AutoGrader/blob/2be59f29df1956946577ad36d5a41305950f4518/AutoGrade/views.py#L229 ) or corrected_due_date, the student gets a button that says, "Request Extension".

Once they click on that, you check the total number of days the student has already requested extension for for this course, not just assignment. If that is less than the days passed between now and the existing due date (again, this will be the corrected date), ask for confirmation and then add the number of days between now and the due date.

(It might not be clear from the above, so see this again: https://github.com/BilalZaib/AutoGrader/issues/undefined#issuecomment-331711148)

I think you already have this part done mostly.

Once a request is granted, just insert a record for student, assignment and days in AssignmentExtension model.

@bilalzaib
Copy link
Owner

@recluze
Sir,
I'm not mad at you but very thankful for giving an opportunity to learn something. After all work on this issue, what I've learned:
1- I'm not a smart coder because I turn simple things into complex. (Lack of practice)
2- I doesn't read requirements(instructions) carefully. (Lazy to read)
But happy part is things can be improved with time.
Moreover, I've solved the issue with my way, its working properly

@bilalzaib
Copy link
Owner

I've reviewed your solution #70

@recluze recluze assigned recluze and unassigned bilalzaib Oct 2, 2017
@recluze
Copy link
Collaborator

recluze commented Oct 2, 2017

@bilalzaib Thanks. I'm looking at your PR #71

If you get time, please discuss the reports part with @soachishti ... that might make the Autograder much more presentable/useful.

@bilalzaib
Copy link
Owner

I'll discuss with him.

@recluze
Copy link
Collaborator

recluze commented Oct 9, 2017

Closed by #81 for now. If something comes up, we'll open another issue for the bug.

@recluze recluze closed this as completed Oct 9, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants