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