File tree Expand file tree Collapse file tree 2 files changed +15
-8
lines changed
Expand file tree Collapse file tree 2 files changed +15
-8
lines changed Original file line number Diff line number Diff line change 1- import random
21from api .context import Info
32from api .submissions .permissions import CanSeeSubmissionRestrictedFields
43
4+ from pycon .db_utils import set_seed
55import strawberry
66
77from api .permissions import CanSeeSubmissions , IsAuthenticated
@@ -96,14 +96,11 @@ def submissions(
9696 if audience_levels :
9797 qs = qs .filter (audience_level__id__in = audience_levels )
9898
99- qs = qs . distinct ()
100- total_items = qs .count ()
99+ with set_seed ( info . context . request . user ):
100+ qs = qs .order_by ( "?" ). distinct ()
101101
102- # Randomize the order of the submissions
103- user = info .context .request .user
104-
105- submissions = list (qs [(page - 1 ) * page_size : page * page_size ])
106- random .Random (user .id ).shuffle (submissions )
102+ total_items = qs .count ()
103+ submissions = list (qs [(page - 1 ) * page_size : page * page_size ])
107104
108105 info .context ._my_votes = {
109106 vote .submission_id : vote
Original file line number Diff line number Diff line change 1+ from contextlib import contextmanager
2+ from django .db import connection
3+
4+
5+ @contextmanager
6+ def set_seed (seed : int ):
7+ with connection .cursor () as cursor :
8+ cursor .execute (f"SELECT setseed({ seed } )" )
9+ yield
10+ cursor .execute ("SELECT setseed(0)" )
You can’t perform that action at this time.
0 commit comments