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: