[Patchew-devel] [PATCH v2 06/12] Add "Watch query" button to search result page
Fam Zheng
fam at euphon.net
Wed Nov 28 14:34:59 UTC 2018
From: Fam Zheng <famz at redhat.com>
This button will update the search query used to automatically populate
the user's 'watched' queue.
Signed-off-by: Fam Zheng <famz at redhat.com>
---
mods/maintainer.py | 17 +++++++++++++++++
www/templates/series-list.html | 8 ++++++++
2 files changed, 25 insertions(+)
diff --git a/mods/maintainer.py b/mods/maintainer.py
index 541d6f3..54738ec 100644
--- a/mods/maintainer.py
+++ b/mods/maintainer.py
@@ -100,6 +100,22 @@ class MaintainerModule(PatchewModule):
self._drop_from_queue(request.user, m, queue)
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
+ def render_page_hook(self, request, context_data):
+ if request.user.is_authenticated and context_data.get("is_search"):
+ q = WatchedQuery.objects.filter(user=request.user).first()
+ if q and q.query == context_data.get("search"):
+ context_data["is_watched_query"] = True
+
+ def www_view_watch_query(self, request):
+ if not request.user.is_authenticated:
+ raise PermissionDenied()
+ query = request.GET.get("q")
+ if not query:
+ return HttpResponseBadRequest("Invalid query")
+ WatchedQuery.objects.update_or_create(defaults={"query": query},
+ user=request.user)
+ return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
+
def www_url_hook(self, urlpatterns):
urlpatterns.append(url(r"^mark-as-merged/(?P<message_id>.*)/",
self.www_view_mark_as_merged,
@@ -122,6 +138,7 @@ class MaintainerModule(PatchewModule):
urlpatterns.append(url(r"^drop-from-queue/(?P<queue>[^/]*)/(?P<message_id>.*)/",
self.www_view_drop_from_queue,
name="drop-from-queue"))
+ urlpatterns.append(url(r"^watch-query/", self.www_view_watch_query))
def prepare_message_hook(self, request, message, detailed):
if not detailed or not request.user.is_authenticated:
diff --git a/www/templates/series-list.html b/www/templates/series-list.html
index 8a29f98..6c77d47 100644
--- a/www/templates/series-list.html
+++ b/www/templates/series-list.html
@@ -74,6 +74,14 @@
</div>
{% endif %}
+{% if is_search %}
+ {% if is_watched_query %}
+ <p>Saved as my watched query</p>
+ {% else %}
+ <button><a href="/watch-query/?q={{ search }}">Watch query</a></button>
+ {% endif %}
+{% endif %}
+
<nav>
<ul class="pagination pagination-sm">
{% for i in page_links %}
--
2.17.2
More information about the Patchew-devel
mailing list