Create new database section in configuration file

This commit is contained in:
Nick Hall 2016-07-03 16:11:10 +01:00
parent bb8e587572
commit 4eb27dfcfa
9 changed files with 25 additions and 24 deletions

View File

@ -229,7 +229,7 @@ class ArgHandler:
return db_path return db_path
elif create: elif create:
# create the tree here, and continue # create the tree here, and continue
dbid = config.get('behavior.database-backend') dbid = config.get('database.backend')
db_path, title = self.dbman.create_new_db_cli(title=value, dbid=dbid) db_path, title = self.dbman.create_new_db_cli(title=value, dbid=dbid)
return db_path return db_path
else: else:
@ -483,11 +483,11 @@ class ArgHandler:
if not self.open: if not self.open:
# Create empty dir for imported database(s) # Create empty dir for imported database(s)
if self.gui: if self.gui:
dbid = config.get('behavior.database-backend') dbid = config.get('database.backend')
self.imp_db_path, title = self.dbman.create_new_db_cli(dbid=dbid) self.imp_db_path, title = self.dbman.create_new_db_cli(dbid=dbid)
else: else:
self.imp_db_path = get_empty_tempdir("import_dbdir") self.imp_db_path = get_empty_tempdir("import_dbdir")
dbid = config.get('behavior.database-backend') dbid = config.get('database.backend')
newdb = self.dbstate.make_database(dbid) newdb = self.dbstate.make_database(dbid)
newdb.write_version(self.imp_db_path) newdb.write_version(self.imp_db_path)

View File

@ -219,7 +219,7 @@ class CLIDbManager:
Get the list of current names in the database dir Get the list of current names in the database dir
""" """
# make the default directory if it does not exist # make the default directory if it does not exist
dbdir = os.path.expanduser(config.get('behavior.database-path')) dbdir = os.path.expanduser(config.get('database.path'))
db_ok = make_dbdir(dbdir) db_ok = make_dbdir(dbdir)
self.current_names = [] self.current_names = []
@ -375,7 +375,7 @@ class CLIDbManager:
self.__start_cursor(_("Importing data...")) self.__start_cursor(_("Importing data..."))
## Use bsddb, for now, because we assumed that above. ## Use bsddb, for now, because we assumed that above.
dbid = "bsddb" ## config.get('behavior.database-backend') dbid = "bsddb" ## config.get('database.backend')
dbase = self.dbstate.make_database(dbid) dbase = self.dbstate.make_database(dbid)
dbase.load(new_path, user.callback) dbase.load(new_path, user.callback)
@ -410,7 +410,7 @@ class CLIDbManager:
Deletes a database folder given a pattenr that matches Deletes a database folder given a pattenr that matches
its proper name. its proper name.
""" """
dbdir = os.path.expanduser(config.get('behavior.database-path')) dbdir = os.path.expanduser(config.get('database.path'))
match_list = [] match_list = []
for dpath in os.listdir(dbdir): for dpath in os.listdir(dbdir):
dirpath = os.path.join(dbdir, dpath) dirpath = os.path.join(dbdir, dpath)
@ -511,7 +511,7 @@ def find_next_db_dir():
""" """
while True: while True:
base = "%x" % int(time.time()) base = "%x" % int(time.time())
dbdir = os.path.expanduser(config.get('behavior.database-path')) dbdir = os.path.expanduser(config.get('database.path'))
new_path = os.path.join(dbdir, base) new_path = os.path.join(dbdir, base)
if not os.path.isdir(new_path): if not os.path.isdir(new_path):
break break

View File

