mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-27 07:02:26 +00:00
Cannonisation de l'affichage des apps optionnels sur le profil et imports conditionnels dans les urls
This commit is contained in:
parent
7099d6d57a
commit
575e570d16
7 changed files with 53 additions and 30 deletions
|
@ -78,7 +78,6 @@ LOCAL_APPS = (
|
||||||
're2o',
|
're2o',
|
||||||
'preferences',
|
'preferences',
|
||||||
'logs',
|
'logs',
|
||||||
'tickets',
|
|
||||||
)
|
)
|
||||||
INSTALLED_APPS = (
|
INSTALLED_APPS = (
|
||||||
DJANGO_CONTRIB_APPS +
|
DJANGO_CONTRIB_APPS +
|
||||||
|
|
|
@ -49,6 +49,8 @@ from django.contrib import admin
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.views.generic import RedirectView
|
from django.views.generic import RedirectView
|
||||||
|
|
||||||
|
from .settings_local import OPTIONNAL_APPS
|
||||||
|
|
||||||
from .views import index, about_page, contact_page
|
from .views import index, about_page, contact_page
|
||||||
|
|
||||||
# Admin site configuration
|
# Admin site configuration
|
||||||
|
@ -70,7 +72,6 @@ urlpatterns = [
|
||||||
include('cotisations.urls', namespace='cotisations')
|
include('cotisations.urls', namespace='cotisations')
|
||||||
),
|
),
|
||||||
url(r'^machines/', include('machines.urls', namespace='machines')),
|
url(r'^machines/', include('machines.urls', namespace='machines')),
|
||||||
url(r'^tickets/', include('tickets.urls', namespace='tickets')),
|
|
||||||
url(r'^topologie/', include('topologie.urls', namespace='topologie')),
|
url(r'^topologie/', include('topologie.urls', namespace='topologie')),
|
||||||
url(r'^logs/', include('logs.urls', namespace='logs')),
|
url(r'^logs/', include('logs.urls', namespace='logs')),
|
||||||
url(
|
url(
|
||||||
|
@ -84,6 +85,10 @@ urlpatterns = [
|
||||||
url(r'^admin/login/$', RedirectView.as_view(pattern_name='login')),
|
url(r'^admin/login/$', RedirectView.as_view(pattern_name='login')),
|
||||||
url(r'^admin/', include(admin.site.urls)),
|
url(r'^admin/', include(admin.site.urls)),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
urlpatterns += [url(r'^{}/'.format(app), include('{}.urls'.format(app), namespace=app)) for app in OPTIONNAL_APPS]
|
||||||
|
|
||||||
# Add debug_toolbar URLs if activated
|
# Add debug_toolbar URLs if activated
|
||||||
if 'debug_toolbar' in settings.INSTALLED_APPS:
|
if 'debug_toolbar' in settings.INSTALLED_APPS:
|
||||||
import debug_toolbar
|
import debug_toolbar
|
||||||
|
|
|
@ -100,7 +100,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
{% can_view_app cotisations %}
|
{% can_view_app cotisations %}
|
||||||
<li><a href="{% url 'cotisations:index' %}"><i class="fa fa-eur"></i> {% trans "Manage the subscriptions" %}</a></li>
|
<li><a href="{% url 'cotisations:index' %}"><i class="fa fa-eur"></i> {% trans "Manage the subscriptions" %}</a></li>
|
||||||
{% acl_end %}
|
{% acl_end %}
|
||||||
|
|
||||||
|
{% comment %}
|
||||||
<li><a href="{% url 'tickets:aff-tickets' %}"><i class="fa fa-ticket"></i> {% trans "Tickets" %}</a></li>
|
<li><a href="{% url 'tickets:aff-tickets' %}"><i class="fa fa-ticket"></i> {% trans "Tickets" %}</a></li>
|
||||||
|
{% endcomment %}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{% acl_end %}
|
{% acl_end %}
|
||||||
|
@ -131,7 +134,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a href="{% url 'about' %}"><i class="fa fa-info-circle"></i> {% trans "About" %}</a></li>
|
<li><a href="{% url 'about' %}"><i class="fa fa-info-circle"></i> {% trans "About" %}</a></li>
|
||||||
<li><a href="{% url 'contact' %}"><i class="fa fa-at"></i> {% trans "Contact" %}</a></li>
|
<li><a href="{% url 'contact' %}"><i class="fa fa-at"></i> {% trans "Contact" %}</a></li>
|
||||||
|
{% comment %}
|
||||||
<li><a href="{% url 'tickets:new-ticket' %}"><i class="fa fa-ticket"></i> {% trans "Ouvrir un ticket" %}</a><li>
|
<li><a href="{% url 'tickets:new-ticket' %}"><i class="fa fa-ticket"></i> {% trans "Ouvrir un ticket" %}</a><li>
|
||||||
|
{% endcomment %}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
{% if not request.user.is_authenticated %}
|
{% if not request.user.is_authenticated %}
|
||||||
|
|
23
tickets/templates/tickets/profil.html
Normal file
23
tickets/templates/tickets/profil.html
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading clearfix profil" data-parent="#accordion" data-toggle="collapse" data-target="#ticket">
|
||||||
|
<h3 class="panel-title pull-left">
|
||||||
|
<i class="fa fa-ticket"></i>{% trans " Tickets" %}
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div id="ticket" class="panel-collapse collapse">
|
||||||
|
<div class="panel-body">
|
||||||
|
<a class="btn btn-primary btn-sm" role="button" href="{% url 'tickets:new-ticket' %}">
|
||||||
|
<i class="fa fa-ticket"></i>{% trans " Open a Ticket" %}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
{% if tickets_list %}
|
||||||
|
{% include 'tickets/aff_tickets.html' with tickets_list=tickets_list %}
|
||||||
|
{% else %}
|
||||||
|
<p>{% trans "No tickets" %}</p>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -1,5 +1,6 @@
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.shortcuts import render, redirect
|
from django.shortcuts import render, redirect
|
||||||
|
from django.template.loader import render_to_string
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.forms import modelformset_factory
|
from django.forms import modelformset_factory
|
||||||
from re2o.views import form
|
from re2o.views import form
|
||||||
|
@ -50,3 +51,8 @@ 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})
|
||||||
|
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)
|
||||||
|
|
|
@ -528,27 +528,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading clearfix profil" data-parent="#accordion" data-toggle="collapse" data-target="#ticket">
|
{% for template in optionnal_templates_list %}
|
||||||
<h3 class="panel-title pull-left">
|
{{ template }}
|
||||||
<i class="fa fa-ticket"></i>{% trans " Tickets" %}
|
{% endfor %}
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
<div id="ticket" class="panel-collapse collapse">
|
|
||||||
<div class="panel-body">
|
|
||||||
<a class="btn btn-primary btn-sm" role="button" href="{% url 'tickets:new-ticket' %}">
|
|
||||||
<i class="fa fa-ticket"></i>{% trans " Open a Ticket" %}
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% if tickets_list %}
|
|
||||||
{% include 'tickets/aff_tickets.html' with tickets_list=tickets_list %}
|
|
||||||
{% else %}
|
|
||||||
<p>{% trans "No tickets" %}</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,7 @@ from django.http import HttpResponse
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
from django.template import loader
|
||||||
|
|
||||||
from rest_framework.renderers import JSONRenderer
|
from rest_framework.renderers import JSONRenderer
|
||||||
from reversion import revisions as reversion
|
from reversion import revisions as reversion
|
||||||
|
@ -54,10 +55,9 @@ from reversion import revisions as reversion
|
||||||
from cotisations.models import Facture, Paiement
|
from cotisations.models import Facture, Paiement
|
||||||
from machines.models import Machine
|
from machines.models import Machine
|
||||||
|
|
||||||
# A IMPORTER SOUS CONDITION QUE TICKET SOIT INSTALLED
|
|
||||||
from tickets.models import Ticket
|
|
||||||
|
|
||||||
from preferences.models import OptionalUser, GeneralOption, AssoOption
|
from preferences.models import OptionalUser, GeneralOption, AssoOption
|
||||||
|
from importlib import import_module
|
||||||
|
from re2o.settings_local import OPTIONNAL_APPS
|
||||||
from re2o.views import form
|
from re2o.views import form
|
||||||
from re2o.utils import (
|
from re2o.utils import (
|
||||||
all_has_access,
|
all_has_access,
|
||||||
|
@ -978,8 +978,10 @@ def profil(request, users, **_kwargs):
|
||||||
request.GET.get('order'),
|
request.GET.get('order'),
|
||||||
SortTable.MACHINES_INDEX
|
SortTable.MACHINES_INDEX
|
||||||
)
|
)
|
||||||
tickets = Ticket.objects.filter(user=users).all().order_by('-date')
|
|
||||||
nb_tickets = tickets.count()
|
optionnal_apps = [import_module(app) for app in OPTIONNAL_APPS]
|
||||||
|
optionnal_templates_list = [app.views.profil(request,users) for app in optionnal_apps]
|
||||||
|
|
||||||
pagination_large_number = GeneralOption.get_cached_value(
|
pagination_large_number = GeneralOption.get_cached_value(
|
||||||
'pagination_large_number'
|
'pagination_large_number'
|
||||||
)
|
)
|
||||||
|
@ -1022,8 +1024,7 @@ def profil(request, users, **_kwargs):
|
||||||
'users': users,
|
'users': users,
|
||||||
'machines_list': machines,
|
'machines_list': machines,
|
||||||
'nb_machines': nb_machines,
|
'nb_machines': nb_machines,
|
||||||
'tickets_list': tickets,
|
'optionnal_templates_list': optionnal_templates_list,
|
||||||
'nb_tickets': nb_tickets,
|
|
||||||
'facture_list': factures,
|
'facture_list': factures,
|
||||||
'ban_list': bans,
|
'ban_list': bans,
|
||||||
'white_list': whitelists,
|
'white_list': whitelists,
|
||||||
|
|
Loading…
Reference in a new issue