예제 #1
0
    def handle(self, *args, **options):
        """command"""
        # look for emailing to be sent

        verbose = options.get('verbosity', 1)
        email_addresses = options.get('email_addresses', '')

        if email_addresses:
            email_list = email_addresses.split(";")
        else:
            print(
                'usage: python manage.py send_newsletter [email protected];[email protected]'
            )

        sendings = NewsletterSending.objects.filter(
            scheduling_dt__lte=datetime.now(), sending_dt=None)
        for sending in sendings:
            if verbose:
                print('send_newsletter {1} to {0} addresses'.format(
                    len(email_list), sending.newsletter))

            nb_sent = send_newsletter(sending.newsletter, email_list)

            if verbose:
                print(nb_sent, "emails sent")

            sending.sending_dt = datetime.now()
            sending.save()
예제 #2
0
    def handle(self, *args, **options):
        # look for emailing to be sent
        verbose = options.get("verbosity", 1)

        if len(args) > 0:
            dests = args[0].split(";")
        else:
            print "usage: python manage.py send_newsletter [email protected];[email protected]"

        sendings = NewsletterSending.objects.filter(scheduling_dt__lte=datetime.now(), sending_dt=None)
        for sending in sendings:
            if verbose:
                print "send_newsletter {1} to {0} addresses".format(len(dests), sending.newsletter)

            nb_sent = send_newsletter(sending.newsletter, dests)

            if verbose:
                print nb_sent, "emails sent"

            sending.sending_dt = datetime.now()
            sending.save()
예제 #3
0
    def handle(self, *args, **options):
        """command"""
        # look for emailing to be sent

        verbose = options.get('verbosity', 1)
        email_addresses = options.get('email_addresses', '')
        
        if email_addresses:
            email_list = email_addresses.split(";")
        else:
            print('usage: python manage.py send_newsletter [email protected];[email protected]')
        
        sendings = NewsletterSending.objects.filter(scheduling_dt__lte=datetime.now(), sending_dt=None)
        for sending in sendings:
            if verbose:
                print('send_newsletter {1} to {0} addresses'.format(len(email_list), sending.newsletter))
            
            nb_sent = send_newsletter(sending.newsletter, email_list)
            
            if verbose:
                print(nb_sent, "emails sent")
            
            sending.sending_dt = datetime.now()
            sending.save()
예제 #4
0
def test_newsletter(request, newsletter_id):
    """test newsletter"""
    context = {}
    newsletter = get_object_or_404(models.Newsletter, id=newsletter_id)
    context["newsletter"] = newsletter

    if not request.user.has_perm('can_edit_newsletter', newsletter):
        raise PermissionDenied

    form = NewsletterHandleRecipients(data=request.POST)
    context["form"] = form
    if request.method == "POST":
        if form.is_valid():
            choix = form.cleaned_data["choix"]
            email = form.cleaned_data["email"]
            email2 = form.cleaned_data["email2"]
            
            if choix:
                dests = choix
                
                if email:
                    dests.append(email)

                if email2:
                    if email != email2:
                        dests.append(email2)
            else:
                dests = []
                if email:
                    dests.append(email)
                
                if email2 and email != email2:
                    dests.append(email2)
                
                if not email and not email2:
                    messages.add_message(
                        request, messages.ERROR,
                        _("Cochez au moins une case ou remplissez un champ email.")
                    )
                    return HttpResponseRedirect(newsletter.get_absolute_url())
            
            try:
                nb_sent = send_newsletter(newsletter, dests)
                messages.add_message(
                    request, messages.SUCCESS,
                    _("The test email has been sent to {0} addresses: {1}").format(nb_sent, dests)
                )
                return HttpResponseRedirect(newsletter.get_absolute_url())

            except Exception:
                messages.add_message(request, messages.ERROR, _("An error occured! Please contact your support."))
                logger.error(
                    'Internal Server Error: {0}'.format(request.path),
                    exc_info=sys.exc_info,
                    extra={
                        'status_code': 500,
                        'request': request
                    }
                )
                return HttpResponseRedirect(newsletter.get_absolute_url())
        
    return render(request, 'coop_cms/popup_test_newsletter.html', context)