ExportGedcom upgraded for citations
svn: r18408
This commit is contained in:
parent
3adb1b7ffa
commit
e4383f0b46
@ -194,7 +194,7 @@ def event_has_subordinate_data(event, event_ref):
|
|||||||
event.get_attribute_list() or
|
event.get_attribute_list() or
|
||||||
event_ref.get_attribute_list() or
|
event_ref.get_attribute_list() or
|
||||||
event.get_note_list() or
|
event.get_note_list() or
|
||||||
event.get_source_references() or
|
event.get_citation_list() or
|
||||||
event.get_media_list())
|
event.get_media_list())
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
@ -488,7 +488,7 @@ class GedcomWriter(UpdateCallback):
|
|||||||
self.__writeln(level, "ASSO", "@%s@" % person.get_gramps_id())
|
self.__writeln(level, "ASSO", "@%s@" % person.get_gramps_id())
|
||||||
self.__writeln(level+1, "RELA", ref.get_relation())
|
self.__writeln(level+1, "RELA", ref.get_relation())
|
||||||
self.__note_references(ref.get_note_list(), level+1)
|
self.__note_references(ref.get_note_list(), level+1)
|
||||||
self.__source_references(ref.get_source_references(), level+1)
|
self.__source_references(ref.get_citation_list(), level+1)
|
||||||
|
|
||||||
def __note_references(self, notelist, level):
|
def __note_references(self, notelist, level):
|
||||||
"""
|
"""
|
||||||
@ -669,15 +669,15 @@ class GedcomWriter(UpdateCallback):
|
|||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
self.__note_references(attr.get_note_list(), 2)
|
self.__note_references(attr.get_note_list(), 2)
|
||||||
self.__source_references(attr.get_source_references(), 2)
|
self.__source_references(attr.get_citation_list(), 2)
|
||||||
|
|
||||||
def __source_references(self, ref_list, level):
|
def __source_references(self, citation_list, level):
|
||||||
"""
|
"""
|
||||||
Loop through the list of source references, writing the information
|
Loop through the list of citation handles, writing the information
|
||||||
to the file.
|
to the file.
|
||||||
"""
|
"""
|
||||||
for srcref in ref_list:
|
for citation_handle in citation_list:
|
||||||
self.__source_ref_record(level, srcref)
|
self.__source_ref_record(level, citation_handle)
|
||||||
|
|
||||||
def __addresses(self, person):
|
def __addresses(self, person):
|
||||||
"""
|
"""
|
||||||
@ -703,7 +703,7 @@ class GedcomWriter(UpdateCallback):
|
|||||||
self.__writeln(2, 'PHON', addr.get_phone())
|
self.__writeln(2, 'PHON', addr.get_phone())
|
||||||
|
|
||||||
self.__note_references(addr.get_note_list(), 2)
|
self.__note_references(addr.get_note_list(), 2)
|
||||||
self.__source_references(addr.get_source_references(), 2)
|
self.__source_references(addr.get_citation_list(), 2)
|
||||||
|
|
||||||
def __photos(self, media_list, level):
|
def __photos(self, media_list, level):
|
||||||
"""
|
"""
|
||||||
@ -743,11 +743,11 @@ class GedcomWriter(UpdateCallback):
|
|||||||
|
|
||||||
def __person_sources(self, person):
|
def __person_sources(self, person):
|
||||||
"""
|
"""
|
||||||
Loop through the list of source references, writing the information
|
Loop through the list of citations, writing the information
|
||||||
to the file.
|
to the file.
|
||||||
"""
|
"""
|
||||||
for srcref in person.get_source_references():
|
for citation_handle in person.get_citation_list():
|
||||||
self.__source_ref_record(1, srcref)
|
self.__source_ref_record(1, citation_handle)
|
||||||
|
|
||||||
def __url_list(self, obj, level):
|
def __url_list(self, obj, level):
|
||||||
"""
|
"""
|
||||||
@ -809,7 +809,7 @@ class GedcomWriter(UpdateCallback):
|
|||||||
self.__family_events(family)
|
self.__family_events(family)
|
||||||
self.__family_attributes(family.get_attribute_list(), 1)
|
self.__family_attributes(family.get_attribute_list(), 1)
|
||||||
self.__family_child_list(family.get_child_ref_list())
|
self.__family_child_list(family.get_child_ref_list())
|
||||||
self.__source_references(family.get_source_references(), 1)
|
self.__source_references(family.get_citation_list(), 1)
|
||||||
self.__photos(family.get_media_list(), 1)
|
self.__photos(family.get_media_list(), 1)
|
||||||
self.__note_references(family.get_note_list(), 1)
|
self.__note_references(family.get_note_list(), 1)
|
||||||
self.__change(family.get_change_time(), 1)
|
self.__change(family.get_change_time(), 1)
|
||||||
@ -921,7 +921,7 @@ class GedcomWriter(UpdateCallback):
|
|||||||
self.__writeln(2, 'TYPE', str(attr.get_type()))
|
self.__writeln(2, 'TYPE', str(attr.get_type()))
|
||||||
|
|
||||||
self.__note_references(attr.get_note_list(), level+1)
|
self.__note_references(attr.get_note_list(), level+1)
|
||||||
self.__source_references(attr.get_source_references(),
|
self.__source_references(attr.get_citation_list(),
|
||||||
level+1)
|
level+1)
|
||||||
|
|
||||||
def __sources(self):
|
def __sources(self):
|
||||||
@ -1137,7 +1137,7 @@ class GedcomWriter(UpdateCallback):
|
|||||||
self.__writeln(3, 'AGE', attr.get_value())
|
self.__writeln(3, 'AGE', attr.get_value())
|
||||||
|
|
||||||
self.__note_references(event.get_note_list(), 2)
|
self.__note_references(event.get_note_list(), 2)
|
||||||
self.__source_references(event.get_source_references(), 2)
|
self.__source_references(event.get_citation_list(), 2)
|
||||||
|
|
||||||
self.__photos(event.get_media_list(), 2)
|
self.__photos(event.get_media_list(), 2)
|
||||||
if place:
|
if place:
|
||||||
@ -1193,7 +1193,7 @@ class GedcomWriter(UpdateCallback):
|
|||||||
self.__writeln(2, 'STAT', LDS_STATUS[lds_ord.get_status()])
|
self.__writeln(2, 'STAT', LDS_STATUS[lds_ord.get_status()])
|
||||||
|
|
||||||
self.__note_references(lds_ord.get_note_list(), index+1)
|
self.__note_references(lds_ord.get_note_list(), index+1)
|
||||||
self.__source_references(lds_ord.get_source_references(), index+1)
|
self.__source_references(lds_ord.get_citation_list(), index+1)
|
||||||
|
|
||||||
def __date(self, level, date):
|
def __date(self, level, date):
|
||||||
"""
|
"""
|
||||||
@ -1270,10 +1270,10 @@ class GedcomWriter(UpdateCallback):
|
|||||||
if nick:
|
if nick:
|
||||||
self.__writeln(2, 'NICK', nick)
|
self.__writeln(2, 'NICK', nick)
|
||||||
|
|
||||||
self.__source_references(name.get_source_references(), 2)
|
self.__source_references(name.get_citation_list(), 2)
|
||||||
self.__note_references(name.get_note_list(), 2)
|
self.__note_references(name.get_note_list(), 2)
|
||||||
|
|
||||||
def __source_ref_record(self, level, ref):
|
def __source_ref_record(self, level, citation_handle):
|
||||||
"""
|
"""
|
||||||
n SOUR @<XREF:SOUR>@ /* pointer to source record */ {1:1}
|
n SOUR @<XREF:SOUR>@ /* pointer to source record */ {1:1}
|
||||||
+1 PAGE <WHERE_WITHIN_SOURCE> {0:1}
|
+1 PAGE <WHERE_WITHIN_SOURCE> {0:1}
|
||||||
@ -1288,7 +1288,9 @@ class GedcomWriter(UpdateCallback):
|
|||||||
+1 <<NOTE_STRUCTURE>> {0:M}
|
+1 <<NOTE_STRUCTURE>> {0:M}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
src_handle = ref.get_reference_handle()
|
citation = self.dbase.get_citation_from_handle(citation_handle)
|
||||||
|
|
||||||
|
src_handle = citation.get_reference_handle()
|
||||||
if src_handle is None:
|
if src_handle is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -1298,25 +1300,27 @@ class GedcomWriter(UpdateCallback):
|
|||||||
|
|
||||||
# Reference to the source
|
# Reference to the source
|
||||||
self.__writeln(level, "SOUR", "@%s@" % src.get_gramps_id())
|
self.__writeln(level, "SOUR", "@%s@" % src.get_gramps_id())
|
||||||
if ref.get_page() != "":
|
if citation.get_page() != "":
|
||||||
# PAGE <WHERE_WITHIN_SOURCE> can not have CONC lines.
|
# PAGE <WHERE_WITHIN_SOURCE> can not have CONC lines.
|
||||||
# WHERE_WITHIN_SOURCE:= {Size=1:248}
|
# WHERE_WITHIN_SOURCE:= {Size=1:248}
|
||||||
# Maximize line to 248 and set limit to 248, for no line split
|
# Maximize line to 248 and set limit to 248, for no line split
|
||||||
self.__writeln(level+1, 'PAGE', ref.get_page()[0:248], limit=248)
|
self.__writeln(level+1, 'PAGE', citation.get_page()[0:248],
|
||||||
|
limit=248)
|
||||||
|
|
||||||
|
|
||||||
conf = min(ref.get_confidence_level(), gen.lib.SourceRef.CONF_VERY_HIGH)
|
conf = min(citation.get_confidence_level(),
|
||||||
|
gen.lib.SourceRef.CONF_VERY_HIGH)
|
||||||
if conf != gen.lib.SourceRef.CONF_NORMAL and conf != -1:
|
if conf != gen.lib.SourceRef.CONF_NORMAL and conf != -1:
|
||||||
self.__writeln(level+1, "QUAY", QUALITY_MAP[conf])
|
self.__writeln(level+1, "QUAY", QUALITY_MAP[conf])
|
||||||
|
|
||||||
if not ref.get_date_object().is_empty():
|
if not citation.get_date_object().is_empty():
|
||||||
self.__writeln(level+1, 'DATA')
|
self.__writeln(level+1, 'DATA')
|
||||||
self.__date(level+2, ref.get_date_object())
|
self.__date(level+2, citation.get_date_object())
|
||||||
|
|
||||||
if len(ref.get_note_list()) > 0:
|
if len(citation.get_note_list()) > 0:
|
||||||
|
|
||||||
note_list = [ self.dbase.get_note_from_handle(h)
|
note_list = [ self.dbase.get_note_from_handle(h)
|
||||||
for h in ref.get_note_list() ]
|
for h in citation.get_note_list() ]
|
||||||
note_list = [ n for n in note_list
|
note_list = [ n for n in note_list
|
||||||
if n.get_type() == gen.lib.NoteType.SOURCE_TEXT]
|
if n.get_type() == gen.lib.NoteType.SOURCE_TEXT]
|
||||||
|
|
||||||
@ -1325,16 +1329,17 @@ class GedcomWriter(UpdateCallback):
|
|||||||
else:
|
else:
|
||||||
ref_text = ""
|
ref_text = ""
|
||||||
|
|
||||||
if ref_text != "" and ref.get_date_object().is_empty():
|
if ref_text != "" and citation.get_date_object().is_empty():
|
||||||
self.__writeln(level+1, 'DATA')
|
self.__writeln(level+1, 'DATA')
|
||||||
if ref_text != "":
|
if ref_text != "":
|
||||||
self.__writeln(level+2, "TEXT", ref_text)
|
self.__writeln(level+2, "TEXT", ref_text)
|
||||||
|
|
||||||
note_list = [ self.dbase.get_note_from_handle(h)
|
note_list = [ self.dbase.get_note_from_handle(h)
|
||||||
for h in ref.get_note_list() ]
|
for h in citation.get_note_list() ]
|
||||||
note_list = [ n.handle for n in note_list
|
note_list = [ n.handle for n in note_list
|
||||||
if n and n.get_type() != gen.lib.NoteType.SOURCE_TEXT]
|
if n and n.get_type() != gen.lib.NoteType.SOURCE_TEXT]
|
||||||
self.__note_references(note_list, level+1)
|
self.__note_references(note_list, level+1)
|
||||||
|
self.__photos(citation.get_media_list(), level+1)
|
||||||
|
|
||||||
def __photo(self, photo, level):
|
def __photo(self, photo, level):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user