Bah. Forgot to select all the changed files.

This commit is contained in:
Charles Haley 2013-09-10 11:08:10 +02:00
parent 936baf7e14
commit cdbab2c8e1
3 changed files with 21 additions and 7 deletions

View File

@ -371,6 +371,8 @@ class DB(object):
UPDATE authors SET sort=author_to_author_sort(name) WHERE sort IS NULL; UPDATE authors SET sort=author_to_author_sort(name) WHERE sort IS NULL;
''') ''')
# Initialize_prefs must be called before initialize_custom_columns because
# icc can set a pref.
self.initialize_prefs(default_prefs, restore_all_prefs, progress_callback) self.initialize_prefs(default_prefs, restore_all_prefs, progress_callback)
self.initialize_custom_columns() self.initialize_custom_columns()
self.initialize_tables() self.initialize_tables()
@ -425,6 +427,7 @@ class DB(object):
defs['virtual_libraries'] = {} defs['virtual_libraries'] = {}
defs['virtual_lib_on_startup'] = defs['cs_virtual_lib_on_startup'] = '' defs['virtual_lib_on_startup'] = defs['cs_virtual_lib_on_startup'] = ''
defs['virt_libs_hidden'] = defs['virt_libs_order'] = () defs['virt_libs_hidden'] = defs['virt_libs_order'] = ()
defs['backup_all_metadata_on_start'] = 'no'
# Migrate the bool tristate tweak # Migrate the bool tristate tweak
defs['bools_are_tristate'] = \ defs['bools_are_tristate'] = \
@ -539,7 +542,7 @@ class DB(object):
DROP TABLE IF EXISTS {lt}; DROP TABLE IF EXISTS {lt};
'''.format(table=table, lt=lt) '''.format(table=table, lt=lt)
) )
self.custom_columns_deleted = True self.prefs.set('backup_all_metadata_on_start', 'yes')
self.conn.execute('DELETE FROM custom_columns WHERE mark_for_delete=1') self.conn.execute('DELETE FROM custom_columns WHERE mark_for_delete=1')
# Load metadata for custom columns # Load metadata for custom columns
@ -808,6 +811,7 @@ class DB(object):
if display is not None: if display is not None:
self.conn.execute('UPDATE custom_columns SET display=? WHERE id=?', (json.dumps(display), num)) self.conn.execute('UPDATE custom_columns SET display=? WHERE id=?', (json.dumps(display), num))
changed = True changed = True
# Note: the caller is responsible for scheduling a metadata backup if necessary
return changed return changed
def create_custom_column(self, label, name, datatype, is_multiple, editable=True, display={}): # {{{ def create_custom_column(self, label, name, datatype, is_multiple, editable=True, display={}): # {{{
@ -964,6 +968,7 @@ class DB(object):
] ]
script = ' \n'.join(lines) script = ' \n'.join(lines)
self.conn.execute(script) self.conn.execute(script)
self.prefs.set('backup_all_metadata_on_start', 'yes')
return num return num
# }}} # }}}

View File

@ -308,9 +308,9 @@ class Cache(object):
field.author_sort_field = self.fields['author_sort'] field.author_sort_field = self.fields['author_sort']
elif name == 'title': elif name == 'title':
field.title_sort_field = self.fields['sort'] field.title_sort_field = self.fields['sort']
if self.backend.custom_columns_deleted: if self.backend.prefs['backup_all_metadata_on_start'] == 'yes':
self.mark_as_dirty(self.all_book_ids()) self.mark_as_dirty(self.all_book_ids())
self.backend.custom_columns_deleted = False self.backend.prefs.set('backup_all_metadata_on_start', 'no')
@read_api @read_api
def field_for(self, name, book_id, default_value=None): def field_for(self, name, book_id, default_value=None):
@ -1604,8 +1604,15 @@ class Cache(object):
self.backend.create_custom_column(label, name, datatype, is_multiple, editable=editable, display=display) self.backend.create_custom_column(label, name, datatype, is_multiple, editable=editable, display=display)
@write_api @write_api
def set_custom_column_metadata(self, num, name=None, label=None, is_editable=None, display=None): def set_custom_column_metadata(self, num, name=None, label=None, is_editable=None,
return self.backend.set_custom_column_metadata(num, name=name, label=label, is_editable=is_editable, display=display) display=None, immediate_backup=False):
changed = self.backend.set_custom_column_metadata(num, name=name, label=label, is_editable=is_editable, display=display)
if changed:
if immediate_backup:
self.mark_as_dirty(self._all_book_ids())
else:
self.backend.prefs.set('backup_all_metadata_on_start', 'yes')
return changed
@read_api @read_api
def get_books_for_category(self, category, item_id_or_composite_value): def get_books_for_category(self, category, item_id_or_composite_value):

View File

@ -684,8 +684,10 @@ class LibraryDatabase(object):
def create_custom_column(self, label, name, datatype, is_multiple, editable=True, display={}): def create_custom_column(self, label, name, datatype, is_multiple, editable=True, display={}):
self.new_api.create_custom_column(label, name, datatype, is_multiple, editable=editable, display=display) self.new_api.create_custom_column(label, name, datatype, is_multiple, editable=editable, display=display)
def set_custom_column_metadata(self, num, name=None, label=None, is_editable=None, display=None, notify=True): def set_custom_column_metadata(self, num, name=None, label=None, is_editable=None, display=None,
changed = self.new_api.set_custom_column_metadata(num, name=name, label=label, is_editable=is_editable, display=display) notify=True, immediate_backup=False):
changed = self.new_api.set_custom_column_metadata(num, name=name, label=label, is_editable=is_editable,
display=display, immediate_backup=immediate_backup)
if changed and notify: if changed and notify:
self.notify('metadata', []) self.notify('metadata', [])