Bugfixes after testrun

Catch StaleDataError
This commit is contained in:
Ozzie Isaacs 2023-03-26 08:19:36 +02:00
parent 321db4d712
commit d35e781d41
3 changed files with 169 additions and 631 deletions

View File

@ -226,7 +226,7 @@ def edit_book(book_id):
except (OperationalError, IntegrityError, StaleDataError, InterfaceError) as e: except (OperationalError, IntegrityError, StaleDataError, InterfaceError) as e:
log.error_or_exception("Database error: {}".format(e)) log.error_or_exception("Database error: {}".format(e))
calibre_db.session.rollback() calibre_db.session.rollback()
flash(_("Oops! Database Error: %(error)s.", error=e.orig), category="error") flash(_("Oops! Database Error: %(error)s.", error=e.orig if hasattr(e, "orig") else e), category="error")
return redirect(url_for('web.show_book', book_id=book.id)) return redirect(url_for('web.show_book', book_id=book.id))
except Exception as ex: except Exception as ex:
log.error_or_exception(ex) log.error_or_exception(ex)
@ -302,7 +302,8 @@ def upload():
except (OperationalError, IntegrityError, StaleDataError) as e: except (OperationalError, IntegrityError, StaleDataError) as e:
calibre_db.session.rollback() calibre_db.session.rollback()
log.error_or_exception("Database error: {}".format(e)) log.error_or_exception("Database error: {}".format(e))
flash(_("Oops! Database Error: %(error)s.", error=e.orig), category="error") flash(_("Oops! Database Error: %(error)s.", error=e.orig if hasattr(e, "orig") else e),
category="error")
return Response(json.dumps({"location": url_for("web.index")}), mimetype='application/json') return Response(json.dumps({"location": url_for("web.index")}), mimetype='application/json')
@ -451,7 +452,7 @@ def edit_list_book(param):
calibre_db.session.rollback() calibre_db.session.rollback()
log.error_or_exception("Database error: {}".format(e)) log.error_or_exception("Database error: {}".format(e))
ret = Response(json.dumps({'success': False, ret = Response(json.dumps({'success': False,
'msg': 'Database error: {}'.format(e.orig)}), 'msg': 'Database error: {}'.format(e.orig if hasattr(e, "orig") else e)}),
mimetype='application/json') mimetype='application/json')
return ret return ret
@ -563,7 +564,7 @@ def table_xchange_author_title():
calibre_db.session.commit() calibre_db.session.commit()
except (OperationalError, IntegrityError, StaleDataError) as e: except (OperationalError, IntegrityError, StaleDataError) as e:
calibre_db.session.rollback() calibre_db.session.rollback()
log.error_or_exception("Database error: %s", e) log.error_or_exception("Database error: {}".format(e))
return json.dumps({'success': False}) return json.dumps({'success': False})
if config.config_use_google_drive: if config.config_use_google_drive:
@ -1199,7 +1200,8 @@ def upload_single_file(file_request, book, book_id):
except (OperationalError, IntegrityError, StaleDataError) as e: except (OperationalError, IntegrityError, StaleDataError) as e:
calibre_db.session.rollback() calibre_db.session.rollback()
log.error_or_exception("Database error: {}".format(e)) log.error_or_exception("Database error: {}".format(e))
flash(_("Oops! Database Error: %(error)s.", error=e.orig), category="error") flash(_("Oops! Database Error: %(error)s.", error=e.orig if hasattr(e, "orig") else e),
category="error")
return False # return redirect(url_for('web.show_book', book_id=book.id)) return False # return redirect(url_for('web.show_book', book_id=book.id))
# Queue uploader info # Queue uploader info

View File

@ -11,7 +11,7 @@
</div> </div>
<div class="col-sm-9 col-lg-9 book-meta"> <div class="col-sm-9 col-lg-9 book-meta">
<div class="btn-toolbar" role="toolbar"> <div class="btn-toolbar" role="toolbar">
<div class="btn-group" role="group" aria-label="Download, send to E-Reader, reading"> <div class="btn-group" role="group" aria-label="Download, send to eReader, reading">
{% if current_user.role_download() %} {% if current_user.role_download() %}
{% if entry.data|length %} {% if entry.data|length %}
<div class="btn-group" role="group"> <div class="btn-group" role="group">
@ -151,11 +151,10 @@
{% endif %} {% endif %}
{% if entry.languages.__len__() > 0 %} {% if entry.languages|length > 0 %}
<div class="languages"> <div class="languages">
<p> <p>
<span class="label label-default">{{ _('Language') }}: {% for language in entry.languages %} <span class="label label-default">{{_('Language')}}: {% for language in entry.languages %}{{language.language_name}}{% if not loop.last %}, {% endif %}{% endfor %}</span>
{{ language.language_name }}{% if not loop.last %}, {% endif %}{% endfor %}</span>
</p> </p>
</div> </div>
{% endif %} {% endif %}

File diff suppressed because it is too large Load Diff