Update
svn: r6321
This commit is contained in:
parent
776ba17993
commit
2fc20b47bf
@ -43,6 +43,7 @@ from _MediaBase import MediaBase
|
|||||||
from _AttributeBase import AttributeBase
|
from _AttributeBase import AttributeBase
|
||||||
from _EventRef import EventRef
|
from _EventRef import EventRef
|
||||||
from _LdsOrdBase import LdsOrdBase
|
from _LdsOrdBase import LdsOrdBase
|
||||||
|
from _ChildRef import ChildRef
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -92,7 +93,7 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
LdsOrdBase.__init__(self)
|
LdsOrdBase.__init__(self)
|
||||||
self.father_handle = None
|
self.father_handle = None
|
||||||
self.mother_handle = None
|
self.mother_handle = None
|
||||||
self.child_list = []
|
self.child_ref_list = []
|
||||||
self.type = (Family.MARRIED,'')
|
self.type = (Family.MARRIED,'')
|
||||||
self.event_ref_list = []
|
self.event_ref_list = []
|
||||||
self.lds_seal = None
|
self.lds_seal = None
|
||||||
@ -119,7 +120,9 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
else:
|
else:
|
||||||
lds_seal = self.lds_seal.serialize()
|
lds_seal = self.lds_seal.serialize()
|
||||||
return (self.handle, self.gramps_id, self.father_handle,
|
return (self.handle, self.gramps_id, self.father_handle,
|
||||||
self.mother_handle,self.child_list, self.type,
|
self.mother_handle,
|
||||||
|
[cr.serialize for cr in self.child_ref_list],
|
||||||
|
self.type,
|
||||||
[er.serialize() for er in self.event_ref_list],
|
[er.serialize() for er in self.event_ref_list],
|
||||||
MediaBase.serialize(self),
|
MediaBase.serialize(self),
|
||||||
AttributeBase.serialize(self),
|
AttributeBase.serialize(self),
|
||||||
@ -134,12 +137,14 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
back into the data in a Family structure.
|
back into the data in a Family structure.
|
||||||
"""
|
"""
|
||||||
(self.handle, self.gramps_id, self.father_handle, self.mother_handle,
|
(self.handle, self.gramps_id, self.father_handle, self.mother_handle,
|
||||||
self.child_list, self.type, event_ref_list, media_list,
|
child_ref_list, self.type, event_ref_list, media_list,
|
||||||
attribute_list, lds_seal_list, source_list, note,
|
attribute_list, lds_seal_list, source_list, note,
|
||||||
self.change, self.marker, self.private) = data
|
self.change, self.marker, self.private) = data
|
||||||
|
|
||||||
self.event_ref_list = [EventRef().unserialize(er)
|
self.event_ref_list = [EventRef().unserialize(er)
|
||||||
for er in event_ref_list]
|
for er in event_ref_list]
|
||||||
|
self.child_ref_list = [ChildRef().unserialize(cr)
|
||||||
|
for cr in child_ref_list]
|
||||||
MediaBase.unserialize(self,media_list)
|
MediaBase.unserialize(self,media_list)
|
||||||
AttributeBase.unserialize(self,attribute_list)
|
AttributeBase.unserialize(self,attribute_list)
|
||||||
SourceBase.unserialize(self,source_list)
|
SourceBase.unserialize(self,source_list)
|
||||||
@ -150,7 +155,8 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
if classname == 'Event':
|
if classname == 'Event':
|
||||||
return handle in [ref.ref for ref in self.event_ref_list]
|
return handle in [ref.ref for ref in self.event_ref_list]
|
||||||
elif classname == 'Person':
|
elif classname == 'Person':
|
||||||
return handle in self.child_list + [self.father_handle,self.mother_handle]
|
return handle in ([ref.ref for ref in self.child_list]
|
||||||
|
+ [self.father_handle,self.mother_handle])
|
||||||
elif classname == 'Place':
|
elif classname == 'Place':
|
||||||
return handle in [ x.place for x in self.lds_ord_list ]
|
return handle in [ x.place for x in self.lds_ord_list ]
|
||||||
return False
|
return False
|
||||||
@ -161,9 +167,9 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
if ref.ref not in handle_list ]
|
if ref.ref not in handle_list ]
|
||||||
self.event_ref_list = new_list
|
self.event_ref_list = new_list
|
||||||
elif classname == 'Person':
|
elif classname == 'Person':
|
||||||
new_list = [ handle for handle in self.child_list \
|
new_list = [ ref for ref in self.child_ref_list \
|
||||||
if handle not in handle_list ]
|
if ref.ref not in handle_list ]
|
||||||
self.child_list = new_list
|
self.child_ref_list = new_list
|
||||||
if self.father_handle in handle_list:
|
if self.father_handle in handle_list:
|
||||||
self.father_handle = None
|
self.father_handle = None
|
||||||
if self.mother_handle in handle_list:
|
if self.mother_handle in handle_list:
|
||||||
@ -177,13 +183,15 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
if classname == 'Event':
|
if classname == 'Event':
|
||||||
handle_list = [ref.ref for ref in self.event_ref_list]
|
handle_list = [ref.ref for ref in self.event_ref_list]
|
||||||
while old_handle in handle_list:
|
while old_handle in handle_list:
|
||||||
ix = handle_list(old_handle)
|
ix = handle_list.index(old_handle)
|
||||||
self.event_ref_list[ix].ref = new_handle
|
self.event_ref_list[ix].ref = new_handle
|
||||||
handle_list[ix] = ''
|
handle_list[ix] = ''
|
||||||
elif classname == 'Person':
|
elif classname == 'Person':
|
||||||
while old_handle in self.child_list:
|
handle_list = [ref.ref for ref in self.child_ref_list]
|
||||||
ix = self.child_list.index(old_handle)
|
while old_handle in handle_list:
|
||||||
self.child_list[ix] = new_handle
|
ix = handle_list.index(old_handle)
|
||||||
|
self.child_ref_list[ix].ref = new_handle
|
||||||
|
handle_list[ix] = ''
|
||||||
if self.father_handle == old_handle:
|
if self.father_handle == old_handle:
|
||||||
self.father_handle = new_handle
|
self.father_handle = new_handle
|
||||||
if self.mother_handle == old_handle:
|
if self.mother_handle == old_handle:
|
||||||
@ -234,8 +242,9 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
"""
|
"""
|
||||||
ret = []
|
ret = []
|
||||||
ret += [('Event',ref.ref) for ref in self.event_ref_list]
|
ret += [('Event',ref.ref) for ref in self.event_ref_list]
|
||||||
ret += [('Person',handle) for handle in
|
ret += [('Person',handle) for handle
|
||||||
self.child_list + [self.father_handle,self.mother_handle]
|
in ([ref.ref for ref in self.child_ref_list] +
|
||||||
|
[self.father_handle,self.mother_handle])
|
||||||
if handle]
|
if handle]
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
@ -358,7 +367,7 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
"""
|
"""
|
||||||
return self.mother_handle
|
return self.mother_handle
|
||||||
|
|
||||||
def add_child_handle(self,person_handle):
|
def add_child_ref(self,child_ref):
|
||||||
"""
|
"""
|
||||||
Adds the database handle for L{Person} to the Family's list
|
Adds the database handle for L{Person} to the Family's list
|
||||||
of children.
|
of children.
|
||||||
@ -366,10 +375,11 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
@param person_handle: L{Person} database handle
|
@param person_handle: L{Person} database handle
|
||||||
@type person_handle: str
|
@type person_handle: str
|
||||||
"""
|
"""
|
||||||
if person_handle not in self.child_list:
|
if child_ref and not isinstance(childref,ChildRef):
|
||||||
self.child_list.append(person_handle)
|
raise ValueError("expecting ChildRef instance")
|
||||||
|
self.child_ref_list.append(child_ref)
|
||||||
|
|
||||||
def remove_child_handle(self,person_handle):
|
def remove_child_ref(self,child_ref):
|
||||||
"""
|
"""
|
||||||
Removes the database handle for L{Person} to the Family's list
|
Removes the database handle for L{Person} to the Family's list
|
||||||
of children if the L{Person} is already in the list.
|
of children if the L{Person} is already in the list.
|
||||||
@ -380,13 +390,13 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
in the list.
|
in the list.
|
||||||
@rtype: bool
|
@rtype: bool
|
||||||
"""
|
"""
|
||||||
if person_handle in self.child_list:
|
if child_ref and not isinstance(childref,ChildRef):
|
||||||
self.child_list.remove(person_handle)
|
raise ValueError("expecting ChildRef instance")
|
||||||
return True
|
new_list = [ref for ref in self.child_ref_list
|
||||||
else:
|
if ref.ref != child_ref.ref ]
|
||||||
return False
|
self.child_ref_list = new_list
|
||||||
|
|
||||||
def get_child_handle_list(self):
|
def get_child_ref_list(self):
|
||||||
"""
|
"""
|
||||||
Returns the list of L{Person} handles identifying the children
|
Returns the list of L{Person} handles identifying the children
|
||||||
of the Family.
|
of the Family.
|
||||||
@ -395,9 +405,9 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
the Family.
|
the Family.
|
||||||
@rtype: list
|
@rtype: list
|
||||||
"""
|
"""
|
||||||
return self.child_list
|
return self.child_ref_list
|
||||||
|
|
||||||
def set_child_handle_list(self, child_list):
|
def set_child_ref_list(self, child_ref_list):
|
||||||
"""
|
"""
|
||||||
Assigns the passed list to the Family's list children.
|
Assigns the passed list to the Family's list children.
|
||||||
|
|
||||||
@ -405,7 +415,7 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
|
|||||||
as the Family's list of children.
|
as the Family's list of children.
|
||||||
@type child_list: list of L{Person} handles
|
@type child_list: list of L{Person} handles
|
||||||
"""
|
"""
|
||||||
self.child_list = child_list
|
self.child_ref_list = child_ref_list
|
||||||
|
|
||||||
def add_event_handle(self,event_handle):
|
def add_event_handle(self,event_handle):
|
||||||
warn( "Use add_event_ref instead of add_event_handle", DeprecationWarning, 2)
|
warn( "Use add_event_ref instead of add_event_handle", DeprecationWarning, 2)
|
||||||
|
Loading…
Reference in New Issue
Block a user