Merged geps21 branch, changes r15866-16034, into trunk
svn: r16035
This commit is contained in:
@@ -498,14 +498,12 @@ class GedcomWriter(UpdateCallback):
|
||||
"""
|
||||
Write the names associated with the person to the current level.
|
||||
|
||||
Since nicknames are now separate from the name structure, we search
|
||||
the attribute list to see if we can find a nickname. Because we do
|
||||
not know the mappings, we just take the first nickname we find, and
|
||||
add it to the primary name.
|
||||
Since nicknames in version < 3.3 are separate from the name structure,
|
||||
we search the attribute list to see if we can find a nickname.
|
||||
Because we do not know the mappings, we just take the first nickname
|
||||
we find, and add it to the primary name.
|
||||
If a nickname is present in the name structure, it has precedence
|
||||
|
||||
All other names are assumed to not have a nickname, even if other
|
||||
nicknames exist in the attribute list.
|
||||
|
||||
"""
|
||||
nicknames = [ attr.get_value() for attr in person.get_attribute_list()
|
||||
if int(attr.get_type()) == gen.lib.AttributeType.NICKNAME ]
|
||||
@@ -1193,7 +1191,7 @@ class GedcomWriter(UpdateCallback):
|
||||
elif date.get_text():
|
||||
self.__writeln(level, 'DATE', date.get_text())
|
||||
|
||||
def __person_name(self, name, nick):
|
||||
def __person_name(self, name, attr_nick):
|
||||
"""
|
||||
n NAME <NAME_PERSONAL> {1:1}
|
||||
+1 NPFX <NAME_PIECE_PREFIX> {0:1}
|
||||
@@ -1208,13 +1206,21 @@ class GedcomWriter(UpdateCallback):
|
||||
gedcom_name = name.get_gedcom_name()
|
||||
|
||||
firstname = name.get_first_name().strip()
|
||||
patron = name.get_patronymic().strip()
|
||||
if patron:
|
||||
firstname = "%s %s" % (firstname, patron)
|
||||
surname = name.get_surname().replace('/', '?')
|
||||
surprefix = name.get_surname_prefix().replace('/', '?')
|
||||
surns = []
|
||||
surprefs = []
|
||||
for surn in name.get_surname_list():
|
||||
surns.append(surn.get_surname().replace('/', '?'))
|
||||
if surn.get_connector():
|
||||
#we store connector with the surname
|
||||
surns[-1] = surns[-1] + ' ' + surn.get_connector()
|
||||
surprefs.append(surn.get_prefix().replace('/', '?'))
|
||||
surname = ', '.join(surns)
|
||||
surprefix = ', '.join(surprefs)
|
||||
suffix = name.get_suffix()
|
||||
title = name.get_title()
|
||||
nick = name.get_nick_name()
|
||||
if nick.strip() == '':
|
||||
nick = attr_nick
|
||||
|
||||
self.__writeln(1, 'NAME', gedcom_name)
|
||||
|
||||
@@ -1224,7 +1230,6 @@ class GedcomWriter(UpdateCallback):
|
||||
self.__writeln(2, 'SPFX', surprefix)
|
||||
if surname:
|
||||
self.__writeln(2, 'SURN', surname)
|
||||
|
||||
if name.get_suffix():
|
||||
self.__writeln(2, 'NSFX', suffix)
|
||||
if name.get_title():
|
||||
|
@@ -783,16 +783,26 @@ class GrampsXmlWriter(UpdateCallback):
|
||||
if rel != "":
|
||||
self.g.write(' %s<rel type="%s"/>\n' % (sp,rel) )
|
||||
|
||||
def write_last(self, name,indent=1):
|
||||
p = name.get_surname_prefix()
|
||||
n = name.get_surname()
|
||||
g = name.get_group_as()
|
||||
self.g.write('%s<last' % (' '*indent))
|
||||
if p:
|
||||
self.g.write(' prefix="%s"' % escxml(p))
|
||||
if g:
|
||||
self.g.write(' group="%s"' % escxml(g))
|
||||
self.g.write('>%s</last>\n' % self.fix(n))
|
||||
def write_surname(self, surname, indent=1):
|
||||
"""
|
||||
Writes a surname of the name
|
||||
"""
|
||||
pre = surname.get_prefix()
|
||||
con = surname.get_connector()
|
||||
nam = surname.get_surname()
|
||||
der = surname.get_origintype().xml_str()
|
||||
pri = surname.get_primary()
|
||||
self.g.write('%s<surname' % (' '*indent))
|
||||
if pre:
|
||||
self.g.write(' prefix="%s"' % escxml(pre))
|
||||
if not pri:
|
||||
self.g.write(' prim="0"')
|
||||
if con:
|
||||
self.g.write(' connector="%s"' % escxml(con))
|
||||
if der:
|
||||
self.g.write(' derivation="%s"' % escxml(der))
|
||||
|
||||
self.g.write('>%s</surname>\n' % self.fix(nam))
|
||||
|
||||
def write_line(self,tagname,value,indent=1):
|
||||
if value:
|
||||
@@ -915,12 +925,15 @@ class GrampsXmlWriter(UpdateCallback):
|
||||
if name.get_display_as() != 0:
|
||||
self.g.write(' display="%d"' % name.get_display_as())
|
||||
self.g.write('>\n')
|
||||
self.write_line("first", name.get_first_name(),index+1)
|
||||
self.write_line("call", name.get_call_name(),index+1)
|
||||
self.write_last(name,index+1)
|
||||
self.write_line("suffix", name.get_suffix(),index+1)
|
||||
self.write_line("patronymic", name.get_patronymic(),index+1)
|
||||
self.write_line("title", name.get_title(),index+1)
|
||||
self.write_line("first", escxml(name.get_first_name()),index+1)
|
||||
self.write_line("call", escxml(name.get_call_name()),index+1)
|
||||
for surname in name.get_surname_list():
|
||||
self.write_surname(surname,index+1)
|
||||
self.write_line("suffix", escxml(name.get_suffix()),index+1)
|
||||
self.write_line("title", escxml(name.get_title()),index+1)
|
||||
self.write_line("nick", escxml(name.get_nick_name()), index+1)
|
||||
self.write_line("familynick", escxml(name.get_family_nick_name()), index+1)
|
||||
self.write_line("group", escxml(name.get_group_as()), index+1)
|
||||
if name.date:
|
||||
self.write_date(name.date,4)
|
||||
self.write_note_list(name.get_note_list(),index+1)
|
||||
|
Reference in New Issue
Block a user