Added option to save books with no nenglish characters
Imporvements on metadata search
This commit is contained in:
+19
-5
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user