@ -135,8 +135,8 @@ class UnicodeTest(unittest.TestCase):
'\u0393\u03c1\u03b1\u03bc\u03c3\u03c0') '\u0393\u03c1\u03b1\u03bc\u03c3\u03c0')
self.newtitle = 'Gr\u00e4mps T\u00e9st' self.newtitle = 'Gr\u00e4mps T\u00e9st'
os.makedirs(self.newpath) os.makedirs(self.newpath)
self.old_path = getconfig('behavior.database-path') self.old_path = getconfig('database.path')
setconfig('behavior.database-path', self.newpath) setconfig('database.path', self.newpath)
self.cli = CLIDbManager(DbState()) self.cli = CLIDbManager(DbState())
def tearDown(self): def tearDown(self):
@ -147,7 +147,7 @@ class UnicodeTest(unittest.TestCase):
for adir in dirnames: for adir in dirnames:
os.rmdir(os.path.join(dirpath, adir)) os.rmdir(os.path.join(dirpath, adir))
os.rmdir(self.newpath) os.rmdir(self.newpath)
setconfig('behavior.database-path', self.old_path) setconfig('database.path', self.old_path)
# Test that clidbman will open files in a path containing # Test that clidbman will open files in a path containing
# arbitrary Unicode characters. # arbitrary Unicode characters.

View File

@ -138,9 +138,6 @@ register('behavior.check-for-update-types', ["new"])
register('behavior.last-check-for-updates', "1970/01/01") register('behavior.last-check-for-updates', "1970/01/01")
register('behavior.previously-seen-updates', []) register('behavior.previously-seen-updates', [])
register('behavior.do-not-show-previously-seen-updates', True) register('behavior.do-not-show-previously-seen-updates', True)
register('behavior.database-path', os.path.join(HOME_DIR, 'grampsdb'))
register('behavior.database-backend', 'bsddb')
register('behavior.database-backup-use-compression', True)
register('behavior.date-about-range', 50) register('behavior.date-about-range', 50)
register('behavior.date-after-range', 50) register('behavior.date-after-range', 50)
register('behavior.date-before-range', 50) register('behavior.date-before-range', 50)
@ -159,6 +156,10 @@ register('behavior.welcome', 100)
register('behavior.web-search-url', 'http://google.com/#&q=%(text)s') register('behavior.web-search-url', 'http://google.com/#&q=%(text)s')
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps50") register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps50")
register('database.backend', 'bsddb')
register('database.compress-backup', True)
register('database.path', os.path.join(HOME_DIR, 'grampsdb'))
register('export.proxy-order', register('export.proxy-order',
[["privacy", 0], [["privacy", 0],
["living", 0], ["living", 0],

View File

@ -2129,7 +2129,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
from gramps.cli.user import User from gramps.cli.user import User
if user is None: if user is None:
user = User() user = User()
compress = config.get('behavior.database-backup-use-compression') compress = config.get('database.compress-backup')
writer = XmlWriter(self, user, strip_photos=0, compress=compress) writer = XmlWriter(self, user, strip_photos=0, compress=compress)
timestamp = '{0:%Y-%m-%d-%H-%M-%S}'.format(datetime.datetime.now()) timestamp = '{0:%Y-%m-%d-%H-%M-%S}'.format(datetime.datetime.now())
filename = os.path.join(self._directory, "backup-%s.gramps" % timestamp) filename = os.path.join(self._directory, "backup-%s.gramps" % timestamp)

View File

@ -211,7 +211,7 @@ class DbState(Callback):
""" """
Find a Family Tree given its name, and return properties. Find a Family Tree given its name, and return properties.
""" """
dbdir = os.path.expanduser(config.get('behavior.database-path')) dbdir = os.path.expanduser(config.get('database.path'))
for dpath in os.listdir(dbdir): for dpath in os.listdir(dbdir):
dirpath = os.path.join(dbdir, dpath) dirpath = os.path.join(dbdir, dpath)
path_name = os.path.join(dirpath, "name.txt") path_name = os.path.join(dirpath, "name.txt")

View File

@ -1420,7 +1420,7 @@ class GrampsPreferences(ConfigureDialog):
the_list = obj.get_model() the_list = obj.get_model()
the_iter = obj.get_active_iter() the_iter = obj.get_active_iter()
db_choice = the_list.get_value(the_iter, 2) db_choice = the_list.get_value(the_iter, 2)
config.set('behavior.database-backend', db_choice) config.set('database.backend', db_choice)
def add_famtree_panel(self, configdialog): def add_famtree_panel(self, configdialog):
grid = Gtk.Grid() grid = Gtk.Grid()
@ -1440,7 +1440,7 @@ class GrampsPreferences(ConfigureDialog):
GObject.TYPE_STRING) GObject.TYPE_STRING)
count = 0 count = 0
active = 0 active = 0
default = config.get('behavior.database-backend') default = config.get('database.backend')
for plugin in sorted(backend_plugins, key=lambda plugin: plugin.name): for plugin in sorted(backend_plugins, key=lambda plugin: plugin.name):
if plugin.id == default: if plugin.id == default:
active = count active = count
@ -1458,13 +1458,13 @@ class GrampsPreferences(ConfigureDialog):
self.dbpath_entry = Gtk.Entry() self.dbpath_entry = Gtk.Entry()
self.add_path_box(grid, self.add_path_box(grid,
_('Family Tree Database path'), _('Family Tree Database path'),
current_line, self.dbpath_entry, config.get('behavior.database-path'), current_line, self.dbpath_entry, config.get('database.path'),
self.set_dbpath, self.select_dbpath) self.set_dbpath, self.select_dbpath)
current_line += 1 current_line += 1
#self.add_entry(grid, #self.add_entry(grid,
# _('Family Tree Database path'), # _('Family Tree Database path'),
# 0, 'behavior.database-path') # 0, 'database.path')
self.add_checkbox(grid, self.add_checkbox(grid,
_('Automatically load last Family Tree'), _('Automatically load last Family Tree'),
current_line, 'behavior.autoload') current_line, 'behavior.autoload')
@ -1499,7 +1499,7 @@ class GrampsPreferences(ConfigureDialog):
def set_dbpath(self, *obj): def set_dbpath(self, *obj):
path = self.dbpath_entry.get_text().strip() path = self.dbpath_entry.get_text().strip()
config.set('behavior.database-path', path) config.set('database.path', path)
def select_dbpath(self, *obj): def select_dbpath(self, *obj):
f = Gtk.FileChooserDialog(title=_("Select database directory"), f = Gtk.FileChooserDialog(title=_("Select database directory"),
@ -1510,7 +1510,7 @@ class GrampsPreferences(ConfigureDialog):
_('_Apply'), _('_Apply'),
Gtk.ResponseType.OK) Gtk.ResponseType.OK)
) )
dbpath = config.get('behavior.database-path') dbpath = config.get('database.path')
if not dbpath: if not dbpath:
dbpath = os.path.join(HOME_DIR,'grampsdb') dbpath = os.path.join(HOME_DIR,'grampsdb')
f.set_current_folder(os.path.dirname(dbpath)) f.set_current_folder(os.path.dirname(dbpath))

