Skip to content

Commit 7d27bb8

Browse files
committed
Add sort by reviewer votes in votes dashboard
1 parent 0d0bfcc commit 7d27bb8

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

junction/base/constants.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,8 @@ class ProposalReviewerComment:
8080
class ProposalVotesFilter:
8181
_NO_VOTES = [0, "No votes"]
8282
_MIN_ONE_VOTE = [1, "Minimum 1 vote"]
83-
_SORT = [2, "Sort by vote value"]
83+
_SORT_BY_SUM = [2, "Sort by total votes"]
84+
_SORT_BY_REVIEWER = [3, "Sort by your votes"]
8485

8586

8687
class ConferenceSettingConstants:

junction/proposals/dashboard.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,16 @@ def reviewer_votes_dashboard(request, conference_slug):
247247
elif votes == ProposalVotesFilter.MIN_ONE_VOTE:
248248
proposals_qs = [
249249
p for p in proposals_qs if p.get_reviewer_votes_count() >= votes]
250-
elif votes == ProposalVotesFilter.SORT:
250+
elif votes == ProposalVotesFilter.SORT_BY_SUM:
251251
proposals_qs = sorted(
252252
proposals_qs, key=lambda x: x.get_reviewer_votes_sum(),
253253
reverse=True)
254+
elif votes == ProposalVotesFilter.SORT_BY_REVIEWER:
255+
proposals_qs = sorted(
256+
proposals_qs,
257+
key=lambda x: x.get_reviewer_vote_value(reviewer=request.user),
258+
reverse=True,
259+
)
254260

255261
for section in proposal_sections:
256262
section_proposals = [

junction/proposals/models.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,16 @@ def get_reviewer_votes_sum(self):
187187
sum_of_votes = sum((v.vote_value.vote_value for v in votes))
188188
return sum_of_votes
189189

190+
def get_reviewer_vote_value(self, reviewer):
191+
try:
192+
vote = ProposalSectionReviewerVote.objects.get(
193+
proposal=self, voter__conference_reviewer__reviewer=reviewer,
194+
)
195+
return vote.vote_value.vote_value
196+
except ProposalSectionReviewerVote.DoesNotExist as e:
197+
print('{}'.format(e))
198+
return 0
199+
190200
def get_reviewers_count(self):
191201
""" Count of reviewers for given proposal section """
192202
return ProposalSectionReviewer.objects.filter(

0 commit comments

Comments
 (0)