Skip to content

Commit 3f743b4

Browse files
committed
break out gameset winners based upon group
1 parent afcd0cd commit 3f743b4

File tree

4 files changed

+21
-16
lines changed

4 files changed

+21
-16
lines changed

src/picker/models/picks.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ class Meta:
503503

504504
def pick_for_picker(self, picker):
505505
try:
506-
return self.picksets.select_related().get(picker=picker)
506+
return self.picksets.get(picker=picker)
507507
except models.ObjectDoesNotExist:
508508
return None
509509

@@ -566,19 +566,23 @@ def update_results(self, results):
566566

567567
return (count, self.points)
568568

569-
def winners(self):
569+
def winners(self, group):
570570
if self.points:
571-
for r in self.results():
571+
for r in self.results(group):
572572
if r.place == 1:
573573
yield r.picker
574574

575+
def pickset_query(self, group):
576+
return self.picksets.filter(picker__picker_memberships__group=group).select_related("picker")
577+
575578
def update_pick_status(self):
576-
winning_pickers = set(picker.id for picker in self.winners())
577-
for wp in self.picksets.all():
578-
wp.update_status(wp.picker_id in winning_pickers)
579+
for group in PickerGrouping.objects.active():
580+
winning_pickers = set(picker.id for picker in self.winners(group))
581+
for wp in self.pickset_query(group):
582+
wp.update_status(wp.picker_id in winning_pickers)
579583

580-
def results(self):
581-
picks = list(self.picksets.select_related())
584+
def results(self, group):
585+
picks = list(self.pickset_query(group))
582586
return utils.weighted_standings(
583587
sorted(picks, key=lambda ps: (ps.correct, -ps.points_delta), reverse=True)
584588
)

src/picker/templates/picker/_base/results/results.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ <h1>
77
<small><a href="{% url 'picker-results-season' gameset.league.slug group.id gameset.season %}">{{ gameset.season }}</a></small>
88
</h1>
99
{% season_nav gameset "results" %}
10-
{% with gameset.results as results %}
1110
<p>
1211
{% if gameset.points %}<strong>Final points total:</strong> {{ gameset.points }}<br>{% endif %}
1312
<em class="autopick">Note: Italicized picker names indicate auto-picker selections</em>
@@ -79,6 +78,5 @@ <h1>
7978
{% endwith %}
8079
{% endif %}
8180
</table>
82-
{% endwith %}
8381
</div>
8482
{% endblock %}

src/picker/templates/picker/_base/results/season.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ <h1>{{ season }} Results</h1>
99
<th class="text-center">Week</th>
1010
<th>Winner(s)</th>
1111
</tr>
12-
{% for gameset in gamesets %}
12+
{% for gameset, winners in gamesets %}
1313
<tr>
1414
<td class="text-center">
1515
<a href="{% url "picker-results-sequence" gameset.league.slug group.id gameset.season gameset.sequence %}">Week {{ gameset.sequence }}</a>
1616
</td>
17-
<td>{% for w in gameset.winners %}
17+
<td>{% for w in winners %}
1818
<div style="display: inline-block; margin-left: 8px;">
1919
<strong class="pickername">{{ w.picker }}</strong>
2020
</div>{% if not forloop.last %}, {% endif %}

src/picker/views/picks.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from django.utils.functional import cached_property
22
from django.shortcuts import get_object_or_404, get_list_or_404
3-
43
from .. import forms
54
from .base import SimplePickerViewBase, PickerViewBase, SimpleFormMixin
65
from ..models import Picker, PickerGrouping, GameSetPicks
@@ -80,6 +79,7 @@ def get(self, request, *args, **kwargs):
8079
gameset = GameSetPicks.objects.current_gameset(league=league)
8180
if gameset:
8281
context["gameset"] = gameset
82+
context["results"] = gameset.results(context["group"])
8383
else:
8484
self.template_name = "@unavailable.html"
8585
context["heading"] = "Results currently unavailable"
@@ -91,9 +91,12 @@ class ResultsBySeason(ResultsBase):
9191
template_name = "@results/season.html"
9292

9393
def get_context_data(self, **kwargs):
94-
return super().get_context_data(
95-
gamesets=GameSetPicks.objects.filter(league=self.league, season=self.season), **kwargs
96-
)
94+
gamesets = [
95+
(gs, gs.winners(self.group))
96+
for gs in GameSetPicks.objects.filter(league=self.league, season=self.season)
97+
]
98+
99+
return super().get_context_data(gamesets=gamesets, **kwargs)
97100

98101

99102
class ResultsByWeek(ResultsBase):

0 commit comments

Comments
 (0)