Add labels to gen.lib object fields
This commit is contained in:
parent
0ff9363d72
commit
b793b9d068
@ -37,7 +37,9 @@ from .notebase import NoteBase
|
||||
from .datebase import DateBase
|
||||
from .surnamebase import SurnameBase
|
||||
from .nametype import NameType
|
||||
from .handle import Handle
|
||||
from .const import IDENTICAL, EQUAL, DIFFERENT
|
||||
from .date import Date
|
||||
from gramps.gen.const import GRAMPS_LOCALE as glocale
|
||||
_ = glocale.translation.gettext
|
||||
|
||||
@ -188,6 +190,47 @@ class Name(SecondaryObject, PrivacyBase, SurnameBase, CitationBase, NoteBase,
|
||||
struct.get("nick", default.nick),
|
||||
struct.get("famnick", default.famnick))
|
||||
|
||||
@classmethod
|
||||
def get_labels(cls):
|
||||
return {
|
||||
"_class": _("Name"),
|
||||
"private": _("Private"),
|
||||
"citation_list": _("Citations"),
|
||||
"note_list": _("Notes"),
|
||||
"date": _("Date"),
|
||||
"first_name": _("Given name"),
|
||||
"surname_list": _("Surnames"),
|
||||
"suffix": _("Suffix"),
|
||||
"title": _("Title"),
|
||||
"type": _("Type"),
|
||||
"group_as": _("Group as"),
|
||||
"sort_as": _("Sort as"),
|
||||
"display_as": _("Display as"),
|
||||
"call": _("Call name"),
|
||||
"nick": _("Nick name"),
|
||||
"famnick": _("Family nick name"),
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def get_schema(cls):
|
||||
return {
|
||||
"private": bool,
|
||||
"citation_list": [Handle("Citation", "CITATION-HANDLE")],
|
||||
"note_list": [Handle("Note", "NOTE-HANDLE")],
|
||||
"date": Date,
|
||||
"first_name": str,
|
||||
"surname_list": [Handle("Surname", "SURNAME-HANDLE")],
|
||||
"suffix": str,
|
||||
"title": str,
|
||||
"type": NameType,
|
||||
"group_as": str,
|
||||
"sort_as": str,
|
||||
"display_as": str,
|
||||
"call": str,
|
||||
"nick": str,
|
||||
"famnick": str,
|
||||
}
|
||||
|
||||
def is_empty(self):
|
||||
"""
|
||||
Indicate if the name is empty.
|
||||
|
@ -207,6 +207,34 @@ class Person(CitationBase, NoteBase, AttributeBase, MediaBase,
|
||||
for pr in self.person_ref_list] # 20
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def get_labels(cls):
|
||||
return {
|
||||
"_class": _("Person"),
|
||||
"handle": _("Handle"),
|
||||
"gramps_id": _("Gramps ID"),
|
||||
"gender": _("Gender"),
|
||||
"primary_name": _("Primary name"),
|
||||
"alternate_names": _("Alternate names"),
|
||||
"death_ref_index": _("Death reference index"),
|
||||
"birth_ref_index": _("Birth reference index"),
|
||||
"event_ref_list": _("Event references"),
|
||||
"family_list": _("Families"),
|
||||
"parent_family_list": _("Parent families"),
|
||||
"media_list": _("Media"),
|
||||
"address_list": _("Addresses"),
|
||||
"attribute_list": _("Attributes"),
|
||||
"urls": _("Urls"),
|
||||
"lds_ord_list": _("LDS ordinances"),
|
||||
"citation_list": _("Citations"),
|
||||
"note_list": _("Notes"),
|
||||
"change": _("Last changed"),
|
||||
"tag_list": _("Tags"),
|
||||
"private": _("Private"),
|
||||
"person_ref_list": _("Person references"),
|
||||
"probably_alive": _("Probably alive"),
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_struct(cls, struct):
|
||||
"""
|
||||
@ -241,6 +269,10 @@ class Person(CitationBase, NoteBase, AttributeBase, MediaBase,
|
||||
|
||||
@classmethod
|
||||
def get_schema(cls):
|
||||
from .mediaref import MediaRef
|
||||
from .address import Address
|
||||
from .url import Url
|
||||
from .ldsord import LdsOrd
|
||||
return {
|
||||
"handle": Handle("Person", "PERSON-HANDLE"),
|
||||
"gramps_id": str,
|
||||
|
@ -71,6 +71,37 @@ class BasicPrimaryObject(TableObject, PrivacyBase, TagBase):
|
||||
else:
|
||||
self.gramps_id = None
|
||||
|
||||
def get_label(self, field):
|
||||
"""
|
||||
Get the associated label given a field name of this object.
|
||||
"""
|
||||
chain = field.split(".")
|
||||
path = self
|
||||
for part in chain[:-1]:
|
||||
if hasattr(path, part):
|
||||
path = getattr(path, part)
|
||||
else:
|
||||
path = path[int(part)]
|
||||
labels = path.get_labels()
|
||||
if chain[-1] in labels:
|
||||
return labels[chain[-1]]
|
||||
else:
|
||||
raise Exception("%s has no such label: '%s'" % (self, field))
|
||||
|
||||
def get_field(self, field):
|
||||
"""
|
||||
Get the value of a field.
|
||||
"""
|
||||
chain = field.split(".")
|
||||
path = self
|
||||
for part in chain:
|
||||
class_ = None
|
||||
if hasattr(path, part):
|
||||
path = getattr(path, part)
|
||||
else:
|
||||
path = path[int(part)]
|
||||
return path
|
||||
|
||||
def set_gramps_id(self, gramps_id):
|
||||
"""
|
||||
Set the Gramps ID for the primary object.
|
||||
|
@ -28,6 +28,9 @@ Surname class for Gramps.
|
||||
# Gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gramps.gen.const import GRAMPS_LOCALE as glocale
|
||||
_ = glocale.translation.gettext
|
||||
|
||||
from .secondaryobj import SecondaryObject
|
||||
from .nameorigintype import NameOriginType
|
||||
from .const import IDENTICAL, EQUAL, DIFFERENT
|
||||
@ -98,6 +101,17 @@ class Surname(SecondaryObject):
|
||||
"origintype": self.origintype.to_struct(),
|
||||
"connector": self.connector}
|
||||
|
||||
@classmethod
|
||||
def get_labels(cls):
|
||||
return {
|
||||
"_class": _("Surname"),
|
||||
"surname": _("Surname"),
|
||||
"prefix": _("Prefix"),
|
||||
"primary": _("Primary"),
|
||||
"origintype": _("Origin type"),
|
||||
"connector": _("Connector")
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def from_struct(cls, struct):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user