From 82eeab4b74bbdf9d461a4a586eb3e34b78debb15 Mon Sep 17 00:00:00 2001
From: Cédric Bonhomme
Date: Tue, 30 May 2017 14:37:56 +0200
Subject: Improved UI for bookmarks. It is now possible to search bookmarks
through titles and descriptions.
---
src/web/controllers/abstract.py | 7 +---
src/web/templates/bookmarks.html | 70 +++++++++++++++++++++++++++-------------
src/web/views/bookmark.py | 5 +++
3 files changed, 54 insertions(+), 28 deletions(-)
diff --git a/src/web/controllers/abstract.py b/src/web/controllers/abstract.py
index ae39dff7..47cc365f 100644
--- a/src/web/controllers/abstract.py
+++ b/src/web/controllers/abstract.py
@@ -51,12 +51,7 @@ class AbstractController:
elif key.endswith('__in'):
db_filters.add(getattr(self._db_cls, key[:-4]).in_(value))
elif key.endswith('__contains'):
- db_filters.add(or_(
- getattr(self._db_cls, key[:-10]) \
- .contains(value.lower()),
- getattr(self._db_cls, key[:-10]) \
- .contains(value.upper())
- ))
+ db_filters.add(getattr(self._db_cls, key[:-10]).contains(value))
elif key.endswith('__like'):
db_filters.add(getattr(self._db_cls, key[:-6]).like(value))
elif key.endswith('__ilike'):
diff --git a/src/web/templates/bookmarks.html b/src/web/templates/bookmarks.html
index 71a8056d..33a35252 100644
--- a/src/web/templates/bookmarks.html
+++ b/src/web/templates/bookmarks.html
@@ -14,27 +14,53 @@
{% endif %}
- {{ pagination.links }}
-
-
-
- {% endfor %}
-
- {{ pagination.links }}
+
+
+
+
+
+ {{ pagination.links }}
+
+
+
+
+
+
+
+ {{ pagination.links }}
+
+
{% endblock %}
diff --git a/src/web/views/bookmark.py b/src/web/views/bookmark.py
index 8736e1ca..69a094ac 100644
--- a/src/web/views/bookmark.py
+++ b/src/web/views/bookmark.py
@@ -58,6 +58,11 @@ def list_(per_page, status='all'):
tag = request.args.get('tag', None)
if tag:
filters['tags_proxy__contains'] = tag
+ query = request.args.get('query', None)
+ if query:
+ query = '%' + query + '%'
+ filters['__or__'] = {'title__ilike': query, 'description__ilike': query}
+
if current_user.is_authenticated:
# query for the bookmarks of the authenticated user
--
cgit