GEDCOM improvements, enhanced LDS
svn: r631
This commit is contained in:
parent
dd0a85bf9f
commit
31375160e8
File diff suppressed because it is too large
Load Diff
@ -81,6 +81,7 @@ class EditPerson:
|
|||||||
self.callback = callback
|
self.callback = callback
|
||||||
self.path = db.getSavePath()
|
self.path = db.getSavePath()
|
||||||
self.not_loaded = 1
|
self.not_loaded = 1
|
||||||
|
self.lds_not_loaded = 1
|
||||||
self.lists_changed = 0
|
self.lists_changed = 0
|
||||||
self.update_birth = 0
|
self.update_birth = 0
|
||||||
self.update_death = 0
|
self.update_death = 0
|
||||||
@ -124,6 +125,12 @@ class EditPerson:
|
|||||||
"on_name_button_press" : self.aka_double_click,
|
"on_name_button_press" : self.aka_double_click,
|
||||||
"on_name_list_select_row" : self.on_name_list_select_row,
|
"on_name_list_select_row" : self.on_name_list_select_row,
|
||||||
"on_name_note_clicked" : self.on_name_note_clicked,
|
"on_name_note_clicked" : self.on_name_note_clicked,
|
||||||
|
"on_ldsbap_note_clicked" : self.on_ldsbap_note_clicked,
|
||||||
|
"on_ldsendow_note_clicked" : self.on_ldsendow_note_clicked,
|
||||||
|
"on_ldsseal_note_clicked" : self.on_ldsseal_note_clicked,
|
||||||
|
"on_ldsbap_src_clicked" : self.on_ldsbap_source_clicked,
|
||||||
|
"on_ldsendow_src_clicked" : self.on_ldsendow_source_clicked,
|
||||||
|
"on_ldsseal_src_clicked" : self.on_ldsseal_source_clicked,
|
||||||
"on_name_source_clicked" : self.on_primary_name_source_clicked,
|
"on_name_source_clicked" : self.on_primary_name_source_clicked,
|
||||||
"on_photolist_button_press_event" : self.gallery.on_photolist_button_press_event,
|
"on_photolist_button_press_event" : self.gallery.on_photolist_button_press_event,
|
||||||
"on_photolist_select_icon" : self.gallery.on_photo_select_icon,
|
"on_photolist_select_icon" : self.gallery.on_photo_select_icon,
|
||||||
@ -195,6 +202,12 @@ class EditPerson:
|
|||||||
self.ldsseal_date = self.get_widget("sealdate")
|
self.ldsseal_date = self.get_widget("sealdate")
|
||||||
self.ldsseal_temple = self.get_widget("sealtemple")
|
self.ldsseal_temple = self.get_widget("sealtemple")
|
||||||
self.ldsseal_fam = self.get_widget("sealparents")
|
self.ldsseal_fam = self.get_widget("sealparents")
|
||||||
|
self.ldsbapstat = self.get_widget("ldsbapstat")
|
||||||
|
self.ldssealstat = self.get_widget("sealstat")
|
||||||
|
self.ldsendowstat = self.get_widget("endowstat")
|
||||||
|
self.ldsbapplace = self.get_widget("ldsbapplace")
|
||||||
|
self.ldssealplace = self.get_widget("sealplace")
|
||||||
|
self.ldsendowplace = self.get_widget("endowplace")
|
||||||
|
|
||||||
self.elist = person.getEventList()[:]
|
self.elist = person.getEventList()[:]
|
||||||
self.nlist = person.getAlternateNames()[:]
|
self.nlist = person.getAlternateNames()[:]
|
||||||
@ -273,6 +286,7 @@ class EditPerson:
|
|||||||
ord = person.getLdsBaptism()
|
ord = person.getLdsBaptism()
|
||||||
self.ldsbap_temple.set_popdown_strings(_temple_names)
|
self.ldsbap_temple.set_popdown_strings(_temple_names)
|
||||||
if ord:
|
if ord:
|
||||||
|
self.bap_stat = ord.getStatus()
|
||||||
self.ldsbap_date.set_text(ord.getDate())
|
self.ldsbap_date.set_text(ord.getDate())
|
||||||
if ord.getTemple() != "":
|
if ord.getTemple() != "":
|
||||||
name = const.lds_temple_to_abrev[ord.getTemple()]
|
name = const.lds_temple_to_abrev[ord.getTemple()]
|
||||||
@ -280,11 +294,13 @@ class EditPerson:
|
|||||||
name = ""
|
name = ""
|
||||||
self.ldsbap_temple.entry.set_text(name)
|
self.ldsbap_temple.entry.set_text(name)
|
||||||
else:
|
else:
|
||||||
|
self.bap_stat = 0
|
||||||
self.ldsbap_temple.entry.set_text("")
|
self.ldsbap_temple.entry.set_text("")
|
||||||
|
|
||||||
ord = person.getLdsEndowment()
|
ord = person.getLdsEndowment()
|
||||||
self.ldsend_temple.set_popdown_strings(_temple_names)
|
self.ldsend_temple.set_popdown_strings(_temple_names)
|
||||||
if ord:
|
if ord:
|
||||||
|
self.end_stat = ord.getStatus()
|
||||||
self.ldsend_date.set_text(ord.getDate())
|
self.ldsend_date.set_text(ord.getDate())
|
||||||
if ord.getTemple() != "":
|
if ord.getTemple() != "":
|
||||||
name = const.lds_temple_to_abrev[ord.getTemple()]
|
name = const.lds_temple_to_abrev[ord.getTemple()]
|
||||||
@ -292,11 +308,13 @@ class EditPerson:
|
|||||||
name = ""
|
name = ""
|
||||||
self.ldsend_temple.entry.set_text(name)
|
self.ldsend_temple.entry.set_text(name)
|
||||||
else:
|
else:
|
||||||
|
self.end_stat = 0
|
||||||
self.ldsend_temple.entry.set_text("")
|
self.ldsend_temple.entry.set_text("")
|
||||||
|
|
||||||
ord = person.getLdsSeal()
|
ord = person.getLdsSeal()
|
||||||
self.ldsseal_temple.set_popdown_strings(_temple_names)
|
self.ldsseal_temple.set_popdown_strings(_temple_names)
|
||||||
if ord:
|
if ord:
|
||||||
|
self.seal_stat = ord.getStatus()
|
||||||
self.ldsseal_date.set_text(ord.getDate())
|
self.ldsseal_date.set_text(ord.getDate())
|
||||||
self.ldsfam = ord.getFamily()
|
self.ldsfam = ord.getFamily()
|
||||||
if ord.getTemple() != "":
|
if ord.getTemple() != "":
|
||||||
@ -305,6 +323,7 @@ class EditPerson:
|
|||||||
name = ""
|
name = ""
|
||||||
self.ldsseal_temple.entry.set_text(name)
|
self.ldsseal_temple.entry.set_text(name)
|
||||||
else:
|
else:
|
||||||
|
self.seal_stat = 0
|
||||||
self.ldsseal_temple.entry.set_text("")
|
self.ldsseal_temple.entry.set_text("")
|
||||||
self.ldsfam = None
|
self.ldsfam = None
|
||||||
|
|
||||||
@ -364,6 +383,10 @@ class EditPerson:
|
|||||||
self.addr_list.connect('drag_data_get', self.ad_drag_data_get)
|
self.addr_list.connect('drag_data_get', self.ad_drag_data_get)
|
||||||
self.addr_list.connect('drag_data_received', self.ad_drag_data_received)
|
self.addr_list.connect('drag_data_received', self.ad_drag_data_received)
|
||||||
|
|
||||||
|
self.build_bap_menu()
|
||||||
|
self.build_seal_menu()
|
||||||
|
self.build_endow_menu()
|
||||||
|
|
||||||
# draw lists
|
# draw lists
|
||||||
self.redraw_event_list()
|
self.redraw_event_list()
|
||||||
self.redraw_attr_list()
|
self.redraw_attr_list()
|
||||||
@ -372,6 +395,55 @@ class EditPerson:
|
|||||||
self.redraw_url_list()
|
self.redraw_url_list()
|
||||||
self.window.show()
|
self.window.show()
|
||||||
|
|
||||||
|
|
||||||
|
def build_bap_menu(self):
|
||||||
|
menu = gtk.GtkMenu()
|
||||||
|
index = 0
|
||||||
|
for val in const.lds_baptism_index:
|
||||||
|
menuitem = gtk.GtkMenuItem(val)
|
||||||
|
menuitem.set_data("val",index)
|
||||||
|
menuitem.connect('activate',self.set_lds_bap)
|
||||||
|
menuitem.show()
|
||||||
|
menu.append(menuitem)
|
||||||
|
index = index + 1
|
||||||
|
self.ldsbapstat.set_menu(menu)
|
||||||
|
self.ldsbapstat.set_history(self.bap_stat)
|
||||||
|
|
||||||
|
def build_endow_menu(self):
|
||||||
|
menu = gtk.GtkMenu()
|
||||||
|
index = 0
|
||||||
|
for val in const.lds_baptism_index:
|
||||||
|
menuitem = gtk.GtkMenuItem(val)
|
||||||
|
menuitem.set_data("val",index)
|
||||||
|
menuitem.connect('activate',self.set_lds_endow)
|
||||||
|
menuitem.show()
|
||||||
|
menu.append(menuitem)
|
||||||
|
index = index + 1
|
||||||
|
self.ldsendowstat.set_menu(menu)
|
||||||
|
self.ldsendowstat.set_history(self.end_stat)
|
||||||
|
|
||||||
|
def build_seal_menu(self):
|
||||||
|
menu = gtk.GtkMenu()
|
||||||
|
index = 0
|
||||||
|
for val in const.lds_csealing_index:
|
||||||
|
menuitem = gtk.GtkMenuItem(val)
|
||||||
|
menuitem.set_data("val",index)
|
||||||
|
menuitem.connect('activate',self.set_lds_seal)
|
||||||
|
menuitem.show()
|
||||||
|
menu.append(menuitem)
|
||||||
|
index = index + 1
|
||||||
|
self.ldssealstat.set_menu(menu)
|
||||||
|
self.ldssealstat.set_history(self.seal_stat)
|
||||||
|
|
||||||
|
def set_lds_bap(self,obj):
|
||||||
|
self.bap_stat = obj.get_data("val")
|
||||||
|
|
||||||
|
def set_lds_endow(self,obj):
|
||||||
|
self.end_stat = obj.get_data("val")
|
||||||
|
|
||||||
|
def set_lds_seal(self,obj):
|
||||||
|
self.seal_stat = obj.get_data("val")
|
||||||
|
|
||||||
def ev_drag_data_received(self,widget,context,x,y,selection_data,info,time):
|
def ev_drag_data_received(self,widget,context,x,y,selection_data,info,time):
|
||||||
if selection_data and selection_data.data:
|
if selection_data and selection_data.data:
|
||||||
exec 'data = %s' % selection_data.data
|
exec 'data = %s' % selection_data.data
|
||||||
@ -706,6 +778,8 @@ class EditPerson:
|
|||||||
d.set(date)
|
d.set(date)
|
||||||
if compare_dates(d,ord.getDateObj()) != 0:
|
if compare_dates(d,ord.getDateObj()) != 0:
|
||||||
changed = 1
|
changed = 1
|
||||||
|
elif ord.getStatus() != self.bap_stat:
|
||||||
|
changed = 1
|
||||||
elif ord.getTemple() != temple:
|
elif ord.getTemple() != temple:
|
||||||
changed = 1
|
changed = 1
|
||||||
|
|
||||||
@ -724,6 +798,8 @@ class EditPerson:
|
|||||||
d.set(date)
|
d.set(date)
|
||||||
if compare_dates(d,ord.getDateObj()) != 0:
|
if compare_dates(d,ord.getDateObj()) != 0:
|
||||||
changed = 1
|
changed = 1
|
||||||
|
elif ord.getStatus() != self.end_stat:
|
||||||
|
changed = 1
|
||||||
elif ord.getTemple() != temple:
|
elif ord.getTemple() != temple:
|
||||||
changed = 1
|
changed = 1
|
||||||
|
|
||||||
@ -745,6 +821,8 @@ class EditPerson:
|
|||||||
changed = 1
|
changed = 1
|
||||||
elif ord.getTemple() != temple:
|
elif ord.getTemple() != temple:
|
||||||
changed = 1
|
changed = 1
|
||||||
|
elif ord.getStatus() != self.seal_stat:
|
||||||
|
changed = 1
|
||||||
elif ord.getFamily() != self.ldsfam:
|
elif ord.getFamily() != self.ldsfam:
|
||||||
changed = 1
|
changed = 1
|
||||||
|
|
||||||
@ -1070,7 +1148,7 @@ class EditPerson:
|
|||||||
else:
|
else:
|
||||||
temple = ""
|
temple = ""
|
||||||
ord = self.person.getLdsBaptism()
|
ord = self.person.getLdsBaptism()
|
||||||
update_ord(self.person.setLdsBaptism,ord,date,temple)
|
update_ord(self.person.setLdsBaptism,ord,date,temple,self.bap_stat)
|
||||||
|
|
||||||
date = self.ldsend_date.get_text()
|
date = self.ldsend_date.get_text()
|
||||||
temple = self.ldsend_temple.entry.get_text()
|
temple = self.ldsend_temple.entry.get_text()
|
||||||
@ -1079,7 +1157,7 @@ class EditPerson:
|
|||||||
else:
|
else:
|
||||||
temple = ""
|
temple = ""
|
||||||
ord = self.person.getLdsEndowment()
|
ord = self.person.getLdsEndowment()
|
||||||
update_ord(self.person.setLdsEndowment,ord,date,temple)
|
update_ord(self.person.setLdsEndowment,ord,date,temple,self.end_stat)
|
||||||
|
|
||||||
date = self.ldsseal_date.get_text()
|
date = self.ldsseal_date.get_text()
|
||||||
temple = self.ldsseal_temple.entry.get_text()
|
temple = self.ldsseal_temple.entry.get_text()
|
||||||
@ -1105,6 +1183,9 @@ class EditPerson:
|
|||||||
if ord.getTemple() != temple:
|
if ord.getTemple() != temple:
|
||||||
ord.setTemple(temple)
|
ord.setTemple(temple)
|
||||||
utils.modified()
|
utils.modified()
|
||||||
|
if ord.getStatus() != self.seal_stat:
|
||||||
|
ord.setStatus(self.seal_stat)
|
||||||
|
utils.modified()
|
||||||
if ord.getFamily() != self.ldsfam:
|
if ord.getFamily() != self.ldsfam:
|
||||||
ord.setFamily(self.ldsfam)
|
ord.setFamily(self.ldsfam)
|
||||||
utils.modified()
|
utils.modified()
|
||||||
@ -1122,6 +1203,54 @@ class EditPerson:
|
|||||||
import NoteEdit
|
import NoteEdit
|
||||||
NoteEdit.NoteEditor(self.pname)
|
NoteEdit.NoteEditor(self.pname)
|
||||||
|
|
||||||
|
def on_ldsbap_source_clicked(self,obj):
|
||||||
|
import Sources
|
||||||
|
ord = self.person.getLdsBaptism()
|
||||||
|
if ord == None:
|
||||||
|
ord = LdsOrd()
|
||||||
|
self.person.setLdsBaptism(ord)
|
||||||
|
Sources.SourceSelector(self.pname.getSourceRefList(),self,src_changed)
|
||||||
|
|
||||||
|
def on_ldsbap_note_clicked(self,obj):
|
||||||
|
import NoteEdit
|
||||||
|
ord = self.person.getLdsBaptism()
|
||||||
|
if ord == None:
|
||||||
|
ord = LdsOrd()
|
||||||
|
self.person.setLdsBaptism(ord)
|
||||||
|
NoteEdit.NoteEditor(ord)
|
||||||
|
|
||||||
|
def on_ldsendow_source_clicked(self,obj):
|
||||||
|
import Sources
|
||||||
|
ord = self.person.getLdsEndowment()
|
||||||
|
if ord == None:
|
||||||
|
ord = LdsOrd()
|
||||||
|
self.person.setLdsEndowment(ord)
|
||||||
|
Sources.SourceSelector(self.pname.getSourceRefList(),self,src_changed)
|
||||||
|
|
||||||
|
def on_ldsendow_note_clicked(self,obj):
|
||||||
|
import NoteEdit
|
||||||
|
ord = self.person.getLdsEndowment()
|
||||||
|
if ord == None:
|
||||||
|
ord = LdsOrd()
|
||||||
|
self.person.setLdsEndowment(ord)
|
||||||
|
NoteEdit.NoteEditor(ord)
|
||||||
|
|
||||||
|
def on_ldsseal_source_clicked(self,obj):
|
||||||
|
import Sources
|
||||||
|
ord = self.person.getLdsSeal()
|
||||||
|
if ord == None:
|
||||||
|
ord = LdsOrd()
|
||||||
|
self.person.setLdsSeal(ord)
|
||||||
|
Sources.SourceSelector(self.pname.getSourceRefList(),self,src_changed)
|
||||||
|
|
||||||
|
def on_ldsseal_note_clicked(self,obj):
|
||||||
|
import NoteEdit
|
||||||
|
ord = self.person.getLdsSeal()
|
||||||
|
if ord == None:
|
||||||
|
ord = LdsOrd()
|
||||||
|
self.person.setLdsSeal(ord)
|
||||||
|
NoteEdit.NoteEditor(ord)
|
||||||
|
|
||||||
def load_person_image(self):
|
def load_person_image(self):
|
||||||
photo_list = self.person.getPhotoList()
|
photo_list = self.person.getPhotoList()
|
||||||
if len(photo_list) != 0:
|
if len(photo_list) != 0:
|
||||||
@ -1141,9 +1270,29 @@ class EditPerson:
|
|||||||
elif page == 6 and self.not_loaded:
|
elif page == 6 and self.not_loaded:
|
||||||
self.not_loaded = 0
|
self.not_loaded = 0
|
||||||
self.gallery.load_images()
|
self.gallery.load_images()
|
||||||
|
elif page == 8 and self.lds_not_loaded:
|
||||||
|
self.lds_not_loaded = 0
|
||||||
|
plist = self.db.getPlaceMap().values()
|
||||||
|
ord = self.person.getLdsBaptism()
|
||||||
|
if ord :
|
||||||
|
place = ord.getPlace()
|
||||||
|
else:
|
||||||
|
place = None
|
||||||
|
utils.attach_places(plist,self.ldsbapplace,place)
|
||||||
|
ord = self.person.getLdsSeal()
|
||||||
|
if ord :
|
||||||
|
place = ord.getPlace()
|
||||||
|
else:
|
||||||
|
place = None
|
||||||
|
utils.attach_places(plist,self.ldssealplace,place)
|
||||||
|
ord = self.person.getLdsEndowment()
|
||||||
|
if ord :
|
||||||
|
place = ord.getPlace()
|
||||||
|
else:
|
||||||
|
place = None
|
||||||
|
utils.attach_places(plist,self.ldsendowplace,place)
|
||||||
|
|
||||||
|
def update_ord(func,ord,date,temple,stat):
|
||||||
def update_ord(func,ord,date,temple):
|
|
||||||
if not ord:
|
if not ord:
|
||||||
if (date or temple):
|
if (date or temple):
|
||||||
ord = LdsOrd()
|
ord = LdsOrd()
|
||||||
@ -1160,6 +1309,9 @@ def update_ord(func,ord,date,temple):
|
|||||||
elif ord.getTemple() != temple:
|
elif ord.getTemple() != temple:
|
||||||
ord.setTemple(temple)
|
ord.setTemple(temple)
|
||||||
utils.modified()
|
utils.modified()
|
||||||
|
elif ord.getStatus() != stat:
|
||||||
|
ord.setStatus(stat)
|
||||||
|
utils.modified()
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
@ -136,6 +136,9 @@ class GrampsParser:
|
|||||||
def start_temple(self,attrs):
|
def start_temple(self,attrs):
|
||||||
self.ord.setTemple(u2l(attrs['val']))
|
self.ord.setTemple(u2l(attrs['val']))
|
||||||
|
|
||||||
|
def start_status(self,attrs):
|
||||||
|
self.ord.setStatus(int(u2l(attrs['val'])))
|
||||||
|
|
||||||
def start_sealed_to(self,attrs):
|
def start_sealed_to(self,attrs):
|
||||||
id = u2l(attrs['ref'])
|
id = u2l(attrs['ref'])
|
||||||
self.ord.setFamily(self.db.findFamilyNoMap(id))
|
self.ord.setFamily(self.db.findFamilyNoMap(id))
|
||||||
@ -318,6 +321,8 @@ class GrampsParser:
|
|||||||
self.source_ref.setBase(source)
|
self.source_ref.setBase(source)
|
||||||
if self.photo:
|
if self.photo:
|
||||||
self.photo.addSourceRef(self.source_ref)
|
self.photo.addSourceRef(self.source_ref)
|
||||||
|
elif self.ord:
|
||||||
|
self.ord.addSourceRef(self.source_ref)
|
||||||
elif self.object:
|
elif self.object:
|
||||||
self.object.addSourceRef(self.source_ref)
|
self.object.addSourceRef(self.source_ref)
|
||||||
elif self.event:
|
elif self.event:
|
||||||
@ -628,6 +633,8 @@ class GrampsParser:
|
|||||||
|
|
||||||
if self.address:
|
if self.address:
|
||||||
self.address.setNote(note)
|
self.address.setNote(note)
|
||||||
|
elif self.ord:
|
||||||
|
self.ord.setNote(note)
|
||||||
elif self.attribute:
|
elif self.attribute:
|
||||||
self.attribute.setNote(note)
|
self.attribute.setNote(note)
|
||||||
elif self.object:
|
elif self.object:
|
||||||
@ -738,6 +745,7 @@ class GrampsParser:
|
|||||||
"location" : (start_location,None),
|
"location" : (start_location,None),
|
||||||
"lds_ord" : (start_lds_ord, stop_lds_ord),
|
"lds_ord" : (start_lds_ord, stop_lds_ord),
|
||||||
"temple" : (start_temple, None),
|
"temple" : (start_temple, None),
|
||||||
|
"status" : (start_status, None),
|
||||||
"sealed_to" : (start_sealed_to, None),
|
"sealed_to" : (start_sealed_to, None),
|
||||||
"coord" : (start_coord,None),
|
"coord" : (start_coord,None),
|
||||||
"pos" : (start_pos, None),
|
"pos" : (start_pos, None),
|
||||||
|
@ -87,17 +87,30 @@ class SourceNote:
|
|||||||
"""Return in note instance, not just the text"""
|
"""Return in note instance, not just the text"""
|
||||||
return self.note
|
return self.note
|
||||||
|
|
||||||
class LdsOrd:
|
class LdsOrd(SourceNote):
|
||||||
"""LDS Ordinance support"""
|
"""LDS Ordinance support"""
|
||||||
def __init__(self,source=None):
|
def __init__(self,source=None):
|
||||||
|
SourceNote.__init__(self,source)
|
||||||
if source:
|
if source:
|
||||||
self.famc = source.famc
|
self.famc = source.famc
|
||||||
self.date = Date(source.date)
|
self.date = Date(source.date)
|
||||||
self.temple = source.temple
|
self.temple = source.temple
|
||||||
|
self.status = source.status
|
||||||
|
self.place = source.place
|
||||||
else:
|
else:
|
||||||
self.famc = None
|
self.famc = None
|
||||||
self.date = None
|
self.date = None
|
||||||
self.temple = ""
|
self.temple = ""
|
||||||
|
self.status = 0
|
||||||
|
self.place = None
|
||||||
|
|
||||||
|
def setPlace(self,place):
|
||||||
|
"""sets the Place instance of the Event"""
|
||||||
|
self.place = place
|
||||||
|
|
||||||
|
def getPlace(self):
|
||||||
|
"""returns the Place instance of the Event"""
|
||||||
|
return self.place
|
||||||
|
|
||||||
def setFamily(self,family):
|
def setFamily(self,family):
|
||||||
self.famc = family
|
self.famc = family
|
||||||
@ -105,6 +118,12 @@ class LdsOrd:
|
|||||||
def getFamily(self):
|
def getFamily(self):
|
||||||
return self.famc
|
return self.famc
|
||||||
|
|
||||||
|
def setStatus(self,val):
|
||||||
|
self.status = val
|
||||||
|
|
||||||
|
def getStatus(self):
|
||||||
|
return self.status
|
||||||
|
|
||||||
def setDate(self, date) :
|
def setDate(self, date) :
|
||||||
"""attempts to sets the date of the LdsOrd instance"""
|
"""attempts to sets the date of the LdsOrd instance"""
|
||||||
if not self.date:
|
if not self.date:
|
||||||
|
@ -145,8 +145,14 @@ def dump_ordinance(g,name,ord,index=1):
|
|||||||
write_date(g,dateobj,index+1)
|
write_date(g,dateobj,index+1)
|
||||||
if ord.getTemple():
|
if ord.getTemple():
|
||||||
g.write('%s<temple val="%s"/>\n' % (sp2,fix(ord.getTemple())))
|
g.write('%s<temple val="%s"/>\n' % (sp2,fix(ord.getTemple())))
|
||||||
|
if ord.getStatus() != 0:
|
||||||
|
g.write('%s<status val="%d"/>\n' % (sp2,ord.getStatus()))
|
||||||
if ord.getFamily():
|
if ord.getFamily():
|
||||||
g.write('%s<sealed_to ref="%s"/>\n' % (sp2,fix(ord.getFamily().getId())))
|
g.write('%s<sealed_to ref="%s"/>\n' % (sp2,fix(ord.getFamily().getId())))
|
||||||
|
if ord.getNote() != "":
|
||||||
|
write_note(g,"note",ord.getNote(),index+1)
|
||||||
|
for s in ord.getSourceRefList():
|
||||||
|
dump_source_ref(g,s,index+1)
|
||||||
g.write('%s</lds_ord>\n' % sp)
|
g.write('%s</lds_ord>\n' % sp)
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
@ -213,7 +213,7 @@ personalConstantEvents = {
|
|||||||
"Blessing" : "BLES",
|
"Blessing" : "BLES",
|
||||||
"Burial" : "BURI",
|
"Burial" : "BURI",
|
||||||
"Cause Of Death" : "CAUS",
|
"Cause Of Death" : "CAUS",
|
||||||
"Ordination" : "ORID",
|
"Ordination" : "ORDI",
|
||||||
"Census" : "CENS",
|
"Census" : "CENS",
|
||||||
"Christening" : "CHR" ,
|
"Christening" : "CHR" ,
|
||||||
"Confirmation" : "CONF",
|
"Confirmation" : "CONF",
|
||||||
@ -697,3 +697,43 @@ lds_temple_to_abrev = {
|
|||||||
"WASHI": "Washington, D.C.",
|
"WASHI": "Washington, D.C.",
|
||||||
"WA" : "Washington, D.C.",
|
"WA" : "Washington, D.C.",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lds_baptism_status = {
|
||||||
|
"<No Status>" : 0,
|
||||||
|
"Child" : 1,
|
||||||
|
"Cleared" : 2,
|
||||||
|
"Completed" : 3,
|
||||||
|
"Infant" : 4,
|
||||||
|
"Pre-1970" : 5,
|
||||||
|
"Qualified" : 6,
|
||||||
|
"Stillborn" : 7,
|
||||||
|
"Submitted" : 8,
|
||||||
|
"Uncleared" : 9,
|
||||||
|
}
|
||||||
|
|
||||||
|
lds_baptism_index = [
|
||||||
|
"<No Status>",
|
||||||
|
"Child",
|
||||||
|
"Cleared",
|
||||||
|
"Completed",
|
||||||
|
"Infant",
|
||||||
|
"Pre-1970",
|
||||||
|
"Qualified",
|
||||||
|
"Stillborn",
|
||||||
|
"Submitted",
|
||||||
|
"Uncleared",
|
||||||
|
]
|
||||||
|
|
||||||
|
lds_csealing_index = [
|
||||||
|
"<No Status>",
|
||||||
|
"BIC",
|
||||||
|
"Cleared",
|
||||||
|
"Completed",
|
||||||
|
"DNS",
|
||||||
|
"Pre-1970",
|
||||||
|
"Qualified",
|
||||||
|
"Stillborn",
|
||||||
|
"Submitted",
|
||||||
|
"Uncleared",
|
||||||
|
]
|
||||||
|
|
||||||
|
@ -69,7 +69,8 @@ for val in const.familyConstantEvents.keys():
|
|||||||
|
|
||||||
lineRE = re.compile(r"\s*(\d+)\s+(\S+)\s*(.*)$")
|
lineRE = re.compile(r"\s*(\d+)\s+(\S+)\s*(.*)$")
|
||||||
headRE = re.compile(r"\s*(\d+)\s+HEAD")
|
headRE = re.compile(r"\s*(\d+)\s+HEAD")
|
||||||
nameRegexp = re.compile(r"([\S\s]*\S)?\s*/([^/]+)?/\s*,?\s*([\S]+)?")
|
nameRegexp= re.compile(r"/?([^/]*)(/([^/]*)(/([^/]*))?)?")
|
||||||
|
#nameRegexp = re.compile(r"([\S\s]*\S)?\s*/([^/]+)?/\s*,?\s*([\S]+)?")
|
||||||
calRegexp = re.compile(r"\s*@#D([^@]+)@\s*(.*)$")
|
calRegexp = re.compile(r"\s*@#D([^@]+)@\s*(.*)$")
|
||||||
fromtoRegexp = re.compile(r"\s*FROM\s+@#D([^@]+)@\s*(.*)\s+TO\s+@#D([^@]+)@\s*(.*)$")
|
fromtoRegexp = re.compile(r"\s*FROM\s+@#D([^@]+)@\s*(.*)\s+TO\s+@#D([^@]+)@\s*(.*)$")
|
||||||
|
|
||||||
@ -298,18 +299,18 @@ class GedcomParser:
|
|||||||
elif matches[1] == "DATA" or matches[1] == "TEXT":
|
elif matches[1] == "DATA" or matches[1] == "TEXT":
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
elif matches[1] == "TITL":
|
elif matches[1] == "TITL":
|
||||||
title = matches[2] + self.parse_continue_data()
|
title = matches[2] + self.parse_continue_data(level+1)
|
||||||
title = string.replace(title,'\n',' ')
|
title = string.replace(title,'\n',' ')
|
||||||
self.source.setTitle(title)
|
self.source.setTitle(title)
|
||||||
elif matches[1] == "AUTH":
|
elif matches[1] == "AUTH":
|
||||||
self.source.setAuthor(matches[2] + self.parse_continue_data())
|
self.source.setAuthor(matches[2] + self.parse_continue_data(level+1))
|
||||||
elif matches[1] == "PUBL":
|
elif matches[1] == "PUBL":
|
||||||
self.source.setPubInfo(matches[2] + self.parse_continue_data())
|
self.source.setPubInfo(matches[2] + self.parse_continue_data(level+1))
|
||||||
elif matches[1] == "OBJE":
|
elif matches[1] == "OBJE":
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
if matches[2] and matches[2][0] != "@":
|
if matches[2] and matches[2][0] != "@":
|
||||||
note = matches[1] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
self.source.setNote(note)
|
self.source.setNote(note)
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
@ -352,7 +353,7 @@ class GedcomParser:
|
|||||||
self.parse_source(matches[1],1)
|
self.parse_source(matches[1],1)
|
||||||
elif matches[2] == "REPO":
|
elif matches[2] == "REPO":
|
||||||
self.ignore_sub_junk(1)
|
self.ignore_sub_junk(1)
|
||||||
elif matches[2][0:4] == "NOTE":
|
elif matches[2] == "NOTE":
|
||||||
if self.nmap.has_key(matches[1]):
|
if self.nmap.has_key(matches[1]):
|
||||||
noteobj = self.nmap[matches[1]]
|
noteobj = self.nmap[matches[1]]
|
||||||
else:
|
else:
|
||||||
@ -360,9 +361,9 @@ class GedcomParser:
|
|||||||
self.nmap[matches[1]] = noteobj
|
self.nmap[matches[1]] = noteobj
|
||||||
text = matches[2][4:]
|
text = matches[2][4:]
|
||||||
if text == "":
|
if text == "":
|
||||||
noteobj.set(self.parse_continue_data())
|
noteobj.set(self.parse_continue_data(1))
|
||||||
else:
|
else:
|
||||||
noteobj.set(text + self.parse_continue_data())
|
noteobj.set(text + self.parse_continue_data(1))
|
||||||
self.parse_note_data(1)
|
self.parse_note_data(1)
|
||||||
elif matches[2] == "OBJE":
|
elif matches[2] == "OBJE":
|
||||||
self.ignore_sub_junk(1)
|
self.ignore_sub_junk(1)
|
||||||
@ -386,7 +387,7 @@ class GedcomParser:
|
|||||||
s = self.db.findSource(ref,self.smap)
|
s = self.db.findSource(ref,self.smap)
|
||||||
source_ref.setBase(s)
|
source_ref.setBase(s)
|
||||||
s.setTitle('Imported Source #%d' % self.localref)
|
s.setTitle('Imported Source #%d' % self.localref)
|
||||||
s.setNote(matches[2] + self.parse_continue_data())
|
s.setNote(matches[2] + self.parse_continue_data(level+1))
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
source_ref.setBase(self.db.findSource(matches[2],self.smap))
|
source_ref.setBase(self.db.findSource(matches[2],self.smap))
|
||||||
@ -458,7 +459,7 @@ class GedcomParser:
|
|||||||
self.parse_ord(ord,2)
|
self.parse_ord(ord,2)
|
||||||
elif matches[1] == "ADDR":
|
elif matches[1] == "ADDR":
|
||||||
self.addr = Address()
|
self.addr = Address()
|
||||||
self.addr.setStreet(matches[2] + self.parse_continue_data())
|
self.addr.setStreet(matches[2] + self.parse_continue_data(1))
|
||||||
self.parse_address(self.addr,2)
|
self.parse_address(self.addr,2)
|
||||||
elif matches[1] == "CHIL":
|
elif matches[1] == "CHIL":
|
||||||
mrel,frel = self.parse_ftw_relations(2)
|
mrel,frel = self.parse_ftw_relations(2)
|
||||||
@ -487,9 +488,13 @@ class GedcomParser:
|
|||||||
self.barf(2)
|
self.barf(2)
|
||||||
else:
|
else:
|
||||||
self.parse_family_object(2)
|
self.parse_family_object(2)
|
||||||
|
elif matches[1] == "_COMM":
|
||||||
|
note = string.strip(matches[2]) + self.parse_continue_data(1)
|
||||||
|
self.family.setNote(note)
|
||||||
|
self.ignore_sub_junk(2)
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
if matches[2] and matches[2][0] != "@":
|
if matches[2] and matches[2][0] != "@":
|
||||||
note = matches[1] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(1)
|
||||||
self.family.setNote(note)
|
self.family.setNote(note)
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
@ -524,13 +529,13 @@ class GedcomParser:
|
|||||||
try:
|
try:
|
||||||
names = nameRegexp.match(matches[2]).groups()
|
names = nameRegexp.match(matches[2]).groups()
|
||||||
except:
|
except:
|
||||||
names = (matches[2],"","")
|
names = (matches[2],"","","","")
|
||||||
if names[0]:
|
if names[0]:
|
||||||
name.setFirstName(names[0])
|
name.setFirstName(names[0])
|
||||||
if names[1]:
|
|
||||||
name.setSurname(names[1])
|
|
||||||
if names[2]:
|
if names[2]:
|
||||||
name.setSuffix(names[2])
|
name.setSurname(names[2])
|
||||||
|
if names[4]:
|
||||||
|
name.setSuffix(names[4])
|
||||||
if name_cnt == 0:
|
if name_cnt == 0:
|
||||||
self.person.setPrimaryName(name)
|
self.person.setPrimaryName(name)
|
||||||
else:
|
else:
|
||||||
@ -539,32 +544,31 @@ class GedcomParser:
|
|||||||
self.parse_name(name,2)
|
self.parse_name(name,2)
|
||||||
elif matches[1] == "_UID":
|
elif matches[1] == "_UID":
|
||||||
self.person.setPafUid(matches[2])
|
self.person.setPafUid(matches[2])
|
||||||
elif matches[1] == "ALIA":
|
elif matches[1] in ["ALIA","_ALIA"]:
|
||||||
aka = Name()
|
aka = Name()
|
||||||
match = nameRegexp.match(matches[2])
|
try:
|
||||||
if match:
|
names = nameRegexp.match(matches[2]).groups()
|
||||||
names = match.groups()
|
except:
|
||||||
if names[0]:
|
names = (matches[2],"","","","")
|
||||||
aka.setFirstName(names[0])
|
if names[0]:
|
||||||
if names[1]:
|
aka.setFirstName(names[0])
|
||||||
aka.setSurname(names[1])
|
if names[2]:
|
||||||
if names[2]:
|
aka.setSurname(names[2])
|
||||||
aka.setSuffix(names[2])
|
if names[4]:
|
||||||
else:
|
aka.setSuffix(names[4])
|
||||||
aka.setFirstName(matches[2])
|
|
||||||
self.person.addAlternateName(aka)
|
self.person.addAlternateName(aka)
|
||||||
elif matches[1] == "OBJE":
|
elif matches[1] == "OBJE":
|
||||||
if matches[2] and matches[2][0] == '@':
|
if matches[2] and matches[2][0] == '@':
|
||||||
self.barf(2)
|
self.barf(2)
|
||||||
else:
|
else:
|
||||||
self.parse_person_object(2)
|
self.parse_person_object(2)
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] in ["NOTE","_COMM"]:
|
||||||
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
||||||
note = self.person.getNote()
|
note = self.person.getNote()
|
||||||
if note == "":
|
if note == "":
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(1)
|
||||||
else:
|
else:
|
||||||
note = "%s\n\n%s%s" % (note,matches[2],self.parse_continue_data())
|
note = "%s\n\n%s%s" % (note,matches[2],self.parse_continue_data(1))
|
||||||
self.person.setNote(note)
|
self.person.setNote(note)
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
@ -620,7 +624,7 @@ class GedcomParser:
|
|||||||
self.parse_residence(addr,2)
|
self.parse_residence(addr,2)
|
||||||
elif matches[1] == "ADDR":
|
elif matches[1] == "ADDR":
|
||||||
addr = Address()
|
addr = Address()
|
||||||
addr.setStreet(matches[2] + self.parse_continue_data())
|
addr.setStreet(matches[2] + self.parse_continue_data(1))
|
||||||
self.parse_address(addr,2)
|
self.parse_address(addr,2)
|
||||||
self.person.addAddress(addr)
|
self.person.addAddress(addr)
|
||||||
elif matches[1] == "BIRT":
|
elif matches[1] == "BIRT":
|
||||||
@ -697,7 +701,7 @@ class GedcomParser:
|
|||||||
return note
|
return note
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
self.parse_note_data(level+1)
|
self.parse_note_data(level+1)
|
||||||
else:
|
else:
|
||||||
self.ignore_sub_junk(level+1)
|
self.ignore_sub_junk(level+1)
|
||||||
@ -719,7 +723,7 @@ class GedcomParser:
|
|||||||
type = matches[1]
|
type = matches[1]
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
self.parse_note_data(level+1)
|
self.parse_note_data(level+1)
|
||||||
else:
|
else:
|
||||||
self.ignore_sub_junk(level+1)
|
self.ignore_sub_junk(level+1)
|
||||||
@ -740,7 +744,7 @@ class GedcomParser:
|
|||||||
elif matches[1] == "FILE":
|
elif matches[1] == "FILE":
|
||||||
file = matches[2]
|
file = matches[2]
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
elif matches[1][0] == "_":
|
elif matches[1][0] == "_":
|
||||||
self.ignore_sub_junk(level+1)
|
self.ignore_sub_junk(level+1)
|
||||||
elif int(matches[0]) < level:
|
elif int(matches[0]) < level:
|
||||||
@ -782,7 +786,7 @@ class GedcomParser:
|
|||||||
elif matches[1] == "FILE":
|
elif matches[1] == "FILE":
|
||||||
file = matches[2]
|
file = matches[2]
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
elif int(matches[0]) < level:
|
elif int(matches[0]) < level:
|
||||||
self.backup()
|
self.backup()
|
||||||
break
|
break
|
||||||
@ -817,7 +821,7 @@ class GedcomParser:
|
|||||||
elif matches[1] == "FILE":
|
elif matches[1] == "FILE":
|
||||||
file = matches[2]
|
file = matches[2]
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
elif int(matches[0]) < level:
|
elif int(matches[0]) < level:
|
||||||
self.backup()
|
self.backup()
|
||||||
break
|
break
|
||||||
@ -848,7 +852,7 @@ class GedcomParser:
|
|||||||
elif matches[1] == "DATE":
|
elif matches[1] == "DATE":
|
||||||
address.setDateObj(self.extract_date(matches[2]))
|
address.setDateObj(self.extract_date(matches[2]))
|
||||||
elif matches[1] == "ADDR":
|
elif matches[1] == "ADDR":
|
||||||
address.setStreet(matches[2] + self.parse_continue_data())
|
address.setStreet(matches[2] + self.parse_continue_data(level+1))
|
||||||
self.parse_address(address,level+1)
|
self.parse_address(address,level+1)
|
||||||
elif matches[1] in ["AGE","AGNC","CAUS","STAT","TEMP","OBJE","TYPE"]:
|
elif matches[1] in ["AGE","AGNC","CAUS","STAT","TEMP","OBJE","TYPE"]:
|
||||||
self.ignore_sub_junk(level+1)
|
self.ignore_sub_junk(level+1)
|
||||||
@ -864,7 +868,7 @@ class GedcomParser:
|
|||||||
pass
|
pass
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
||||||
note = matches[1] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
address.setNote(note)
|
address.setNote(note)
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
@ -886,7 +890,7 @@ class GedcomParser:
|
|||||||
return
|
return
|
||||||
elif matches[1] in [ "ADDR", "ADR1", "ADR2" ]:
|
elif matches[1] in [ "ADDR", "ADR1", "ADR2" ]:
|
||||||
val = address.getStreet()
|
val = address.getStreet()
|
||||||
data = self.parse_continue_data()
|
data = self.parse_continue_data(level+1)
|
||||||
if first == 0:
|
if first == 0:
|
||||||
val = "%s %s" % (matches[2],data)
|
val = "%s %s" % (matches[2],data)
|
||||||
first = 1
|
first = 1
|
||||||
@ -953,7 +957,7 @@ class GedcomParser:
|
|||||||
s = self.db.findSource(ref,self.smap)
|
s = self.db.findSource(ref,self.smap)
|
||||||
source_ref.setBase(s)
|
source_ref.setBase(s)
|
||||||
s.setTitle('Imported Source #%d' % self.localref)
|
s.setTitle('Imported Source #%d' % self.localref)
|
||||||
s.setNote(matches[2] + self.parse_continue_data())
|
s.setNote(matches[2] + self.parse_continue_data(level+1))
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
source_ref.setBase(self.db.findSource(matches[2],self.smap))
|
source_ref.setBase(self.db.findSource(matches[2],self.smap))
|
||||||
@ -976,11 +980,11 @@ class GedcomParser:
|
|||||||
event.setPlace(place)
|
event.setPlace(place)
|
||||||
self.ignore_sub_junk(level+1)
|
self.ignore_sub_junk(level+1)
|
||||||
elif matches[1] == "CAUS":
|
elif matches[1] == "CAUS":
|
||||||
info = matches[2] + self.parse_continue_data()
|
info = matches[2] + self.parse_continue_data(level+1)
|
||||||
event.setCause(info)
|
event.setCause(info)
|
||||||
self.parse_cause(event,level+1)
|
self.parse_cause(event,level+1)
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
info = matches[2] + self.parse_continue_data()
|
info = matches[2] + self.parse_continue_data(level+1)
|
||||||
if note == "":
|
if note == "":
|
||||||
note = info
|
note = info
|
||||||
else:
|
else:
|
||||||
@ -993,6 +997,8 @@ class GedcomParser:
|
|||||||
event.setDescription("%s%s" % (d, matches[2]))
|
event.setDescription("%s%s" % (d, matches[2]))
|
||||||
elif matches[1] == "CONT":
|
elif matches[1] == "CONT":
|
||||||
event.setDescription("%s\n%s" % (event.getDescription(),matches[2]))
|
event.setDescription("%s\n%s" % (event.getDescription(),matches[2]))
|
||||||
|
elif matches[1] == "RELI":
|
||||||
|
self.ignore_sub_junk(level+1)
|
||||||
else:
|
else:
|
||||||
self.barf(level+1)
|
self.barf(level+1)
|
||||||
|
|
||||||
@ -1017,7 +1023,7 @@ class GedcomParser:
|
|||||||
s = self.db.findSource(ref,self.smap)
|
s = self.db.findSource(ref,self.smap)
|
||||||
source_ref.setBase(s)
|
source_ref.setBase(s)
|
||||||
s.setTitle('Imported Source #%d' % self.localref)
|
s.setTitle('Imported Source #%d' % self.localref)
|
||||||
s.setNote(matches[2] + self.parse_continue_data())
|
s.setNote(matches[2] + self.parse_continue_data(1))
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
source_ref.setBase(self.db.findSource(matches[2],self.smap))
|
source_ref.setBase(self.db.findSource(matches[2],self.smap))
|
||||||
@ -1049,11 +1055,11 @@ class GedcomParser:
|
|||||||
# eventually do something intelligent here
|
# eventually do something intelligent here
|
||||||
pass
|
pass
|
||||||
elif matches[1] == "CAUS":
|
elif matches[1] == "CAUS":
|
||||||
info = matches[2] + self.parse_continue_data()
|
info = matches[2] + self.parse_continue_data(level+1)
|
||||||
event.setCause(info)
|
event.setCause(info)
|
||||||
self.parse_cause(event,level+1)
|
self.parse_cause(event,level+1)
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
info = matches[2] + self.parse_continue_data()
|
info = matches[2] + self.parse_continue_data(level+1)
|
||||||
if note == "":
|
if note == "":
|
||||||
note = info
|
note = info
|
||||||
else:
|
else:
|
||||||
@ -1114,7 +1120,7 @@ class GedcomParser:
|
|||||||
s = self.db.findSource(ref,self.smap)
|
s = self.db.findSource(ref,self.smap)
|
||||||
source_ref.setBase(s)
|
source_ref.setBase(s)
|
||||||
s.setTitle('Imported Source #%d' % self.localref)
|
s.setTitle('Imported Source #%d' % self.localref)
|
||||||
s.setNote(matches[2] + self.parse_continue_data())
|
s.setNote(matches[2] + self.parse_continue_data(level+1))
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
source_ref.setBase(self.db.findSource(matches[2],self.smap))
|
source_ref.setBase(self.db.findSource(matches[2],self.smap))
|
||||||
@ -1128,7 +1134,7 @@ class GedcomParser:
|
|||||||
elif matches[1] == "DATE":
|
elif matches[1] == "DATE":
|
||||||
note = "%s\n\n" % ("Date : %s" % matches[2])
|
note = "%s\n\n" % ("Date : %s" % matches[2])
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
info = matches[2] + self.parse_continue_data()
|
info = matches[2] + self.parse_continue_data(level+1)
|
||||||
if note == "":
|
if note == "":
|
||||||
note = info
|
note = info
|
||||||
else:
|
else:
|
||||||
@ -1160,10 +1166,10 @@ class GedcomParser:
|
|||||||
elif matches[1] == "DATE":
|
elif matches[1] == "DATE":
|
||||||
event.setDateObj(self.extract_date(matches[2]))
|
event.setDateObj(self.extract_date(matches[2]))
|
||||||
elif matches[1] == "CAUS":
|
elif matches[1] == "CAUS":
|
||||||
info = matches[2] + self.parse_continue_data()
|
info = matches[2] + self.parse_continue_data(level+1)
|
||||||
event.setCause(info)
|
event.setCause(info)
|
||||||
self.parse_cause(event,level+1)
|
self.parse_cause(event,level+1)
|
||||||
elif matches[1] in ["TIME","AGE","AGNC","ADDR","STAT","TEMP","HUSB","WIFE","OBJE"]:
|
elif matches[1] in ["TIME","AGE","AGNC","ADDR","STAT","TEMP","HUSB","WIFE","OBJE","_CHUR"]:
|
||||||
self.ignore_sub_junk(level+1)
|
self.ignore_sub_junk(level+1)
|
||||||
elif matches[1] == "SOUR":
|
elif matches[1] == "SOUR":
|
||||||
source_ref = SourceRef()
|
source_ref = SourceRef()
|
||||||
@ -1172,7 +1178,7 @@ class GedcomParser:
|
|||||||
ref = "gsr%d" % self.localref
|
ref = "gsr%d" % self.localref
|
||||||
s = self.db.findSource(ref,self.smap)
|
s = self.db.findSource(ref,self.smap)
|
||||||
source_ref.setBase(s)
|
source_ref.setBase(s)
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
s.setTitle('Imported Source #%d' % self.localref)
|
s.setTitle('Imported Source #%d' % self.localref)
|
||||||
s.setNote(note)
|
s.setNote(note)
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
@ -1193,7 +1199,7 @@ class GedcomParser:
|
|||||||
self.ignore_sub_junk(level+1)
|
self.ignore_sub_junk(level+1)
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
||||||
note = matches[1] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
event.setNote(note)
|
event.setNote(note)
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
@ -1215,14 +1221,14 @@ class GedcomParser:
|
|||||||
self.backup()
|
self.backup()
|
||||||
return
|
return
|
||||||
elif matches[1] == "PAGE":
|
elif matches[1] == "PAGE":
|
||||||
source.setPage(matches[2] + self.parse_continue_data())
|
source.setPage(matches[2] + self.parse_continue_data(level+1))
|
||||||
elif matches[1] == "DATA":
|
elif matches[1] == "DATA":
|
||||||
date,text = self.parse_source_data(level+1)
|
date,text = self.parse_source_data(level+1)
|
||||||
d = Date.Date()
|
d = Date.Date()
|
||||||
d.set(date)
|
d.set(date)
|
||||||
source.setDate(d)
|
source.setDate(d)
|
||||||
source.setText(text)
|
source.setText(text)
|
||||||
elif matches[1] == "OBJE":
|
elif matches[1] in ["OBJE","REFN","TEXT"]:
|
||||||
self.ignore_sub_junk(level+1)
|
self.ignore_sub_junk(level+1)
|
||||||
elif matches[1] == "QUAY":
|
elif matches[1] == "QUAY":
|
||||||
val = int(matches[2])
|
val = int(matches[2])
|
||||||
@ -1232,7 +1238,7 @@ class GedcomParser:
|
|||||||
source.setConfidence(val)
|
source.setConfidence(val)
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
if not string.strip(matches[2]) or matches[2] and matches[2][0] != "@":
|
||||||
note = matches[1] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
source.setComments(note)
|
source.setComments(note)
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
@ -1259,7 +1265,7 @@ class GedcomParser:
|
|||||||
date = matches[2]
|
date = matches[2]
|
||||||
|
|
||||||
elif matches[1] == "TEXT":
|
elif matches[1] == "TEXT":
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
else:
|
else:
|
||||||
self.barf(level+1)
|
self.barf(level+1)
|
||||||
|
|
||||||
@ -1271,15 +1277,18 @@ class GedcomParser:
|
|||||||
if int(matches[0]) < level:
|
if int(matches[0]) < level:
|
||||||
self.backup()
|
self.backup()
|
||||||
return
|
return
|
||||||
elif matches[1] == "ALIA":
|
elif matches[1] in ["ALIA","_ALIA"]:
|
||||||
aka = Name()
|
aka = Name()
|
||||||
names = nameRegexp.match(matches[2]).groups()
|
try:
|
||||||
|
names = nameRegexp.match(matches[2]).groups()
|
||||||
|
except:
|
||||||
|
names = (matches[2],"","","","")
|
||||||
if names[0]:
|
if names[0]:
|
||||||
aka.setFirstName(names[0])
|
aka.setFirstName(names[0])
|
||||||
if names[1]:
|
|
||||||
aka.setSurname(names[1])
|
|
||||||
if names[2]:
|
if names[2]:
|
||||||
aka.setSuffix(names[2])
|
aka.setSurname(names[2])
|
||||||
|
if names[4]:
|
||||||
|
aka.setSuffix(names[4])
|
||||||
self.person.addAlternateName(aka)
|
self.person.addAlternateName(aka)
|
||||||
elif matches[1] == "NPFX":
|
elif matches[1] == "NPFX":
|
||||||
name.setTitle(matches[2])
|
name.setTitle(matches[2])
|
||||||
@ -1313,7 +1322,7 @@ class GedcomParser:
|
|||||||
self.parse_source_reference(source_ref,level+1)
|
self.parse_source_reference(source_ref,level+1)
|
||||||
elif matches[1][0:4] == "NOTE":
|
elif matches[1][0:4] == "NOTE":
|
||||||
if matches[2] and matches[2][0] != "@":
|
if matches[2] and matches[2][0] != "@":
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(level+1)
|
||||||
name.setNote(note)
|
name.setNote(note)
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
@ -1380,7 +1389,7 @@ class GedcomParser:
|
|||||||
date = self.parse_date(2)
|
date = self.parse_date(2)
|
||||||
date.date = matches[2]
|
date.date = matches[2]
|
||||||
elif matches[1] == "NOTE":
|
elif matches[1] == "NOTE":
|
||||||
note = matches[2] + self.parse_continue_data()
|
note = matches[2] + self.parse_continue_data(2)
|
||||||
elif matches[1][0] == "_":
|
elif matches[1][0] == "_":
|
||||||
self.ignore_sub_junk(2)
|
self.ignore_sub_junk(2)
|
||||||
else:
|
else:
|
||||||
@ -1460,12 +1469,15 @@ class GedcomParser:
|
|||||||
elif matches[1] != "FORM":
|
elif matches[1] != "FORM":
|
||||||
self.barf(level+1)
|
self.barf(level+1)
|
||||||
|
|
||||||
def parse_continue_data(self):
|
def parse_continue_data(self,level):
|
||||||
data = ""
|
data = ""
|
||||||
while 1:
|
while 1:
|
||||||
matches = self.get_next()
|
matches = self.get_next()
|
||||||
|
|
||||||
if matches[1] == "CONC":
|
if int(matches[0]) < level:
|
||||||
|
self.backup()
|
||||||
|
return data
|
||||||
|
elif matches[1] == "CONC":
|
||||||
if self.broken_conc:
|
if self.broken_conc:
|
||||||
data = "%s %s" % (data,matches[2])
|
data = "%s %s" % (data,matches[2])
|
||||||
else:
|
else:
|
||||||
|
@ -222,6 +222,9 @@ def runTool(database,person,callback):
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class RelCalc:
|
class RelCalc:
|
||||||
|
"""
|
||||||
|
Relationship calculator class.
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self,database,person):
|
def __init__(self,database,person):
|
||||||
self.person = person
|
self.person = person
|
||||||
|
Loading…
Reference in New Issue
Block a user