* 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/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>
* 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?,
(daterange|dateval|datestr)?,note?,sourceref?)>
<!ATTLIST name
preferred (0|1) #IMPLIED
alt (0|1) #IMPLIED
type CDATA #IMPLIED
priv (0|1) #IMPLIED
sort CDATA #IMPLIED

View File

@ -527,7 +527,8 @@ class GrampsParser:
def start_sealed_to(self,attrs):
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:
handle = self.map_fid(attrs['ref'])
family = self.find_family_by_gramps_id(handle)
@ -535,7 +536,8 @@ class GrampsParser:
def start_place(self,attrs):
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:
handle = self.map_pid(attrs['ref'])
self.placeobj = self.find_place_by_gramps_id(handle)
@ -543,7 +545,8 @@ class GrampsParser:
def start_placeobj(self,attrs):
handle = self.map_pid(attrs['id'])
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)
except KeyError:
self.placeobj = self.find_place_by_gramps_id(handle)
@ -586,7 +589,8 @@ class GrampsParser:
self.in_witness = 1
self.witness_comment = ""
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'):
person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"]))
self.witness = RelLib.Witness(RelLib.Event.ID,person.get_handle())
@ -645,7 +649,8 @@ class GrampsParser:
def start_bmark(self,attrs):
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:
handle = self.map_gid(attrs["ref"])
person = self.find_person_by_gramps_id(handle)
@ -656,7 +661,8 @@ class GrampsParser:
self.callback(True)
new_id = self.map_gid(attrs['id'])
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)
except KeyError:
self.person = self.find_person_by_gramps_id(new_id)
@ -668,27 +674,30 @@ class GrampsParser:
def start_people(self,attrs):
if attrs.has_key('home'):
self.home = attrs['home']
self.home = attrs['home'].replace('_','')
elif attrs.has_key("default"):
self.tempDefault = attrs["default"]
def start_father(self,attrs):
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:
person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"]))
self.family.set_father_handle(person.get_handle())
def start_mother(self,attrs):
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:
person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"]))
self.family.set_mother_handle(person.get_handle())
def start_child(self,attrs):
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:
person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"]))
self.family.add_child_handle(person.get_handle())
@ -720,7 +729,8 @@ class GrampsParser:
self.count = self.count + 1
handle = self.map_fid(attrs["id"])
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)
except KeyError:
self.family = self.find_family_by_gramps_id(handle)
@ -735,7 +745,8 @@ class GrampsParser:
def start_childof(self,attrs):
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:
family = self.find_family_by_gramps_id(self.map_fid(attrs["ref"]))
@ -757,7 +768,8 @@ class GrampsParser:
def start_parentin(self,attrs):
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:
family = self.find_family_by_gramps_id(self.map_fid(attrs["ref"]))
self.person.add_family_handle(family.get_handle())
@ -777,6 +789,10 @@ class GrampsParser:
self.name.conf = 2
if attrs.has_key("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):
if attrs.has_key('prefix'):
@ -793,7 +809,8 @@ class GrampsParser:
def start_sourceref(self,attrs):
self.source_ref = RelLib.SourceRef()
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:
source = self.find_source_by_gramps_id(self.map_sid(attrs["ref"]))
@ -828,7 +845,8 @@ class GrampsParser:
def start_source(self,attrs):
handle = self.map_sid(attrs["id"])
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)
except KeyError:
self.source = self.find_source_by_gramps_id(handle)
@ -836,7 +854,8 @@ class GrampsParser:
def start_objref(self,attrs):
self.objref = RelLib.MediaRef()
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:
obj = self.find_object_by_gramps_id(self.map_oid(attrs['ref']))
@ -859,7 +878,8 @@ class GrampsParser:
def start_object(self,attrs):
handle = self.map_oid(attrs['id'])
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)
except KeyError:
self.object = self.find_object_by_gramps_id(handle)
@ -1126,10 +1146,17 @@ class GrampsParser:
if self.in_witness:
self.witness = RelLib.Witness(RelLib.Event.NAME,tag)
else:
if self.name.get_type() == "":
self.name.set_type("Birth Name")
self.person.set_primary_name (self.name)
self.person.get_primary_name().build_sort_name()
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:
if self.name.get_type() == "":
self.name.set_type("Birth Name")
self.person.set_primary_name (self.name)
self.person.get_primary_name().build_sort_name()
self.name = None
def stop_ref(self,tag):

View File

@ -263,9 +263,9 @@ class XmlWriter:
self.write_line("gender","F",3)
else:
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():
self.dump_name(name,False,3)
self.dump_name(name,True,3)
self.write_line("nick",person.get_nick_name(),3)
birth = self.db.get_event_from_handle(person.get_birth_handle())
@ -651,12 +651,12 @@ class XmlWriter:
if value != None:
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
name_type = name.get_type()
self.g.write('%s<name' % sp)
if preferred:
self.g.write(' preferred="1"')
if alternative:
self.g.write(' alt="1"')
if name_type:
self.g.write(' type="%s"' % name_type)
if name.get_privacy() != 0: