diff --git a/gramps/gen/lib/person.py b/gramps/gen/lib/person.py index 00ec9462dec..e894df170fa 100644 --- a/gramps/gen/lib/person.py +++ b/gramps/gen/lib/person.py @@ -40,6 +40,7 @@ from .urlbase import UrlBase from .tagbase import TagBase from .name import Name +from .nametype import NameType from .eventref import EventRef from .personref import PersonRef from .attrtype import AttributeType @@ -635,6 +636,18 @@ def get_nick_name(self): return attr.get_value() return '' + def get_maiden_name(self): + married_name = None + birth_name = None + for name in [self.get_primary_name()] + self.get_alternate_names(): + if name.get_type() == NameType.BIRTH and name.get_surname(): + birth_name = name.get_surname() + elif name.get_type() == NameType.MARRIED and name.get_surname(): + married_name = name.get_surname() + if birth_name and married_name and birth_name != married_name: + return birth_name + return None + def set_gender(self, gender): """ Set the gender of the Person. diff --git a/gramps/plugins/lib/libsubstkeyword.py b/gramps/plugins/lib/libsubstkeyword.py index 3a9d5d34a1a..78f6d8ef590 100644 --- a/gramps/plugins/lib/libsubstkeyword.py +++ b/gramps/plugins/lib/libsubstkeyword.py @@ -823,7 +823,7 @@ def __init__(self, friend, database, consumer_in, locale, name_displayer): def is_a(self): """ check """ return self._in.this == "$" and self._in.next is not None and \ - "nsijbBdDmMvVauetTpPG".find(self._in.next) != -1 + "nhsijbBdDmMvVauetTpPG".find(self._in.next) != -1 def get_event_by_type(self, marriage, e_type): """ get an event from a type """ @@ -946,6 +946,13 @@ def parse_format(self): if next_char == "n": #Person's name return self.__parse_name(self.friend.person, attrib_parse) + + elif next_char == "h": + if self.empty_item(self.friend.person): + return +# print(self.friend.person.get_maiden_name()) + return self.friend.person.get_maiden_name() + elif next_char == "s": #Souses name return self.__parse_name(self.friend.spouse, attrib_parse)