mirror of
				https://github.com/janeczku/calibre-web
				synced 2025-10-31 07:13:02 +00:00 
			
		
		
		
	improved session handling
This commit is contained in:
		| @@ -545,7 +545,7 @@ class CalibreDB(): | ||||
|                                          backref='books')) | ||||
|  | ||||
|         cls.session_factory = scoped_session(sessionmaker(autocommit=False, | ||||
|                                                           autoflush=False, | ||||
|                                                           autoflush=True, | ||||
|                                                           bind=cls.engine)) | ||||
|         for inst in cls.instances: | ||||
|             inst.initSession() | ||||
|   | ||||
| @@ -31,7 +31,7 @@ from flask import Blueprint, request, flash, redirect, url_for, abort, Markup, R | ||||
| from flask_babel import gettext as _ | ||||
| from flask_login import current_user, login_required | ||||
| from sqlalchemy.exc import OperationalError, IntegrityError | ||||
|  | ||||
| from sqlite3 import OperationalError as sqliteOperationalError | ||||
| from . import constants, logger, isoLanguages, gdriveutils, uploader, helper | ||||
| from . import config, get_locale, ub, db | ||||
| from . import calibre_db | ||||
| @@ -310,7 +310,6 @@ def delete_book(book_id, book_format, jsonResponse): | ||||
|  | ||||
|  | ||||
| def render_edit_book(book_id): | ||||
|     calibre_db.update_title_sort(config) | ||||
|     cc = calibre_db.session.query(db.Custom_Columns).filter(db.Custom_Columns.datatype.notin_(db.cc_exceptions)).all() | ||||
|     book = calibre_db.get_filtered_book(book_id, allow_show_archived=True) | ||||
|     if not book: | ||||
| @@ -607,12 +606,19 @@ def upload_cover(request, book): | ||||
| @edit_required | ||||
| def edit_book(book_id): | ||||
|     modif_date = False | ||||
|  | ||||
|     # create the function for sorting... | ||||
|     try: | ||||
|         calibre_db.update_title_sort(config) | ||||
|     except sqliteOperationalError as e: | ||||
|         log.debug_or_exception(e) | ||||
|         calibre_db.session.rollback() | ||||
|  | ||||
|     # Show form | ||||
|     if request.method != 'POST': | ||||
|         return render_edit_book(book_id) | ||||
|  | ||||
|     # create the function for sorting... | ||||
|     calibre_db.update_title_sort(config) | ||||
|  | ||||
|     book = calibre_db.get_filtered_book(book_id, allow_show_archived=True) | ||||
|  | ||||
|     # Book not found | ||||
|   | ||||
| @@ -123,7 +123,6 @@ class TaskConvert(CalibreTask): | ||||
|                                          book=book_id, uncompressed_size=os.path.getsize(file_path + format_new_ext)) | ||||
|                 try: | ||||
|                     local_db.session.merge(new_format) | ||||
|                     local_db.session.flush() | ||||
|                     local_db.session.commit() | ||||
|                 except SQLAlchemyError as e: | ||||
|                     local_db.session.rollback() | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user
	 Ozzie Isaacs
					Ozzie Isaacs