Exemplo n.º 1
0
def invite_attendees(request, event_id):
    event = get_object_or_404(Event, id=event_id)
    attendee_userids = [attendee.user.id for attendee in Attendee.objects.filter(event=event)]
    members = Member.objects.filter(team=event.team, ).order_by('user__realname')
    member_choices = [(member.id, member.user) for member in members if member.user.user.account.is_email_confirmed and member.user.id not in attendee_userids]
    default_choices = [('all', 'All Members (%s)' % len(member_choices))]

    if request.method == 'POST' and request.POST.get('form', None) == 'email':
        email_form = EventInviteEmailForm(request.POST)
        if email_form.is_valid():
            to = email_form.cleaned_data['emails']
            for email in to:
                invite_attendee(email, event, request.user)
            messages.add_message(request, messages.SUCCESS, message=_('Sent %s invites' % len(to)))
            return redirect(event.get_absolute_url())
        team_form = EventInviteMemberForm()
        team_form.fields['member'].choices = default_choices + member_choices
    elif request.method == 'POST' and request.POST.get('form', None) == 'team':
        team_form = EventInviteMemberForm(request.POST)
        team_form.fields['member'].choices = default_choices + member_choices
        if team_form.is_valid():
            to = team_form.cleaned_data['member']
            if to == 'all':
                for (member_id, user) in member_choices:
                    try:
                        attendee = Attendee.objects.get(event=event, user=user)
                    except:
                        # No attendee record found, so send the invite
                        invite_attendee(user.user, event, request.user)
                messages.add_message(request, messages.SUCCESS, message=_('Sent %s invites' % len(member_choices)))
                return redirect(event.get_absolute_url())
            else:
                member = get_object_or_404(Member, id=to)
                try:
                    attendee = Attendee.objects.get(event=event, user=member.user)
                except:
                    # No attendee record found, so send the invite
                    invite_attendee(member.user.user, event, request.user)
                    messages.add_message(request, messages.SUCCESS, message=_('Invited %s' % member.user))
                return redirect(event.get_absolute_url())
        email_form = EventInviteEmailForm()
    else:
        email_form = EventInviteEmailForm()
        team_form = EventInviteMemberForm()
        team_form.fields['member'].choices = default_choices + member_choices

    context = {
        'event': event,
        'email_form': email_form,
        'team_form': team_form,
        'member_choice_count': len(member_choices),
        'can_edit_team': request.user.profile.can_edit_team(event.team),
        'is_email_confirmed': request.user.account.is_email_confirmed,
    }
    return render(request, 'get_together/events/invite_attendees.html', context)
Exemplo n.º 2
0
def invite_attendees(request, event_id):
    event = get_object_or_404(Event, id=event_id)
    attendee_userids = [
        attendee.user.id for attendee in Attendee.objects.filter(event=event)
    ]
    members = Member.objects.filter(team=event.team).order_by("user__realname")
    member_choices = [(member.id, member.user) for member in members
                      if member.user.user.account.is_email_confirmed
                      and member.user.id not in attendee_userids]
    default_choices = [("all", "All Members (%s)" % len(member_choices))]

    if request.method == "POST" and request.POST.get("form", None) == "email":
        email_form = EventInviteEmailForm(request.POST)
        if email_form.is_valid():
            to = email_form.cleaned_data["emails"]
            for email in to:
                invite_attendee(email, event, request.user)
            messages.add_message(request,
                                 messages.SUCCESS,
                                 message=_("Sent %s invites" % len(to)))
            return redirect(event.get_absolute_url())
        team_form = EventInviteMemberForm()
        team_form.fields["member"].choices = default_choices + member_choices
    elif request.method == "POST" and request.POST.get("form", None) == "team":
        team_form = EventInviteMemberForm(request.POST)
        team_form.fields["member"].choices = default_choices + member_choices
        if team_form.is_valid():
            to = team_form.cleaned_data["member"]
            if to == "all":
                for (member_id, user) in member_choices:
                    try:
                        attendee = Attendee.objects.get(event=event, user=user)
                    except:
                        # No attendee record found, so send the invite
                        invite_attendee(user.user, event, request.user)
                messages.add_message(
                    request,
                    messages.SUCCESS,
                    message=_("Sent %s invites" % len(member_choices)),
                )
                return redirect(event.get_absolute_url())
            else:
                member = get_object_or_404(Member, id=to)
                try:
                    attendee = Attendee.objects.get(event=event,
                                                    user=member.user)
                except:
                    # No attendee record found, so send the invite
                    invite_attendee(member.user.user, event, request.user)
                    messages.add_message(request,
                                         messages.SUCCESS,
                                         message=_("Invited %s" % member.user))
                return redirect(event.get_absolute_url())
        email_form = EventInviteEmailForm()
    else:
        email_form = EventInviteEmailForm()
        team_form = EventInviteMemberForm()
        team_form.fields["member"].choices = default_choices + member_choices

    context = {
        "event": event,
        "email_form": email_form,
        "team_form": team_form,
        "member_choice_count": len(member_choices),
        "can_edit_team": request.user.profile.can_edit_team(event.team),
        "is_email_confirmed": request.user.account.is_email_confirmed,
    }
    return render(request, "get_together/events/invite_attendees.html",
                  context)
