From e2d9591dc8220ddb4002414bafc4d98db2f243d5 Mon Sep 17 00:00:00 2001 From: grisel-davy Date: Sun, 18 Oct 2020 14:51:58 +0200 Subject: [PATCH] Rename profil view in apps and count machines in user profil view --- .../machines/{profil.html => aff_profil.html} | 0 machines/views.py | 17 ++++---- .../tickets/{profil.html => aff_profil.html} | 0 tickets/views.py | 4 +- users/templates/users/profil.html | 27 +----------- users/views.py | 42 ++++++------------- 6 files changed, 25 insertions(+), 65 deletions(-) rename machines/templates/machines/{profil.html => aff_profil.html} (100%) rename tickets/templates/tickets/{profil.html => aff_profil.html} (100%) diff --git a/machines/templates/machines/profil.html b/machines/templates/machines/aff_profil.html similarity index 100% rename from machines/templates/machines/profil.html rename to machines/templates/machines/aff_profil.html diff --git a/machines/views.py b/machines/views.py index 8a93d0e9..76d12eca 100644 --- a/machines/views.py +++ b/machines/views.py @@ -1312,11 +1312,11 @@ def index(request): machines_list = re2o_paginator(request, machines_list, pagination_large_number) return render(request, "machines/index.html", {"machines_list": machines_list}) -# Canonic vie for displaying machines in users's profil -def profil(request, user): +# Canonic view for displaying machines in users's profil +def aff_profil(request, user): """View used to display the machines on a user's profile.""" - machines = ( - Machine.objects.filter(user=users) + machines = ( + Machine.objects.filter(user=user) .select_related("user") .prefetch_related("interface_set__domain__extension") .prefetch_related("interface_set__ipv4__ip_type__extension") @@ -1329,17 +1329,18 @@ def profil(request, user): request.GET.get("order"), SortTable.MACHINES_INDEX, ) + nb_machines = machines.count() pagination_large_number = GeneralOption.get_cached_value("pagination_large_number") machines = re2o_paginator(request, machines, pagination_large_number) - nb_machines = machines.count() context = { - "machines_list" = machines, - "nb_machines" = nb_machines, + "users":user, + "machines_list": machines, + "nb_machines":nb_machines, } return render_to_string( - "machines/profil.html",context=context,request=request,using=None + "machines/aff_profil.html",context=context,request=request,using=None ) diff --git a/tickets/templates/tickets/profil.html b/tickets/templates/tickets/aff_profil.html similarity index 100% rename from tickets/templates/tickets/profil.html rename to tickets/templates/tickets/aff_profil.html diff --git a/tickets/views.py b/tickets/views.py index c1796f8d..a87285ae 100644 --- a/tickets/views.py +++ b/tickets/views.py @@ -193,7 +193,7 @@ def aff_tickets(request): # Canonic views for optional apps -def profil(request, user): +def aff_profil(request, user): """View used to display the tickets on a user's profile.""" tickets_list = Ticket.objects.filter(user=user).all().order_by("-date") nbr_tickets = tickets_list.count() @@ -214,7 +214,7 @@ def profil(request, user): "nbr_tickets_unsolved": nbr_tickets_unsolved, } return render_to_string( - "tickets/profil.html", context=context, request=request, using=None + "tickets/aff_profil.html", context=context, request=request, using=None ) diff --git a/users/templates/users/profil.html b/users/templates/users/profil.html index ad0605c7..b9fbc621 100644 --- a/users/templates/users/profil.html +++ b/users/templates/users/profil.html @@ -407,31 +407,6 @@ with this program; if not, write to the Free Software Foundation, Inc., {% endif %} -
-
-

- - {% trans "Machines" %} - {{ nb_machines }} -

-
-
- -
- {% if machines_list %} - {% include 'machines/aff_machines.html' with machines_list=machines_list %} - {% else %} -

{% trans "No machine" %}

- {% endif %} -
-
-
@@ -569,7 +544,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
- {% for template in optionnal_templates_list %} + {% for template in apps_templates_list %} {{ template }} {% endfor %} diff --git a/users/views.py b/users/views.py index 54f67b77..96d32136 100644 --- a/users/views.py +++ b/users/views.py @@ -77,7 +77,7 @@ from machines.models import Machine from preferences.models import OptionalUser, GeneralOption, AssoOption from importlib import import_module from django.conf import settings -from re2o.settings_local import OPTIONNAL_APPS_RE2O +from re2o.settings import LOCAL_APPS, OPTIONNAL_APPS_RE2O from re2o.views import form from re2o.utils import all_has_access, permission_tree from re2o.base import re2o_paginator, SortTable @@ -1314,8 +1314,8 @@ def index_serviceusers(request): def mon_profil(request): """Shortcuts view to profil view, with correct arguments. Returns the view profil with users argument, users is set to - default request.user. - + default request.user. + Parameters: request (django request): Standard django request. @@ -1346,33 +1346,18 @@ def profil(request, users, **_kwargs): Returns: Django User Profil Form. - """ - machines = ( - Machine.objects.filter(user=users) - .select_related("user") - .prefetch_related("interface_set__domain__extension") - .prefetch_related("interface_set__ipv4__ip_type__extension") - .prefetch_related("interface_set__machine_type") - .prefetch_related("interface_set__domain__related_domain__extension") - ) - machines = SortTable.sort( - machines, - request.GET.get("col"), - request.GET.get("order"), - SortTable.MACHINES_INDEX, - ) - optionnal_apps = [import_module(app) for app in OPTIONNAL_APPS_RE2O] - optionnal_templates_list = [ - app.views.profil(request, users) - for app in optionnal_apps - if hasattr(app.views, "profil") + # Generate the template list for all apps of re2o if relevant + apps = [import_module(app) for app in LOCAL_APPS + OPTIONNAL_APPS_RE2O] + apps_templates_list = [ + app.views.aff_profil(request, users) + for app in apps + if hasattr(app.views, "aff_profil") ] - pagination_large_number = GeneralOption.get_cached_value("pagination_large_number") - nb_machines = machines.count() - machines = re2o_paginator(request, machines, pagination_large_number) + nb_machines = users.user_interfaces().count() + factures = Facture.objects.filter(user=users) factures = SortTable.sort( factures, @@ -1405,9 +1390,8 @@ def profil(request, users, **_kwargs): "users/profil.html", { "users": users, - "machines_list": machines, - "nb_machines": nb_machines, - "optionnal_templates_list": optionnal_templates_list, + "nb_machines":nb_machines, + "apps_templates_list": apps_templates_list, "facture_list": factures, "ban_list": bans, "white_list": whitelists,