* src/RelLib/_AttributeType.py: Add WITNESS (used by GEDCOM parser to import textual event witness information
* src/GrampsDbUtils/_GedcomParse.py: Support for some types of Witness data svn: r8246
This commit is contained in:
parent
27b4846869
commit
71f2c8d103
@ -1,3 +1,9 @@
|
|||||||
|
2007-02-26 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
||||||
|
* src/RelLib/_AttributeType.py: Add WITNESS (used by GEDCOM parser to
|
||||||
|
import textual event witness information
|
||||||
|
* src/GrampsDbUtils/_GedcomParse.py: Support for some types of Witness
|
||||||
|
data
|
||||||
|
|
||||||
2007-02-26 Don Allingham <don@gramps-project.org>
|
2007-02-26 Don Allingham <don@gramps-project.org>
|
||||||
* src/GrampsDbUtils/_GedcomParse.py: encode file name properly
|
* src/GrampsDbUtils/_GedcomParse.py: encode file name properly
|
||||||
|
|
||||||
|
@ -488,9 +488,9 @@ class GedcomParser(UpdateCallback):
|
|||||||
TOKEN__PRIV : self.func_event_privacy,
|
TOKEN__PRIV : self.func_event_privacy,
|
||||||
TOKEN_OFFI : self.func_event_note,
|
TOKEN_OFFI : self.func_event_note,
|
||||||
TOKEN_PHON : self.func_ignore,
|
TOKEN_PHON : self.func_ignore,
|
||||||
TOKEN__GODP : self.func_ignore,
|
TOKEN__GODP : self.func_event_witness,
|
||||||
TOKEN__WITN : self.func_ignore,
|
TOKEN__WITN : self.func_event_witness,
|
||||||
TOKEN__WTN : self.func_ignore,
|
TOKEN__WTN : self.func_event_witness,
|
||||||
TOKEN_RELI : self.func_ignore,
|
TOKEN_RELI : self.func_ignore,
|
||||||
TOKEN_TIME : self.func_ignore,
|
TOKEN_TIME : self.func_ignore,
|
||||||
TOKEN_ASSO : self.func_ignore,
|
TOKEN_ASSO : self.func_ignore,
|
||||||
@ -515,9 +515,9 @@ class GedcomParser(UpdateCallback):
|
|||||||
TOKEN_NOTE : self.func_event_note,
|
TOKEN_NOTE : self.func_event_note,
|
||||||
TOKEN_RNOTE : self.func_event_note,
|
TOKEN_RNOTE : self.func_event_note,
|
||||||
TOKEN_OFFI : self.func_event_note,
|
TOKEN_OFFI : self.func_event_note,
|
||||||
TOKEN__GODP : self.func_ignore,
|
TOKEN__GODP : self.func_event_witness,
|
||||||
TOKEN__WITN : self.func_ignore,
|
TOKEN__WITN : self.func_event_witness,
|
||||||
TOKEN__WTN : self.func_ignore,
|
TOKEN__WTN : self.func_event_witness,
|
||||||
TOKEN_RELI : self.func_ignore,
|
TOKEN_RELI : self.func_ignore,
|
||||||
TOKEN_TIME : self.func_ignore,
|
TOKEN_TIME : self.func_ignore,
|
||||||
TOKEN_ASSO : self.func_ignore,
|
TOKEN_ASSO : self.func_ignore,
|
||||||
@ -741,6 +741,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
TOKEN_FORM : self.func_event_place_form,
|
TOKEN_FORM : self.func_event_place_form,
|
||||||
TOKEN_OBJE : self.func_event_place_object,
|
TOKEN_OBJE : self.func_event_place_object,
|
||||||
TOKEN_SOUR : self.func_event_place_sour,
|
TOKEN_SOUR : self.func_event_place_sour,
|
||||||
|
TOKEN__LOC : self.func_ignore,
|
||||||
}
|
}
|
||||||
|
|
||||||
self.repo_ref_tbl = {
|
self.repo_ref_tbl = {
|
||||||
@ -1457,6 +1458,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
event_ref = RelLib.EventRef()
|
event_ref = RelLib.EventRef()
|
||||||
event.set_gramps_id(self.emapper.find_next())
|
event.set_gramps_id(self.emapper.find_next())
|
||||||
event.set_type(line.data)
|
event.set_type(line.data)
|
||||||
|
self.dbase.add_event(event, self.trans)
|
||||||
|
|
||||||
sub_state = GedcomUtils.CurrentState()
|
sub_state = GedcomUtils.CurrentState()
|
||||||
sub_state.person = state.person
|
sub_state.person = state.person
|
||||||
@ -1467,7 +1469,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
self.parse_level(sub_state, self.event_parse_tbl, self.func_undefined)
|
self.parse_level(sub_state, self.event_parse_tbl, self.func_undefined)
|
||||||
|
|
||||||
person_event_name(event, state.person)
|
person_event_name(event, state.person)
|
||||||
self.dbase.add_event(event, self.trans)
|
self.dbase.commit_event(event, self.trans)
|
||||||
event_ref.ref = event.handle
|
event_ref.ref = event.handle
|
||||||
state.person.add_event_ref(event_ref)
|
state.person.add_event_ref(event_ref)
|
||||||
|
|
||||||
@ -2430,6 +2432,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
event_ref.set_role(RelLib.EventRoleType.FAMILY)
|
event_ref.set_role(RelLib.EventRoleType.FAMILY)
|
||||||
event.set_gramps_id(self.emapper.find_next())
|
event.set_gramps_id(self.emapper.find_next())
|
||||||
event.set_type(line.data)
|
event.set_type(line.data)
|
||||||
|
self.dbase.add_event(event, self.trans)
|
||||||
|
|
||||||
sub_state = GedcomUtils.CurrentState()
|
sub_state = GedcomUtils.CurrentState()
|
||||||
sub_state.person = state.person
|
sub_state.person = state.person
|
||||||
@ -2440,7 +2443,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
self.parse_level(sub_state, self.event_parse_tbl, self.func_undefined)
|
self.parse_level(sub_state, self.event_parse_tbl, self.func_undefined)
|
||||||
|
|
||||||
family_event_name(event, state.family)
|
family_event_name(event, state.family)
|
||||||
self.dbase.add_event(event, self.trans)
|
self.dbase.commit_event(event, self.trans)
|
||||||
event_ref.ref = event.handle
|
event_ref.ref = event.handle
|
||||||
state.family.add_event_ref(event_ref)
|
state.family.add_event_ref(event_ref)
|
||||||
|
|
||||||
@ -2461,6 +2464,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
event_ref.set_role(RelLib.EventRoleType.FAMILY)
|
event_ref.set_role(RelLib.EventRoleType.FAMILY)
|
||||||
event.set_gramps_id(self.emapper.find_next())
|
event.set_gramps_id(self.emapper.find_next())
|
||||||
event.set_type(line.data)
|
event.set_type(line.data)
|
||||||
|
self.dbase.add_event(event, self.trans)
|
||||||
|
|
||||||
sub_state = GedcomUtils.CurrentState()
|
sub_state = GedcomUtils.CurrentState()
|
||||||
sub_state.person = state.person
|
sub_state.person = state.person
|
||||||
@ -2484,7 +2488,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
|
|
||||||
family_event_name(event, state.family)
|
family_event_name(event, state.family)
|
||||||
|
|
||||||
self.dbase.add_event(event, self.trans)
|
self.dbase.commit_event(event, self.trans)
|
||||||
event_ref.ref = event.handle
|
event_ref.ref = event.handle
|
||||||
state.family.add_event_ref(event_ref)
|
state.family.add_event_ref(event_ref)
|
||||||
|
|
||||||
@ -3059,6 +3063,46 @@ class GedcomParser(UpdateCallback):
|
|||||||
attr.set_value(line.data)
|
attr.set_value(line.data)
|
||||||
state.event.add_attribute(attr)
|
state.event.add_attribute(attr)
|
||||||
|
|
||||||
|
def func_event_witness(self,line,state):
|
||||||
|
"""
|
||||||
|
Parse the witness of an event
|
||||||
|
|
||||||
|
@param line: The current line in GedLine format
|
||||||
|
@type line: GedLine
|
||||||
|
@param state: The current state
|
||||||
|
@type state: CurrentState
|
||||||
|
"""
|
||||||
|
if line.data and line.data[0] == "@":
|
||||||
|
"""
|
||||||
|
n _WITN @<XREF:INDI>@
|
||||||
|
+1 TYPE <TYPE_OF_RELATION>
|
||||||
|
"""
|
||||||
|
assert( state.event.handle) # event handle is required to be set
|
||||||
|
wit = self.find_or_create_person(self.pid_map[line.data])
|
||||||
|
self.added.add(wit.handle)
|
||||||
|
event_ref = RelLib.EventRef()
|
||||||
|
event_ref.set_reference_handle(state.event.handle)
|
||||||
|
while True:
|
||||||
|
line = self.get_next()
|
||||||
|
if self.level_is_finished(line, state.level+1):
|
||||||
|
break
|
||||||
|
elif line.token == TOKEN_TYPE:
|
||||||
|
if line.data in ("WITNESS_OF_MARRIAGE"):
|
||||||
|
r = RelLib.EventRoleType(RelLib.EventRoleType.WITNESS)
|
||||||
|
else:
|
||||||
|
r = RelLib.EventRoleType((RelLib.EventRoleType.CUSTOM, line.data))
|
||||||
|
event_ref.set_role(r)
|
||||||
|
wit.add_event_ref(event_ref)
|
||||||
|
self.dbase.commit_person(wit, self.trans)
|
||||||
|
else:
|
||||||
|
"""
|
||||||
|
n _WITN <TEXTUAL_LIST_OF_NAMES>
|
||||||
|
"""
|
||||||
|
attr = RelLib.Attribute()
|
||||||
|
attr.set_type(RelLib.AttributeType.WITNESS)
|
||||||
|
attr.set_value(line.data)
|
||||||
|
state.event.add_attribute(attr)
|
||||||
|
|
||||||
def func_person_adopt_famc(self, line, state):
|
def func_person_adopt_famc(self, line, state):
|
||||||
"""
|
"""
|
||||||
@param line: The current line in GedLine format
|
@param line: The current line in GedLine format
|
||||||
@ -3934,7 +3978,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
def parse_source_reference(self, src_ref, level, handle):
|
def parse_source_reference(self, src_ref, level, handle):
|
||||||
"""Reads the data associated with a SOUR reference"""
|
"""Reads the data associated with a SOUR reference"""
|
||||||
state = GedcomUtils.CurrentState()
|
state = GedcomUtils.CurrentState()
|
||||||
state.level = level
|
state.level = level+1
|
||||||
state.src_ref = src_ref
|
state.src_ref = src_ref
|
||||||
state.handle = handle
|
state.handle = handle
|
||||||
self.parse_level(state, self.srcref_parse_tbl, self.func_ignore)
|
self.parse_level(state, self.srcref_parse_tbl, self.func_ignore)
|
||||||
@ -4266,6 +4310,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
event.set_type(event_type)
|
event.set_type(event_type)
|
||||||
if description and description != 'Y':
|
if description and description != 'Y':
|
||||||
event.set_description(description)
|
event.set_description(description)
|
||||||
|
self.dbase.add_event(event, self.trans)
|
||||||
|
|
||||||
sub_state = GedcomUtils.CurrentState()
|
sub_state = GedcomUtils.CurrentState()
|
||||||
sub_state.level = state.level + 1
|
sub_state.level = state.level + 1
|
||||||
@ -4274,7 +4319,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
sub_state.person = state.person
|
sub_state.person = state.person
|
||||||
|
|
||||||
self.parse_level(sub_state, event_map, self.func_undefined)
|
self.parse_level(sub_state, event_map, self.func_undefined)
|
||||||
self.dbase.add_event(event, self.trans)
|
self.dbase.commit_event(event, self.trans)
|
||||||
|
|
||||||
event_ref.set_reference_handle(event.handle)
|
event_ref.set_reference_handle(event.handle)
|
||||||
return event_ref
|
return event_ref
|
||||||
@ -4287,6 +4332,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
event.set_type(event_type)
|
event.set_type(event_type)
|
||||||
if description and description != 'Y':
|
if description and description != 'Y':
|
||||||
event.set_description(description)
|
event.set_description(description)
|
||||||
|
self.dbase.add_event(event, self.trans)
|
||||||
|
|
||||||
sub_state = GedcomUtils.CurrentState()
|
sub_state = GedcomUtils.CurrentState()
|
||||||
sub_state.family = state.family
|
sub_state.family = state.family
|
||||||
@ -4297,7 +4343,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
self.parse_level(sub_state, event_map, self.func_undefined)
|
self.parse_level(sub_state, event_map, self.func_undefined)
|
||||||
|
|
||||||
family_event_name(event, state.family)
|
family_event_name(event, state.family)
|
||||||
self.dbase.add_event(event, self.trans)
|
self.dbase.commit_event(event, self.trans)
|
||||||
|
|
||||||
event_ref.set_reference_handle(event.handle)
|
event_ref.set_reference_handle(event.handle)
|
||||||
return event_ref
|
return event_ref
|
||||||
|
@ -45,6 +45,7 @@ class AttributeType(GrampsType):
|
|||||||
AGE = 10
|
AGE = 10
|
||||||
FATHER_AGE = 11
|
FATHER_AGE = 11
|
||||||
MOTHER_AGE = 12
|
MOTHER_AGE = 12
|
||||||
|
WITNESS = 13
|
||||||
|
|
||||||
_CUSTOM = CUSTOM
|
_CUSTOM = CUSTOM
|
||||||
_DEFAULT = ID
|
_DEFAULT = ID
|
||||||
@ -65,6 +66,7 @@ class AttributeType(GrampsType):
|
|||||||
(AGE , _("Age"), "Age"),
|
(AGE , _("Age"), "Age"),
|
||||||
(FATHER_AGE , _("Father's Age"), "Father Age"),
|
(FATHER_AGE , _("Father's Age"), "Father Age"),
|
||||||
(MOTHER_AGE , _("Mother's Age"), "Mother Age"),
|
(MOTHER_AGE , _("Mother's Age"), "Mother Age"),
|
||||||
|
(WITNESS , _("Witness"), "Witness"),
|
||||||
]
|
]
|
||||||
|
|
||||||
_I2SMAP = init_map(_DATAMAP, 0, 1)
|
_I2SMAP = init_map(_DATAMAP, 0, 1)
|
||||||
@ -74,4 +76,3 @@ class AttributeType(GrampsType):
|
|||||||
|
|
||||||
def __init__(self, value=None):
|
def __init__(self, value=None):
|
||||||
GrampsType.__init__(self, value)
|
GrampsType.__init__(self, value)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user