@@ -36,6 +36,7 @@ async def get_attempt(
3636 data : dict [str , JsonValue ] | None = None
3737 state : str | None = None
3838 score : ScoreModel | None = None
39+ new_seed : bool = False
3940
4041 with contextlib .suppress (webserver_errors .MissingAttemptDataError ):
4142 data = await self ._state_manager .read_attempt_data (question_id , attempt_id )
@@ -47,12 +48,15 @@ async def get_attempt(
4748 seed = await self ._state_manager .read_attempt_seed (question_id , attempt_id )
4849 except webserver_errors .MissingAttemptSeedError :
4950 seed = random .randint (0 , 1000 )
50- await self . _state_manager . write_attempt_seed ( question_id , attempt_id , seed )
51+ new_seed = True
5152
5253 async with self .get_worker () as worker :
5354 attempt , state = await self ._get_or_start_attempt (question_id , attempt_id , state , data , score , worker )
5455 renderer = _AttemptRenderer (attempt , display_options , self .generate_api_url , worker )
55- return await renderer .render_ui (data , state , score , seed )
56+ render_data = await renderer .render_ui (data , state , score , seed )
57+ if new_seed :
58+ await self ._state_manager .write_attempt_seed (question_id , attempt_id , seed )
59+ return render_data
5660
5761 async def get_attempts (self , question_id : str ) -> dict [str , AttemptData ]:
5862 """Gets all saved attempts."""
0 commit comments