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

Affichage des préférences des tickets

This commit is contained in:
Grizzly 2019-08-05 14:38:53 +00:00 committed by Gabriel Detraz
parent 575e570d16
commit 8e403443b5
5 changed files with 57 additions and 1 deletions

View file

@ -503,5 +503,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
</div> </div>
</div> </div>
{% for template in optionnal_templates_list %}
{{ template }}
{% endfor %}
{% endblock %} {% endblock %}

View file

@ -40,6 +40,8 @@ from django.utils.translation import ugettext as _
from reversion import revisions as reversion from reversion import revisions as reversion
from importlib import import_module
from re2o.settings_local import OPTIONNAL_APPS
from re2o.views import form from re2o.views import form
from re2o.acl import can_create, can_edit, can_delete_set, can_view_all, can_delete from re2o.acl import can_create, can_edit, can_delete_set, can_view_all, can_delete
@ -94,6 +96,10 @@ def display_options(request):
radiusoptions, _ = RadiusOption.objects.get_or_create() radiusoptions, _ = RadiusOption.objects.get_or_create()
cotisationsoptions, _created = CotisationsOption.objects.get_or_create() cotisationsoptions, _created = CotisationsOption.objects.get_or_create()
document_template_list = DocumentTemplate.objects.order_by('name') document_template_list = DocumentTemplate.objects.order_by('name')
optionnal_apps = [import_module(app) for app in OPTIONNAL_APPS]
optionnal_templates_list = [app.views.preferences(request) for app in optionnal_apps]
return form({ return form({
'useroptions': useroptions, 'useroptions': useroptions,
'machineoptions': machineoptions, 'machineoptions': machineoptions,
@ -109,6 +115,7 @@ def display_options(request):
'switchmanagementcred_list': switchmanagementcred_list, 'switchmanagementcred_list': switchmanagementcred_list,
'radiusoptions' : radiusoptions, 'radiusoptions' : radiusoptions,
'cotisationsoptions': cotisationsoptions, 'cotisationsoptions': cotisationsoptions,
'optionnal_templates_list': optionnal_templates_list,
'document_template_list': document_template_list, 'document_template_list': document_template_list,
}, 'preferences/display_preferences.html', request) }, 'preferences/display_preferences.html', request)

View file

@ -1,5 +1,7 @@
from django.db import models 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.template import Context, loader
import users.models import users.models
@ -42,3 +44,23 @@ class Ticket(models.Model):
def __str__(self): def __str__(self):
return "Ticket de {} date: {}".format(self.user.surname,self.date) return "Ticket de {} date: {}".format(self.user.surname,self.date)
def publish_mail(self):
template = loader.get_template('ticket/mail_publish_ticket')
context = Context({'ticket':self})
send_mail(
'Nouvelle ouverture de ticket',
'',
'ticket_app_re2o@crans.org',
'',
html_message=template.render(context))
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")

View file

@ -0,0 +1,12 @@
{% load i18n %}
<div class="panel panel-default" id="tickets">
<div class="panel-heading" data-toggle="collapse" href="#collapse_tickets">
<h4 class="panel-title">
<a><i class="fa fa-ticket"></i> {% trans "Tickets" %}</a>
</h4>
</div>
<div id="collapse_tickets" class="panel-collapse panel-body collapse">
preferences des tickets
</div>
</div>

View file

@ -6,13 +6,15 @@ from django.forms import modelformset_factory
from re2o.views import form from re2o.views import form
from .models import( from .models import(
Ticket Ticket,
Preferences,
) )
from .forms import ( from .forms import (
NewTicketForm NewTicketForm
) )
def new_ticket(request): def new_ticket(request):
""" Vue de création d'un ticket """ """ Vue de création d'un ticket """
ticketform = NewTicketForm(request.POST or None)#, user=request.user) ticketform = NewTicketForm(request.POST or None)#, user=request.user)
@ -51,8 +53,17 @@ def aff_tickets(request):
tickets = Ticket.objects.all().order_by('-date') tickets = Ticket.objects.all().order_by('-date')
return render(request,'tickets/index.html', return render(request,'tickets/index.html',
{'tickets_list':tickets}) {'tickets_list':tickets})
# views cannoniques des apps optionnels
def profil(request,user): def profil(request,user):
""" Vue cannonique d'affichage des tickets dans l'accordeon du profil""" """ Vue cannonique d'affichage des tickets dans l'accordeon du profil"""
tickets = Ticket.objects.filter(user=user).all().order_by('-date') tickets = Ticket.objects.filter(user=user).all().order_by('-date')
context = {'tickets_list':tickets} context = {'tickets_list':tickets}
return render_to_string('tickets/profil.html', context=context, request=request, using=None) return render_to_string('tickets/profil.html', context=context, request=request, using=None)
def preferences(request):
""" Vue cannonique d'affichage des tickets dans l'affichage du profil"""
preferences = Preferences.objects.first()
context = {'preferences':preferences}
return render_to_string('tickets/preferences.html', context=context, request=request, using=None)