From 12416e473bebeacc6760502b2c9a7cf2f4ddc935 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Thu, 12 Jul 2018 10:29:57 +0200 Subject: [PATCH] Display only one line per user. see #1516 --- modoboa/core/templatetags/core_tags.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/modoboa/core/templatetags/core_tags.py b/modoboa/core/templatetags/core_tags.py index 2b2a707dd..b0f98ca3c 100644 --- a/modoboa/core/templatetags/core_tags.py +++ b/modoboa/core/templatetags/core_tags.py @@ -20,6 +20,7 @@ from django.utils.encoding import smart_text from django.utils.safestring import mark_safe from django.utils.translation import get_language, ugettext as _ +from .. import models from .. import signals register = template.Library() @@ -185,8 +186,6 @@ class ConnectedUsers(template.Node): self.varname = varname def render(self, context): - from modoboa.core.models import User - sessions = Session.objects.filter(expire_date__gte=timezone.now()) uid_list = [] # Build a list of user ids from that query @@ -197,12 +196,8 @@ class ConnectedUsers(template.Node): uid_list.append(uid) # Query all logged in users based on id list - context[self.varname] = [] - for uid in uid_list: - try: - context[self.varname].append(User.objects.get(pk=uid)) - except User.DoesNotExist: - pass + context[self.varname] = ( + models.User.objects.filter(pk__in=uid_list).distinct()) return ""