Databases: removed prepare_import/commit_import; updated Django places
This commit is contained in:
parent
e5a77a60f6
commit
32bbce8ccd
@ -638,6 +638,15 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
|
|||||||
self.set_note_id_prefix('N%04d')
|
self.set_note_id_prefix('N%04d')
|
||||||
# ----------------------------------
|
# ----------------------------------
|
||||||
self.undodb = None
|
self.undodb = None
|
||||||
|
self.id_trans = DbGenericTxn("ID Transaction", self)
|
||||||
|
self.fid_trans = DbGenericTxn("FID Transaction", self)
|
||||||
|
self.pid_trans = DbGenericTxn("PID Transaction", self)
|
||||||
|
self.cid_trans = DbGenericTxn("CID Transaction", self)
|
||||||
|
self.sid_trans = DbGenericTxn("SID Transaction", self)
|
||||||
|
self.oid_trans = DbGenericTxn("OID Transaction", self)
|
||||||
|
self.rid_trans = DbGenericTxn("RID Transaction", self)
|
||||||
|
self.nid_trans = DbGenericTxn("NID Transaction", self)
|
||||||
|
self.eid_trans = DbGenericTxn("EID Transaction", self)
|
||||||
self.cmap_index = 0
|
self.cmap_index = 0
|
||||||
self.smap_index = 0
|
self.smap_index = 0
|
||||||
self.emap_index = 0
|
self.emap_index = 0
|
||||||
|
@ -2493,18 +2493,6 @@ 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
|
||||||
|
@ -39,18 +39,6 @@ class DictionaryDb(DbGeneric):
|
|||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def prepare_import(self):
|
|
||||||
"""
|
|
||||||
Do anything needed before an import.
|
|
||||||
"""
|
|
||||||
pass
|
|
||||||
|
|
||||||
def commit_import(self):
|
|
||||||
"""
|
|
||||||
Do anything needed after an import.
|
|
||||||
"""
|
|
||||||
self.reindex_reference_map(lambda n: n)
|
|
||||||
|
|
||||||
def write_version(self, directory):
|
def write_version(self, directory):
|
||||||
"""Write files for a newly created DB."""
|
"""Write files for a newly created DB."""
|
||||||
versionpath = os.path.join(directory, str(DBBACKEND))
|
versionpath = os.path.join(directory, str(DBBACKEND))
|
||||||
|
@ -107,10 +107,8 @@ 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,9 +131,7 @@ 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:
|
||||||
|
@ -154,9 +154,7 @@ 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,9 +93,7 @@ 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,9 +75,7 @@ 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,10 +63,8 @@ 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,7 +122,6 @@ 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
|
||||||
@ -163,7 +162,6 @@ 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
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -693,13 +693,14 @@ class Repository(PrimaryObject):
|
|||||||
# .address_set
|
# .address_set
|
||||||
# .url_set
|
# .url_set
|
||||||
|
|
||||||
class Place(PrimaryObject):
|
class Place(DateObject, PrimaryObject):
|
||||||
place_type = models.ForeignKey('PlaceType', verbose_name="Type")
|
place_type = models.ForeignKey('PlaceType', verbose_name="Type")
|
||||||
title = models.TextField(blank=True)
|
title = models.TextField(blank=True)
|
||||||
#locations = models.ManyToManyField('Location', null=True, blank=True)
|
#locations = models.ManyToManyField('Location', null=True, blank=True)
|
||||||
long = models.TextField(blank=True)
|
long = models.TextField(blank=True)
|
||||||
lat = models.TextField(blank=True)
|
lat = models.TextField(blank=True)
|
||||||
name = models.TextField(blank=True)
|
name = models.TextField(blank=True)
|
||||||
|
lang = models.TextField(blank=True)
|
||||||
code = models.TextField(blank=True) # zipcode
|
code = models.TextField(blank=True) # zipcode
|
||||||
|
|
||||||
#url_list = models.ManyToManyField('Url', null=True, blank=True)
|
#url_list = models.ManyToManyField('Url', null=True, blank=True)
|
||||||
|
@ -303,7 +303,7 @@ class DjangoInterface(object):
|
|||||||
def get_place_handle(self, obj): # obj is event
|
def get_place_handle(self, obj): # obj is event
|
||||||
if obj.place:
|
if obj.place:
|
||||||
return obj.place.handle
|
return obj.place.handle
|
||||||
return ''
|
return None
|
||||||
|
|
||||||
## Packers:
|
## Packers:
|
||||||
|
|
||||||
@ -371,11 +371,11 @@ class DjangoInterface(object):
|
|||||||
if family.father:
|
if family.father:
|
||||||
father_handle = family.father.handle
|
father_handle = family.father.handle
|
||||||
else:
|
else:
|
||||||
father_handle = ''
|
father_handle = None
|
||||||
if family.mother:
|
if family.mother:
|
||||||
mother_handle = family.mother.handle
|
mother_handle = family.mother.handle
|
||||||
else:
|
else:
|
||||||
mother_handle = ''
|
mother_handle = None
|
||||||
return (str(family.handle), family.gramps_id,
|
return (str(family.handle), family.gramps_id,
|
||||||
father_handle, mother_handle,
|
father_handle, mother_handle,
|
||||||
child_ref_list, tuple(family.family_rel_type),
|
child_ref_list, tuple(family.family_rel_type),
|
||||||
@ -522,6 +522,14 @@ class DjangoInterface(object):
|
|||||||
return (obj.calendar, obj.modifier, obj.quality, dateval,
|
return (obj.calendar, obj.modifier, obj.quality, dateval,
|
||||||
obj.text, obj.sortval, obj.newyear)
|
obj.text, obj.sortval, obj.newyear)
|
||||||
|
|
||||||
|
def get_placename(self, place):
|
||||||
|
placename_date = self.get_date(place)
|
||||||
|
placename_value = place.name
|
||||||
|
placename_lang = place.lang
|
||||||
|
return (placename_value,
|
||||||
|
placename_date,
|
||||||
|
placename_lang)
|
||||||
|
|
||||||
def get_place(self, place):
|
def get_place(self, place):
|
||||||
locations = place.location_set.all().order_by("order")
|
locations = place.location_set.all().order_by("order")
|
||||||
alt_location_list = [self.pack_location(location, True) for location in locations]
|
alt_location_list = [self.pack_location(location, True) for location in locations]
|
||||||
@ -531,13 +539,14 @@ class DjangoInterface(object):
|
|||||||
note_list = self.get_note_list(place)
|
note_list = self.get_note_list(place)
|
||||||
tag_list = self.get_tag_list(place)
|
tag_list = self.get_tag_list(place)
|
||||||
place_ref_list = self.get_place_ref_list(place)
|
place_ref_list = self.get_place_ref_list(place)
|
||||||
|
placename = self.get_placename(place)
|
||||||
return (str(place.handle),
|
return (str(place.handle),
|
||||||
place.gramps_id,
|
place.gramps_id,
|
||||||
place.title,
|
place.title,
|
||||||
place.long,
|
place.long,
|
||||||
place.lat,
|
place.lat,
|
||||||
place_ref_list,
|
place_ref_list,
|
||||||
place.name,
|
placename,
|
||||||
[], ## FIXME: get_alt_names
|
[], ## FIXME: get_alt_names
|
||||||
tuple(place.place_type),
|
tuple(place.place_type),
|
||||||
place.code,
|
place.code,
|
||||||
@ -1585,10 +1594,11 @@ class DjangoInterface(object):
|
|||||||
#obj.save()
|
#obj.save()
|
||||||
|
|
||||||
def add_place(self, data):
|
def add_place(self, data):
|
||||||
## ('cef246c95c132bcf6a0255d4d17', 'P0036', 'Santa Clara Co., CA, USA', '', '', [('cef243fb5634559442323368f63', None)], 'Santa Clara Co.', [], (3, ''), '', [], [], [], [], [], 1422124781, [], False)
|
## ('cef246c95c132bcf6a0255d4d17', 'P0036', ('Santa Clara Co., CA, USA', DATE, "English"),
|
||||||
|
## '', '', [('cef243fb5634559442323368f63', None)], 'Santa Clara Co.', [], (3, ''), '', [], [], [], [], [], 1422124781, [], False)
|
||||||
(handle, gid, title, long, lat,
|
(handle, gid, title, long, lat,
|
||||||
place_ref_list,
|
place_ref_list,
|
||||||
name,
|
(placename, date, placelang),
|
||||||
alt_name_list,
|
alt_name_list,
|
||||||
place_type,
|
place_type,
|
||||||
code,
|
code,
|
||||||
@ -1606,7 +1616,8 @@ class DjangoInterface(object):
|
|||||||
title=title,
|
title=title,
|
||||||
long=long,
|
long=long,
|
||||||
lat=lat,
|
lat=lat,
|
||||||
name=name,
|
name=placename,
|
||||||
|
lang=placelang,
|
||||||
place_type=models.get_type(models.PlaceType, place_type),
|
place_type=models.get_type(models.PlaceType, place_type),
|
||||||
code=code,
|
code=code,
|
||||||
last_changed=todate(change),
|
last_changed=todate(change),
|
||||||
@ -1619,7 +1630,7 @@ class DjangoInterface(object):
|
|||||||
def add_place_detail(self, data):
|
def add_place_detail(self, data):
|
||||||
(handle, gid, title, long, lat,
|
(handle, gid, title, long, lat,
|
||||||
place_ref_list,
|
place_ref_list,
|
||||||
name,
|
(placename, date, placelang),
|
||||||
alt_name_list,
|
alt_name_list,
|
||||||
place_type,
|
place_type,
|
||||||
code,
|
code,
|
||||||
@ -1637,6 +1648,7 @@ class DjangoInterface(object):
|
|||||||
print(("ERROR: Place does not exist: '%s'" %
|
print(("ERROR: Place does not exist: '%s'" %
|
||||||
str(handle)), file=sys.stderr)
|
str(handle)), file=sys.stderr)
|
||||||
return
|
return
|
||||||
|
self.add_date(place, date)
|
||||||
place.save(save_cache=False)
|
place.save(save_cache=False)
|
||||||
self.add_url_list("place", place, url_list)
|
self.add_url_list("place", place, url_list)
|
||||||
self.add_media_ref_list(place, media_list)
|
self.add_media_ref_list(place, media_list)
|
||||||
|
@ -85,9 +85,7 @@ 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()
|
|
||||||
retval = import_function(db, filename, user)
|
retval = import_function(db, filename, user)
|
||||||
#db.commit_import()
|
|
||||||
return retval
|
return retval
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user