* src/WriteXML.py: Switch from preferred to alt name attribute.

* doc/grampsxml.dtd: Update.
* src/ReadXML.py: Bring in sync with format changes.


svn: r5287
This commit is contained in:
Alex Roitman 2005-10-06 23:31:14 +00:00
parent c21cf57674
commit 4d49d66df5
4 changed files with 58 additions and 27 deletions

View File

@ -6,6 +6,10 @@
* src/plugins/CmdRef.py: Work out Report docs. * src/plugins/CmdRef.py: Work out Report docs.
* src/Report.py: Typo. * src/Report.py: Typo.
* src/WriteXML.py: Switch from preferred to alt name attribute.
* doc/grampsxml.dtd: Update.
* src/ReadXML.py: Bring in sync with format changes.
2005-10-06 Martin Hawlisch <Martin.Hawlisch@gmx.de> 2005-10-06 Martin Hawlisch <Martin.Hawlisch@gmx.de>
* src/plugins/CmdRef.py: New file. * src/plugins/CmdRef.py: New file.

View File

@ -109,7 +109,7 @@ GENDER has values of M, F, or U.
<!ELEMENT name (first?,last?,suffix?,patronymic?,title?, <!ELEMENT name (first?,last?,suffix?,patronymic?,title?,
(daterange|dateval|datestr)?,note?,sourceref?)> (daterange|dateval|datestr)?,note?,sourceref?)>
<!ATTLIST name <!ATTLIST name
preferred (0|1) #IMPLIED alt (0|1) #IMPLIED
type CDATA #IMPLIED type CDATA #IMPLIED
priv (0|1) #IMPLIED priv (0|1) #IMPLIED
sort CDATA #IMPLIED sort CDATA #IMPLIED

View File

