Better filtering of children, fix traceback in on_save_parents
svn: r277
This commit is contained in:
parent
73b0fb2d4b
commit
ec9f8e9702
@ -75,6 +75,15 @@ class Date:
|
|||||||
def getYear(self):
|
def getYear(self):
|
||||||
return self.get_start_date().getYear()
|
return self.get_start_date().getYear()
|
||||||
|
|
||||||
|
def getHighYear(self):
|
||||||
|
if self.stop == None:
|
||||||
|
return self.start.getYear()
|
||||||
|
else:
|
||||||
|
return self.stop.getYear()
|
||||||
|
|
||||||
|
def getLowYear(self):
|
||||||
|
return self.start.getYear()
|
||||||
|
|
||||||
def getMonth(self):
|
def getMonth(self):
|
||||||
return self.get_start_date().getMonth()
|
return self.get_start_date().getMonth()
|
||||||
|
|
||||||
|
@ -3741,7 +3741,7 @@ Unknown
|
|||||||
<handler>on_show_toggled</handler>
|
<handler>on_show_toggled</handler>
|
||||||
<last_modification_time>Thu, 22 Mar 2001 00:44:07 GMT</last_modification_time>
|
<last_modification_time>Thu, 22 Mar 2001 00:44:07 GMT</last_modification_time>
|
||||||
</signal>
|
</signal>
|
||||||
<label>Show only those not currently a child in a family</label>
|
<label>Hide people not likely to be a child of this family</label>
|
||||||
<active>True</active>
|
<active>True</active>
|
||||||
<draw_indicator>True</draw_indicator>
|
<draw_indicator>True</draw_indicator>
|
||||||
<child>
|
<child>
|
||||||
|
@ -296,9 +296,74 @@ def redraw_child_list(filter):
|
|||||||
addChildList.freeze()
|
addChildList.freeze()
|
||||||
addChildList.clear()
|
addChildList.clear()
|
||||||
index = 0
|
index = 0
|
||||||
|
|
||||||
|
bday = active_person.getBirth().getDateObj()
|
||||||
|
if bday.getYear() != -1:
|
||||||
|
bday_valid = 1
|
||||||
|
else:
|
||||||
|
bday_valid = 0
|
||||||
|
dday = active_person.getDeath().getDateObj()
|
||||||
|
if dday.getYear() != -1:
|
||||||
|
dday_valid = 1
|
||||||
|
else:
|
||||||
|
dday_valid = 0
|
||||||
|
|
||||||
|
slist = []
|
||||||
|
f = active_person.getMainFamily()
|
||||||
|
if f:
|
||||||
|
if f.getFather():
|
||||||
|
slist.append(f.getFather())
|
||||||
|
if f.getMother():
|
||||||
|
slist.append(f.getFather())
|
||||||
|
|
||||||
|
for f in active_person.getFamilyList():
|
||||||
|
slist.append(f.getFather())
|
||||||
|
slist.append(f.getMother())
|
||||||
|
for c in f.getChildList():
|
||||||
|
slist.append(c)
|
||||||
|
|
||||||
for person in person_list:
|
for person in person_list:
|
||||||
if filter and person.getMainFamily() != None:
|
if person.getMainFamily() == active_person.getMainFamily():
|
||||||
continue
|
continue
|
||||||
|
if person in slist:
|
||||||
|
continue
|
||||||
|
if filter:
|
||||||
|
if person.getMainFamily() != None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
pdday = person.getDeath().getDateObj()
|
||||||
|
pbday = person.getBirth().getDateObj()
|
||||||
|
|
||||||
|
if bday_valid:
|
||||||
|
if pbday.getYear() != -1:
|
||||||
|
|
||||||
|
# reject if child birthdate < parents birthdate + 10
|
||||||
|
if pbday.getLowYear() < bday.getHighYear()+10:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# reject if child birthdate > parents birthdate + 90
|
||||||
|
if pbday.getLowYear() > bday.getHighYear()+90:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if pdday.getYear() != -1:
|
||||||
|
# reject if child deathdate < parents birthdate+ 10
|
||||||
|
if pdday.getLowYear() < limit.getHighYear()+10:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if dday_valid:
|
||||||
|
|
||||||
|
if pbday.getYear() != -1:
|
||||||
|
|
||||||
|
# reject if childs birth date > parents deathday + 3
|
||||||
|
if pdday.getLowYear() > dday.getHighYear()+3:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if pdday.getYear() != -1:
|
||||||
|
|
||||||
|
# reject if childs death date > parents deathday + 150
|
||||||
|
if pbday.getLowYear() > dday.getHighYear() + 150:
|
||||||
|
continue
|
||||||
|
|
||||||
addChildList.append([utils.phonebook_name(person),birthday(person),\
|
addChildList.append([utils.phonebook_name(person),birthday(person),\
|
||||||
person.getId()])
|
person.getId()])
|
||||||
addChildList.set_row_data(index,person)
|
addChildList.set_row_data(index,person)
|
||||||
@ -977,6 +1042,8 @@ def on_save_parents_clicked(obj):
|
|||||||
global active_father
|
global active_father
|
||||||
global active_mother
|
global active_mother
|
||||||
global active_family
|
global active_family
|
||||||
|
global select_mother
|
||||||
|
global select_father
|
||||||
|
|
||||||
mrel = family_window.get_widget("mrel").get_text()
|
mrel = family_window.get_widget("mrel").get_text()
|
||||||
frel = family_window.get_widget("frel").get_text()
|
frel = family_window.get_widget("frel").get_text()
|
||||||
@ -1227,12 +1294,17 @@ def on_delete_parents_clicked(obj):
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def delete_spouse():
|
def delete_spouse():
|
||||||
|
import Check
|
||||||
global active_family
|
global active_family
|
||||||
|
|
||||||
if active_person == active_family.getFather():
|
if active_person == active_family.getFather():
|
||||||
person = active_family.getMother()
|
person = active_family.getMother()
|
||||||
|
else:
|
||||||
|
person = active_family.getFather()
|
||||||
|
|
||||||
if person:
|
if person:
|
||||||
person.removeFamily(active_family)
|
person.removeFamily(active_family)
|
||||||
|
|
||||||
if len(active_family.getChildList()) == 0:
|
if len(active_family.getChildList()) == 0:
|
||||||
active_person.removeFamily(active_family)
|
active_person.removeFamily(active_family)
|
||||||
database.deleteFamily(active_family)
|
database.deleteFamily(active_family)
|
||||||
@ -1242,22 +1314,14 @@ def delete_spouse():
|
|||||||
active_family = None
|
active_family = None
|
||||||
else:
|
else:
|
||||||
active_family.setMother(None)
|
active_family.setMother(None)
|
||||||
else:
|
|
||||||
person = active_family.getFather()
|
|
||||||
if person:
|
|
||||||
person.removeFamily(active_family)
|
|
||||||
if len(active_family.getChildList()) == 0:
|
|
||||||
active_person.removeFamily(active_family)
|
|
||||||
database.deleteFamily(active_family)
|
|
||||||
if len(active_person.getFamilyList()) > 0:
|
|
||||||
active_family = active_person.getFamilyIndex(0)
|
|
||||||
else:
|
|
||||||
active_family = None
|
|
||||||
else:
|
|
||||||
active_family.setFather(None)
|
|
||||||
load_family()
|
load_family()
|
||||||
utils.modified()
|
utils.modified()
|
||||||
|
|
||||||
|
checker = Check.CheckIntegrity(database)
|
||||||
|
checker.cleanup_empty_families(1)
|
||||||
|
checker.check_for_broken_family_links()
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
1837
gramps/src/po/de.po
1837
gramps/src/po/de.po
File diff suppressed because it is too large
Load Diff
1697
gramps/src/po/sv.po
1697
gramps/src/po/sv.po
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user