diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py index 9bc9872af04d2c06b787330f3396924d222764b0..71fce79775fc997234e8dbbe431fe4589fc31a8f 100644 --- a/mo/web/org_contest.py +++ b/mo/web/org_contest.py @@ -422,7 +422,7 @@ def org_contest_list(id: int, site_id: Optional[int] = None): filter = ParticipantsFilterForm(request.args) filter.validate() query = get_contestants_query( - round=contest.round, contest=contest, + round=contest.round, contest=contest, site=site, school=filter.f_school, # contest_place=filter.f_contest_place, participation_place=filter.f_participation_place, @@ -467,6 +467,7 @@ contest_list_columns = ( def get_contestants_query( round: db.Round, contest: Optional[db.Contest] = None, + site: Optional[db.Place] = None, contest_place: Optional[db.Place] = None, participation_place: Optional[db.Place] = None, participation_state: Optional[db.PartState] = None, @@ -483,6 +484,8 @@ def get_contestants_query( query = query.filter(db.Contest.round == round) query = query.options(joinedload(db.Contest.place)) query = query.filter(db.Participation.contest_id == db.Contest.contest_id) + if site: + query = query.filter(db.Participation.place_id == site.place_id) if contest_place: query = query.filter(db.Contest.place_id == contest_place.place_id) if participation_place: