@@ -73,7 +73,6 @@ def _get_single_submission(
7373 with DbSession () as session :
7474 has_review = select (1 ).where (Submission .identifier == Review .submission_identifier ).exists ()
7575 query = select (Submission ).where (~ has_review )
76-
7776 if which == ListMode .NEWEST :
7877 query = query .order_by (Submission .request_date .desc ()) # type: ignore[attr-defined]
7978 if from_requestee is not None :
@@ -84,29 +83,16 @@ def _get_single_submission(
8483
8584def _get_submissions_by_state (
8685 * ,
87- which : Literal [ListMode .COMPLETED , ListMode .PENDING ],
86+ which : Literal [ListMode .COMPLETED , ListMode .PENDING , ListMode . ALL ],
8887 from_requestee : str | None = None ,
8988) -> Sequence [Submission ]:
9089 with DbSession () as session :
9190 has_review = select (1 ).where (Submission .identifier == Review .submission_identifier ).exists ()
91+ submissions = select (Submission )
9292 if which == ListMode .PENDING :
93- submissions = select ( Submission ) .where (~ has_review )
93+ submissions = submissions .where (~ has_review )
9494 if which == ListMode .COMPLETED :
95- submissions = select (Submission ).where (has_review )
96- if from_requestee is not None :
97- submissions = submissions .where (Submission .requestee_identifier == from_requestee )
98- return session .scalars (submissions ).all ()
99-
100-
101- def _get_all_submissions (
102- * ,
103- which : Literal [ListMode .ALL ],
104- from_requestee : str | None = None ,
105- ) -> Sequence [Submission ]:
106- with DbSession () as session :
107- has_review = select (1 ).where (Submission .identifier == Review .submission_identifier ).exists ()
108- if which == ListMode .ALL :
109- submissions = select (Submission ).where (or_ (~ has_review , has_review ))
95+ submissions = submissions .where (has_review )
11096 if from_requestee is not None :
11197 submissions = submissions .where (Submission .requestee_identifier == from_requestee )
11298 return session .scalars (submissions ).all ()
@@ -120,10 +106,8 @@ def list_submissions(
120106 if mode in [ListMode .NEWEST , ListMode .OLDEST ]:
121107 submission = _get_single_submission (which = mode , from_requestee = user_filter ) # type: ignore[arg-type]
122108 return [submission ] if submission else []
123- if mode in [ListMode .PENDING , ListMode .COMPLETED ]:
109+ if mode in [ListMode .PENDING , ListMode .COMPLETED , ListMode . ALL ]:
124110 return _get_submissions_by_state (which = mode , from_requestee = user_filter ) # type: ignore[arg-type]
125- if mode in [ListMode .ALL ]:
126- return _get_all_submissions (which = mode ) # type: ignore[arg-type]
127111 raise ValueError (f"`mode` should be one of { ListMode !r} but is { mode !r} ." )
128112
129113
0 commit comments