From 668bad81814d01448ff677fa2bc0c5c7a9467063 Mon Sep 17 00:00:00 2001 From: Etty Date: Sun, 21 Jan 2024 23:49:59 +0000 Subject: [PATCH 1/3] Add ranking to Recap review Grants --- backend/reviews/admin.py | 41 ++++++++++++++++++++- backend/reviews/templates/grant-review.html | 4 +- backend/reviews/templates/grants-recap.html | 11 +++++- 3 files changed, 50 insertions(+), 6 deletions(-) diff --git a/backend/reviews/admin.py b/backend/reviews/admin.py index 27ee8e6832..2ed26ed143 100644 --- a/backend/reviews/admin.py +++ b/backend/reviews/admin.py @@ -8,13 +8,23 @@ from django import forms from django.contrib import admin, messages -from django.db.models import Count, F, OuterRef, Prefetch, Subquery, Sum +from django.db.models import ( + Count, + F, + OuterRef, + Prefetch, + Subquery, + Sum, + CharField, + Value, +) +from django.db.models.functions import Concat, Cast, Coalesce from django.http.request import HttpRequest from django.shortcuts import redirect from django.template.response import TemplateResponse from django.urls import path, reverse from django.utils.safestring import mark_safe - +from django.contrib.postgres.aggregates import StringAgg from grants.models import Grant from participants.models import Participant from reviews.models import AvailableScoreOption, ReviewSession, UserReview @@ -298,6 +308,33 @@ def _review_grants_recap_view(self, request, review_session): conference_id=review_session.conference_id, ) ), + ranking=Coalesce( + Subquery( + Submission.objects.filter( + speaker_id=OuterRef("user_id"), + conference_id=OuterRef("conference_id"), + ) + .annotate( + ranking=StringAgg( + Concat( + "rankings__tag__name", + Value(": "), + Cast("rankings__rank", CharField()), + Value("/"), + Cast( + "rankings__total_submissions_per_tag", + CharField(), + ), + output_field=CharField(), + ), + delimiter=", \n", + ) + ) + .values("ranking")[:1] + ), + Value(""), + output_field=CharField(), + ), user_private_comment=Subquery( UserReview.objects.filter( review_session_id=review_session_id, diff --git a/backend/reviews/templates/grant-review.html b/backend/reviews/templates/grant-review.html index e34a72d679..767ae5cc3b 100644 --- a/backend/reviews/templates/grant-review.html +++ b/backend/reviews/templates/grant-review.html @@ -140,8 +140,8 @@

Grant

{{grant.get_interested_in_volunteering_display}}
-
- Is Speaker? +
+ Is Speaker? (proposed)
{{is_speaker|yesno}}
diff --git a/backend/reviews/templates/grants-recap.html b/backend/reviews/templates/grants-recap.html index 751080c370..a2331ee763 100644 --- a/backend/reviews/templates/grants-recap.html +++ b/backend/reviews/templates/grants-recap.html @@ -143,6 +143,10 @@
Votes
+ +
Ranking
+
+
Status
@@ -208,8 +212,8 @@ Interested in Volunteering? {{item.get_interested_in_volunteering_display}} -
  • - Is a speaker? +
  • + Is a speaker? (proposed) {{item.is_a_speaker|yesno}}
  • @@ -241,6 +245,9 @@ {% endif %} + {{ item.ranking|linebreaksbr }} + + {{ item.get_status_display }} From d79500ae51c67d8793d4bc8f5714cb7b106154a2 Mon Sep 17 00:00:00 2001 From: Etty Date: Sun, 21 Jan 2024 23:55:09 +0000 Subject: [PATCH 2/3] Change template --- backend/reviews/templates/grant-review.html | 6 +++--- backend/reviews/templates/grants-recap.html | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/reviews/templates/grant-review.html b/backend/reviews/templates/grant-review.html index 767ae5cc3b..ea47e21fad 100644 --- a/backend/reviews/templates/grant-review.html +++ b/backend/reviews/templates/grant-review.html @@ -140,9 +140,9 @@

    Grant

    {{grant.get_interested_in_volunteering_display}}
    -
    - Is Speaker? (proposed) -
    {{is_speaker|yesno}}
    +
    + Has sent proposal(s)? +
    {{has_sent_proposals|yesno}}
    diff --git a/backend/reviews/templates/grants-recap.html b/backend/reviews/templates/grants-recap.html index a2331ee763..34247ff5cf 100644 --- a/backend/reviews/templates/grants-recap.html +++ b/backend/reviews/templates/grants-recap.html @@ -212,9 +212,9 @@ Interested in Volunteering? {{item.get_interested_in_volunteering_display}} -
  • - Is a speaker? (proposed) - {{item.is_a_speaker|yesno}} +
  • + Has sent proposal(s)? + {{item.has_sent_proposals|yesno}}
  • From 5dd596c8dc0a22deb40948980492c9fd02997c09 Mon Sep 17 00:00:00 2001 From: Etty Date: Tue, 23 Jan 2024 10:41:20 +0000 Subject: [PATCH 3/3] Update --- backend/reviews/admin.py | 4 ++-- backend/reviews/templates/grants-recap.html | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/backend/reviews/admin.py b/backend/reviews/admin.py index 2ed26ed143..a9a2c91c15 100644 --- a/backend/reviews/admin.py +++ b/backend/reviews/admin.py @@ -302,7 +302,7 @@ def _review_grants_recap_view(self, request, review_session): F("total_score") / F("vote_count"), output_field=FloatField(), ), - is_a_speaker=Exists( + has_sent_proposals=Exists( Submission.objects.non_cancelled().filter( speaker_id=OuterRef("user_id"), conference_id=review_session.conference_id, @@ -629,7 +629,7 @@ def _render_grant_review( context = dict( self.admin_site.each_context(request), grant=grant, - is_speaker=Submission.objects.non_cancelled() + has_sent_proposals=Submission.objects.non_cancelled() .filter( speaker_id=grant.user_id, conference_id=grant.conference_id, diff --git a/backend/reviews/templates/grants-recap.html b/backend/reviews/templates/grants-recap.html index 34247ff5cf..40837a6941 100644 --- a/backend/reviews/templates/grants-recap.html +++ b/backend/reviews/templates/grants-recap.html @@ -244,10 +244,16 @@

    {{ item.user_private_comment }}

    {% endif %} - - {{ item.ranking|linebreaksbr }} - - + + {% for submission in item.submissions.all %} + {% for ranking in submission.rankings.all %} + {{ ranking.tag.name }}: {{ ranking.rank }} / {{ ranking.total_submissions_per_tag }}
    + {% endfor %} + {% empty %} + - + + {% endfor %} + {{ item.get_status_display }}