Support for FTM and others Custom Gedcom Event Tags on import
This commit is contained in:
parent
67620bb895
commit
618112b51c
82
data/tests/imp_CustTags.ged
Normal file
82
data/tests/imp_CustTags.ged
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
0 HEAD
|
||||||
|
1 SOUR FTM
|
||||||
|
2 VERS Family Tree Maker (22.0.0.1410)
|
||||||
|
2 NAME Family Tree Maker for Windows
|
||||||
|
2 CORP Ancestry.com
|
||||||
|
3 ADDR 360 W 4800 N
|
||||||
|
4 CONT Provo, UT 84604
|
||||||
|
1 DEST GED55
|
||||||
|
1 DATE 01 MAR 2016
|
||||||
|
1 CHAR UTF-8
|
||||||
|
1 FILE D:\Family Tree Maker\imp_FTM_LINK.ged
|
||||||
|
1 SUBM @SUBM@
|
||||||
|
1 GEDC
|
||||||
|
2 VERS 5.5
|
||||||
|
2 FORM LINEAGE-LINKED
|
||||||
|
0 @SUBM@ SUBM
|
||||||
|
1 NAME The Subm /Tester/
|
||||||
|
1 ADDR 123 Main St., Winslow, PA, 12345
|
||||||
|
2 ADR1 123 Main St.
|
||||||
|
2 CITY Winslow
|
||||||
|
2 STAE PA
|
||||||
|
2 POST 12345
|
||||||
|
0 @I0@ INDI
|
||||||
|
1 NAME The /Tester/
|
||||||
|
2 SOUR @S6@
|
||||||
|
3 PAGE 777, record for The Tester
|
||||||
|
3 _JUST Because it’s good
|
||||||
|
1 BIRT
|
||||||
|
2 DATE 29 DEC 1954
|
||||||
|
2 PLAC 123 High St, Cleveland, Cuyahoga, Ohio, USA, 44140
|
||||||
|
3 FORM Street, City, County, State, Country, Zip code
|
||||||
|
1 _CIRC
|
||||||
|
2 DATE 11 JAN 1955
|
||||||
|
2 PLAC 456 Main St, Cleveland, Cuyahoga, Ohio, USA, 44140
|
||||||
|
3 FORM Street, City, County, State, Country, Zip code
|
||||||
|
1 _ELEC Mayor
|
||||||
|
2 TYPE Small town
|
||||||
|
2 DATE 1980
|
||||||
|
2 PLAC Littetown, Smallcounty, Ohio, USA
|
||||||
|
1 FAMS @F4211@
|
||||||
|
1 _XYZ He should keep his zipper closed
|
||||||
|
2 DATE 1979
|
||||||
|
1 EVEN Celebration
|
||||||
|
2 TYPE Independence Day
|
||||||
|
2 DATE 4 JUL 1981
|
||||||
|
0 @I1@ INDI
|
||||||
|
1 NAME Mrs /Tester/
|
||||||
|
1 RESI
|
||||||
|
2 DATE 30 DEC 1954
|
||||||
|
2 ADDR 123 Main St., Winslow, PA, 12345
|
||||||
|
3 ADR1 123 Main St.
|
||||||
|
3 CITY Winslow
|
||||||
|
3 STAE PA
|
||||||
|
3 POST 12345
|
||||||
|
2 NOTE Address as event is legal, with PHON,FAX,EMAIL,WWW
|
||||||
|
1 FAMS @F4211@
|
||||||
|
0 @I2@ INDI
|
||||||
|
1 NAME Tom /Tester/
|
||||||
|
1 FAMC @F4211@
|
||||||
|
0 @F4211@ FAM
|
||||||
|
1 HUSB @I0@
|
||||||
|
1 WIFE @I1@
|
||||||
|
1 CHIL @I2@
|
||||||
|
2 _FREL Natural
|
||||||
|
2 _MREL Natural
|
||||||
|
1 MARR
|
||||||
|
2 DATE 1970
|
||||||
|
2 PLAC St Rafaels Church, Bay Village, Cuyahoga, Ohio, USA
|
||||||
|
1 _INFIDELITY
|
||||||
|
2 DATE 1979
|
||||||
|
2 PLAC Of Ill Repute, Shaker Heights, Ohio, USA
|
||||||
|
1 _SEPR
|
||||||
|
2 DATE 1980
|
||||||
|
2 PLAC Cuyahoga, OHIO, USA
|
||||||
|
0 @S6@ SOUR
|
||||||
|
1 TITL Ohio Births, 1958-2002
|
||||||
|
1 REPO @R1@
|
||||||
|
0 @R1@ REPO
|
||||||
|
1 NAME Testers Repository
|
||||||
|
1 ADDR 123 High St., OSF village, CA, USA
|
||||||
|
1 NOTE Testers Repository Record
|
||||||
|
0 TRLR
|
197
data/tests/imp_CustTags.gramps
Normal file
197
data/tests/imp_CustTags.gramps
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE database PUBLIC "-//Gramps//DTD Gramps XML 1.7.1//EN"
|
||||||
|
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
|
||||||
|
<database xmlns="http://gramps-project.org/xml/1.7.1/">
|
||||||
|
<header>
|
||||||
|
<created date="2016-08-02" version="5.0.0-alpha1"/>
|
||||||
|
<researcher>
|
||||||
|
<resname>The Subm /Tester/</resname>
|
||||||
|
<resaddr>123 Main St.</resaddr>
|
||||||
|
<rescity>Winslow</rescity>
|
||||||
|
<resstate>PA</resstate>
|
||||||
|
<respostal>12345</respostal>
|
||||||
|
</researcher>
|
||||||
|
</header>
|
||||||
|
<events>
|
||||||
|
<event handle="_0000000500000005" change="1470145667" id="E0000">
|
||||||
|
<type>Birth</type>
|
||||||
|
<dateval val="1954-12-29"/>
|
||||||
|
<place hlink="_0000000600000006"/>
|
||||||
|
</event>
|
||||||
|
<event handle="_0000000700000007" change="1470145667" id="E0001">
|
||||||
|
<type>Circumcision</type>
|
||||||
|
<dateval val="1955-01-11"/>
|
||||||
|
<place hlink="_0000000800000008"/>
|
||||||
|
</event>
|
||||||
|
<event handle="_0000000900000009" change="1470145667" id="E0002">
|
||||||
|
<type>Elected</type>
|
||||||
|
<dateval val="1980"/>
|
||||||
|
<place hlink="_0000000a0000000a"/>
|
||||||
|
<description>Small town</description>
|
||||||
|
</event>
|
||||||
|
<event handle="_0000000c0000000c" change="1470145667" id="E0003">
|
||||||
|
<type>_XYZ</type>
|
||||||
|
<dateval val="1979"/>
|
||||||
|
<description>He should keep his zipper closed</description>
|
||||||
|
</event>
|
||||||
|
<event handle="_0000000d0000000d" change="1470145667" id="E0004">
|
||||||
|
<type>Independence Day</type>
|
||||||
|
<dateval val="1981-07-04"/>
|
||||||
|
<description>Celebration</description>
|
||||||
|
</event>
|
||||||
|
<event handle="_0000000f0000000f" change="1470145667" id="E0005">
|
||||||
|
<type>Residence</type>
|
||||||
|
<dateval val="1954-12-30"/>
|
||||||
|
<place hlink="_0000001100000011"/>
|
||||||
|
<noteref hlink="_0000001000000010"/>
|
||||||
|
</event>
|
||||||
|
<event handle="_0000001300000013" change="1470145667" id="E0006">
|
||||||
|
<type>Marriage</type>
|
||||||
|
<dateval val="1970"/>
|
||||||
|
<place hlink="_0000001400000014"/>
|
||||||
|
</event>
|
||||||
|
<event handle="_0000001500000015" change="1470145667" id="E0007">
|
||||||
|
<type>_INFIDELITY</type>
|
||||||
|
<dateval val="1979"/>
|
||||||
|
<place hlink="_0000001600000016"/>
|
||||||
|
</event>
|
||||||
|
<event handle="_0000001700000017" change="1470145667" id="E0008">
|
||||||
|
<type>Separation</type>
|
||||||
|
<dateval val="1980"/>
|
||||||
|
<place hlink="_0000001800000018"/>
|
||||||
|
</event>
|
||||||
|
</events>
|
||||||
|
<people>
|
||||||
|
<person handle="_0000000100000001" change="1470145667" id="I0000">
|
||||||
|
<gender>U</gender>
|
||||||
|
<name type="Birth Name">
|
||||||
|
<first>The</first>
|
||||||
|
<surname>Tester</surname>
|
||||||
|
<citationref hlink="_0000000400000004"/>
|
||||||
|
</name>
|
||||||
|
<eventref hlink="_0000000500000005" role="Primary"/>
|
||||||
|
<eventref hlink="_0000000700000007" role="Primary"/>
|
||||||
|
<eventref hlink="_0000000900000009" role="Primary"/>
|
||||||
|
<eventref hlink="_0000000c0000000c" role="Primary"/>
|
||||||
|
<eventref hlink="_0000000d0000000d" role="Primary"/>
|
||||||
|
<parentin hlink="_0000000b0000000b"/>
|
||||||
|
</person>
|
||||||
|
<person handle="_0000000e0000000e" change="1470145667" id="I0001">
|
||||||
|
<gender>U</gender>
|
||||||
|
<name type="Birth Name">
|
||||||
|
<first>Mrs</first>
|
||||||
|
<surname>Tester</surname>
|
||||||
|
</name>
|
||||||
|
<eventref hlink="_0000000f0000000f" role="Primary"/>
|
||||||
|
<parentin hlink="_0000000b0000000b"/>
|
||||||
|
</person>
|
||||||
|
<person handle="_0000001200000012" change="1470145667" id="I0002">
|
||||||
|
<gender>U</gender>
|
||||||
|
<name type="Birth Name">
|
||||||
|
<first>Tom</first>
|
||||||
|
<surname>Tester</surname>
|
||||||
|
</name>
|
||||||
|
<childof hlink="_0000000b0000000b"/>
|
||||||
|
</person>
|
||||||
|
</people>
|
||||||
|
<families>
|
||||||
|
<family handle="_0000000b0000000b" change="1470145667" id="F4211">
|
||||||
|
<rel type="Married"/>
|
||||||
|
<father hlink="_0000000100000001"/>
|
||||||
|
<mother hlink="_0000000e0000000e"/>
|
||||||
|
<eventref hlink="_0000001300000013" role="Family"/>
|
||||||
|
<eventref hlink="_0000001500000015" role="Family"/>
|
||||||
|
<eventref hlink="_0000001700000017" role="Family"/>
|
||||||
|
<childref hlink="_0000001200000012"/>
|
||||||
|
</family>
|
||||||
|
</families>
|
||||||
|
<citations>
|
||||||
|
<citation handle="_0000000400000004" change="1470145667" id="C0000">
|
||||||
|
<page>777, record for The Tester</page>
|
||||||
|
<confidence>2</confidence>
|
||||||
|
<noteref hlink="_0000000300000003"/>
|
||||||
|
<sourceref hlink="_0000000200000002"/>
|
||||||
|
</citation>
|
||||||
|
</citations>
|
||||||
|
<sources>
|
||||||
|
<source handle="_0000000200000002" change="1470145667" id="S0006">
|
||||||
|
<stitle>Ohio Births, 1958-2002</stitle>
|
||||||
|
<reporef hlink="_0000001900000019" medium="Book"/>
|
||||||
|
</source>
|
||||||
|
</sources>
|
||||||
|
<places>
|
||||||
|
<placeobj handle="_0000000600000006" change="1470145667" id="P0000" type="Street">
|
||||||
|
<ptitle>123 High St, Cleveland, Cuyahoga, Ohio, USA, 44140</ptitle>
|
||||||
|
<code>44140</code>
|
||||||
|
<pname value="123 High St"/>
|
||||||
|
<placeref hlink="_0000001e0000001e"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000000800000008" change="1470145667" id="P0001" type="Street">
|
||||||
|
<ptitle>456 Main St, Cleveland, Cuyahoga, Ohio, USA, 44140</ptitle>
|
||||||
|
<code>44140</code>
|
||||||
|
<pname value="456 Main St"/>
|
||||||
|
<placeref hlink="_0000001e0000001e"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000000a0000000a" change="1470145667" id="P0002" type="Unknown">
|
||||||
|
<ptitle>Littetown, Smallcounty, Ohio, USA</ptitle>
|
||||||
|
<pname value="Littetown, Smallcounty, Ohio, USA"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000001100000011" change="1470145667" id="P0003" type="Address">
|
||||||
|
<ptitle>123 Main St., Winslow, PA, 12345</ptitle>
|
||||||
|
<pname value="123 Main St., Winslow, PA, 12345"/>
|
||||||
|
<location street="123 Main St." city="Winslow" state="PA" postal="12345"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000001400000014" change="1470145667" id="P0004" type="Unknown">
|
||||||
|
<ptitle>St Rafaels Church, Bay Village, Cuyahoga, Ohio, USA</ptitle>
|
||||||
|
<pname value="St Rafaels Church, Bay Village, Cuyahoga, Ohio, USA"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000001600000016" change="1470145667" id="P0005" type="Unknown">
|
||||||
|
<ptitle>Of Ill Repute, Shaker Heights, Ohio, USA</ptitle>
|
||||||
|
<pname value="Of Ill Repute, Shaker Heights, Ohio, USA"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000001800000018" change="1470145667" id="P0006" type="Unknown">
|
||||||
|
<ptitle>Cuyahoga, OHIO, USA</ptitle>
|
||||||
|
<pname value="Cuyahoga, OHIO, USA"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000001b0000001b" change="1470145667" id="P0007" type="Country">
|
||||||
|
<ptitle>USA</ptitle>
|
||||||
|
<pname value="USA"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000001c0000001c" change="1470145667" id="P0008" type="State">
|
||||||
|
<ptitle>Ohio, USA</ptitle>
|
||||||
|
<pname value="Ohio"/>
|
||||||
|
<placeref hlink="_0000001b0000001b"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000001d0000001d" change="1470145667" id="P0009" type="County">
|
||||||
|
<ptitle>Cuyahoga, Ohio, USA</ptitle>
|
||||||
|
<pname value="Cuyahoga"/>
|
||||||
|
<placeref hlink="_0000001c0000001c"/>
|
||||||
|
</placeobj>
|
||||||
|
<placeobj handle="_0000001e0000001e" change="1470145667" id="P0010" type="City">
|
||||||
|
<ptitle>Cleveland, Cuyahoga, Ohio, USA</ptitle>
|
||||||
|
<pname value="Cleveland"/>
|
||||||
|
<placeref hlink="_0000001d0000001d"/>
|
||||||
|
</placeobj>
|
||||||
|
</places>
|
||||||
|
<repositories>
|
||||||
|
<repository handle="_0000001900000019" change="1470145667" id="R0001">
|
||||||
|
<rname>Testers Repository</rname>
|
||||||
|
<type>Library</type>
|
||||||
|
<address>
|
||||||
|
<street>123 High St., OSF village, CA, USA</street>
|
||||||
|
</address>
|
||||||
|
<noteref hlink="_0000001a0000001a"/>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
<notes>
|
||||||
|
<note handle="_0000000300000003" change="1470145667" id="N0000" type="Citation Justification">
|
||||||
|
<text>Because it’s good</text>
|
||||||
|
</note>
|
||||||
|
<note handle="_0000001000000010" change="1470145667" id="N0001" type="General">
|
||||||
|
<text>Address as event is legal, with PHON,FAX,EMAIL,WWW</text>
|
||||||
|
</note>
|
||||||
|
<note handle="_0000001a0000001a" change="1470145667" id="N0002" type="General">
|
||||||
|
<text>Testers Repository Record</text>
|
||||||
|
</note>
|
||||||
|
</notes>
|
||||||
|
</database>
|
@ -270,6 +270,7 @@ TOKEN__FSFTID = 131
|
|||||||
TOKEN__PHOTO = 132
|
TOKEN__PHOTO = 132
|
||||||
TOKEN__LINK = 133
|
TOKEN__LINK = 133
|
||||||
TOKEN__PRIM = 134
|
TOKEN__PRIM = 134
|
||||||
|
TOKEN__JUST = 135
|
||||||
|
|
||||||
TOKENS = {
|
TOKENS = {
|
||||||
"HEAD" : TOKEN_HEAD, "MEDI" : TOKEN_MEDI,
|
"HEAD" : TOKEN_HEAD, "MEDI" : TOKEN_MEDI,
|
||||||
@ -377,6 +378,7 @@ TOKENS = {
|
|||||||
"_MAR" : TOKEN__MAR, "_MARN" : TOKEN__MARN,
|
"_MAR" : TOKEN__MAR, "_MARN" : TOKEN__MARN,
|
||||||
"_ADPN" : TOKEN__ADPN, "_FSFTID" : TOKEN__FSFTID,
|
"_ADPN" : TOKEN__ADPN, "_FSFTID" : TOKEN__FSFTID,
|
||||||
"_LINK" : TOKEN__LINK, "_PHOTO" : TOKEN__PHOTO,
|
"_LINK" : TOKEN__LINK, "_PHOTO" : TOKEN__PHOTO,
|
||||||
|
"_JUST" : TOKEN__JUST, # FTM Citation Quality Justification
|
||||||
}
|
}
|
||||||
|
|
||||||
ADOPT_NONE = 0
|
ADOPT_NONE = 0
|
||||||
@ -511,7 +513,7 @@ PERSONALCONSTANTEVENTS = {
|
|||||||
EventType.DEGREE : "_DEG",
|
EventType.DEGREE : "_DEG",
|
||||||
EventType.DIV_FILING : "DIVF",
|
EventType.DIV_FILING : "DIVF",
|
||||||
EventType.EDUCATION : "EDUC",
|
EventType.EDUCATION : "EDUC",
|
||||||
EventType.ELECTED : "",
|
EventType.ELECTED : "_ELEC", # FTM custom tag
|
||||||
EventType.EMIGRATION : "EMIG",
|
EventType.EMIGRATION : "EMIG",
|
||||||
EventType.FIRST_COMMUN : "FCOM",
|
EventType.FIRST_COMMUN : "FCOM",
|
||||||
EventType.GRADUATION : "GRAD",
|
EventType.GRADUATION : "GRAD",
|
||||||
@ -563,7 +565,40 @@ LDS_STATUS = {
|
|||||||
"SUBMITTED": LdsOrd.STATUS_SUBMITTED,
|
"SUBMITTED": LdsOrd.STATUS_SUBMITTED,
|
||||||
"UNCLEARED": LdsOrd.STATUS_UNCLEARED,
|
"UNCLEARED": LdsOrd.STATUS_UNCLEARED,
|
||||||
}
|
}
|
||||||
|
# -------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Custom event friendly names. These are non-standard GEDCOM "NEW_TAG"
|
||||||
|
# tags that start with an '_' i.e. "_DNA". FTM has several of these, other
|
||||||
|
# programs may have more. If a tag with this format is encountered it is
|
||||||
|
# checked in this table for a "friendly" name translation and thereafter is
|
||||||
|
# displayed and exported as such. If the tag is NOT in this table and not
|
||||||
|
# otherwise handled by the code, the tag itself is used for display and
|
||||||
|
# export. For example "_XYZ" is not in the table and will be displayed as
|
||||||
|
# "_XYZ" and exported as an EVEN.TYPE=_XYZ
|
||||||
|
# As Custom entries, they do not appear in GRAMPS Events add choice unless
|
||||||
|
# already imported via GEDCOM.
|
||||||
|
#
|
||||||
|
# -------------------------------------------------------------------------
|
||||||
|
CUSTOMEVENTTAGS = {
|
||||||
|
"_CIRC" : _("Circumcision"),
|
||||||
|
"_COML" : _("Common Law Marriage"),
|
||||||
|
"_DEST" : _("Destination"),
|
||||||
|
"_DNA" : _("DNA"),
|
||||||
|
"_DCAUSE" : _("Cause of Death"),
|
||||||
|
"_EMPLOY" : _("Employment"),
|
||||||
|
"_EXCM" : _("Excommunication"),
|
||||||
|
"_EYC" : _("Eye Color"),
|
||||||
|
"_FUN" : _("Funeral"),
|
||||||
|
"_HEIG" : _("Height"),
|
||||||
|
"_INIT" : _("Initiatory (LDS)"),
|
||||||
|
"_MILTID" : _("Military ID"),
|
||||||
|
"_MISN" : _("Mission (LDS)"),
|
||||||
|
"_NAMS" : _("Namesake"),
|
||||||
|
"_ORDI" : _("Ordinance"),
|
||||||
|
"_ORIG" : _("Origin"),
|
||||||
|
"_SEPR" : _("Separation"), # Applies to Families
|
||||||
|
"_WEIG" : _("Weight"),
|
||||||
|
}
|
||||||
# table for skipping illegal control chars in GEDCOM import
|
# table for skipping illegal control chars in GEDCOM import
|
||||||
# Only 09, 0A, 0D are allowed.
|
# Only 09, 0A, 0D are allowed.
|
||||||
STRIP_DICT = dict.fromkeys(list(range(9))+list(range(11, 13))+list(range(14, 32)))
|
STRIP_DICT = dict.fromkeys(list(range(9))+list(range(11, 13))+list(range(14, 32)))
|
||||||
@ -2316,6 +2351,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
TOKEN_RNOTE : self.__citation_note,
|
TOKEN_RNOTE : self.__citation_note,
|
||||||
TOKEN_TEXT : self.__citation_data_text,
|
TOKEN_TEXT : self.__citation_data_text,
|
||||||
TOKEN__LINK : self.__citation_link,
|
TOKEN__LINK : self.__citation_link,
|
||||||
|
TOKEN__JUST : self.__citation__just,
|
||||||
}
|
}
|
||||||
self.func_list.append(self.citation_parse_tbl)
|
self.func_list.append(self.citation_parse_tbl)
|
||||||
|
|
||||||
@ -3692,10 +3728,12 @@ class GedcomParser(UpdateCallback):
|
|||||||
@type state: CurrentState
|
@type state: CurrentState
|
||||||
"""
|
"""
|
||||||
# We can get here when a tag that is not valid in the indi_parse_tbl
|
# We can get here when a tag that is not valid in the indi_parse_tbl
|
||||||
# parse table is encountered. It is remotely possible that this is
|
# parse table is encountered. The tag may be of the form "_XXX". We
|
||||||
# actally a DATE tag, in which case line.data will be a date object, so
|
# try to convert to a friendly name, if fails use the tag itself as
|
||||||
# we need to convert it back to a string here.
|
# the TYPE in a custom event
|
||||||
event_ref = self.__build_event_pair(state, EventType.CUSTOM,
|
cust_tag = CUSTOMEVENTTAGS.get(line.token_text, line.token_text)
|
||||||
|
cust_type = EventType((EventType.CUSTOM, cust_tag))
|
||||||
|
event_ref = self.__build_event_pair(state, cust_type,
|
||||||
self.event_parse_tbl,
|
self.event_parse_tbl,
|
||||||
str(line.data))
|
str(line.data))
|
||||||
state.person.add_event_ref(event_ref)
|
state.person.add_event_ref(event_ref)
|
||||||
@ -4104,6 +4142,7 @@ class GedcomParser(UpdateCallback):
|
|||||||
state.person.add_address(addr)
|
state.person.add_address(addr)
|
||||||
self.__skip_subordinate_levels(state.level+1, state)
|
self.__skip_subordinate_levels(state.level+1, state)
|
||||||
|
|
||||||
|
|
||||||
def __person_email(self, line, state):
|
def __person_email(self, line, state):
|
||||||
"""
|
"""
|
||||||
O INDI
|
O INDI
|
||||||
@ -5015,11 +5054,20 @@ class GedcomParser(UpdateCallback):
|
|||||||
@param state: The current state
|
@param state: The current state
|
||||||
@type state: CurrentState
|
@type state: CurrentState
|
||||||
"""
|
"""
|
||||||
|
# We can get here when a tag that is not valid in the family_func
|
||||||
|
# parse table is encountered. The tag may be of the form "_XXX". We
|
||||||
|
# try to convert to a friendly name, if fails use the tag itself as
|
||||||
|
# the TYPE in a custom event
|
||||||
|
cust_tag = CUSTOMEVENTTAGS.get(line.token_text,line.token_text)
|
||||||
|
cust_type = EventType((EventType.CUSTOM, cust_tag))
|
||||||
event = Event()
|
event = Event()
|
||||||
event_ref = EventRef()
|
event_ref = EventRef()
|
||||||
event_ref.set_role(EventRoleType.FAMILY)
|
event_ref.set_role(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(cust_type)
|
||||||
|
# in case a description ever shows up
|
||||||
|
if line.data and line.data != 'Y':
|
||||||
|
event.set_description(line.data)
|
||||||
self.dbase.add_event(event, self.trans)
|
self.dbase.add_event(event, self.trans)
|
||||||
|
|
||||||
sub_state = CurrentState()
|
sub_state = CurrentState()
|
||||||
@ -6270,6 +6318,19 @@ class GedcomParser(UpdateCallback):
|
|||||||
self.dbase.add_note(note, self.trans)
|
self.dbase.add_note(note, self.trans)
|
||||||
state.citation.add_note(note.get_handle())
|
state.citation.add_note(note.get_handle())
|
||||||
|
|
||||||
|
def __citation__just(self, line, state):
|
||||||
|
"""
|
||||||
|
Not legal GEDCOM - added to support FTM, converts the _JUST tag to a
|
||||||
|
note. This tag represents the Justification for a source.
|
||||||
|
"""
|
||||||
|
note = Note()
|
||||||
|
note.set(line.data)
|
||||||
|
gramps_id = self.dbase.find_next_note_gramps_id()
|
||||||
|
note.set_gramps_id(gramps_id)
|
||||||
|
note.set_type(_("Citation Justification"))
|
||||||
|
self.dbase.add_note(note, self.trans)
|
||||||
|
state.citation.add_note(note.get_handle())
|
||||||
|
|
||||||
def __citation_data_note(self, line, state):
|
def __citation_data_note(self, line, state):
|
||||||
self.__parse_note(line, state.citation, state.level, state)
|
self.__parse_note(line, state.citation, state.level, state)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user