Importers: added db.prepare_import/db.commit_import to wrap imports
This commit is contained in:
parent
b095c6b606
commit
576db27e9d
@ -2472,6 +2472,18 @@ class DbBsddb(DbBsddbRead, DbWriteBase, UpdateCallback):
|
|||||||
_("Version"): bsddb_version,
|
_("Version"): bsddb_version,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def prepare_import(self):
|
||||||
|
"""
|
||||||
|
Initialization before imports
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def commit_import(self):
|
||||||
|
"""
|
||||||
|
Post process after imports
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
def mk_backup_name(database, base):
|
def mk_backup_name(database, base):
|
||||||
"""
|
"""
|
||||||
Return the backup name of the database table
|
Return the backup name of the database table
|
||||||
|
@ -1810,3 +1810,16 @@ class DictionaryDb(DbWriteBase, DbReadBase, UpdateCallback, Callback):
|
|||||||
def rebuild_secondary(self, update):
|
def rebuild_secondary(self, update):
|
||||||
## FIXME
|
## FIXME
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def prepare_import(self):
|
||||||
|
"""
|
||||||
|
Initialization before imports
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def commit_import(self):
|
||||||
|
"""
|
||||||
|
Post process after imports
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
@ -518,7 +518,7 @@ class DbDjango(DbWriteBase, DbReadBase, UpdateCallback, Callback):
|
|||||||
self.dji.add_tag_detail(obj.serialize())
|
self.dji.add_tag_detail(obj.serialize())
|
||||||
self.use_import_cache = False
|
self.use_import_cache = False
|
||||||
self.import_cache = {}
|
self.import_cache = {}
|
||||||
self.dji.update_publics()
|
self.request_rebuild()
|
||||||
|
|
||||||
def transaction_commit(self, txn):
|
def transaction_commit(self, txn):
|
||||||
pass
|
pass
|
||||||
|
@ -103,8 +103,10 @@ def importData(dbase, filename, user):
|
|||||||
parser = CSVParser(dbase, user, (config.get('preferences.tag-on-import-format') if
|
parser = CSVParser(dbase, user, (config.get('preferences.tag-on-import-format') if
|
||||||
config.get('preferences.tag-on-import') else None))
|
config.get('preferences.tag-on-import') else None))
|
||||||
try:
|
try:
|
||||||
|
dbase.prepare_import()
|
||||||
with open(filename, 'r') as filehandle:
|
with open(filename, 'r') as filehandle:
|
||||||
parser.parse(filehandle)
|
parser.parse(filehandle)
|
||||||
|
dbase.commit_import()
|
||||||
except EnvironmentError as err:
|
except EnvironmentError as err:
|
||||||
user.notify_error(_("%s could not be opened\n") % filename, str(err))
|
user.notify_error(_("%s could not be opened\n") % filename, str(err))
|
||||||
return
|
return
|
||||||
|
@ -131,7 +131,9 @@ def importData(database, filename, user):
|
|||||||
try:
|
try:
|
||||||
read_only = database.readonly
|
read_only = database.readonly
|
||||||
database.readonly = False
|
database.readonly = False
|
||||||
|
database.prepare_import()
|
||||||
gedparse.parse_gedcom_file(False)
|
gedparse.parse_gedcom_file(False)
|
||||||
|
database.commit_import()
|
||||||
database.readonly = read_only
|
database.readonly = read_only
|
||||||
ifile.close()
|
ifile.close()
|
||||||
except IOError as msg:
|
except IOError as msg:
|
||||||
|
@ -87,7 +87,9 @@ def importData(database, filename, user):
|
|||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
database.prepare_import()
|
||||||
status = g.parse_geneweb_file()
|
status = g.parse_geneweb_file()
|
||||||
|
database.commit_import()
|
||||||
except IOError as msg:
|
except IOError as msg:
|
||||||
errmsg = _("%s could not be opened\n") % filename
|
errmsg = _("%s could not be opened\n") % filename
|
||||||
user.notify_error(errmsg,str(msg))
|
user.notify_error(errmsg,str(msg))
|
||||||
|
@ -93,7 +93,9 @@ def impData(database, name, user):
|
|||||||
imp_db_name = os.path.join(tmpdir_path, XMLFILE)
|
imp_db_name = os.path.join(tmpdir_path, XMLFILE)
|
||||||
|
|
||||||
importer = importData
|
importer = importData
|
||||||
|
database.prepare_import()
|
||||||
info = importer(database, imp_db_name, user)
|
info = importer(database, imp_db_name, user)
|
||||||
|
database.commit_import()
|
||||||
|
|
||||||
newmediapath = database.get_mediapath()
|
newmediapath = database.get_mediapath()
|
||||||
#import of gpkg should not change media path as all media has new paths!
|
#import of gpkg should not change media path as all media has new paths!
|
||||||
|
@ -75,7 +75,9 @@ def _importData(database, filename, user):
|
|||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
database.prepare_import()
|
||||||
status = g.parse_progen_file()
|
status = g.parse_progen_file()
|
||||||
|
database.commit_import()
|
||||||
except ProgenError as msg:
|
except ProgenError as msg:
|
||||||
user.notify_error(_("Pro-Gen data error"), str(msg))
|
user.notify_error(_("Pro-Gen data error"), str(msg))
|
||||||
return
|
return
|
||||||
|
@ -63,8 +63,10 @@ def importData(database, filename, user):
|
|||||||
"""Function called by Gramps to import data on persons in VCard format."""
|
"""Function called by Gramps to import data on persons in VCard format."""
|
||||||
parser = VCardParser(database)
|
parser = VCardParser(database)
|
||||||
try:
|
try:
|
||||||
|
database.prepare_import()
|
||||||
with OpenFileOrStdin(filename) as filehandle:
|
with OpenFileOrStdin(filename) as filehandle:
|
||||||
parser.parse(filehandle)
|
parser.parse(filehandle)
|
||||||
|
database.commit_import()
|
||||||
except EnvironmentError as msg:
|
except EnvironmentError as msg:
|
||||||
user.notify_error(_("%s could not be opened\n") % filename, str(msg))
|
user.notify_error(_("%s could not be opened\n") % filename, str(msg))
|
||||||
return
|
return
|
||||||
|
@ -122,6 +122,7 @@ def importData(database, filename, user):
|
|||||||
line_cnt = 0
|
line_cnt = 0
|
||||||
person_cnt = 0
|
person_cnt = 0
|
||||||
|
|
||||||
|
database.prepare_import()
|
||||||
with ImportOpenFileContextManager(filename, user) as xml_file:
|
with ImportOpenFileContextManager(filename, user) as xml_file:
|
||||||
if xml_file is None:
|
if xml_file is None:
|
||||||
return
|
return
|
||||||
@ -162,6 +163,7 @@ def importData(database, filename, user):
|
|||||||
"valid Gramps database."))
|
"valid Gramps database."))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
database.commit_import()
|
||||||
database.readonly = read_only
|
database.readonly = read_only
|
||||||
return info
|
return info
|
||||||
|
|
||||||
|
@ -85,9 +85,9 @@ def import_file(db, filename, user):
|
|||||||
print("ERROR:", name, exception)
|
print("ERROR:", name, exception)
|
||||||
return False
|
return False
|
||||||
import_function = getattr(mod, pdata.import_function)
|
import_function = getattr(mod, pdata.import_function)
|
||||||
db.prepare_import()
|
#db.prepare_import()
|
||||||
retval = import_function(db, filename, user)
|
retval = import_function(db, filename, user)
|
||||||
db.commit_import()
|
#db.commit_import()
|
||||||
return retval
|
return retval
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user