diff --git a/bin/init-schools b/bin/init-schools index 9a2a5ab1055301f3de7ffa2fd858685da893bea2..bafcc2a3f7dee10e1e9baedd557cfaff82d3a1a7 100755 --- a/bin/init-schools +++ b/bin/init-schools @@ -399,28 +399,45 @@ def plan_actions() -> List[Action]: else: oi = 0 ni = 0 + merged_list: List[Tuple[ProtoSchool, ProtoSchool]] = [] while oi < len(old_ps) or ni < len(new_ps): old: Optional[ProtoSchool] = old_ps[oi] if oi < len(old_ps) else None new: Optional[ProtoSchool] = new_ps[ni] if ni < len(new_ps) else None + if old and new and old.address == new.address: + merged_list.append((old, new)) plan(old, new) oi += 1 ni += 1 elif old and (not new or old.address < new.address): assert old.school - print(f'TODO: Starou školu #{old.school.place_id} (RED IZO {red_izo}) nedokáži spárovat s novou') - print(f'\t# URL: {school_url(old.school.place_id)}') - if old.school.place.note: - print(f'\t# NOTE: {old.school.place.note}') - for field in fields: - print(f'\t{field}: {getattr(old, field)}') + if not old.school.place.hidden: + merged_list.append((old, None)) oi += 1 else: - print(f'TODO: Novou školu (RED IZO {red_izo}) nedokáži spárovat se starou') - for field in fields: - print(f'\t{field}: {getattr(new, field)}') + merged_list.append((None, new)) ni += 1 + if any(not(x[0] and x[1]) for x in merged_list): + # Existují nespárované záznamy, tak o nich chceme varovat + print(f'TODO: Školy s RED IZO {red_izo} se nepodařilo spárovat') + for old, new in merged_list: + if old and new: + print(f' Spárovaná (#{old.school.place_id}):') + s = new + elif old: + print(f' Jen v OSMO (#{old.school.place_id}):') + s = old + else: + print(' Jen v rejstříku:') + s = new + if old: + print(f'\t# URL: {school_url(old.school.place_id)}') + if old.school.place.note: + print(f'\t# NOTE: {old.school.place.note}') + for field in fields: + print(f'\t{field}: {getattr(s, field)}') + for red_izo in sorted(old_schools.keys()): if red_izo not in new_schools: for os in old_schools[red_izo]: