mirror of
https://github.com/janeczku/calibre-web
synced 2024-12-25 17:40:31 +00:00
Improved error handling for disapearing custom column linked to visiblility restrictions
This commit is contained in:
parent
b97373bf37
commit
541c8c4b93
@ -749,10 +749,10 @@ def add_restriction(res_type, user_id):
|
|||||||
usr = current_user
|
usr = current_user
|
||||||
if 'submit_allow' in element:
|
if 'submit_allow' in element:
|
||||||
usr.allowed_tags = restriction_addition(element, usr.list_allowed_tags)
|
usr.allowed_tags = restriction_addition(element, usr.list_allowed_tags)
|
||||||
ub.session_commit("Changed allowed tags of user {} to {}".format(usr.name, usr.list_allowed_tags))
|
ub.session_commit("Changed allowed tags of user {} to {}".format(usr.name, usr.list_allowed_tags()))
|
||||||
elif 'submit_deny' in element:
|
elif 'submit_deny' in element:
|
||||||
usr.denied_tags = restriction_addition(element, usr.list_denied_tags)
|
usr.denied_tags = restriction_addition(element, usr.list_denied_tags)
|
||||||
ub.session_commit("Changed denied tags of user {} to {}".format(usr.name, usr.list_denied_tags))
|
ub.session_commit("Changed denied tags of user {} to {}".format(usr.name, usr.list_denied_tags()))
|
||||||
if res_type == 3: # CustomC per user
|
if res_type == 3: # CustomC per user
|
||||||
if isinstance(user_id, int):
|
if isinstance(user_id, int):
|
||||||
usr = ub.session.query(ub.User).filter(ub.User.id == int(user_id)).first()
|
usr = ub.session.query(ub.User).filter(ub.User.id == int(user_id)).first()
|
||||||
@ -761,11 +761,11 @@ def add_restriction(res_type, user_id):
|
|||||||
if 'submit_allow' in element:
|
if 'submit_allow' in element:
|
||||||
usr.allowed_column_value = restriction_addition(element, usr.list_allowed_column_values)
|
usr.allowed_column_value = restriction_addition(element, usr.list_allowed_column_values)
|
||||||
ub.session_commit("Changed allowed columns of user {} to {}".format(usr.name,
|
ub.session_commit("Changed allowed columns of user {} to {}".format(usr.name,
|
||||||
usr.list_allowed_column_values))
|
usr.list_allowed_column_values()))
|
||||||
elif 'submit_deny' in element:
|
elif 'submit_deny' in element:
|
||||||
usr.denied_column_value = restriction_addition(element, usr.list_denied_column_values)
|
usr.denied_column_value = restriction_addition(element, usr.list_denied_column_values)
|
||||||
ub.session_commit("Changed denied columns of user {} to {}".format(usr.name,
|
ub.session_commit("Changed denied columns of user {} to {}".format(usr.name,
|
||||||
usr.list_denied_column_values))
|
usr.list_denied_column_values()))
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
31
cps/db.py
31
cps/db.py
@ -44,6 +44,7 @@ from flask_login import current_user
|
|||||||
from babel import Locale as LC
|
from babel import Locale as LC
|
||||||
from babel.core import UnknownLocaleError
|
from babel.core import UnknownLocaleError
|
||||||
from flask_babel import gettext as _
|
from flask_babel import gettext as _
|
||||||
|
from flask import flash
|
||||||
|
|
||||||
from . import logger, ub, isoLanguages
|
from . import logger, ub, isoLanguages
|
||||||
from .pagination import Pagination
|
from .pagination import Pagination
|
||||||
@ -122,7 +123,7 @@ class Identifiers(Base):
|
|||||||
elif format_type == "goodreads":
|
elif format_type == "goodreads":
|
||||||
return u"Goodreads"
|
return u"Goodreads"
|
||||||
elif format_type == "babelio":
|
elif format_type == "babelio":
|
||||||
return u"Babelio"
|
return u"Babelio"
|
||||||
elif format_type == "google":
|
elif format_type == "google":
|
||||||
return u"Google Books"
|
return u"Google Books"
|
||||||
elif format_type == "kobo":
|
elif format_type == "kobo":
|
||||||
@ -151,7 +152,7 @@ class Identifiers(Base):
|
|||||||
elif format_type == "goodreads":
|
elif format_type == "goodreads":
|
||||||
return u"https://www.goodreads.com/book/show/{0}".format(self.val)
|
return u"https://www.goodreads.com/book/show/{0}".format(self.val)
|
||||||
elif format_type == "babelio":
|
elif format_type == "babelio":
|
||||||
return u"https://www.babelio.com/livres/titre/{0}".format(self.val)
|
return u"https://www.babelio.com/livres/titre/{0}".format(self.val)
|
||||||
elif format_type == "douban":
|
elif format_type == "douban":
|
||||||
return u"https://book.douban.com/subject/{0}".format(self.val)
|
return u"https://book.douban.com/subject/{0}".format(self.val)
|
||||||
elif format_type == "google":
|
elif format_type == "google":
|
||||||
@ -606,14 +607,24 @@ class CalibreDB():
|
|||||||
neg_content_tags_filter = false() if negtags_list == [''] else Books.tags.any(Tags.name.in_(negtags_list))
|
neg_content_tags_filter = false() if negtags_list == [''] else Books.tags.any(Tags.name.in_(negtags_list))
|
||||||
pos_content_tags_filter = true() if postags_list == [''] else Books.tags.any(Tags.name.in_(postags_list))
|
pos_content_tags_filter = true() if postags_list == [''] else Books.tags.any(Tags.name.in_(postags_list))
|
||||||
if self.config.config_restricted_column:
|
if self.config.config_restricted_column:
|
||||||
pos_cc_list = current_user.allowed_column_value.split(',')
|
try:
|
||||||
pos_content_cc_filter = true() if pos_cc_list == [''] else \
|
pos_cc_list = current_user.allowed_column_value.split(',')
|
||||||
getattr(Books, 'custom_column_' + str(self.config.config_restricted_column)). \
|
pos_content_cc_filter = true() if pos_cc_list == [''] else \
|
||||||
any(cc_classes[self.config.config_restricted_column].value.in_(pos_cc_list))
|
getattr(Books, 'custom_column_' + str(self.config.config_restricted_column)). \
|
||||||
neg_cc_list = current_user.denied_column_value.split(',')
|
any(cc_classes[self.config.config_restricted_column].value.in_(pos_cc_list))
|
||||||
neg_content_cc_filter = false() if neg_cc_list == [''] else \
|
neg_cc_list = current_user.denied_column_value.split(',')
|
||||||
getattr(Books, 'custom_column_' + str(self.config.config_restricted_column)). \
|
neg_content_cc_filter = false() if neg_cc_list == [''] else \
|
||||||
any(cc_classes[self.config.config_restricted_column].value.in_(neg_cc_list))
|
getattr(Books, 'custom_column_' + str(self.config.config_restricted_column)). \
|
||||||
|
any(cc_classes[self.config.config_restricted_column].value.in_(neg_cc_list))
|
||||||
|
except (KeyError, AttributeError):
|
||||||
|
pos_content_cc_filter = false()
|
||||||
|
neg_content_cc_filter = true()
|
||||||
|
log.error(u"Custom Column No.%d is not existing in calibre database",
|
||||||
|
self.config.config_restricted_column)
|
||||||
|
flash(_("Custom Column No.%(column)d is not existing in calibre database",
|
||||||
|
column=self.config.config_restricted_column),
|
||||||
|
category="error")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
pos_content_cc_filter = true()
|
pos_content_cc_filter = true()
|
||||||
neg_content_cc_filter = false()
|
neg_content_cc_filter = false()
|
||||||
|
@ -184,8 +184,8 @@ def toggle_read(book_id):
|
|||||||
calibre_db.session.add(new_cc)
|
calibre_db.session.add(new_cc)
|
||||||
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 existing in calibre database", config.config_read_column)
|
||||||
return "Custom Column No.{} is not exisiting in calibre database".format(config.config_read_column), 400
|
return "Custom Column No.{} is not existing 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)
|
||||||
@ -1126,7 +1126,7 @@ def adv_search_read_status(q, read_status):
|
|||||||
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):
|
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 existing in calibre database", config.config_read_column)
|
||||||
flash(_("Custom Column No.%(column)d is not existing in calibre database",
|
flash(_("Custom Column No.%(column)d is not existing in calibre database",
|
||||||
column=config.config_read_column),
|
column=config.config_read_column),
|
||||||
category="error")
|
category="error")
|
||||||
|
Loading…
Reference in New Issue
Block a user