From 18bcbab24bab236d20f933ef35fa086afc724989 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sun, 1 Dec 2024 11:46:36 +0100
Subject: [PATCH] export-pion: Bug fixes

---
 bin/export-pion | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/bin/export-pion b/bin/export-pion
index 0947950c..9e0ffe49 100755
--- a/bin/export-pion
+++ b/bin/export-pion
@@ -2,6 +2,7 @@
 # Účast ve všech soutěžích ročníku (anonymně)
 
 from dataclasses import dataclass
+from sqlalchemy import and_
 from sqlalchemy.orm import joinedload
 import sys
 
@@ -10,14 +11,15 @@ import mo.db as db
 
 sess = db.get_session()
 
-res = (sess.query(db.Participant, db.Participation)
+res = (sess.query(db.Participant, db.Participation, db.Contest, db.Round)
        .select_from(db.Participant)
        .join(db.Participation, db.Participation.user_id == db.Participant.user_id)
+       .join(db.Contest, db.Contest.contest_id == db.Participation.contest_id)
+       .join(db.Round, and_(db.Round.round_id == db.Contest.round_id, db.Round.year == db.Participant.year))
        .options(joinedload(db.Participant.user))
        .options(joinedload(db.Participant.school_place).joinedload(db.Place.parent_place).joinedload(db.Place.parent_place).joinedload(db.Place.parent_place))
        .options(joinedload(db.Participation.place))
-       .options(joinedload(db.Participation.contest).joinedload(db.Contest.place))
-       .options(joinedload(db.Participation.contest).joinedload(db.Contest.round))
+       .filter(db.Round.master_round_id == db.Round.round_id)
        .all())
 
 
@@ -35,15 +37,13 @@ class Row:
 
 
 output = []
-for pant, pion in res:
-    if pion.contest.round.is_subround():
-        continue
+for pant, pion, ct, rnd in res:
     output.append(Row(
-        rocnik=str(pion.contest.round.year),
-        kategorie=pion.contest.round.category,
-        kolo=str(pion.contest.round.level),
-        misto=pion.contest.place.name,
-        kod_mista=str(pion.contest.place.place_id),
+        rocnik=str(rnd.year),
+        kategorie=rnd.category,
+        kolo=str(rnd.seq),
+        misto=ct.place.name,
+        kod_mista=str(ct.place.place_id),
         kod_ucastnika=str(pion.user_id),
         nazev_skoly=pant.school_place.name,
         kod_skoly=str(pant.school),
-- 
GitLab