Fix Progen import to use 'Status Bar' progress indicator
This commit is contained in:
parent
fdeb604d1f
commit
d3279c1382
@ -57,7 +57,7 @@ from gramps.gen.lib import (Address, Attribute, AttributeType, ChildRef, Citatio
|
|||||||
Name, NameType, NameOriginType, Note, NoteType, Person,
|
Name, NameType, NameOriginType, Note, NoteType, Person,
|
||||||
Place, PlaceName, Source, SrcAttribute, Surname, Tag)
|
Place, PlaceName, Source, SrcAttribute, Surname, Tag)
|
||||||
from gramps.gen.utils.id import create_id
|
from gramps.gen.utils.id import create_id
|
||||||
from gramps.gui.utils import ProgressMeter
|
from gramps.gen.updatecallback import UpdateCallback
|
||||||
from gramps.gen.utils.libformatting import ImportInfo
|
from gramps.gen.utils.libformatting import ImportInfo
|
||||||
|
|
||||||
class ProgenError(Exception):
|
class ProgenError(Exception):
|
||||||
@ -484,7 +484,7 @@ class PG30Def(object):
|
|||||||
|
|
||||||
|
|
||||||
TAGOBJECTS = ['Person', 'Family', 'Event', 'Place', 'Citation', 'Source', 'Note']
|
TAGOBJECTS = ['Person', 'Family', 'Event', 'Place', 'Citation', 'Source', 'Note']
|
||||||
class ProgenParser:
|
class ProgenParser(UpdateCallback):
|
||||||
"""
|
"""
|
||||||
Main class to import and parse Pro-Gen files.
|
Main class to import and parse Pro-Gen files.
|
||||||
"""
|
"""
|
||||||
@ -511,14 +511,13 @@ class ProgenParser:
|
|||||||
self.user.notify_error(_("Pro-Gen data error"), str(error_msg))
|
self.user.notify_error(_("Pro-Gen data error"), str(error_msg))
|
||||||
return
|
return
|
||||||
|
|
||||||
self.progress = ProgressMeter( # TODO no-parent
|
|
||||||
_("Import from Pro-Gen"), '')
|
|
||||||
self.progress.set_pass(_('Initializing'))
|
|
||||||
|
|
||||||
self.mems = _read_mem(self.bname)
|
self.mems = _read_mem(self.bname)
|
||||||
self.pers = _read_recs(self.def_['Table_1'], self.bname)
|
self.pers = _read_recs(self.def_['Table_1'], self.bname)
|
||||||
self.rels = _read_recs(self.def_['Table_2'], self.bname)
|
self.rels = _read_recs(self.def_['Table_2'], self.bname)
|
||||||
|
|
||||||
|
self.set_total(2 * len(self.pers) + len(self.rels))
|
||||||
|
# self.reset(_("Import from Pro-Gen")) # non-functional for now
|
||||||
|
|
||||||
with DbTxn(_("Pro-Gen import"), self.dbase, batch=True) as self.trans:
|
with DbTxn(_("Pro-Gen import"), self.dbase, batch=True) as self.trans:
|
||||||
self.dbase.disable_signals()
|
self.dbase.disable_signals()
|
||||||
|
|
||||||
@ -530,12 +529,11 @@ class ProgenParser:
|
|||||||
self.dbase.enable_signals()
|
self.dbase.enable_signals()
|
||||||
self.dbase.request_rebuild()
|
self.dbase.request_rebuild()
|
||||||
|
|
||||||
self.progress.close()
|
def __init__(self, data_base, file_name, user):
|
||||||
|
|
||||||
def __init__(self, data_base, file_name, user_handle):
|
|
||||||
"""
|
"""
|
||||||
Pro-Gen defines his own set of (static) person and family identifiers.
|
Pro-Gen defines his own set of (static) person and family identifiers.
|
||||||
"""
|
"""
|
||||||
|
UpdateCallback.__init__(self, user.callback)
|
||||||
# Sometime their match the GRAMPS localisation, sometimes not. To be on
|
# Sometime their match the GRAMPS localisation, sometimes not. To be on
|
||||||
# a safe and uniform path person and family identifiers for (alphabetical)
|
# a safe and uniform path person and family identifiers for (alphabetical)
|
||||||
# German (de), English (en) and Dutch (nl) language defined here.
|
# German (de), English (en) and Dutch (nl) language defined here.
|
||||||
@ -544,7 +542,7 @@ class ProgenParser:
|
|||||||
file_name = self.bname + '.def'
|
file_name = self.bname + '.def'
|
||||||
self.dbase = data_base
|
self.dbase = data_base
|
||||||
self.fname = file_name
|
self.fname = file_name
|
||||||
self.user = user_handle
|
self.user = user
|
||||||
self.language = 0
|
self.language = 0
|
||||||
|
|
||||||
self.mems = None # Memory area
|
self.mems = None # Memory area
|
||||||
@ -567,7 +565,6 @@ class ProgenParser:
|
|||||||
self.opt_death_info2cause = True # Death info to Death cause
|
self.opt_death_info2cause = True # Death info to Death cause
|
||||||
|
|
||||||
# Miscalaneous
|
# Miscalaneous
|
||||||
self.progress = None # Prgress bar
|
|
||||||
self.trans = None # Transaction identifier
|
self.trans = None # Transaction identifier
|
||||||
self.def_ = None # PG30 definitions
|
self.def_ = None # PG30 definitions
|
||||||
self.high_fam_id = -1
|
self.high_fam_id = -1
|
||||||
@ -1114,8 +1111,7 @@ class ProgenParser:
|
|||||||
pix = table.get_record_field_index(pid)
|
pix = table.get_record_field_index(pid)
|
||||||
person_ix.append(pix)
|
person_ix.append(pix)
|
||||||
|
|
||||||
# The records are numbered 1..N
|
# self.set_text(_('Importing individuals')) # non-functional for now
|
||||||
self.progress.set_pass(_('Importing individuals'), len(self.pers))
|
|
||||||
|
|
||||||
# Male / Female symbols
|
# Male / Female symbols
|
||||||
male_sym = self.def_.tables['Genealogical'].parms['male']
|
male_sym = self.def_.tables['Genealogical'].parms['male']
|
||||||
@ -1123,8 +1119,8 @@ class ProgenParser:
|
|||||||
|
|
||||||
ind_id = self.opt_ind_id -1 # Option: Individuals IDs interator
|
ind_id = self.opt_ind_id -1 # Option: Individuals IDs interator
|
||||||
for i, rec in enumerate(self.pers):
|
for i, rec in enumerate(self.pers):
|
||||||
# Progress at the begin due to approx. ton's of 'not recflds[1]'
|
# Update at the begin due to approx. ton's of 'not recflds[1]'
|
||||||
self.progress.step()
|
self.update()
|
||||||
|
|
||||||
recflds = table.convert_record_to_list(rec, self.mems)
|
recflds = table.convert_record_to_list(rec, self.mems)
|
||||||
if not recflds[1]:
|
if not recflds[1]:
|
||||||
@ -1498,12 +1494,11 @@ class ProgenParser:
|
|||||||
family_ix.append(fix)
|
family_ix.append(fix)
|
||||||
|
|
||||||
# The records are numbered 1..N
|
# The records are numbered 1..N
|
||||||
self.progress.set_pass(_('Importing families'), len(self.rels))
|
# self.set_text(_('Importing families')) # non-functional for now
|
||||||
|
|
||||||
fam_id = self.opt_fam_id -1 # Option: Family IDs interator
|
fam_id = self.opt_fam_id -1 # Option: Family IDs interator
|
||||||
for i, rec in enumerate(self.rels):
|
for i, rec in enumerate(self.rels):
|
||||||
# Progress at the begin
|
# Update at the begin
|
||||||
self.progress.step()
|
self.update()
|
||||||
|
|
||||||
husband = rec[family_ix[3]] # F03: FAM HUSB
|
husband = rec[family_ix[3]] # F03: FAM HUSB
|
||||||
wife = rec[family_ix[4]] # F04: FAM WIFE
|
wife = rec[family_ix[4]] # F04: FAM WIFE
|
||||||
@ -1765,11 +1760,10 @@ class ProgenParser:
|
|||||||
(self.person_identifier[14][self.language].lower()) # F14: Mother
|
(self.person_identifier[14][self.language].lower()) # F14: Mother
|
||||||
|
|
||||||
# The records are numbered 1..N
|
# The records are numbered 1..N
|
||||||
self.progress.set_pass(_('Adding children'), len(self.pers))
|
# self.set_text(_('Adding children')) # non-functional for now
|
||||||
|
|
||||||
for i, rec in enumerate(self.pers):
|
for i, rec in enumerate(self.pers):
|
||||||
# Progress at the begin
|
# Update at the begin
|
||||||
self.progress.step()
|
self.update()
|
||||||
|
|
||||||
ind_id = i +1
|
ind_id = i +1
|
||||||
# print(("Person ID %d " % ind_id) + " ".join(("%s" % r) for r in rec))
|
# print(("Person ID %d " % ind_id) + " ".join(("%s" % r) for r in rec))
|
||||||
|
Loading…
Reference in New Issue
Block a user