[#973] Convert ForgeBlog templates to Jinja.

Paul Sokolovsky Paul Sokolovsky 2010-10-08

added ForgeBlog/forgeblog/templates/blog_edit_post.html
added ForgeBlog/forgeblog/templates/blog_post.html
added ForgeBlog/forgeblog/templates/blog_edit_posts.html
removed ForgeBlog/forgeblog/templates/post_diff.html
removed ForgeBlog/forgeblog/templates/post_history.html
removed ForgeBlog/forgeblog/templates/search.html
changed Allura/allura/config/app_cfg.py
changed ForgeBlog/forgeblog/templates/widgets/preview_post.html
changed ForgeBlog/forgeblog/templates/widgets/view_post.html
changed ForgeBlog/forgeblog/main.py
changed ForgeBlog/forgeblog/widgets.py
copied ForgeBlog/forgeblog/templates/edit_post.html -> ForgeBlog/forgeblog/templates/blog_index.html
copied ForgeBlog/forgeblog/templates/edit_posts.html -> ForgeBlog/forgeblog/templates/blog_post_diff.html
copied ForgeBlog/forgeblog/templates/index.html -> ForgeBlog/forgeblog/templates/blog_search.html
copied ForgeBlog/forgeblog/templates/post.html -> ForgeBlog/forgeblog/templates/blog_post_history.html
ForgeBlog/forgeblog/templates/blog_edit_post.html Diff Switch to side-by-side view
Loading...
ForgeBlog/forgeblog/templates/blog_post.html Diff Switch to side-by-side view
Loading...
ForgeBlog/forgeblog/templates/blog_edit_posts.html Diff Switch to side-by-side view
Loading...
Allura/allura/config/app_cfg.py Diff Switch to side-by-side view
Loading...
ForgeBlog/forgeblog/templates/widgets/preview_post.html Diff Switch to side-by-side view
Loading...
ForgeBlog/forgeblog/templates/widgets/view_post.html Diff Switch to side-by-side view
Loading...
ForgeBlog/forgeblog/main.py Diff Switch to side-by-side view
Loading...
ForgeBlog/forgeblog/widgets.py Diff Switch to side-by-side view
Loading...
ForgeBlog/forgeblog/templates/edit_post.html to ForgeBlog/forgeblog/templates/blog_index.html
--- a/ForgeBlog/forgeblog/templates/edit_post.html
+++ b/ForgeBlog/forgeblog/templates/blog_index.html
@@ -1,22 +1,19 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:py="http://genshi.edgewall.org/"
-      xmlns:xi="http://www.w3.org/2001/XInclude">
+{% extends 'jinja_master/master.html' %}
 
-  <xi:include href="${g.allura_templates}/master.html"/>
+{% block title %}{{c.project.name}} / {{c.app.config.options.mount_label}}{% endblock %}
 
-  <head>
-    <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
-    <title>$c.project.name / $c.app.config.options.mount_label: Edit</title>
-  </head>
+{% block header %}{{c.project.name}} / {{c.app.config.options.mount_label}} Recent posts{% endblock %}
 
-  <body>
-    <h1 class="title">$c.project.name / $c.app.config.options.mount_label:
-      Edit $post.title
-    </h1>
-    <div class="content">
-      ${c.form.display(value=post, action='save')}
-    </div>
-  </body>
-</html>
+{% block extra_css %}
+    <link rel="alternate" type="application/rss+xml" title="RSS" href="feed.rss"/>
+    <link rel="alternate" type="application/atom+xml" title="Atom" href="feed.atom"/>
+{% endblock %}
+
+{% block content %}
+          {% for post in posts %}
+            {% if not loop.first %}
+              <hr />
+            {% endif %}
+            {{c.form.display(value=post)}}
+          {% endfor %}
+{% endblock %}
ForgeBlog/forgeblog/templates/edit_posts.html to ForgeBlog/forgeblog/templates/blog_post_diff.html
--- a/ForgeBlog/forgeblog/templates/edit_posts.html
+++ b/ForgeBlog/forgeblog/templates/blog_post_diff.html
@@ -1,22 +1,23 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:py="http://genshi.edgewall.org/"
-      xmlns:xi="http://www.w3.org/2001/XInclude">
+{% extends 'jinja_master/master.html' %}
 
-  <xi:include href="${g.allura_templates}/master.html"/>
+{% block title %}{{c.project.name}} / {{c.app.config.options.mount_label}} / {{p1.title}}{% endblock %}
 
-  <head>
-    <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
-    <title>$c.project.name / $c.app.config.options.mount_label</title>
-  </head>
+{% block header %}{{p1.title}}{% endblock %}
 
-  <body>
-    <h1 class="title">$c.project.name / $c.app.config.options.mount_label
-      Recent posts
-    </h1>
-    <div class="content">
-      <py:for each="post in posts">${c.form.display(value=post)}</py:for>
-    </div>
-  </body>
-</html>
+{% block extra_css %}
+    <style type="text/css">
+      .diff_add { text-decoration: underline; background-color: #0f0; }
+      .diff_sub { text-decoration: line-through; background-color: #f00; }
+      ins { text-decoration: none; background-color: lightgreen; }
+      del { text-decoration: none; background-color: pink; }
+    </style>
+{% endblock %}
+
+{% block content %}
+          <p>Comparing <a href=".?version={{p1.version}}">Version {{p1.version}}</a>
+            with <a href=".?version={{p2.version}}">Version {{p2.version}}</a></p>
+          <hr/>
+          <div style="font-family: fixed">
+            {{edits|safe}}
+          </div>
+{% endblock %}
ForgeBlog/forgeblog/templates/index.html to ForgeBlog/forgeblog/templates/blog_search.html
--- a/ForgeBlog/forgeblog/templates/index.html
+++ b/ForgeBlog/forgeblog/templates/blog_search.html
@@ -1,31 +1,28 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:py="http://genshi.edgewall.org/"
-      xmlns:xi="http://www.w3.org/2001/XInclude">
+{% extends 'jinja_master/master.html' %}
 
-  <xi:include href="${g.allura_templates}/master.html"/>
+{% block title %}{{c.project.name}} / {{c.app.config.options.mount_label}} / Search{% endblock %}
 
-  <head>
-    <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
-    <title>$c.project.name / $c.app.config.options.mount_label</title>
-    <link rel="alternate" type="application/rss+xml" title="RSS" href="feed.rss"/>
-    <link rel="alternate" type="application/atom+xml" title="Atom" href="feed.atom"/>
-  </head>
+{% block header %}ForgeBlog Search{% endblock %}
 
-  <body>
-    <h1 class="title">$c.project.name / $c.app.config.options.mount_label
-      Recent posts
-    </h1>
-    <div class="content">
-      <div class="row">
-        <div class="column grid_12">
-          <py:for each="i, post in enumerate(posts)">
-            <hr py:if="i != 0"/>
-            ${c.form.display(value=post)}
-          </py:for>
-        </div>
-      </div>
-    </div>
-  </body>
-</html>
+{% block content %}
+          <form method="GET" action="search">
+            <input type="text" name="q" value="{{q}}"/><br/>
+            Search history? <input type="checkbox" name="history" {% if history %}checked="checked"{% endif %}/><br/>
+            <input type="submit" value="Search"/>
+          </form>
+          <div style="clear: both">&nbsp;</div>
+          {% if count==0 and q %}
+          <p>No results.</p>
+          {% elif count==1 and q %}
+          <p>{{count}} result.</p>
+          {% elif count > 1 and q %}
+          <p>{{count}} results.</p>
+          {% endif %}
+          {% for doc in results %}
+          <div>
+            <a href="{{doc['url_s']}}">{{doc.title_s}}</a><br/>
+            <p>{{doc.get('snippet_s', '...')}}</p>
+            <hr/>
+          </div>
+          {% endfor %}
+{% endblock %}
ForgeBlog/forgeblog/templates/post.html to ForgeBlog/forgeblog/templates/blog_post_history.html
--- a/ForgeBlog/forgeblog/templates/post.html
+++ b/ForgeBlog/forgeblog/templates/blog_post_history.html
@@ -1,22 +1,37 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:py="http://genshi.edgewall.org/"
-      xmlns:xi="http://www.w3.org/2001/XInclude">
+{% extends 'jinja_master/master.html' %}
 
-  <xi:include href="${g.allura_templates}/master.html"/>
+{% block title %}{{c.project.name}} / {{c.app.config.options.mount_label}}  / {{title}}{% endblock %}
 
-  <head>
-    <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
-    <title>$c.project.name / $c.app.config.options.mount_label: $post.title</title>
-  </head>
+{% block header %}{{title}}{% endblock %}
 
-  <body>
-    ${c.form.display(value=post)}
-    <div style="clear:both;"></div>
-    <div py:if="post.discussion_thread and c.app.show_discussion"
-         py:with="thread=post.discussion_thread">
-      ${c.thread.display(value=thread)}
-    </div>
-  </body>
-</html>
+{% block content %}
+          <form method="get" action="diff">
+            <input type="submit" value="Compare revisions"/>
+            <br/> <br/>
+            <table>
+              <thead>
+                <tr>
+                  <th>Version</th>
+                  <th>V1</th>
+                  <th>V2</th>
+                  <th>&nbsp;</th>
+                </tr>
+              </thead>
+              <tbody>
+              {% for p in posts %}
+                <tr>
+                  <td>{{p.version}} by {{p.author.display_name|e}}</td>
+                  <td><input name="v1" type="radio" value="{{p.version}}"/></td>
+                  <td><input name="v2" type="radio" value="{{p.version}}"/></td>
+                  <td>
+                    <a href="./?version={{p.version}}" class="btn">View Revision</a>
+                    {% if loop.index0 != 0 and h.has_artifact_access('edit', p)() %}
+                    <a href="./revert?version={{p.version}}" class="btn" py:if="">Revert to version {{p.version}}</a>
+                    {% endif %}
+                  </td>
+                </tr>
+              {% endfor %}
+              </tbody>
+            </table>
+          </form>
+{% endblock %}