Skip to content

Email templates with feedback instructions and reminders don't reflect our current policies and terminology #569

@contraexemplo

Description

@contraexemplo

If you're interested in the bigger context around this issue, I published a longer, more detailed report about it on my blog.

Context

Outreachy used to collect feedback from mentors and interns 3 times during the internship until a couple of cohorts ago:

  • Initial feedback
  • Midpoint feedback
  • Final feedback

With the introduction of a fourth feedback cycle, we started referring to feedback cycles as Feedback 1-4 and we've established that only Feedback 1 and Feedback 3 are tied to stipend payment authorizations.

Issue at hand

Outreachy organizers often send automated emails to mentors and coordinators via organizer dashboard. Currently, when an Outreachy organizer sends an automated email to remind mentors to submit Feedback 4, they're sending an email based on the following template (home/templates/home/email/final-feedback-reminder.txt):

[URGENT] Mentor feedback required for final payment to {{ intern_selection.applicant.applicant.public_name }}

Please provide feedback on your intern through the Outreachy website. Their final feedback was due on {{ intern_selection.final_feedback_due|date:"M d, Y" }}. Their final ${{ current_round.finalpayment }} payment will be delayed until you provide feedback:

Causes

We have 4 email template files on home/templates/home/email referencing Feedback 4:

  • home/templates/home/email/final-feedback-instructions.txt → Updated 2 years ago to remove wording about an intern's final stipend payment.
  • home/templates/home/email/final-feedback-reminder.txt → Updated 5 years ago, and it still includes wording about an intern's final stipend payment.
  • home/templates/home/email/feedback4-feedback-instructions.txt → Created to reflect our new feedback cycles.
  • home/templates/home/email/feedback4-feedback-reminder.txt → Created to reflect our new feedback cycles.

The organizer dashboard is still using home/templates/home/email/final-feedback-reminder.txt as a template to remind mentors to submit Feedback 4, according to dashboard.py:

class FinalFeedbackInstructions(FeedbackInstructions):
    """
    Send final feedback instructions to mentors and interns.

    When: When final feedback forms open, and again if feedback is missing.
          Emails may be sent with an URGENT subject if feedback is late.
          Emails may be sent multiple times if there is a internship extension.

    Templates: home/templates/home/email/final-feedback-reminder.txt
               home/templates/home/email/final-feedback-instructions.txt
    """
    description = 'Final Feedback Reminder'
    slug = 'final-feedback-instructions'

    @staticmethod
    def due_date(current_round):
        return current_round.finalfeedback

    def generate_messages(self, current_round, connection):
        if not self.request.user.is_staff:
            raise PermissionDenied("You are not authorized to send reminder emails.")

        # Only get interns that are in good standing and
        # where a mentor or intern hasn't submitted feedback.
        interns = current_round.get_interns_with_open_final_feedback()

        for i in interns:
            email.feedback_email(i, self.request, "final", i.is_final_feedback_on_intern_past_due(), connection=connection)

Code in email.py makes it clear why that happens:

def feedback_email(intern_selection, request, stage, past_due, **kwargs):
    emails = []
    if past_due:
        emails.append(organizers)
        for m in intern_selection.mentors.all():
            emails.append(m.mentor.email_address())
        emails = emails + intern_selection.project.project_round.community.get_coordinator_email_list()
        template = 'home/email/' + stage + '-feedback-reminder.txt'

Possible solutions

Short term

Editing home/templates/home/email/final-feedback-reminder.txt. It should use the same language used on home/templates/home/email/feedback4-feedback-reminder.txt.

Long term

While trying to find the cause of this problem, I noticed that language around feedback cycles is quite convoluted. We often use old expressions such as "initial", "midpoint", and "final feedback". We need to reach an agreement on what terminology should be used, and update our code, website, and processes accordingly.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions