Beispiel #1
0
    def post(self, request, *args, **kwargs):
        reason = CsrfViewMiddleware().process_view(request, None, (), {})
        if reason:
            raise PermissionDenied

        if not self.request.user.is_superuser and \
                self.request.user.is_authenticated:
            return HttpResponseForbidden()

        # Everything is okay - so let's send emails?

        form = SendEmailForm(request.POST)
        if form.is_valid():
            freq = []
            if form.cleaned_data['weekly']:
                freq.append(_('weekly'))
            if form.cleaned_data['daily']:
                freq.append(_('daily'))

            for f in freq:
                send_person_emails.apply_async(
                    countdown=2,
                    task_id='send_{0}_emails-{1}'.format(
                        f,
                        timezone.now().strftime("%y%m%d-%H")),
                    args=[f])

        return super(PeopleEmailsView, self).get(request, *args, **kwargs)
Beispiel #2
0
    def get_context_data(self, **kwargs):
        context = \
            super(PeopleEmailsView, self).get_context_data(**kwargs)

        form = SendEmailForm()
        context['form'] = form

        people = context['people']

        for person in context['people']:
            if person.user is not None:
                try:
                    email = EmailAddress.objects.get(user=person.user)
                    email = email.email
                except ObjectDoesNotExist:
                    email = person.user.email
                except MultipleObjectsReturned:
                    try:
                        email = EmailAddress.objects.get(user=person.user,
                                                         verified=True)
                        email = email.email
                    except ObjectDoesNotExist:
                        email = EmailAddress.objects.filter(
                            user=person.user).first()
                        email = email.email
            else:
                email = person.profile_email

            person.email = email

        return context