diff --git a/bin/export-pion b/bin/export-pion index 55460b4a04f5b91b9fe58d91754c9c4b2610bc9c..baae99c89d022bb7ef321eb2521684b27c646cee 100755 --- a/bin/export-pion +++ b/bin/export-pion @@ -19,12 +19,12 @@ sess = db.get_session() points_by_uid_roundid: DefaultDict[Tuple[int, int], Decimal] = defaultdict(Decimal) sols = (sess.query(db.Solution) - .options(joinedload(db.Solution.task)) + .options(joinedload(db.Solution.task).joinedload(db.Task.round)) .all()) for sol in sols: if sol.points is not None: - points_by_uid_roundid[sol.user_id, sol.task.round_id] += sol.points + points_by_uid_roundid[sol.user_id, sol.task.round.master_round_id] += sol.points res = (sess.query(db.Participant, db.Participation, db.Contest, db.Round) .select_from(db.Participant) @@ -33,6 +33,7 @@ res = (sess.query(db.Participant, db.Participation, db.Contest, db.Round) .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.Participant.school_place).joinedload(db.Place.school)) .options(joinedload(db.Participation.place)) .filter(db.Round.master_round_id == db.Round.round_id) .filter(db.Participation.state == db.PartState.active) @@ -52,6 +53,7 @@ class Row(mo.csv.Row): trida: str = "" nazev_skoly: str = "" id_skoly: str = "" + izo_skoly: str = "" mesto_skoly: str = "" okres_skoly: str = "" kraj_skoly: str = "" @@ -71,7 +73,7 @@ for pant, pion, ct, rnd in res: rocnik=str(rnd.year), kategorie=rnd.category, kolo_seq=str(rnd.seq), - kolo=rnd.name, + kolo=rnd.round_type.friendly_name() if rnd.round_type != db.RoundType.other else rnd.name, misto=ct.place.name, id_mista=str(ct.place.place_id), nuts_mista=str(ct.place.nuts) if ct.place.nuts else "", @@ -79,6 +81,7 @@ for pant, pion, ct, rnd in res: trida=pant.grade, nazev_skoly=pant.school_place.name, id_skoly=str(pant.school), + izo_skoly=pant.school_place.school.red_izo or "", mesto_skoly=pant.school_place.parent_place.name, okres_skoly=pant.school_place.parent_place.parent_place.name, kraj_skoly=pant.school_place.parent_place.parent_place.parent_place.name,