* src/GenericFilter.py: Fix copy-n-paste errors; dont crash on empty database
svn: r4487
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
2005-05-05 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
||||||
|
* src/GenericFilter.py: Fix copy-n-paste errors;
|
||||||
|
dont crash on empty database
|
||||||
|
|
||||||
2005-05-04 Alex Roitman <shura@gramps-project.org>
|
2005-05-04 Alex Roitman <shura@gramps-project.org>
|
||||||
* doc/gramps-manual/C/figures/scratch-pad.png: Add new figure.
|
* doc/gramps-manual/C/figures/scratch-pad.png: Add new figure.
|
||||||
* doc/gramps-manual/C/authors.xml: Update.
|
* doc/gramps-manual/C/authors.xml: Update.
|
||||||
|
@ -412,8 +412,6 @@ class IsDescendantOf(Rule):
|
|||||||
except IndexError:
|
except IndexError:
|
||||||
first = 1
|
first = 1
|
||||||
|
|
||||||
if not self.init:
|
|
||||||
self.init = 1
|
|
||||||
root_id = self.list[0]
|
root_id = self.list[0]
|
||||||
self.init_list(root_id,first)
|
self.init_list(root_id,first)
|
||||||
|
|
||||||
@ -433,6 +431,8 @@ class IsDescendantOf(Rule):
|
|||||||
return self.map.has_key(p_id)
|
return self.map.has_key(p_id)
|
||||||
|
|
||||||
def init_list(self,p_id,first):
|
def init_list(self,p_id,first):
|
||||||
|
if not p_id:
|
||||||
|
return
|
||||||
if not first:
|
if not first:
|
||||||
self.map[p_id] = 1
|
self.map[p_id] = 1
|
||||||
|
|
||||||
@ -503,6 +503,8 @@ class IsLessThanNthGenerationDescendantOf(Rule):
|
|||||||
return self.map.has_key(p_id)
|
return self.map.has_key(p_id)
|
||||||
|
|
||||||
def init_list(self,p_id,gen):
|
def init_list(self,p_id,gen):
|
||||||
|
if not p_id:
|
||||||
|
return
|
||||||
if gen:
|
if gen:
|
||||||
self.map[p_id] = 1
|
self.map[p_id] = 1
|
||||||
if gen >= int(self.list[1]):
|
if gen >= int(self.list[1]):
|
||||||
@ -548,6 +550,8 @@ class IsMoreThanNthGenerationDescendantOf(Rule):
|
|||||||
return self.map.has_key(p_id)
|
return self.map.has_key(p_id)
|
||||||
|
|
||||||
def init_list(self,p_id,gen):
|
def init_list(self,p_id,gen):
|
||||||
|
if not p_id:
|
||||||
|
return
|
||||||
if gen >= int(self.list[1]):
|
if gen >= int(self.list[1]):
|
||||||
self.map[p_id] = 1
|
self.map[p_id] = 1
|
||||||
|
|
||||||
@ -594,6 +598,8 @@ class IsChildOfFilterMatch(Rule):
|
|||||||
return self.map.has_key(p_id)
|
return self.map.has_key(p_id)
|
||||||
|
|
||||||
def init_list(self,p_id):
|
def init_list(self,p_id):
|
||||||
|
if not p_id:
|
||||||
|
return
|
||||||
p = self.db.get_person_from_handle(p_id)
|
p = self.db.get_person_from_handle(p_id)
|
||||||
for fam_id in p.get_family_handle_list():
|
for fam_id in p.get_family_handle_list():
|
||||||
fam = self.db.get_family_from_handle(fam_id)
|
fam = self.db.get_family_from_handle(fam_id)
|
||||||
@ -637,6 +643,8 @@ class IsSiblingOfFilterMatch(Rule):
|
|||||||
return self.map.has_key(p_id)
|
return self.map.has_key(p_id)
|
||||||
|
|
||||||
def init_list(self,p_id):
|
def init_list(self,p_id):
|
||||||
|
if not p_id:
|
||||||
|
return
|
||||||
p = self.db.get_person_from_handle(p_id)
|
p = self.db.get_person_from_handle(p_id)
|
||||||
fam_id = p.get_main_parents_family_handle()
|
fam_id = p.get_main_parents_family_handle()
|
||||||
fam = self.db.get_family_from_handle(fam_id)
|
fam = self.db.get_family_from_handle(fam_id)
|
||||||
@ -735,6 +743,8 @@ class IsAncestorOf(Rule):
|
|||||||
return self.map.has_key(p_id)
|
return self.map.has_key(p_id)
|
||||||
|
|
||||||
def init_ancestor_list(self,db,p_id,first):
|
def init_ancestor_list(self,db,p_id,first):
|
||||||
|
if not p_id:
|
||||||
|
return
|
||||||
if not first:
|
if not first:
|
||||||
self.map[p_id] = 1
|
self.map[p_id] = 1
|
||||||
|
|
||||||
@ -765,6 +775,8 @@ class IsAncestorOfFilterMatch(IsAncestorOf):
|
|||||||
IsAncestorOf.__init__(self,list)
|
IsAncestorOf.__init__(self,list)
|
||||||
|
|
||||||
def prepare(self,db):
|
def prepare(self,db):
|
||||||
|
self.db = db
|
||||||
|
self.map = {}
|
||||||
try:
|
try:
|
||||||
if int(self.list[1]):
|
if int(self.list[1]):
|
||||||
first = 0
|
first = 0
|
||||||
@ -773,7 +785,6 @@ class IsAncestorOfFilterMatch(IsAncestorOf):
|
|||||||
except IndexError:
|
except IndexError:
|
||||||
first = 1
|
first = 1
|
||||||
|
|
||||||
self.init = 1
|
|
||||||
filt = MatchesFilter(self.list)
|
filt = MatchesFilter(self.list)
|
||||||
filt.prepare(db)
|
filt.prepare(db)
|
||||||
for person_handle in db.get_person_handles(sort_handles=False):
|
for person_handle in db.get_person_handles(sort_handles=False):
|
||||||
@ -781,6 +792,9 @@ class IsAncestorOfFilterMatch(IsAncestorOf):
|
|||||||
self.init_ancestor_list (db,person_handle,first)
|
self.init_ancestor_list (db,person_handle,first)
|
||||||
filt.reset()
|
filt.reset()
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
self.map = {}
|
||||||
|
|
||||||
def name(self):
|
def name(self):
|
||||||
return 'Is an ancestor of filter match'
|
return 'Is an ancestor of filter match'
|
||||||
|
|
||||||
@ -808,7 +822,8 @@ class IsLessThanNthGenerationAncestorOf(Rule):
|
|||||||
def prepare(self,db):
|
def prepare(self,db):
|
||||||
self.db = db
|
self.db = db
|
||||||
self.map = {}
|
self.map = {}
|
||||||
self.build_witness_list()
|
root_id = self.list[0]
|
||||||
|
self.init_ancestor_list(root_id,0)
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self.map = {}
|
self.map = {}
|
||||||
@ -824,17 +839,13 @@ class IsLessThanNthGenerationAncestorOf(Rule):
|
|||||||
return _("Ancestral filters")
|
return _("Ancestral filters")
|
||||||
|
|
||||||
def apply(self,db,p_id):
|
def apply(self,db,p_id):
|
||||||
self.orig_id = p_id
|
|
||||||
self.db = db
|
|
||||||
if not self.init:
|
|
||||||
self.init = 1
|
|
||||||
root_id = self.list[0]
|
|
||||||
self.init_ancestor_list(root_id,0)
|
|
||||||
return self.map.has_key(p_id)
|
return self.map.has_key(p_id)
|
||||||
|
|
||||||
def init_ancestor_list(self,p_id,gen):
|
def init_ancestor_list(self,p_id,gen):
|
||||||
# if self.map.has_key(p.get_handle()) == 1:
|
# if self.map.has_key(p.get_handle()) == 1:
|
||||||
# loop_error(self.orig,p)
|
# loop_error(self.orig,p)
|
||||||
|
if not p_id:
|
||||||
|
return
|
||||||
if gen:
|
if gen:
|
||||||
self.map[p_id] = 1
|
self.map[p_id] = 1
|
||||||
if gen >= int(self.list[1]):
|
if gen >= int(self.list[1]):
|
||||||
@ -888,6 +899,8 @@ class IsMoreThanNthGenerationAncestorOf(Rule):
|
|||||||
def init_ancestor_list(self,p_id,gen):
|
def init_ancestor_list(self,p_id,gen):
|
||||||
# if self.map.has_key(p.get_handle()) == 1:
|
# if self.map.has_key(p.get_handle()) == 1:
|
||||||
# loop_error(self.orig,p)
|
# loop_error(self.orig,p)
|
||||||
|
if not p_id:
|
||||||
|
return
|
||||||
if gen >= int(self.list[1]):
|
if gen >= int(self.list[1]):
|
||||||
self.map[p_id] = 1
|
self.map[p_id] = 1
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user