Example #1
0
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
Example #2
0
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()
Example #3
0
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()
Example #4
0
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)
Example #5
0
    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
Example #6
0
    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