Skip to content

Mentor and intern agreement / contract date automation #608

Description

@sagesharp

Describe the bug

Currently, the agreements mentors and interns sign (docs/intern-agreement.md and docs/mentor-agreement.md) contain hard-coded internship and payment dates.

The .md files are converted from markdown to HTML, and displayed for the participant to sign their name on the agreement. The Markdown, along with the signee's name, signature, email address, date signed, and IP address is stored as a SignedContract object. These objects are exported to JSON, and sent to Conservancy to create intern payment RT tickets.

Ideally, interns would be able to export their signed agreement to a PDF, although that is currently not implemented.

The hard coded dates mean whenever a new internship cohort application period starts, Outreachy organizers need to edit the internship dates in both intern amd mentor agreement files, make a git commit of those files, and deploy that change to the Outreachy website.

If we fail to update those dates, interns and mentors will sign an agreement with the incorrect dates, we have to delete those aigned agreements, and get all participants to re-sign them before we send them off to Conservancy.

A better way of handling dates in the internship contract would be to generate them based on the internship dates stored in the RoundPage object.

When an intern or mentor goes to sign their agreement, the Outreachy website should look up the internship and payment dates in the RoundPage associated with the internship cohort the intern is in, or the internship cohort the mentor's project is in. It should search and replace stub dates in the contract markdown, display that markdown as HTML on the contract signature page, and save the edited markdown in a SignedContract object.

To Reproduce
Steps to reproduce the behavior:

  1. Use the scenarios code to create a new internship cohort, starting the day after the intern announcement. Create an approved ApplicantApproval for this cohort which is connected your website account, and create an approved InternSelection that references that ApplicantApproval for a project under this cohort. Make sure the community participation, project, internselection, applicantapproval is all approved. Set organizer_approved = True in the InternSelection.
  2. Login with your account and go to your dashboard. You should see a 'Sign intern agreement' link.
  3. Click that link. Note the old dates in the displayed agreement HTML.

Expected behavior

The correct dates should be the same as the payment schedule in docs/internship documentation on the Outreachy website.

Testing Notes

Mentors have a different flow for signing contacts. The link is found on the project applicants page. Make sure the contract dates are displayed correctly for multiple mentors. Outreachy encourages co-mentorship, so multiple mentors can sign an agreement to mentor the same intern.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions