8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-16 00:13:12 +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): class NewTicketForm(ModelForm):
""" Creation d'une machine""" """ Creation d'une machine"""
email = forms.EmailField(required=False)
class Meta: class Meta:
model = Ticket model = Ticket
fields = ['title', 'description'] fields = ['title', 'description', 'email']
#def __init(self,*args, **kwargs): #def __init(self,*args, **kwargs):
#prefix = kwargs.pop('prefix', self.Meta.model.__name__) #prefix = kwargs.pop('prefix', self.Meta.model.__name__)

View file

@ -9,7 +9,9 @@ class Ticket(models.Model):
user = models.ForeignKey( user = models.ForeignKey(
'users.User', 'users.User',
on_delete=models.CASCADE, on_delete=models.CASCADE,
related_name="tickets") related_name="tickets",
blank=True,
null=True)
title = models.CharField( title = models.CharField(
max_length=255, max_length=255,
help_text=_("Nom du ticket"), help_text=_("Nom du ticket"),
@ -21,6 +23,10 @@ class Ticket(models.Model):
blank=False, blank=False,
null=False) null=False)
date = models.DateTimeField(auto_now_add=True) 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( assigned_staff = models.ForeignKey(
'users.User', 'users.User',
on_delete=models.PROTECT, on_delete=models.PROTECT,

View file

@ -40,9 +40,26 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</div> </div>
{% endfor %} {% endfor %}
<form method="post"> <form class="form" method="post">
{% csrf_token %} {% 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' %} {% bootstrap_button "Ouvrir le Ticket" button_type="submit" icon='ok' button_class='btn-success' %}
</form> </form>
{% endblock %} {% endblock %}

View file

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