From 9fa82776cfd22e3aa6ceba92d1d2fa8f006bf618 Mon Sep 17 00:00:00 2001 From: Grizzly Date: Sat, 10 Aug 2019 09:45:13 +0000 Subject: [PATCH] =?UTF-8?q?Envoit=20de=20mail=20=C3=A0=20l'ouverture=20des?= =?UTF-8?q?=20tickets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tickets/models.py | 23 ++++++++++++++++------ tickets/templates/tickets/publication_mail | 12 +++++++++++ tickets/views.py | 4 ++-- 3 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 tickets/templates/tickets/publication_mail diff --git a/tickets/models.py b/tickets/models.py index df1cd8ac..6af24c4c 100644 --- a/tickets/models.py +++ b/tickets/models.py @@ -2,6 +2,8 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ from django.core.mail import send_mail from django.template import Context, loader +from django.db.models.signals import post_save +from django.dispatch import receiver import users.models @@ -46,21 +48,30 @@ class Ticket(models.Model): return "Ticket de {} date: {}".format(self.user.surname,self.date) def publish_mail(self): - template = loader.get_template('ticket/mail_publish_ticket') + to_addr = Preferences.objects.first().publish_address + template = loader.get_template('tickets/publication_mail') context = Context({'ticket':self}) send_mail( 'Nouvelle ouverture de ticket', - '', - 'ticket_app_re2o@crans.org', - '', - html_message=template.render(context)) + template.render(context), + 'grisel-davy@crans.org', + [to_addr], + fail_silently = False) class Preferences(models.Model): """ Class cannonique définissants les préférences des tickets """ - + publish_address = models.EmailField( help_text = _("Adresse mail pour annoncer les nouveau tickets (laisser vide pour ne rien annoncer)"), max_length = 1000, null = True) class Meta: verbose_name = _("Préférences des tickets") + + +@receiver(post_save, sender=Ticket) +def ticket_post_save(**kwargs): + """Envoit du mail de publication du ticket""" + if Preferences.objects.first().publish_address: + ticket = kwargs['instance'] + ticket.publish_mail() diff --git a/tickets/templates/tickets/publication_mail b/tickets/templates/tickets/publication_mail new file mode 100644 index 00000000..f68c729d --- /dev/null +++ b/tickets/templates/tickets/publication_mail @@ -0,0 +1,12 @@ +{% if ticket.user %} +{{ ticket.user.get_full_name }} à ouvert un ticket. +Répondre à l'adresse: {{ticket.user.get_mail}}. + +{% else %} +Un utilisateur anonyme (non connecté) à ouvert un ticket. +Répondre à l'adresse: {{ticket.email}}. +{% endif %} + +Titre: {{ticket.title}} + +Description: {{ticket.description}} diff --git a/tickets/views.py b/tickets/views.py index b4111204..f75b1766 100644 --- a/tickets/views.py +++ b/tickets/views.py @@ -36,11 +36,11 @@ def new_ticket(request): if request.user.is_authenticated: ticket.user = request.user ticket.save() - messages.success(request,'Votre ticket à été ouvert. Nous vous répondront le plus rapidement possible.') + messages.success(request,'Votre ticket a été ouvert. Nous vous répondrons le plus rapidement possible.') return redirect(reverse('users:profil',kwargs={'userid':str(request.user.id)})) if not request.user.is_authenticated and email != "": ticket.save() - messages.success(request,'Votre ticket à été ouvert. Nous vous répondront le plus rapidement possible.') + messages.success(request,'Votre ticket a été ouvert. Nous vous répondront le plus rapidement possible.') return redirect(reverse('index')) else: messages.error(request,"Vous n'êtes pas authentifié, veuillez vous authentifier ou fournir une adresse mail pour que nous puissions vous recontacter")