Improved error handling for disapearing custom column linked to read status
This commit is contained in:
parent
c0b561cb5a
commit
b97373bf37
|
@ -474,14 +474,14 @@ def update_table_settings():
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
def check_valid_read_column(column):
|
def check_valid_read_column(column):
|
||||||
if column is not "0":
|
if column != "0":
|
||||||
if not calibre_db.session.query(db.Custom_Columns).filter(db.Custom_Columns.id == column) \
|
if not calibre_db.session.query(db.Custom_Columns).filter(db.Custom_Columns.id == column) \
|
||||||
.filter(and_(db.Custom_Columns.datatype == 'bool', db.Custom_Columns.mark_for_delete == 0)).all():
|
.filter(and_(db.Custom_Columns.datatype == 'bool', db.Custom_Columns.mark_for_delete == 0)).all():
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def check_valid_restricted_column(column):
|
def check_valid_restricted_column(column):
|
||||||
if column is not "0":
|
if column != "0":
|
||||||
if not calibre_db.session.query(db.Custom_Columns).filter(db.Custom_Columns.id == column) \
|
if not calibre_db.session.query(db.Custom_Columns).filter(db.Custom_Columns.id == column) \
|
||||||
.filter(and_(db.Custom_Columns.datatype == 'text', db.Custom_Columns.mark_for_delete == 0)).all():
|
.filter(and_(db.Custom_Columns.datatype == 'text', db.Custom_Columns.mark_for_delete == 0)).all():
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -22,7 +22,21 @@ $(function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#have_read_cb").on("change", function() {
|
$("#have_read_cb").on("change", function() {
|
||||||
$(this).closest("form").submit();
|
$.post({
|
||||||
|
url: this.closest("form").action,
|
||||||
|
error: function(response) {
|
||||||
|
var data = [{type:"danger", message:response.responseText}]
|
||||||
|
$("#flash_success").remove();
|
||||||
|
$("#flash_danger").remove();
|
||||||
|
if (!jQuery.isEmptyObject(data)) {
|
||||||
|
data.forEach(function (item) {
|
||||||
|
$(".navbar").after('<div class="row-fluid text-center" style="margin-top: -20px;">' +
|
||||||
|
'<div id="flash_' + item.type + '" class="alert alert-' + item.type + '">' + item.message + '</div>' +
|
||||||
|
'</div>');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
|
|
10
cps/web.py
10
cps/web.py
|
@ -185,10 +185,11 @@ def toggle_read(book_id):
|
||||||
calibre_db.session.commit()
|
calibre_db.session.commit()
|
||||||
except (KeyError, AttributeError):
|
except (KeyError, AttributeError):
|
||||||
log.error(u"Custom Column No.%d is not exisiting in calibre database", config.config_read_column)
|
log.error(u"Custom Column No.%d is not exisiting in calibre database", config.config_read_column)
|
||||||
|
return "Custom Column No.{} is not exisiting in calibre database".format(config.config_read_column), 400
|
||||||
except (OperationalError, InvalidRequestError) as e:
|
except (OperationalError, InvalidRequestError) as e:
|
||||||
calibre_db.session.rollback()
|
calibre_db.session.rollback()
|
||||||
log.error(u"Read status could not set: %e", e)
|
log.error(u"Read status could not set: %e", e)
|
||||||
|
return "Read status could not set: {}".format(e), 400
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
@web.route("/ajax/togglearchived/<int:book_id>", methods=['POST'])
|
@web.route("/ajax/togglearchived/<int:book_id>", methods=['POST'])
|
||||||
|
@ -1117,12 +1118,19 @@ def adv_search_ratings(q, rating_high, rating_low):
|
||||||
def adv_search_read_status(q, read_status):
|
def adv_search_read_status(q, read_status):
|
||||||
if read_status:
|
if read_status:
|
||||||
if config.config_read_column:
|
if config.config_read_column:
|
||||||
|
try:
|
||||||
if read_status == "True":
|
if read_status == "True":
|
||||||
q = q.join(db.cc_classes[config.config_read_column], isouter=True) \
|
q = q.join(db.cc_classes[config.config_read_column], isouter=True) \
|
||||||
.filter(db.cc_classes[config.config_read_column].value == True)
|
.filter(db.cc_classes[config.config_read_column].value == True)
|
||||||
else:
|
else:
|
||||||
q = q.join(db.cc_classes[config.config_read_column], isouter=True) \
|
q = q.join(db.cc_classes[config.config_read_column], isouter=True) \
|
||||||
.filter(coalesce(db.cc_classes[config.config_read_column].value, False) != True)
|
.filter(coalesce(db.cc_classes[config.config_read_column].value, False) != True)
|
||||||
|
except (KeyError, AttributeError):
|
||||||
|
log.error(u"Custom Column No.%d is not exisiting in calibre database", config.config_read_column)
|
||||||
|
flash(_("Custom Column No.%(column)d is not existing in calibre database",
|
||||||
|
column=config.config_read_column),
|
||||||
|
category="error")
|
||||||
|
return q
|
||||||
else:
|
else:
|
||||||
if read_status == "True":
|
if read_status == "True":
|
||||||
q = q.join(ub.ReadBook, db.Books.id == ub.ReadBook.book_id, isouter=True) \
|
q = q.join(ub.ReadBook, db.Books.id == ub.ReadBook.book_id, isouter=True) \
|
||||||
|
|
Loading…
Reference in New Issue
Block a user