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)
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)