Exemplo n.º 3
0
def invite_attendees(request, event_id):
    event = get_object_or_404(Event, id=event_id)
    attendee_userids = [
        attendee.user.id for attendee in Attendee.objects.filter(event=event)
    ]
    members = Member.objects.filter(team=event.team).order_by("user__realname")
    member_choices = [
        (member.id, member.user)
        for member in members
        if member.user.user.account.is_email_confirmed
        and member.user.id not in attendee_userids
    ]
    default_choices = [("all", "All Members (%s)" % len(member_choices))]

    if request.method == "POST" and request.POST.get("form", None) == "email":
        email_form = EventInviteEmailForm(request.POST)
        if email_form.is_valid():
            to = email_form.cleaned_data["emails"]
            remaining_emails = request.user.account.remaining_emails_allowed()
            if remaining_emails <= 0:
                messages.add_message(
                    request,
                    messages.WARNING,
                    message=_(
                        "You have exceeded the %s email messages you are allowed to send in one day. Please try again tomorrow."
                        % settings.ALLOWED_EMAILS_PER_DAY
                    ),
                )
                return redirect("invite-attendees", event_id=event_id)
            if len(to) > remaining_emails:
                messages.add_message(
                    request,
                    messages.WARNING,
                    message=_(
                        "You can only send %s more email messages today. Please choose fewer recipients or try again tomorrow."
                        % remaining_emails
                    ),
                )
                return redirect("invite-attendees", event_id=event_id)
            for email in to:
                invite_attendee(email, event, request.user)
            messages.add_message(
                request, messages.SUCCESS, message=_("Sent %s invites" % len(to))
            )
            return redirect(event.get_absolute_url())
        team_form = EventInviteMemberForm()
        team_form.fields["member"].choices = default_choices + member_choices
    elif request.method == "POST" and request.POST.get("form", None) == "team":
        team_form = EventInviteMemberForm(request.POST)
        team_form.fields["member"].choices = default_choices + member_choices
        if team_form.is_valid():
            to = team_form.cleaned_data["member"]
            if to == "all":
                for (member_id, user) in member_choices:
                    try:
                        attendee = Attendee.objects.get(event=event, user=user)
                    except:
                        # No attendee record found, so send the invite
                        invite_attendee(user.user, event, request.user)
                messages.add_message(
                    request,
                    messages.SUCCESS,
                    message=_("Sent %s invites" % len(member_choices)),
                )
                return redirect(event.get_absolute_url())
            else:
                member = get_object_or_404(Member, id=to)
                try:
                    attendee = Attendee.objects.get(event=event, user=member.user)
                except:
                    # No attendee record found, so send the invite
                    invite_attendee(member.user.user, event, request.user)
                    messages.add_message(
                        request, messages.SUCCESS, message=_("Invited %s" % member.user)
                    )
                return redirect(event.get_absolute_url())
        email_form = EventInviteEmailForm()
    else:
        email_form = EventInviteEmailForm()
        team_form = EventInviteMemberForm()
        team_form.fields["member"].choices = default_choices + member_choices

    context = {
        "event": event,
        "email_form": email_form,
        "team_form": team_form,
        "member_choice_count": len(member_choices),
        "can_edit_team": request.user.profile.can_edit_team(event.team),
        "is_email_confirmed": request.user.account.is_email_confirmed,
    }
    return render(request, "get_together/events/invite_attendees.html", context)