Skip to content

Commit da52637

Browse files
committed
Not show nominees and nominee positions duplicated
See ietf-tools#970 ietf-tools#973 - Legacy-Id: 5589
1 parent c5c33c2 commit da52637

5 files changed

Lines changed: 21 additions & 9 deletions

File tree

ietf/nomcom/managers.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,31 @@ def pending(self):
2727
return self.by_state('pending')
2828

2929
def declined(self):
30-
""" only draft objects """
30+
""" only declined objects """
3131
return self.by_state('declined')
3232

33+
def not_duplicated(self):
34+
return self.filter(nominee__duplicated__isnull=True)
35+
3336

3437
class NomineePositionManager(models.Manager, MixinManager):
3538
def get_query_set(self):
3639
return NomineePositionQuerySet(self.model)
3740

3841

39-
class NomineeManager(models.Manager):
42+
class NomineeManagerQuerySet(QuerySet):
43+
4044
def get_by_nomcom(self, nomcom):
4145
return self.filter(nomcom=nomcom)
4246

47+
def not_duplicated(self):
48+
return self.filter(duplicated__isnull=True)
49+
50+
51+
class NomineeManager(models.Manager, MixinManager):
52+
def get_query_set(self):
53+
return NomineeManagerQuerySet(self.model)
54+
4355

4456
class PositionQuerySet(QuerySet):
4557

ietf/nomcom/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def private_key(request, year):
6666
@member_required(role='member')
6767
def private_index(request, year):
6868
nomcom = get_nomcom_by_year(year)
69-
all_nominee_positions = NomineePosition.objects.get_by_nomcom(nomcom)
69+
all_nominee_positions = NomineePosition.objects.get_by_nomcom(nomcom).not_duplicated()
7070
is_chair = nomcom.group.is_chair(request.user)
7171
message = None
7272
if is_chair and request.method == 'POST':
@@ -382,7 +382,7 @@ def process_nomination_status(request, year, nominee_position_id, state, date, h
382382
@private_key_required
383383
def view_feedback(request, year):
384384
nomcom = get_nomcom_by_year(year)
385-
nominees = Nominee.objects.get_by_nomcom(nomcom).distinct()
385+
nominees = Nominee.objects.get_by_nomcom(nomcom).not_duplicated().distinct()
386386

387387
return render_to_response('nomcom/view_feedback.html',
388388
{'year': year,

ietf/templates/nomcom/private_feedback.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ <h3> Nominees </h3>
5858

5959
<table class="nominees">
6060
{% for p in positions %}
61-
{% if p.nomineeposition_set.accepted %}
61+
{% if p.nomineeposition_set.accepted.not_duplicated %}
6262
<tr><th>{{ p.name }}:</th></tr>
63-
{% for np in p.nomineeposition_set.accepted %}
63+
{% for np in p.nomineeposition_set.accepted.not_duplicated %}
6464
<tr>
6565
<td><a href="{% url nomcom_private_feedback year %}?nominee={{np.nominee.id}}&position={{ np.position.id}}">{{ np.nominee.email.person.name }}</td>
6666
</tr>

ietf/templates/nomcom/private_index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ <h3>Select Filters</h3>
103103
<th>State</th>
104104
<th>Questionnaire</th>
105105
</tr>
106-
{% for np in nominee_positions %}
106+
{% for np in nominee_positions.not_duplicated %}
107107
<tr class="{{ forloop.counter|divisibleby:2|yesno:"oddrow,evenrow" }}">
108108
{% if is_chair %}
109109
<td><input class="batch-select" type="checkbox" value="{{ np.id }}" name="selected"/></td>

ietf/templates/nomcom/public_feedback.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ <h3> Nominees </h3>
6060

6161
<table class="nominees">
6262
{% for p in positions %}
63-
{% if p.nomineeposition_set.accepted %}
63+
{% if p.nomineeposition_set.accepted.not_duplicated %}
6464
<tr><th>{{ p.name }}:</th></tr>
65-
{% for np in p.nomineeposition_set.accepted %}
65+
{% for np in p.nomineeposition_set.accepted.not_duplicated %}
6666
<tr>
6767
<td>{% add_num_nominations user np.position np.nominee %}<a href="{% url nomcom_public_feedback year %}?nominee={{np.nominee.id}}&position={{ np.position.id}}">{{ np.nominee.email.person.name }}</td>
6868
</tr>

0 commit comments

Comments
 (0)