Improve speaker merging code.
This commit is contained in:
parent
99b180681f
commit
a5f8070179
13
main.py
13
main.py
|
@ -186,9 +186,20 @@ def merge() -> str | Response:
|
||||||
|
|
||||||
print(other_ids, "->", merge_to_id)
|
print(other_ids, "->", merge_to_id)
|
||||||
|
|
||||||
|
conference_people = model.ConferencePerson.query.filter(
|
||||||
|
model.ConferencePerson.person_id.in_(other_ids)
|
||||||
|
)
|
||||||
|
|
||||||
with database.session.begin():
|
with database.session.begin():
|
||||||
if merge_to_id != name_from_person_id:
|
|
||||||
merge_to = model.Person.query.get(merge_to_id)
|
merge_to = model.Person.query.get(merge_to_id)
|
||||||
|
existing_conferences = {conf.id for conf in merge_to.conferences}
|
||||||
|
to_delete = [
|
||||||
|
cp for cp in conference_people if cp.conference_id in existing_conferences
|
||||||
|
]
|
||||||
|
for cp in to_delete:
|
||||||
|
database.session.delete(cp)
|
||||||
|
|
||||||
|
if merge_to_id != name_from_person_id:
|
||||||
name_from_person = model.Person.query.get(name_from_person_id)
|
name_from_person = model.Person.query.get(name_from_person_id)
|
||||||
merge_to.name = name_from_person.name
|
merge_to.name = name_from_person.name
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue