8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-08-20 06:03:40 +00:00

Ouverture de ticket pour les utilisaterus non authentifies

This commit is contained in:
Grizzly 2019-07-12 11:41:17 +00:00 committed by Gabriel Detraz
parent 13afc5aaeb
commit 2650065787
4 changed files with 45 additions and 10 deletions

View file

@ -25,9 +25,12 @@ class EditTicketForm(FormRevMixin, ModelForm):
class NewTicketForm(ModelForm):
""" Creation d'une machine"""
email = forms.EmailField(required=False)
class Meta:
model = Ticket
fields = ['title', 'description']
fields = ['title', 'description', 'email']
#def __init(self,*args, **kwargs):
#prefix = kwargs.pop('prefix', self.Meta.model.__name__)

View file

@ -9,7 +9,9 @@ class Ticket(models.Model):
user = models.ForeignKey(
'users.User',
on_delete=models.CASCADE,
related_name="tickets")
related_name="tickets",
blank=True,
null=True)
title = models.CharField(
max_length=255,
help_text=_("Nom du ticket"),
@ -21,6 +23,10 @@ class Ticket(models.Model):
blank=False,
null=False)
date = models.DateTimeField(auto_now_add=True)
email = models.EmailField(
help_text = _("Une adresse mail pour vous recontacter"),
max_length=100,
null=True)
assigned_staff = models.ForeignKey(
'users.User',
on_delete=models.PROTECT,

View file

@ -40,9 +40,26 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</div>
{% endfor %}
<form method="post">
<form class="form" method="post">
{% csrf_token %}
{% bootstrap_form ticketform %}
{% if not user.is_authenticated %}
<p>{% trans "Vous n'êtes pas authentifié. Veuillez fournir une adresse mail afin que nous puissions vous recontacter." %}</p>
{% bootstrap_field ticketform.email %}
{% endif %}
{% bootstrap_field ticketform.title %}
<br>
<p>{% trans "Description de votre problème. Veuillez fournir le plus d'informations possible afin de faciliter la recherche de solution. Voici quelques informations dont nous pourions avoir besoin:" %}</p>
<ul class="list">
<li>
<p> {% trans "Le type de votre problème (adhesion, connexion, paiement ou autre)." %}</p>
</li>
<li>
<p> {% trans "Les conditions dans lesquelles vous rencontrez le problème (Wifi/filaire, sur tout les apareils ou sur un seul. Est-ce une nouvelle machine ?" %}</p>
</li>
<li>
<p> {% trans "Les endroits dans lequels le problème survient (chez vous, dans une partie commune, dans un batiment en particulier)." %}</p>
</ul>
{% bootstrap_field ticketform.description %}
{% bootstrap_button "Ouvrir le Ticket" button_type="submit" icon='ok' button_class='btn-success' %}
</form>
{% endblock %}

View file

@ -20,13 +20,22 @@ def new_ticket(request):
ticketform = NewTicketForm(request.POST)
if ticketform.is_valid():
email = ticketform.cleaned_data.get('email')
ticket = ticketform.save(commit=False)
ticket.user = request.user
ticket.save()
messages.success(request,'Votre ticket à été ouvert. Nous vous répondront le plus rapidement possible.')
return redirect(reverse('users:profil',kwargs={'userid':str(request.user.id)}))
else:
messages.error(request, 'Formulaire invalide')
#raise ValueError("email: {} type: {}".format(email,type(email)))
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.')
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.')
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")
return form({'ticketform':ticketform,},'tickets/form_ticket.html',request)
else:
ticketform = NewTicketForm
return form({'ticketform':ticketform,},'tickets/form_ticket.html',request)