Skip to content

Commit a4561f5

Browse files
committed
improvement that makes only one counting query
- Legacy-Id: 10526
1 parent f4f6742 commit a4561f5

3 files changed

Lines changed: 14 additions & 8 deletions

File tree

ietf/nomcom/templatetags/nomcom_tags.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
from ietf.nomcom.models import Feedback
1414
from ietf.nomcom.utils import get_nomcom_by_year, get_user_email, retrieve_nomcom_private_key
1515

16+
import debug # pyflakes:ignore
17+
1618

1719
register = template.Library()
1820

@@ -31,8 +33,10 @@ def has_publickey(nomcom):
3133

3234

3335
@register.simple_tag
34-
def add_num_nominations(user_comments, position, nominee):
35-
count = user_comments.filter(positions=position, nominees=nominee).count()
36+
def add_num_nominations(counts, position, nominee):
37+
count = 0
38+
if position.id in counts and nominee.id in counts[position.id]:
39+
count = counts[position.id][nominee.id]
3640
if count:
3741
return '<span class="badge" title="%s earlier comments from you on %s as %s">%s</span>&nbsp;' % (count , nominee.email.address, position, count)
3842
else:

ietf/nomcom/views.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import datetime
22
import re
3-
from collections import OrderedDict
3+
from collections import OrderedDict, Counter
44

55
from django.conf import settings
66
from django.contrib.auth.decorators import login_required
@@ -392,8 +392,10 @@ def feedback(request, year, public):
392392
user_comments = Feedback.objects.filter(nomcom=nomcom,
393393
type='comment',
394394
author__in=request.user.person.email_set.filter(active='True'))
395-
396-
395+
counter = Counter(user_comments.values_list('positions','nominees'))
396+
counts = dict()
397+
for pos,nom in counter:
398+
counts.setdefault(pos,dict())[nom] = counter[(pos,nom)]
397399

398400
if public:
399401
base_template = "nomcom/nomcom_public_base.html"
@@ -407,7 +409,7 @@ def feedback(request, year, public):
407409
'nomcom': nomcom,
408410
'year': year,
409411
'selected': 'feedback',
410-
'user_comments' : user_comments,
412+
'counts' : counts,
411413
'base_template': base_template
412414
})
413415

@@ -434,7 +436,7 @@ def feedback(request, year, public):
434436
'year': year,
435437
'positions': positions,
436438
'selected': 'feedback',
437-
'user_comments' : user_comments,
439+
'counts': counts,
438440
'base_template': base_template
439441
})
440442

ietf/templates/nomcom/feedback.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ <h4>{{ p.name }}</h4>
4444
{% for np in p.nomineeposition_set.accepted.not_duplicated %}
4545
<a class="btn btn-default btn-xs" {% if nomcom.group.state_id != 'conclude' %}href="?nominee={{np.nominee.id}}&position={{ np.position.id}}"{% endif %}>
4646
{{ np.nominee.name }}
47-
{% add_num_nominations user_comments np.position np.nominee %}
47+
{% add_num_nominations counts np.position np.nominee %}
4848
</a>
4949
{% endfor %}
5050
</div>

0 commit comments

Comments
 (0)