outreachy / website

Code for the Outreachy website, based on Python, Django, and Bootstrap.
https://www.outreachy.org
GNU General Public License v3.0
246 stars 235 forks source link

Don't let mentors both terminate the internship and pay interns #293

Open sagesharp opened 5 years ago

sagesharp commented 5 years ago

Outreachy collects feedback from both interns and mentors three times during the internship: two weeks in at initial feedback, eight weeks in at mid-point feedback, and at the end of the internship at final feedback.

Mentors are asked whether their intern put in a full-time effort, and if they should be paid. If an intern hasn't put in a full-time effort, their mentor can say they should be paid and that the internship should be terminated.

One mentor this round was confused by the question on the final internship feedback form. They thought that since the intern was done with their work, the internship should be "terminated". They also checked the box that said we should pay their intern. We only want mentors to check the termination box if the internship needs to be terminated because the intern hasn't been putting in a full-time effort. It's not meant to be checked if the internship ended normally.

We should add better checking on the mentor form, to prevent this from happening in the future. For the final mentor feedback, we should throw an error if FinalMentorFeedback.request_termination and FinalMentorFeedback.payment_approved are both set to True. We should probably also throw an error if FinalMentorFeedback.termination_reason is not empty and FinalMentorFeedback.request_termination is False. These checks can be added to the FinalMentorFeedback model's clean() function.

I only want to do this for FinalMentorFeedback because there are cases where mentors want to terminate the internship at the mid-point feedback, but still want to pay their intern. For example, if an intern has health issues and cannot put in a full-time effort, we may decide it's best to terminate the internship but pay them for their work up to the mid-point.

kanglicheng commented 5 years ago

working on this (for pycon 2019 sprint)