View File

@ -351,7 +351,7 @@ class DbManager(CLIDbManager):
The Backend Type column is a string based on database backend. The Backend Type column is a string based on database backend.
""" """
# Put some help on the buttons: # Put some help on the buttons:
dbid = config.get('behavior.database-backend') dbid = config.get('database.backend')
backend_type = self.get_backend_name_from_dbid(dbid) backend_type = self.get_backend_name_from_dbid(dbid)
self.new.set_tooltip_text(backend_type) self.new.set_tooltip_text(backend_type)
@ -958,7 +958,7 @@ class DbManager(CLIDbManager):
message. message.
""" """
self.new.set_sensitive(False) self.new.set_sensitive(False)
dbid = config.get('behavior.database-backend') dbid = config.get('database.backend')
if dbid: if dbid:
try: try:
self._create_new_db(dbid=dbid) self._create_new_db(dbid=dbid)

View File

@ -35,7 +35,7 @@ class BSDDB:
def __init__(self): def __init__(self):
self.gramps = Gramps() self.gramps = Gramps()
self.call("--config=behavior.database-backend:" + self.backend, self.call("--config=database.backend:" + self.backend,
"-C", self.NAME, "--import", example) "-C", self.NAME, "--import", example)
self.db = open_database(self.NAME, force_unlock=True) self.db = open_database(self.NAME, force_unlock=True)