9746: Remove duplicate columns in person table
This commit is contained in:
parent
736b057706
commit
a158c9cba8
@ -2231,13 +2231,12 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
|
||||
"""
|
||||
return self.brief_name
|
||||
|
||||
def get_person_data(self, person):
|
||||
def _get_person_data(self, person):
|
||||
"""
|
||||
Given a Person, return primary_name.first_name, surname and gender.
|
||||
Given a Person, return primary_name.first_name and surname.
|
||||
"""
|
||||
given_name = ""
|
||||
surname = ""
|
||||
gender_type = Person.UNKNOWN
|
||||
if person:
|
||||
primary_name = person.get_primary_name()
|
||||
if primary_name:
|
||||
@ -2247,8 +2246,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
|
||||
surname_obj = surname_list[0]
|
||||
if surname_obj:
|
||||
surname = surname_obj.surname
|
||||
gender_type = person.gender
|
||||
return (given_name, surname, gender_type)
|
||||
return (given_name, surname)
|
||||
|
||||
def set_default_person_handle(self, handle):
|
||||
self.set_metadata("default-person-handle", handle)
|
||||
|
@ -207,38 +207,6 @@ class Person(CitationBase, NoteBase, AttributeBase, MediaBase,
|
||||
for pr in self.person_ref_list] # 20
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def field_aliases(cls):
|
||||
"""
|
||||
Return dictionary of alias to full field names
|
||||
for this object class.
|
||||
"""
|
||||
return {
|
||||
"given": "primary_name.first_name",
|
||||
"surname": "primary_name.surname_list.0.surname",
|
||||
"surnames": "primary_name.surname_list.surname",
|
||||
"event.place": "event_ref_list.ref.place.name.value",
|
||||
"event.year": "event_ref_list.ref.date.year",
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def get_extra_secondary_fields(cls):
|
||||
"""
|
||||
Return a list of full field names and types for secondary
|
||||
fields that are not directly listed in the schema.
|
||||
"""
|
||||
return [
|
||||
("primary_name.first_name", str),
|
||||
("primary_name.surname_list.0.surname", str),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def get_index_fields(cls):
|
||||
return [
|
||||
"primary_name.first_name",
|
||||
"primary_name.surname_list.0.surname",
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def get_labels(cls, _):
|
||||
return {
|
||||
|
@ -183,7 +183,6 @@ class DBAPI(DbGeneric):
|
||||
'handle VARCHAR(50) PRIMARY KEY NOT NULL, '
|
||||
'given_name TEXT, '
|
||||
'surname TEXT, '
|
||||
'gender_type INTEGER, '
|
||||
'order_by TEXT, '
|
||||
'gramps_id TEXT, '
|
||||
'blob_data BLOB'
|
||||
@ -488,12 +487,12 @@ class DBAPI(DbGeneric):
|
||||
person AS mother
|
||||
on family.mother_handle = mother.handle
|
||||
order by (case when father.handle is null
|
||||
then mother.primary_name__surname_list__0__surname
|
||||
else father.primary_name__surname_list__0__surname
|
||||
then mother.surname
|
||||
else father.surname
|
||||
end),
|
||||
(case when family.handle is null
|
||||
then mother.primary_name__first_name
|
||||
else father.primary_name__first_name
|
||||
then mother.given_name
|
||||
else father.given_name
|
||||
end)) AS f;""")
|
||||
else:
|
||||
self.dbapi.execute("SELECT handle FROM family;")
|
||||
@ -734,36 +733,34 @@ class DBAPI(DbGeneric):
|
||||
self._order_by_person_key(old_person)):
|
||||
self.remove_from_surname_list(old_person)
|
||||
self.add_to_surname_list(person, trans.batch)
|
||||
given_name, surname, gender_type = self.get_person_data(person)
|
||||
given_name, surname = self._get_person_data(person)
|
||||
# update the person:
|
||||
self.dbapi.execute("""UPDATE person SET gramps_id = ?,
|
||||
order_by = ?,
|
||||
blob_data = ?,
|
||||
given_name = ?,
|
||||
surname = ?,
|
||||
gender_type = ?
|
||||
surname = ?
|
||||
WHERE handle = ?;""",
|
||||
[person.gramps_id,
|
||||
self._order_by_person_key(person),
|
||||
pickle.dumps(person.serialize()),
|
||||
given_name,
|
||||
surname,
|
||||
gender_type,
|
||||
person.handle])
|
||||
else:
|
||||
self.genderStats.count_person(person)
|
||||
self.add_to_surname_list(person, trans.batch)
|
||||
given_name, surname, gender_type = self.get_person_data(person)
|
||||
given_name, surname = self._get_person_data(person)
|
||||
# Insert the person:
|
||||
self.dbapi.execute(
|
||||
"""INSERT INTO person (handle, order_by, gramps_id, blob_data,
|
||||
given_name, surname, gender_type)
|
||||
VALUES(?, ?, ?, ?, ?, ?, ?);""",
|
||||
given_name, surname)
|
||||
VALUES(?, ?, ?, ?, ?, ?);""",
|
||||
[person.handle,
|
||||
self._order_by_person_key(person),
|
||||
person.gramps_id,
|
||||
pickle.dumps(person.serialize()),
|
||||
given_name, surname, gender_type])
|
||||
given_name, surname])
|
||||
self.update_secondary_values(person)
|
||||
if not trans.batch:
|
||||
self.update_backlinks(person)
|
||||
|
Loading…
Reference in New Issue
Block a user