Exemple #1
0
    def trigger_new_membership(self, user):
        logger.debug("trigger_new_membership: %s" % user)

        # Pull a bunch of data so we don't keep hitting the database
        open_alerts = user.profile.alerts_by_key(include_resolved=False)
        all_alerts = user.profile.alerts_by_key(include_resolved=True)
        existing_files = user.profile.files_by_type()

        # Send New Member email
        try:
            email.send_new_membership(user)
            email.announce_new_membership(user)
        except Exception as e:
            logger.error("Could not send New Member notification", e)

        # Member Information
        if not FileUpload.MEMBER_INFO in existing_files:
            if not MemberAlert.PAPERWORK in open_alerts:
                MemberAlert.objects.create(user=user,
                                           key=MemberAlert.PAPERWORK)
            if not MemberAlert.MEMBER_INFO in open_alerts:
                MemberAlert.objects.create(user=user,
                                           key=MemberAlert.MEMBER_INFO)

        # Membership Agreement
        if not FileUpload.MEMBER_AGMT in existing_files:
            if not MemberAlert.MEMBER_AGREEMENT in open_alerts:
                MemberAlert.objects.create(user=user,
                                           key=MemberAlert.MEMBER_AGREEMENT)

        # User Photo
        if not user.profile.photo:
            if not MemberAlert.TAKE_PHOTO in open_alerts:
                MemberAlert.objects.create(user=user,
                                           key=MemberAlert.TAKE_PHOTO)
            if not MemberAlert.UPLOAD_PHOTO in open_alerts:
                MemberAlert.objects.create(user=user,
                                           key=MemberAlert.UPLOAD_PHOTO)
        if not MemberAlert.POST_PHOTO in open_alerts:
            MemberAlert.objects.create(user=user, key=MemberAlert.POST_PHOTO)

        # New Member Orientation
        if not MemberAlert.ORIENTATION in all_alerts:
            MemberAlert.objects.create(user=user, key=MemberAlert.ORIENTATION)

        # Subscribe them to all the opt_out mailing lists
        for mailing_list in MailingList.objects.filter(is_opt_out=True):
            mailing_list.subscribers.add(user)

        # Invite them to slack
        if hasattr(settings, 'SLACK_API_TOKEN'):
            SlackAPI().invite_user_quiet(user)
Exemple #2
0
def notify_new_membership(sender, **kwargs):
    user = kwargs['user']

    # Notify the user
    try:
        email.send_new_membership(user)
    except Exception as e:
        logger.error(f"Could not send New Member notification for '{user}'", e)

    # Notify the team
    try:
        email.announce_new_membership(user)
    except Exception as e:
        logger.error(f"Could not send announce new member '{user}'", e)

    # Invite them to slack
    if hasattr(settings, 'SLACK_API_TOKEN'):
        SlackAPI().invite_user_quiet(user)