From b38a1b2298c5c995312c15865b1b8dfb8eac4f2d Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sun, 25 Feb 2024 20:03:38 +0100 Subject: [PATCH] Admin can now force full sync for users (fix for #2993 --- cps/admin.py | 21 ++++++++++++++++----- cps/static/js/main.js | 8 ++++++-- cps/templates/user_edit.html | 2 +- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/cps/admin.py b/cps/admin.py index fa29759e..c07fc29f 100644 --- a/cps/admin.py +++ b/cps/admin.py @@ -916,11 +916,15 @@ def list_restriction(res_type, user_id): @admi.route("/ajax/fullsync", methods=["POST"]) @login_required -def ajax_fullsync(): - count = ub.session.query(ub.KoboSyncedBooks).filter(current_user.id == ub.KoboSyncedBooks.user_id).delete() - message = _("{} sync entries deleted").format(count) - ub.session_commit(message) - return Response(json.dumps([{"type": "success", "message": message}]), mimetype='application/json') +def ajax_self_fullsync(): + return do_full_kobo_sync(current_user.id) + + +@admi.route("/ajax/fullsync/", methods=["POST"]) +@login_required +@admin_required +def ajax_fullsync(userid): + return do_full_kobo_sync(userid) @admi.route("/ajax/pathchooser/") @@ -930,6 +934,13 @@ def ajax_pathchooser(): return pathchooser() +def do_full_kobo_sync(userid): + count = ub.session.query(ub.KoboSyncedBooks).filter(userid == ub.KoboSyncedBooks.user_id).delete() + message = _("{} sync entries deleted").format(count) + ub.session_commit(message) + return Response(json.dumps([{"type": "success", "message": message}]), mimetype='application/json') + + def check_valid_read_column(column): if column != "0": if not calibre_db.session.query(db.CustomColumns).filter(db.CustomColumns.id == column) \ diff --git a/cps/static/js/main.js b/cps/static/js/main.js index 34d3bc96..1e88fc6d 100644 --- a/cps/static/js/main.js +++ b/cps/static/js/main.js @@ -621,8 +621,12 @@ $(function() { "btnfullsync", "GeneralDeleteModal", $(this).data('value'), - function(value){ - path = getPath() + "/ajax/fullsync" + function(userid) { + if (userid) { + path = getPath() + "/ajax/fullsync/" + userid + } else { + path = getPath() + "/ajax/fullsync" + } $.ajax({ method:"post", url: path, diff --git a/cps/templates/user_edit.html b/cps/templates/user_edit.html index 18b018e6..454fa6c9 100644 --- a/cps/templates/user_edit.html +++ b/cps/templates/user_edit.html @@ -67,7 +67,7 @@
- +
{% endif %}