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

Make abandoned new community sign-ups more visible #305

Open sagesharp opened 5 years ago

sagesharp commented 5 years ago

There's a two-step process for new communities to sign up to participate in Outreachy. First, they have to fill out information about their community, such as governance structure and whether their project benefits or builds upon proprietary software. Second, they have to fill out a form about who will be sponsoring their community in this round.

Communities often start the sign-up process, but stop when they discover they need to provide internship funding. Sometimes that's because they need to check with their sponsors, and sometimes it's because they didn't realize that all communities are required to have funding for at least one intern. It would be good for Outreachy organizers to follow up with those communities that stop before they submit their sponsorship information.

The problem is that organizers only get an email when the coordinator submits the form with the sponsorship information (class ParticipationAction in /home/views.py). We don't get an email if the coordinator abandons the form without submitting sponsorship information. We can't even easily notice this issue, because the community just ends up in the list of 'past participating communities' on the community CFP page. Some of those communities are ones that participated in Outreachy before we made the new website, and some are abandoned community signups.

The following new features would make new community signups more visible to Outreachy organizers:

For the email, you'll need to add a new email template. You can make a similar one to what's in home/templates/home/email/participation-pending.txt. You'll need to make a new function that uses that template to send email. You can make a function similar to project_nonfree_warning in home/email.py. That uses the organizer email as the recipient of the email. Then call that function when a new community form is submitted in form_valid in class CommunityCreate in home/views.py

When a community is one that has participated in a past Outreachy round, there will be a class Community object without an associated class NewCommunity object. So we know the communities that have signed up since we started using the website has a NewCommunity object. Communities that abandoned their signup don't have a participation object. The following two lines of Python will find communities that abandoned their signups:

>>> parts = Participation.objects.values('community')
>>> incomplete_community_signups = [c.community for c in NewCommunity.objects.exclude(community__in=parts)]

We can use this code to modify how home/templates/home/community_cfp.html displays past communities. We should pass in a new variable into the templates incomplete_community_signups with the list of communities that match that look up. The not_participating_communities should exclude any communities that are in the incomplete_community_signups list.

You'll need to create a new section in that template to display communities with incomplete signups. It should be above the {% if pending_communities %} line in the template. Perhaps the section should say something like "The community coordinator for these communities started signing up to participate, but they have not filled out sponsorship information: ".

eechien commented 5 years ago

Looking into this...

jameysharp commented 5 years ago

Thank you for implementing the "Send organizers an email when a new community is submitted" part of this issue! Re-opening to keep track of the "Distinguish between communities that have participated in the past and ones that haven't completed the sign up process on the community CFP page" part.