@ -527,7 +527,8 @@ class GrampsParser:
def start_sealed_to(self,attrs): def start_sealed_to(self,attrs):
try: try:
family = self.db.find_family_from_handle(attrs['hlink'],self.trans) family = self.db.find_family_from_handle(
attrs['hlink'].replace('_',''),self.trans)
except KeyError: except KeyError:
handle = self.map_fid(attrs['ref']) handle = self.map_fid(attrs['ref'])
family = self.find_family_by_gramps_id(handle) family = self.find_family_by_gramps_id(handle)
@ -535,7 +536,8 @@ class GrampsParser:
def start_place(self,attrs): def start_place(self,attrs):
try: try:
self.placeobj = self.db.find_place_from_handle(attrs['hlink'],self.trans) self.placeobj = self.db.find_place_from_handle(
attrs['hlink'].replace('_',''),self.trans)
except KeyError: except KeyError:
handle = self.map_pid(attrs['ref']) handle = self.map_pid(attrs['ref'])
self.placeobj = self.find_place_by_gramps_id(handle) self.placeobj = self.find_place_by_gramps_id(handle)
@ -543,7 +545,8 @@ class GrampsParser:
def start_placeobj(self,attrs): def start_placeobj(self,attrs):
handle = self.map_pid(attrs['id']) handle = self.map_pid(attrs['id'])
try: try:
self.placeobj = self.db.find_place_from_handle(attrs['handle'],self.trans) self.placeobj = self.db.find_place_from_handle(
attrs['handle'].replace('_',''),self.trans)
self.placeobj.set_gramps_id(handle) self.placeobj.set_gramps_id(handle)
except KeyError: except KeyError:
self.placeobj = self.find_place_by_gramps_id(handle) self.placeobj = self.find_place_by_gramps_id(handle)
@ -586,7 +589,8 @@ class GrampsParser:
self.in_witness = 1 self.in_witness = 1
self.witness_comment = "" self.witness_comment = ""
if attrs.has_key('hlink'): if attrs.has_key('hlink'):
self.witness = RelLib.Witness(RelLib.Event.ID,attrs['hlink']) self.witness = RelLib.Witness(RelLib.Event.ID,
attrs['hlink'].replace('_',''))
elif attrs.has_key('ref'): elif attrs.has_key('ref'):
person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"])) person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"]))
self.witness = RelLib.Witness(RelLib.Event.ID,person.get_handle()) self.witness = RelLib.Witness(RelLib.Event.ID,person.get_handle())
@ -645,7 +649,8 @@ class GrampsParser:
def start_bmark(self,attrs): def start_bmark(self,attrs):
try: try:
person = self.db.find_person_from_handle(attrs['hlink'],self.trans) person = self.db.find_person_from_handle(
attrs['hlink'].replace('_',''),self.trans)
except KeyError: except KeyError:
handle = self.map_gid(attrs["ref"]) handle = self.map_gid(attrs["ref"])
person = self.find_person_by_gramps_id(handle) person = self.find_person_by_gramps_id(handle)
@ -656,7 +661,8 @@ class GrampsParser:
self.callback(True) self.callback(True)
new_id = self.map_gid(attrs['id']) new_id = self.map_gid(attrs['id'])
try: try:
self.person = self.db.find_person_from_handle(attrs['handle'],self.trans) self.person = self.db.find_person_from_handle(
attrs['handle'].replace('_',''),self.trans)
self.person.set_gramps_id(new_id) self.person.set_gramps_id(new_id)
except KeyError: except KeyError:
self.person = self.find_person_by_gramps_id(new_id) self.person = self.find_person_by_gramps_id(new_id)
@ -668,27 +674,30 @@ class GrampsParser:
def start_people(self,attrs): def start_people(self,attrs):
if attrs.has_key('home'): if attrs.has_key('home'):
self.home = attrs['home'] self.home = attrs['home'].replace('_','')
elif attrs.has_key("default"): elif attrs.has_key("default"):
self.tempDefault = attrs["default"] self.tempDefault = attrs["default"]
def start_father(self,attrs): def start_father(self,attrs):
try: try:
person = self.db.find_person_from_handle(attrs['hlink'],self.trans) person = self.db.find_person_from_handle(
attrs['hlink'].replace('_',''),self.trans)
except KeyError: except KeyError:
person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"])) person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"]))
self.family.set_father_handle(person.get_handle()) self.family.set_father_handle(person.get_handle())
def start_mother(self,attrs): def start_mother(self,attrs):
try: try:
person = self.db.find_person_from_handle(attrs['hlink'],self.trans) person = self.db.find_person_from_handle(
attrs['hlink'].replace('_',''),self.trans)
except KeyError: except KeyError:
person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"])) person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"]))
self.family.set_mother_handle(person.get_handle()) self.family.set_mother_handle(person.get_handle())
def start_child(self,attrs): def start_child(self,attrs):
try: try:
person = self.db.find_person_from_handle(attrs['hlink'],self.trans) person = self.db.find_person_from_handle(
attrs['hlink'].replace('_',''),self.trans)
except KeyError: except KeyError:
person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"])) person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"]))
self.family.add_child_handle(person.get_handle()) self.family.add_child_handle(person.get_handle())
@ -720,7 +729,8 @@ class GrampsParser:
self.count = self.count + 1 self.count = self.count + 1
handle = self.map_fid(attrs["id"]) handle = self.map_fid(attrs["id"])
try: try:
self.family = self.db.find_family_from_handle(attrs["handle"],self.trans) self.family = self.db.find_family_from_handle(
attrs['handle'].replace('_',''),self.trans)
self.family.set_gramps_id(handle) self.family.set_gramps_id(handle)
except KeyError: except KeyError:
self.family = self.find_family_by_gramps_id(handle) self.family = self.find_family_by_gramps_id(handle)
@ -735,7 +745,8 @@ class GrampsParser:
def start_childof(self,attrs): def start_childof(self,attrs):
try: try:
family = self.db.find_family_from_handle(attrs["hlink"],self.trans) family = self.db.find_family_from_handle(
attrs["hlink"].replace('_',''),self.trans)
except KeyError: except KeyError:
family = self.find_family_by_gramps_id(self.map_fid(attrs["ref"])) family = self.find_family_by_gramps_id(self.map_fid(attrs["ref"]))
@ -757,7 +768,8 @@ class GrampsParser:
def start_parentin(self,attrs): def start_parentin(self,attrs):
try: try:
family = self.db.find_family_from_handle(attrs['hlink'],self.trans) family = self.db.find_family_from_handle(
attrs['hlink'].replace('_',''),self.trans)
except KeyError: except KeyError:
family = self.find_family_by_gramps_id(self.map_fid(attrs["ref"])) family = self.find_family_by_gramps_id(self.map_fid(attrs["ref"]))
self.person.add_family_handle(family.get_handle()) self.person.add_family_handle(family.get_handle())
@ -777,6 +789,10 @@ class GrampsParser:
self.name.conf = 2 self.name.conf = 2
if attrs.has_key("priv"): if attrs.has_key("priv"):
self.name.set_privacy(int(attrs["priv"])) self.name.set_privacy(int(attrs["priv"]))
if attrs.has_key("alt"):
self.alt_name = int(attrs["alt"])
else:
self.alt_name = 0
def start_last(self,attrs): def start_last(self,attrs):
if attrs.has_key('prefix'): if attrs.has_key('prefix'):
@ -793,7 +809,8 @@ class GrampsParser:
def start_sourceref(self,attrs): def start_sourceref(self,attrs):
self.source_ref = RelLib.SourceRef() self.source_ref = RelLib.SourceRef()
try: try:
source = self.db.find_source_from_handle(attrs["hlink"],self.trans) source = self.db.find_source_from_handle(
attrs["hlink"].replace('_',''),self.trans)
except KeyError: except KeyError:
source = self.find_source_by_gramps_id(self.map_sid(attrs["ref"])) source = self.find_source_by_gramps_id(self.map_sid(attrs["ref"]))
@ -828,7 +845,8 @@ class GrampsParser:
def start_source(self,attrs): def start_source(self,attrs):
handle = self.map_sid(attrs["id"]) handle = self.map_sid(attrs["id"])
try: try:
self.source = self.db.find_source_from_handle(attrs["handle"],self.trans) self.source = self.db.find_source_from_handle(
attrs['handle'].replace('_',''),self.trans)
self.source.set_gramps_id(handle) self.source.set_gramps_id(handle)
except KeyError: except KeyError:
self.source = self.find_source_by_gramps_id(handle) self.source = self.find_source_by_gramps_id(handle)
@ -836,7 +854,8 @@ class GrampsParser:
def start_objref(self,attrs): def start_objref(self,attrs):
self.objref = RelLib.MediaRef() self.objref = RelLib.MediaRef()
try: try:
obj = self.db.find_object_from_handle(attrs['hlink'],self.trans) obj = self.db.find_object_from_handle(
attrs['hlink'].replace('_',''),self.trans)
except KeyError: except KeyError:
obj = self.find_object_by_gramps_id(self.map_oid(attrs['ref'])) obj = self.find_object_by_gramps_id(self.map_oid(attrs['ref']))
@ -859,7 +878,8 @@ class GrampsParser:
def start_object(self,attrs): def start_object(self,attrs):
handle = self.map_oid(attrs['id']) handle = self.map_oid(attrs['id'])
try: try:
self.object = self.db.find_object_from_handle(attrs['handle'],self.trans) self.object = self.db.find_object_from_handle(
attrs['handle'].replace('_',''),self.trans)
self.object.set_gramps_id(handle) self.object.set_gramps_id(handle)
except KeyError: except KeyError:
self.object = self.find_object_by_gramps_id(handle) self.object = self.find_object_by_gramps_id(handle)
@ -1125,11 +1145,18 @@ class GrampsParser:
def stop_name(self,tag): def stop_name(self,tag):
if self.in_witness: if self.in_witness:
self.witness = RelLib.Witness(RelLib.Event.NAME,tag) self.witness = RelLib.Witness(RelLib.Event.NAME,tag)
else:
if self.alt_name:
# former aka tag -- alternate name
if self.name.get_type() == "":
self.name.set_type("Also Known As")
self.person.add_alternate_name(self.name)
else: else:
if self.name.get_type() == "": if self.name.get_type() == "":
self.name.set_type("Birth Name") self.name.set_type("Birth Name")
self.person.set_primary_name (self.name) self.person.set_primary_name (self.name)
self.person.get_primary_name().build_sort_name() self.person.get_primary_name().build_sort_name()
self.name = None self.name = None
def stop_ref(self,tag): def stop_ref(self,tag):

