Fix disable shelf kobo sync
This commit is contained in:
parent
69b7d94774
commit
2b7c1345ee
37
cps/shelf.py
37
cps/shelf.py
|
@ -21,20 +21,20 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from __future__ import division, print_function, unicode_literals
|
from __future__ import division, print_function, unicode_literals
|
||||||
from datetime import datetime
|
|
||||||
import sys
|
import sys
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from flask import Blueprint, request, flash, redirect, url_for
|
from flask import Blueprint, flash, redirect, request, url_for
|
||||||
from flask_babel import gettext as _
|
from flask_babel import gettext as _
|
||||||
from flask_login import login_required, current_user
|
from flask_login import current_user, login_required
|
||||||
|
from sqlalchemy.exc import InvalidRequestError, OperationalError
|
||||||
from sqlalchemy.sql.expression import func, true
|
from sqlalchemy.sql.expression import func, true
|
||||||
from sqlalchemy.exc import OperationalError, InvalidRequestError
|
|
||||||
|
|
||||||
from . import logger, ub, calibre_db, db, config
|
from . import calibre_db, config, db, logger, ub
|
||||||
from .render_template import render_title_template
|
from .render_template import render_title_template
|
||||||
from .usermanagement import login_required_if_no_ano
|
from .usermanagement import login_required_if_no_ano
|
||||||
|
|
||||||
|
|
||||||
shelf = Blueprint('shelf', __name__)
|
shelf = Blueprint('shelf', __name__)
|
||||||
log = logger.create()
|
log = logger.create()
|
||||||
|
|
||||||
|
@ -240,8 +240,11 @@ def create_edit_shelf(shelf, title, page, shelf_id=False):
|
||||||
else:
|
else:
|
||||||
shelf.is_public = 0
|
shelf.is_public = 0
|
||||||
|
|
||||||
if config.config_kobo_sync and "kobo_sync" in to_save:
|
if config.config_kobo_sync:
|
||||||
shelf.kobo_sync = True
|
if "kobo_sync" in to_save:
|
||||||
|
shelf.kobo_sync = True
|
||||||
|
else:
|
||||||
|
shelf.kobo_sync = False
|
||||||
|
|
||||||
if check_shelf_is_unique(shelf, to_save, shelf_id):
|
if check_shelf_is_unique(shelf, to_save, shelf_id):
|
||||||
shelf.name = to_save["title"]
|
shelf.name = to_save["title"]
|
||||||
|
@ -358,8 +361,8 @@ def order_shelf(shelf_id):
|
||||||
shelf = ub.session.query(ub.Shelf).filter(ub.Shelf.id == shelf_id).first()
|
shelf = ub.session.query(ub.Shelf).filter(ub.Shelf.id == shelf_id).first()
|
||||||
result = list()
|
result = list()
|
||||||
if shelf and check_shelf_view_permissions(shelf):
|
if shelf and check_shelf_view_permissions(shelf):
|
||||||
result = calibre_db.session.query(db.Books)\
|
result = calibre_db.session.query(db.Books) \
|
||||||
.join(ub.BookShelf,ub.BookShelf.book_id == db.Books.id , isouter=True) \
|
.join(ub.BookShelf, ub.BookShelf.book_id == db.Books.id, isouter=True) \
|
||||||
.add_columns(calibre_db.common_filters().label("visible")) \
|
.add_columns(calibre_db.common_filters().label("visible")) \
|
||||||
.filter(ub.BookShelf.shelf == shelf_id).order_by(ub.BookShelf.order.asc()).all()
|
.filter(ub.BookShelf.shelf == shelf_id).order_by(ub.BookShelf.order.asc()).all()
|
||||||
return render_title_template('shelf_order.html', entries=result,
|
return render_title_template('shelf_order.html', entries=result,
|
||||||
|
@ -368,7 +371,7 @@ def order_shelf(shelf_id):
|
||||||
|
|
||||||
|
|
||||||
def change_shelf_order(shelf_id, order):
|
def change_shelf_order(shelf_id, order):
|
||||||
result = calibre_db.session.query(db.Books).join(ub.BookShelf,ub.BookShelf.book_id == db.Books.id)\
|
result = calibre_db.session.query(db.Books).join(ub.BookShelf, ub.BookShelf.book_id == db.Books.id) \
|
||||||
.filter(ub.BookShelf.shelf == shelf_id).order_by(*order).all()
|
.filter(ub.BookShelf.shelf == shelf_id).order_by(*order).all()
|
||||||
for index, entry in enumerate(result):
|
for index, entry in enumerate(result):
|
||||||
book = ub.session.query(ub.BookShelf).filter(ub.BookShelf.shelf == shelf_id) \
|
book = ub.session.query(ub.BookShelf).filter(ub.BookShelf.shelf == shelf_id) \
|
||||||
|
@ -408,13 +411,13 @@ def render_show_shelf(shelf_type, shelf_id, page_no, sort_param):
|
||||||
page = 'shelfdown.html'
|
page = 'shelfdown.html'
|
||||||
|
|
||||||
result, __, pagination = calibre_db.fill_indexpage(page_no, pagesize,
|
result, __, pagination = calibre_db.fill_indexpage(page_no, pagesize,
|
||||||
db.Books,
|
db.Books,
|
||||||
ub.BookShelf.shelf == shelf_id,
|
ub.BookShelf.shelf == shelf_id,
|
||||||
[ub.BookShelf.order.asc()],
|
[ub.BookShelf.order.asc()],
|
||||||
ub.BookShelf,ub.BookShelf.book_id == db.Books.id)
|
ub.BookShelf, ub.BookShelf.book_id == db.Books.id)
|
||||||
# delete chelf entries where book is not existent anymore, can happen if book is deleted outside calibre-web
|
# delete chelf entries where book is not existent anymore, can happen if book is deleted outside calibre-web
|
||||||
wrong_entries = calibre_db.session.query(ub.BookShelf)\
|
wrong_entries = calibre_db.session.query(ub.BookShelf) \
|
||||||
.join(db.Books, ub.BookShelf.book_id == db.Books.id, isouter=True)\
|
.join(db.Books, ub.BookShelf.book_id == db.Books.id, isouter=True) \
|
||||||
.filter(db.Books.id == None).all()
|
.filter(db.Books.id == None).all()
|
||||||
for entry in wrong_entries:
|
for entry in wrong_entries:
|
||||||
log.info('Not existing book {} in {} deleted'.format(entry.book_id, shelf))
|
log.info('Not existing book {} in {} deleted'.format(entry.book_id, shelf))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user