Treat RESI tokens as events and not import them as Gramps addresses as per advice on the wiki concerning using residence events to record addresses. Bug #2651
svn: r11787
This commit is contained in:
parent
91eac11e1f
commit
977843f787
@ -329,7 +329,6 @@ class GedcomParser(UpdateCallback):
|
||||
TOKEN_RELI : self.__person_reli,
|
||||
TOKEN_ADOP : self.__person_adop,
|
||||
TOKEN_DEAT : self.__person_deat,
|
||||
TOKEN_RESI : self.__person_resi,
|
||||
# +1 <<INDIVIDUAL_ATTRIBUTE_STRUCTURE>> {0:M}
|
||||
# +1 AFN <ANCESTRAL_FILE_NUMBER> {0:1}
|
||||
TOKEN_ATTR : self.__person_std_attr,
|
||||
@ -500,22 +499,6 @@ class GedcomParser(UpdateCallback):
|
||||
TOKEN_STAT : self.__ignore,
|
||||
}
|
||||
|
||||
self.resi_parse_tbl = {
|
||||
TOKEN_DATE : self.__person_resi_date,
|
||||
TOKEN_ADDR : self.__person_resi_addr,
|
||||
TOKEN_SOUR : self.__person_resi_sour,
|
||||
TOKEN_PLAC : self.__person_resi_plac,
|
||||
TOKEN_PHON : self.__person_resi_phon,
|
||||
TOKEN_NOTE : self.__person_resi_note,
|
||||
TOKEN_RNOTE : self.__person_resi_note,
|
||||
TOKEN_IGNORE : self.__ignore,
|
||||
TOKEN_CAUS : self.__ignore,
|
||||
TOKEN_STAT : self.__ignore,
|
||||
TOKEN_TEMP : self.__ignore,
|
||||
TOKEN_OBJE : self.__ignore,
|
||||
TOKEN_TYPE : self.__ignore,
|
||||
}
|
||||
|
||||
self.person_fact_parse_tbl = {
|
||||
TOKEN_TYPE : self.__person_fact_type,
|
||||
}
|
||||
@ -1816,115 +1799,6 @@ class GedcomParser(UpdateCallback):
|
||||
sref = self.handle_source(line, state.level)
|
||||
state.name.add_source_reference(sref)
|
||||
|
||||
def __person_resi(self, line, state):
|
||||
"""
|
||||
The RESI tag follows the EVENT_DETAIL structure, which is:
|
||||
|
||||
n TYPE <EVENT_DESCRIPTOR> {0:1}
|
||||
n DATE <DATE_VALUE> {0:1}
|
||||
n <<PLACE_STRUCTURE>> {0:1}
|
||||
n <<ADDRESS_STRUCTURE>> {0:1}
|
||||
n AGE <AGE_AT_EVENT> {0:1}
|
||||
n AGNC <RESPONSIBLE_AGENCY> {0:1}
|
||||
n CAUS <CAUSE_OF_EVENT> {0:1}
|
||||
n <<SOURCE_CITATION>> {0:M}
|
||||
n <<MULTIMEDIA_LINK>> {0:M}
|
||||
n <<NOTE_STRUCTURE>> {0:M}
|
||||
|
||||
Currently, the TYPE, AGE, CAUSE, STAT, and other tags which
|
||||
do not apply to an address are ignored.
|
||||
|
||||
@param line: The current line in GedLine format
|
||||
@type line: GedLine
|
||||
@param state: The current state
|
||||
@type state: CurrentState
|
||||
"""
|
||||
|
||||
addr = gen.lib.Address()
|
||||
|
||||
sub_state = GedcomUtils.CurrentState()
|
||||
sub_state.person = state.person
|
||||
sub_state.level = state.level+1
|
||||
sub_state.addr = addr
|
||||
sub_state.person.add_address(addr)
|
||||
|
||||
self.__parse_level(sub_state, self.resi_parse_tbl, self.__undefined)
|
||||
|
||||
def __person_resi_date(self, line, state):
|
||||
"""
|
||||
Set the date on the address associated with and Address.
|
||||
|
||||
@param line: The current line in GedLine format
|
||||
@type line: GedLine
|
||||
@param state: The current state
|
||||
@type state: CurrentState
|
||||
"""
|
||||
state.addr.set_date_object(line.data)
|
||||
|
||||
def __person_resi_addr(self, line, state):
|
||||
"""
|
||||
Parses the ADDR line of a RESI tag
|
||||
|
||||
@param line: The current line in GedLine format
|
||||
@type line: GedLine
|
||||
@param state: The current state
|
||||
@type state: CurrentState
|
||||
"""
|
||||
state.addr.set_street(line.data)
|
||||
|
||||
sub_state = GedcomUtils.CurrentState()
|
||||
sub_state.addr = state.addr
|
||||
sub_state.level = state.level + 1
|
||||
sub_state.person = state.person
|
||||
self.__parse_level(sub_state, self.parse_addr_tbl, self.__ignore)
|
||||
|
||||
def __person_resi_sour(self, line, state):
|
||||
"""
|
||||
Parses the source connected to a RESI tag
|
||||
|
||||
@param line: The current line in GedLine format
|
||||
@type line: GedLine
|
||||
@param state: The current state
|
||||
@type state: CurrentState
|
||||
"""
|
||||
state.addr.add_source_reference(self.handle_source(line, state.level))
|
||||
|
||||
def __person_resi_plac(self, line, state):
|
||||
"""
|
||||
Parses the PLAC tag connected to a RESI tag
|
||||
|
||||
@param line: The current line in GedLine format
|
||||
@type line: GedLine
|
||||
@param state: The current state
|
||||
@type state: CurrentState
|
||||
"""
|
||||
state.addr.set_street(line.data)
|
||||
self.__parse_level(state, self.parse_addr_tbl, self.__ignore)
|
||||
|
||||
def __person_resi_phon(self, line, state):
|
||||
"""
|
||||
Parses the source connected to a PHON tag
|
||||
|
||||
@param line: The current line in GedLine format
|
||||
@type line: GedLine
|
||||
@param state: The current state
|
||||
@type state: CurrentState
|
||||
"""
|
||||
if state.addr.get_street() == "":
|
||||
state.addr.set_street("Unknown")
|
||||
state.addr.set_phone(line.data)
|
||||
|
||||
def __person_resi_note(self, line, state):
|
||||
"""
|
||||
Parses the NOTE connected to a RESI tag
|
||||
|
||||
@param line: The current line in GedLine format
|
||||
@type line: GedLine
|
||||
@param state: The current state
|
||||
@type state: CurrentState
|
||||
"""
|
||||
self.__parse_note(line, state.addr, state.level+1)
|
||||
|
||||
def __ignore(self, line, state):
|
||||
"""
|
||||
Ignores an unsupported tag
|
||||
|
@ -206,8 +206,7 @@ TOKENS = {
|
||||
"QUALITY_OF_DATA": TOKEN_QUAY, "REFN" : TOKEN_REFN,
|
||||
"REFERENCE" : TOKEN_REFN, "RELI" : TOKEN_RELI,
|
||||
"RELIGION" : TOKEN_RELI, "REPO" : TOKEN_REPO,
|
||||
"REPOSITORY" : TOKEN_REPO, "RESI" : TOKEN_RESI,
|
||||
"RESIDENCE" : TOKEN_RESI, "RFN" : TOKEN_RFN,
|
||||
"REPOSITORY" : TOKEN_REPO, "RFN" : TOKEN_RFN,
|
||||
"RIN" : TOKEN_RIN, "_SCHEMA" : TOKEN__SCHEMA,
|
||||
"SEX" : TOKEN_SEX, "SCHEMA" : TOKEN__SCHEMA,
|
||||
"SLGC" : TOKEN_SLGC, "SLGS" : TOKEN_SLGS,
|
||||
|
Loading…
Reference in New Issue
Block a user