예제 #1
0
    def form_valid(self, form):
        rsvps = form.cleaned_data.get('rsvps')
        event = self.get_context_data().get('event')
        selected_rsvps = event.rsvps.all()
        if rsvps == 'yes':
            selected_rsvps = event.rsvps.yes()
        elif rsvps == 'no':
            selected_rsvps = event.rsvps.no()
        elif rsvps == 'maybe':
            selected_rsvps = event.rsvps.maybe()
        elif rsvps == 'possible':
            selected_rsvps = event.rsvps.possible()

        to_emails = ['{0.name} <{0.email}>'.format(rsvp.user) for
                     rsvp in selected_rsvps]
        host_email = event.host.email if form.cleaned_data.get(
            'include_email_address') else None

        email = generate_email(
            'events/email/message_from_host',
            self.request,
            {
                'subject': form.cleaned_data.get('subject'),
                'body': form.cleaned_data.get('body'),
                'body_html': misaka.html(form.cleaned_data.get('body')),
                'host_email': host_email,
                'event': event,
                'domain': Site.objects.get_current().domain
            },
            to=to_emails
        )
        email.send(fail_silently=True)
        return super(EmailRSVPs, self).form_valid(form)
예제 #2
0
def rsvp_notification(sender, instance, created, raw, **kwargs):
    if instance.response == instance.RESPONSE_CHOICES.yes:
        to_email = '{0.name} <{0.email}>'.format(instance.event.host)
        email = generate_email(
            'events/email/notify_rsvp',
            HttpRequest(),
            {
                'instance': instance,
            },
            to=(to_email,)
        )
        email.send(fail_silently=True)
예제 #3
0
def rsvp_delete(sender, instance, **kwargs):
    to_email = '{0.name} <{0.email}>'.format(instance.user)

    email = generate_email(
        'events/email/delete_rsvp',
        HttpRequest(),
        {
            'instance': instance
        },
        to=(to_email,)
    )
    email.send(fail_silently=True)
예제 #4
0
def event_delete(sender, instance, **kwargs):
    to_emails = ['{0.name} <{0.email}>'.format(rsvp.user) for rsvp in
                 instance.rsvps.possible()]
    email = generate_email(
        'events/email/delete_event',
        HttpRequest(),
        {
            'instance': instance
        },
        to=to_emails
    )
    email.send(fail_silently=True)
예제 #5
0
def event_creation(sender, instance, created, raw, **kwargs):
    if created:
        to_email = '{0.name} <{0.email}>'.format(instance.host)
        email = generate_email(
            'events/email/new_event',
            HttpRequest(),
            {
                'instance': instance,
                'domain': Site.objects.get_current().domain
            },
            to=(to_email,)
        )
        email.send(fail_silently=True)
예제 #6
0
def rsvp_creation(sender, instance, created, raw, **kwargs):
    if created and instance.response != instance.RESPONSE_CHOICES.no:
        to_email = '{0.name} <{0.email}>'.format(instance.user)
        email = generate_email(
            'events/email/new_rsvp',
            HttpRequest(),
            {
                'instance': instance,
                'domain': Site.objects.get_current().domain
            },
            to=(to_email,)
        )
        email.send(fail_silently=True)
예제 #7
0
def event_change(sender, instance, created, raw, **kwargs):
    if not created:
        to_emails = ['{0.name} <{0.email}>'.format(rsvp.user) for rsvp in
                     instance.rsvps.possible()]
        email = generate_email(
            'events/email/change_event',
            HttpRequest(),
            {
                'instance': instance,
                'domain': Site.objects.get_current().domain
            },
            to=to_emails
        )
        email.send(fail_silently=True)