]> git.ipfire.org Git - ipfire.org.git/commitdiff
blog: Add search
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 17 Jul 2018 12:40:59 +0000 (13:40 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 17 Jul 2018 12:40:59 +0000 (13:40 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/templates/blog/base.html
src/templates/blog/search-results.html [new file with mode: 0644]
src/web/__init__.py
src/web/blog.py

index 289cf1aff31379917733ba69a3122daccedc558a..d4a247e84c4616aac77913f4e999f45b24183740 100644 (file)
@@ -114,7 +114,8 @@ templates_blog_DATA = \
        src/templates/blog/author.html \
        src/templates/blog/base.html \
        src/templates/blog/index.html \
-       src/templates/blog/post.html
+       src/templates/blog/post.html \
+       src/templates/blog/search-results.html
 
 templates_blogdir = $(templatesdir)/blog
 
index d5652aaabb4f75d6073028823c27add5df0daefd..2f33607172073c2e4c582b083b37d95dc11f59f8 100644 (file)
@@ -5,7 +5,7 @@
 {% block menu %}
        <form class="form-inline ml-auto my-2 my-lg-0" action="/search" method="GET">
                <input class="form-control form-control-sm mr-sm-2" type="search" name="q"
-                       placeholder="{{ _("Search") }}" aria-label="{{ _("Search") }}">
+                       placeholder="{{ _("Search") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
        </form>
 
        <ul class="navbar-nav">
diff --git a/src/templates/blog/search-results.html b/src/templates/blog/search-results.html
new file mode 100644 (file)
index 0000000..5264912
--- /dev/null
@@ -0,0 +1,13 @@
+{% extends "base.html" %}
+
+{% block title %}{{ _("Search results for '%s'") % q }}{% end block %}
+
+{% block main %}
+       <div class="card">
+               <div class="card-body">
+                       <h5>{{ _("Search results for '%s'") % q }}</h5>
+
+                       {% module BlogPosts(posts) %}
+               </div>
+       </div>
+{% end block %}
index b4037c93fba6db41209886abea0a460c85efd56d..b6bfab197c9d51d3823a079d127a20aefc9d67fd 100644 (file)
@@ -128,6 +128,7 @@ class Application(tornado.web.Application):
                        (r"/", blog.IndexHandler),
                        (r"/authors/(\w+)", blog.AuthorHandler),
                        (r"/post/(.*)", blog.PostHandler),
+                       (r"/search", blog.SearchHandler),
                ])
 
                # downloads.ipfire.org
index 5ace7a8d963aac83d4d5615450126ae31c0eb238..2ff59b5e3ef74fac76279b60a9ea57f059989228 100644 (file)
@@ -36,6 +36,17 @@ class PostHandler(base.BaseHandler):
                self.render("blog/post.html", post=entry)
 
 
+class SearchHandler(base.BaseHandler):
+       def get(self):
+               q = self.get_argument("q")
+
+               posts = self.planet.search(q)
+               if not posts:
+                       raise tornado.web.HTTPError(404, "Nothing found")
+
+               self.render("blog/search-results.html", q=q, posts=posts)
+
+
 class PostModule(ui_modules.UIModule):
        def render(self, post):
                return self.render_string("blog/modules/post.html", post=post)