SPB Git forge

spb/qc-election

Public
20commits 1branches 0releases
4.9 MBsize
maindefault branch
20 days agolast push
Python 66.6% HTML 24.8% CSS 4.9% JavaScript 3.6%

seed : correspondance sondage à ±1 jour (fin la boucle purge/recréation EN-FR)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed 23 days ago (Sep 1, 2026) parent 828a59f

1 changed file +9 −4

modified backend/app/seed.py +9 −4
@@ -139,11 +139,16 @@ def seed_all(db: Session | None = None) -> dict:
139 139 pol, _ = get_or_create(db, Mo.Pollster, name=pollster)
140 140 first = grp.iloc[0]
141 141 ss = None if pd.isna(first["sample_size"]) else int(first["sample_size"])
142 − # correspondance par (maison, fin de terrain) SANS la taille :
143 − # Wikipédia complète souvent n/MoE après coup — même sondage.
142 + # correspondance par (maison, fin de terrain ±1 j) SANS la
143 + # taille : Wikipédia complète n/MoE après coup, et les
144 + # agrégateurs EN/FR datent parfois le même sondage à ±1 jour.
145 + fe_d = date.fromisoformat(fe)
146 + from datetime import timedelta as _td
144 147 poll = (db.query(Mo.Poll)
145 − .filter_by(pollster_id=pol.id,
146 − field_end=date.fromisoformat(fe)).first())
148 + .filter(Mo.Poll.pollster_id == pol.id,
149 + Mo.Poll.field_end >= fe_d - _td(days=1),
150 + Mo.Poll.field_end <= fe_d + _td(days=1))
151 + .first())
147 152 if poll is None:
148 153 poll = Mo.Poll(
149 154 election_id=el.id, pollster_id=pol.id,
150 155