Fixed apply_fiter to simplify it

svn: r327
This commit is contained in:
Don Allingham 2001-08-12 03:41:18 +00:00
parent a382c66838
commit c771d6730c

View File

@ -2381,11 +2381,9 @@ def apply_filter():
altnames = [] altnames = []
for person in people: for person in people:
names.append((person.getPrimaryName(),person,0)) names.append((person.getPrimaryName(),person,0))
for name in person.getAlternateNames():
altnames.append((name,person,1))
if Config.hide_altnames == 0: if Config.hide_altnames == 0:
names = names + altnames for name in person.getAlternateNames():
names.append((name,person,1))
person_list.freeze() person_list.freeze()
@ -2393,56 +2391,55 @@ def apply_filter():
gname = utils.phonebook_from_name gname = utils.phonebook_from_name
person_list.set_column_visibility(1,Config.id_visible) person_list.set_column_visibility(1,Config.id_visible)
new_alt2col = {} new_alt2col = {}
for name_tuple in names: for person in database.getPersonMap().values():
name,person,alt = name_tuple
if datacomp(person): if datacomp(person):
pos = (person,alt)
if alt:
if id2col.has_key(person):
continue
if new_alt2col.has_key(person):
new_alt2col[person].append(pos)
else:
new_alt2col[person] = [pos]
else:
if id2col.has_key(person): if id2col.has_key(person):
continue continue
pos = (person,0)
id2col[person] = pos id2col[person] = pos
new_alt2col[person] = []
if person.getGender(): if person.getGender():
gender = const.male gender = const.male
else: else:
gender = const.female gender = const.female
bday = person.getBirth().getDateObj() bday = person.getBirth().getDateObj()
dday = person.getDeath().getDateObj() dday = person.getDeath().getDateObj()
person_list.insert(0,[gname(name,0),person.getId(), sort_bday = sort.build_sort_birth(bday)
gender,bday.getQuoteDate(), sort_dday = sort.build_sort_death(dday)
dday.getQuoteDate(), qbday = bday.getQuoteDate()
sort.build_sort_name(name), qdday = dday.getQuoteDate()
sort.build_sort_birth(bday), pid = person.getId()
sort.build_sort_death(dday)])
name = person.getPrimaryName()
person_list.insert(0,[gname(name,0),pid, gender,qbday,qdday,
sort.build_sort_name(name),sort_bday,sort_dday])
person_list.set_row_data(0,pos) person_list.set_row_data(0,pos)
else:
if alt: for name in person.getAlternateNames():
if alt2col.has_key(person): pos = (person,1)
ids = alt2col[person] new_alt2col[person].append(pos)
del alt2col[person]
for id in ids: person_list.insert(0,[gname(name,1),pid,gender,qbday,qdday,
row = person_list.find_row_from_data(id) sort.build_sort_name(name),sort_bday,sort_dday])
if row != -1: person_list.set_row_data(0,pos)
person_list.remove(row)
else: else:
if id2col.has_key(person): if id2col.has_key(person):
id = id2col[person] id = id2col[person]
del id2col[person] del id2col[person]
row = person_list.find_row_from_data(id) row = person_list.find_row_from_data(id)
if row != -1:
person_list.remove(row) person_list.remove(row)
for id in alt2col[person]:
row = person_list.find_row_from_data(id)
person_list.remove(row)
alt2col = new_alt2col
person_list.thaw() person_list.thaw()
sort_person_list() sort_person_list()