diff --git a/oml/item/models.py b/oml/item/models.py index f250fba..0318907 100644 --- a/oml/item/models.py +++ b/oml/item/models.py @@ -187,6 +187,8 @@ class Item(db.Model): value = ox.sort_string(value).lower() elif isinstance(value, list): #empty list value = None + if not value and sort_type != 'boolean': + value = None if getattr(s, key['id']) != value: setattr(s, key['id'], value) update = True diff --git a/oml/settings.py b/oml/settings.py index fefb4d0..4d6f06e 100644 --- a/oml/settings.py +++ b/oml/settings.py @@ -101,4 +101,4 @@ USER_AGENT = 'OpenMediaLibrary/%s' % VERSION DEBUG_HTTP = server.get('debug_http', False) -DB_VERSION = 5 +DB_VERSION = 6 diff --git a/oml/update.py b/oml/update.py index 0bdc2b2..5d19d76 100644 --- a/oml/update.py +++ b/oml/update.py @@ -295,16 +295,14 @@ class Update(Thread): db_version = settings.server.get('db_version', 0) if db_version < settings.DB_VERSION: self.status('Updating...') - if db_version < 1: - db_version = migrate_1() - if db_version < 2: - db_version = migrate_2() if db_version < 3: db_version = migrate_3() if db_version < 4: db_version = migrate_4() if db_version < 5: db_version = migrate_5() + if db_version < 6: + db_version = migrate_6() settings.server['db_version'] = settings.DB_VERSION def run(self): @@ -317,28 +315,6 @@ class Update(Thread): restart_oml() -def migrate_1(): - with db.session() as session: - import item.models - for s in item.models.Sort.query.filter_by(author=''): - s.item.update_sort() - session.commit() - return 1 - -def migrate_2(): - with db.session() as session: - import item.models - for s in item.models.Sort.query.filter_by(author=''): - s.item.update_sort() - for s in item.models.Sort.query.filter_by(publisher=''): - s.item.update_sort() - for s in item.models.Sort.query.filter_by(language=''): - s.item.update_sort() - for s in item.models.Sort.query.filter_by(place=''): - s.item.update_sort() - session.commit() - return 2 - def migrate_3(): with db.session(): import item.models @@ -412,3 +388,22 @@ def migrate_5(): for i in item.models.Item.query: i.sync_metadata() return 5 + +def migrate_6(): + with db.session() as session: + import item.models + for s in item.models.Sort.query.filter_by(author=''): + s.item.update_sort() + for s in item.models.Sort.query.filter_by(publisher=''): + s.item.update_sort() + for s in item.models.Sort.query.filter_by(language=''): + s.item.update_sort() + for s in item.models.Sort.query.filter_by(place=''): + s.item.update_sort() + for s in item.models.Sort.query.filter_by(isbn=''): + s.item.update_sort() + for s in item.models.Sort.query.filter_by(date=''): + s.item.update_sort() + session.commit() + return 6 +