Exemple #1
0
    def send(self, instances):
        messages = []
        for instance in instances:
            dests = set()
            if self.destinataire in ('Organisateur', 'Tous'):
                dests.add(self.course.email_contact)
            if self.destinataire in ('Equipe', 'Tous') and isinstance(instance, Equipe):
                    dests.add(instance.gerant_email)
            if self.destinataire in ('Equipiers', 'Tous'):
                if isinstance(instance, Equipier):
                    dests.add(instance.email)
                if isinstance(instance, Equipe):
                    for equipier in instance.equipier_set.all():
                        dests.add(equipier.email)
            
            context = Context({
                "instance": instance,
                'PAYPAL_URL': PAYPAL_URL,
                'ROOT_URL': ROOT_URL,
            })
            subject = Template(self.sujet).render(context)
            message = Template(self.message).render(context)

            bcc = []
            if self.bcc:
                bcc = re.split('[,; ]+', self.bcc)
            for dest in dests:
                if settings.DEBUG:
                    dest = '*****@*****.**'
                message = EmailMessage(subject, message, self.course.email_contact, [ dest ], bcc)
                message.content_subtype = "html"
                messages.append(message)
        MailThread(messages).start()
Exemple #2
0
    def send(self, instances):
        messages = []
        if isinstance(instances, list):
            prefetch_related_objects(instances, ('equipier_set', ))
        elif hasattr(instances, 'prefetch_related'):
            instances.prefetch_related('equipiers')
        for instance in instances:
            dests = set()
            if self.destinataire in ('Organisateur', 'Tous'):
                dests.add(self.course.email_contact)
            if self.destinataire in ('Equipe', 'Tous') and isinstance(instance, Equipe):
                    dests.add(instance.gerant_email)
            if self.destinataire in ('Equipiers', 'Tous'):
                if isinstance(instance, Equipier):
                    dests.add(instance.email)
                if isinstance(instance, Equipe):
                    for equipier in instance.equipier_set.filter(numero__lte=F('equipe__nombre')):
                        dests.add(equipier.email)
            
            context = Context({
                "instance": instance,
                'ROOT_URL': 'http://%s' % Site.objects.get_current(),
            })
            subject = Template(self.sujet).render(context)
            message = Template(self.message).render(context)

            bcc = []
            if self.bcc:
                bcc = re.split('[,; ]+', self.bcc)
            for dest in dests:
                message = EmailMessage(subject, message, settings.DEFAULT_FROM_EMAIL, [ dest ], bcc, reply_to=[self.course.email_contact,])
                message.content_subtype = "html"
                messages.append(message)
        MailThread(messages).start()