def application_sent(application_pk): if getattr(settings, "MESSAGES_DISABLED", False): return from messages.models import Message from teams.models import Application, TeamMember application = Application.objects.get(pk=application_pk) notifiable = TeamMember.objects.filter( team=application.team, role__in=[TeamMember.ROLE_ADMIN, TeamMember.ROLE_OWNER]) for m in notifiable: template_name = "messages/application-sent.txt" context = { "applicant": application.user, "url_base": get_url_base(), "team": application.team, "note": application.note, "user": m.user, } body = render_to_string(template_name, context) subject = ugettext(u'%(user)s is applying for team %(team)s') % dict( user=application.user, team=application.team.name) if m.user.notify_by_message: msg = Message() msg.subject = subject msg.content = body msg.user = m.user msg.object = application.team msg.author = application.user msg.save() Meter('templated-emails-sent-by-type.teams.application-sent').inc() send_templated_email(m.user, subject, "messages/email/application-sent-email.html", context) return True
def invite_send_message(sender, instance, created, **kwargs): if created: msg = Message() msg.subject = ugettext(u'Invitation to join a team') msg.user = instance.user msg.object = instance msg.author = instance.author msg.save()
def team_invitation_sent(invite_pk): from messages.models import Message from teams.models import Invite, Setting, TeamMember invite = Invite.objects.get(pk=invite_pk) if not team_sends_notification( invite.team, 'block_invitation_sent_message') or not invite.user.is_active: return False # does this team have a custom message for this? team_default_message = None messages = Setting.objects.messages().filter(team=invite.team) if messages.exists(): data = {} for m in messages: data[m.get_key_display()] = m.data mapping = { TeamMember.ROLE_ADMIN: data['messages_admin'], TeamMember.ROLE_MANAGER: data['messages_manager'], TeamMember.ROLE_CONTRIBUTOR: data['messages_invite'], } team_default_message = mapping.get(invite.role, None) context = { 'invite': invite, 'role': invite.role, "user": invite.user, "inviter": invite.author, "team": invite.team, "invite_pk": invite_pk, 'note': invite.note, 'custom_message': team_default_message, 'url_base': get_url_base(), } title = fmt(ugettext(u"You've been invited to team %(team)s on Amara"), team=invite.team.name) if invite.user.notify_by_message: body = render_to_string("messages/team-you-have-been-invited.txt", context) msg = Message() msg.message_type = 'S' msg.subject = title msg.user = invite.user msg.object = invite msg.author = invite.author msg.content = body msg.save() template_name = 'messages/email/team-you-have-been-invited.html' return send_templated_email(invite.user, title, template_name, context)
def save(self): messages = [] team = self.cleaned_data['team'] languages = self.cleaned_data['languages'] members = team.users.exclude(pk=self.author.pk) if languages: members = members.filter(userlanguage__language__in=languages).distinct() for user in members: message = Message(user=user) message.author = self.author message.content = self.cleaned_data['content'] message.subject = self.cleaned_data['subject'] message.object = team message.save() messages.append(message) return messages