11from __future__ import annotations
2+ from django .core .cache import cache
23
4+ from pycon .tasks import check_pending_heavy_processing_work
5+ from reviews .cache_keys import get_cache_key
6+ from reviews .tasks import compute_recap_analysis
37from django .core .exceptions import PermissionDenied
48from django .http import JsonResponse
59from django .urls import path
4145 from users .models import User
4246
4347
48+ def get_accepted_submissions (conference ):
49+ return (
50+ Submission .objects .filter (conference = conference )
51+ .filter (
52+ Q (pending_status = Submission .STATUS .accepted )
53+ | Q (pending_status__isnull = True , status = Submission .STATUS .accepted )
54+ | Q (pending_status = "" , status = Submission .STATUS .accepted )
55+ )
56+ .select_related ("speaker" , "type" , "audience_level" )
57+ .prefetch_related ("languages" )
58+ .order_by ("id" )
59+ )
60+
61+
4462def get_stats_for_submissions (qs ):
4563 """Get all stats for a queryset of submissions."""
4664 total = qs .count ()
@@ -184,7 +202,7 @@ def get_user_review_create_values(self, review_item_id: int) -> dict[str, Any]:
184202 ...
185203
186204 def get_recap_context (
187- self , request : HttpRequest , review_session : ReviewSession
205+ self , request : HttpRequest , review_session : ReviewSession , admin_site : AdminSite
188206 ) -> dict [str , Any ]:
189207 """Return template context for the recap view."""
190208 ...
@@ -443,11 +461,11 @@ def get_next_to_review_item_id(
443461 return unvoted_item .id if unvoted_item else None
444462
445463 def get_recap_context (
446- self , request : HttpRequest , review_session : ReviewSession
464+ self , request : HttpRequest , review_session : ReviewSession , admin_site : AdminSite
447465 ) -> dict [str , Any ]:
448466 review_session_id = review_session .id
449467 conference = review_session .conference
450- accepted_submissions = self . _get_accepted_submissions (conference )
468+ accepted_submissions = get_accepted_submissions (conference )
451469
452470 # Get submission types for this conference
453471 submission_types = list (
@@ -474,7 +492,7 @@ def get_recap_context(
474492 ]
475493
476494 return dict (
477- self . admin_site .each_context (request ),
495+ admin_site .each_context (request ),
478496 title = "Recap" ,
479497 review_session_id = review_session_id ,
480498 review_session_repr = str (review_session ),
@@ -506,16 +524,10 @@ def review_recap_compute_analysis_view(self, request, review_session_id):
506524 raise PermissionDenied ()
507525
508526 conference = review_session .conference
509- accepted_submissions = list (self . _get_accepted_submissions (conference ))
527+ accepted_submissions = list (get_accepted_submissions (conference ))
510528 force_recompute = request .GET .get ("recompute" ) == "1"
511529 check_only = request .GET .get ("check" ) == "1"
512530
513- from django .core .cache import cache
514-
515- from pycon .tasks import check_pending_heavy_processing_work
516- from reviews .cache_keys import get_cache_key
517- from reviews .tasks import compute_recap_analysis
518-
519531 combined_cache_key = get_cache_key (
520532 "recap_analysis" , conference .id , accepted_submissions
521533 )
0 commit comments