Names
Sept 29, 2020 7:26:06 GMT -8
Post by Uncle Buddy on Sept 29, 2020 7:26:06 GMT -8
# names.py
import os
import files
import tkinter as tk
import sqlite3
import widgets as wdg
import right_click_menu as rcm
import styles as st
import files
import messages as msg
import files
formats = st.make_formats_dict()
GENDER_TYPES = ('unknown (default if left blank)', 'female', 'male', 'other')
NAME_SUFFIXES = (
'jr.', 'sr.', 'jr', 'sr', 'junior', 'senior',
'i', 'ii', 'iii', 'iv', 'v', 'vi', 'vii', 'viii',
'ix', 'x', 'xi', 'xii', 'xiii', 'xiv', 'xv')
def get_current_person():
current_file = files.get_current_file()[0]
conn = sqlite3.connect(current_file)
cur = conn.cursor()
cur.execute(
'''
SELECT name.person_id, names
FROM name
JOIN person
ON person.person_id = name.person_id
JOIN current
ON name.person_id = current.person_id
''')
current_person = cur.fetchone()
current_person_id = current_person[0]
current_person = current_person[1]
return current_person_id, current_person
def get_name_with_id(id):
'''
Get birth name of person with passed ID.
'''
current_file = files.get_current_file()[0]
conn = sqlite3.connect(current_file)
cur = conn.cursor()
cur.execute(
'''
SELECT names
FROM name JOIN person
ON name.person_id = person.person_id
WHERE name_type_id = 1
AND name.person_id = ?
''',
(id,))
full_name = cur.fetchone()
cur.close()
conn.close()
if full_name:
return full_name[0]
elif not full_name:
return ''
def make_values_list_for_person_select():
current_file = files.get_current_file()[0]
conn = sqlite3.connect(current_file)
cur = conn.cursor()
cur.execute('''
SELECT names, name.person_id, sort_order
FROM name JOIN person
ON person.person_id = name.person_id
WHERE name_type_id = 1 ''')
peeps = cur.fetchall()
peeps = [list(i) for i in peeps]
cur.close()
conn.close()
combo_peeps = sorted(peeps, key=lambda i: i[2])
people = []
for tup in combo_peeps:
line = '{} #{}'.format(tup[0], tup[1])
people.append(line)
return people