Bugfix for upper/lowercase rename if not before part of book

This commit is contained in:
Ozzie Isaacs 2023-06-10 10:37:22 +02:00
parent 3ef34c8f15
commit 4dc5885723

View File

@ -40,6 +40,7 @@ from flask_babel import get_locale
from flask_login import current_user, login_required from flask_login import current_user, login_required
from sqlalchemy.exc import OperationalError, IntegrityError, InterfaceError from sqlalchemy.exc import OperationalError, IntegrityError, InterfaceError
from sqlalchemy.orm.exc import StaleDataError from sqlalchemy.orm.exc import StaleDataError
from sqlalchemy.sql.expression import func
from . import constants, logger, isoLanguages, gdriveutils, uploader, helper, kobo_sync_status from . import constants, logger, isoLanguages, gdriveutils, uploader, helper, kobo_sync_status
from . import config, ub, db, calibre_db from . import config, ub, db, calibre_db
@ -1328,7 +1329,9 @@ def add_objects(db_book_object, db_object, db_session, db_type, add_elements):
for add_element in add_elements: for add_element in add_elements:
# check if an element with that name exists # check if an element with that name exists
changed = True changed = True
db_element = db_session.query(db_object).filter(db_filter == add_element).first() # db_session.query(db.Tags).filter((func.lower(db.Tags.name).ilike("GênOt"))).all()
db_element = db_session.query(db_object).filter((func.lower(db_filter).ilike(add_element))).first()
# db_element = db_session.query(db_object).filter(func.lower(db_filter) == add_element.lower()).first()
# if no element is found add it # if no element is found add it
if db_element is None: if db_element is None:
if db_type == 'author': if db_type == 'author':
@ -1344,10 +1347,15 @@ def add_objects(db_book_object, db_object, db_session, db_type, add_elements):
db_session.add(new_element) db_session.add(new_element)
db_book_object.append(new_element) db_book_object.append(new_element)
else: else:
db_no_case = db_session.query(db_object).filter(db_filter == add_element).first()
if db_no_case:
# check for new case of element # check for new case of element
db_element = create_objects_for_addition(db_element, add_element, db_type) db_element = create_objects_for_addition(db_element, add_element, db_type)
else:
db_element = create_objects_for_addition(db_element, add_element, db_type)
# add element to book # add element to book
db_book_object.append(db_element) db_book_object.append(db_element)
return changed return changed