8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-09-17 19:53:08 +00:00

Envoit de mail à l'ouverture des tickets

This commit is contained in:
Grizzly 2019-08-10 09:45:13 +00:00 committed by Gabriel Detraz
parent f112cf3305
commit 9fa82776cf
3 changed files with 31 additions and 8 deletions

View file

@ -2,6 +2,8 @@ from django.db import models
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.core.mail import send_mail from django.core.mail import send_mail
from django.template import Context, loader from django.template import Context, loader
from django.db.models.signals import post_save
from django.dispatch import receiver
import users.models import users.models
@ -46,21 +48,30 @@ class Ticket(models.Model):
return "Ticket de {} date: {}".format(self.user.surname,self.date) return "Ticket de {} date: {}".format(self.user.surname,self.date)
def publish_mail(self): 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}) context = Context({'ticket':self})
send_mail( send_mail(
'Nouvelle ouverture de ticket', 'Nouvelle ouverture de ticket',
'', template.render(context),
'ticket_app_re2o@crans.org', 'grisel-davy@crans.org',
'', [to_addr],
html_message=template.render(context)) fail_silently = False)
class Preferences(models.Model): class Preferences(models.Model):
""" Class cannonique définissants les préférences des tickets """ """ Class cannonique définissants les préférences des tickets """
publish_address = models.EmailField( publish_address = models.EmailField(
help_text = _("Adresse mail pour annoncer les nouveau tickets (laisser vide pour ne rien annoncer)"), help_text = _("Adresse mail pour annoncer les nouveau tickets (laisser vide pour ne rien annoncer)"),
max_length = 1000, max_length = 1000,
null = True) null = True)
class Meta: class Meta:
verbose_name = _("Préférences des tickets") 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()

View file

@ -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}}

View file

@ -36,11 +36,11 @@ def new_ticket(request):
if request.user.is_authenticated: if request.user.is_authenticated:
ticket.user = request.user ticket.user = request.user
ticket.save() 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)})) return redirect(reverse('users:profil',kwargs={'userid':str(request.user.id)}))
if not request.user.is_authenticated and email != "": if not request.user.is_authenticated and email != "":
ticket.save() 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')) return redirect(reverse('index'))
else: else:
messages.error(request,"Vous n'êtes pas authentifié, veuillez vous authentifier ou fournir une adresse mail pour que nous puissions vous recontacter") messages.error(request,"Vous n'êtes pas authentifié, veuillez vous authentifier ou fournir une adresse mail pour que nous puissions vous recontacter")