View File

@ -263,9 +263,9 @@ class XmlWriter:
self.write_line("gender","F",3) self.write_line("gender","F",3)
else: else:
self.write_line("gender","U",3) self.write_line("gender","U",3)
self.dump_name(person.get_primary_name(),True,3) self.dump_name(person.get_primary_name(),False,3)
for name in person.get_alternate_names(): for name in person.get_alternate_names():
self.dump_name(name,False,3) self.dump_name(name,True,3)
self.write_line("nick",person.get_nick_name(),3) self.write_line("nick",person.get_nick_name(),3)
birth = self.db.get_event_from_handle(person.get_birth_handle()) birth = self.db.get_event_from_handle(person.get_birth_handle())
@ -651,12 +651,12 @@ class XmlWriter:
if value != None: if value != None:
self.g.write('%s<%s>%s</%s>\n' % (' '*indent,label,self.fix(value),label)) self.g.write('%s<%s>%s</%s>\n' % (' '*indent,label,self.fix(value),label))
def dump_name(self,name,preferred=False,index=1): def dump_name(self,name,alternative=False,index=1):
sp = " "*index sp = " "*index
name_type = name.get_type() name_type = name.get_type()
self.g.write('%s<name' % sp) self.g.write('%s<name' % sp)
if preferred: if alternative:
self.g.write(' preferred="1"') self.g.write(' alt="1"')
if name_type: if name_type:
self.g.write(' type="%s"' % name_type) self.g.write(' type="%s"' % name_type)
if name.get_privacy() != 0: if name.get_privacy() != 0: