mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-23 15:33:45 +00:00
Affichage des préférences des tickets
This commit is contained in:
parent
575e570d16
commit
8e403443b5
5 changed files with 57 additions and 1 deletions
|
@ -503,5 +503,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{% for template in optionnal_templates_list %}
|
||||
{{ template }}
|
||||
{% endfor %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -40,6 +40,8 @@ from django.utils.translation import ugettext as _
|
|||
|
||||
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.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()
|
||||
cotisationsoptions, _created = CotisationsOption.objects.get_or_create()
|
||||
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({
|
||||
'useroptions': useroptions,
|
||||
'machineoptions': machineoptions,
|
||||
|
@ -109,6 +115,7 @@ def display_options(request):
|
|||
'switchmanagementcred_list': switchmanagementcred_list,
|
||||
'radiusoptions' : radiusoptions,
|
||||
'cotisationsoptions': cotisationsoptions,
|
||||
'optionnal_templates_list': optionnal_templates_list,
|
||||
'document_template_list': document_template_list,
|
||||
}, 'preferences/display_preferences.html', request)
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
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
|
||||
|
||||
import users.models
|
||||
|
||||
|
@ -42,3 +44,23 @@ class Ticket(models.Model):
|
|||
|
||||
def __str__(self):
|
||||
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")
|
||||
|
|
12
tickets/templates/tickets/preferences.html
Normal file
12
tickets/templates/tickets/preferences.html
Normal 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>
|
|
@ -6,13 +6,15 @@ from django.forms import modelformset_factory
|
|||
from re2o.views import form
|
||||
|
||||
from .models import(
|
||||
Ticket
|
||||
Ticket,
|
||||
Preferences,
|
||||
)
|
||||
|
||||
from .forms import (
|
||||
NewTicketForm
|
||||
)
|
||||
|
||||
|
||||
def new_ticket(request):
|
||||
""" Vue de création d'un ticket """
|
||||
ticketform = NewTicketForm(request.POST or None)#, user=request.user)
|
||||
|
@ -51,8 +53,17 @@ def aff_tickets(request):
|
|||
tickets = Ticket.objects.all().order_by('-date')
|
||||
return render(request,'tickets/index.html',
|
||||
{'tickets_list':tickets})
|
||||
|
||||
|
||||
# views cannoniques des apps optionnels
|
||||
def profil(request,user):
|
||||
""" Vue cannonique d'affichage des tickets dans l'accordeon du profil"""
|
||||
tickets = Ticket.objects.filter(user=user).all().order_by('-date')
|
||||
context = {'tickets_list':tickets}
|
||||
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)
|
||||
|
|
Loading…
Reference in a new issue