Added option to save books with no nenglish characters

Imporvements on metadata search
This commit is contained in:
Ozzie Isaacs
2021-08-01 13:50:17 +02:00
parent 702e96ddd6
commit ceec1051d5
17 changed files with 76 additions and 43 deletions
+19 -5
View File
@@ -26,8 +26,10 @@ import inspect
from flask import Blueprint, request, Response
from flask_login import current_user
from flask_login import login_required
from sqlalchemy.orm.attributes import flag_modified
from sqlalchemy.exc import OperationalError, InvalidRequestError
from . import constants, logger
from . import constants, logger, ub
from cps.services.Metadata import Metadata
meta = Blueprint('metadata', __name__)
@@ -63,17 +65,29 @@ def metadata_provider():
active = current_user.view_settings.get('metadata', {})
provider = list()
for c in cl:
provider.append({"name": c.__name__, "active": active.get(c.__name__, True), "id": c.__id__})
provider.append({"name": c.__name__, "active": active.get(c.__id__, True), "id": c.__id__})
return Response(json.dumps(provider), mimetype='application/json')
@meta.route("/metadata/provider", methods=['POST'])
@login_required
def metadata_change_active_provider():
new_state = request.get_json()
active = current_user.view_settings.get('metadata', {})
active[new_state['id']] = new_state['value']
current_user.view_settings['metadata'] = active
try:
try:
flag_modified(current_user, "view_settings")
except AttributeError:
pass
ub.session.commit()
except (InvalidRequestError, OperationalError):
log.error("Invalid request received: {}".format(request))
return "Invalid request", 400
provider = list()
for c in cl:
provider.append({"name": c.__name__, "active": active.get(c.__name__, True), "id": c.__id__})
return Response(json.dumps(provider), mimetype='application/json')
provider.append({"name": c.__name__, "active": active.get(c.__id__, True), "id": c.__id__})
return "" # Response(json.dumps(provider), mimetype='application/json')
@meta.route("/metadata/search", methods=['POST'])
@login_required
@@ -83,6 +97,6 @@ def metadata_search():
active = current_user.view_settings.get('metadata', {})
if query:
for c in cl:
if active.get(c.__name__, True):
if active.get(c.__id__, True):
data.extend(c.search(query))
return Response(json.dumps(data), mimetype='application/json')