Permalink
Browse files

Adapt the bootstrap based template to jinja changes, always provide m…

…aster.html for extensions and remove the minimal template as the new one is minimal enough
  • Loading branch information...
1 parent f3f6e36 commit 8c4db5ae5b669722b2d579882d17d1222dd665db @amol- amol- committed Apr 17, 2012
Showing with 217 additions and 2,515 deletions.
  1. +1 −7 devtools/commands/quickstart.py
  2. +0 −1 devtools/commands/quickstart_jinja/__init__.py
  3. +1 −1 devtools/commands/quickstart_jinja/{about.html → about.jinja}
  4. +1 −1 devtools/commands/quickstart_jinja/{data.html → data.jinja}
  5. +0 −20 devtools/commands/quickstart_jinja/debug.html
  6. +1 −1 devtools/commands/quickstart_jinja/{environ.html → environ.jinja}
  7. +1 −1 devtools/commands/quickstart_jinja/{error.html → error.jinja}
  8. +11 −7 devtools/commands/quickstart_jinja/{index.html → index.jinja}
  9. +1 −1 devtools/commands/quickstart_jinja/{login.html → login.jinja}
  10. +50 −53 devtools/commands/quickstart_jinja/master.html
  11. +60 −0 devtools/commands/quickstart_jinja/master.jinja
  12. +6 −4 devtools/commands/quickstart_mako/index.mak
  13. +59 −0 devtools/commands/quickstart_mako/master.html
  14. +3 −5 devtools/commands/quickstart_mako/master.mak
  15. +0 −7 devtools/pastetemplate.py
  16. +0 −2 devtools/templates/turbogears-minimal/+package+/__init__.py_tmpl
  17. +0 −2 devtools/templates/turbogears-minimal/+package+/config/__init__.py_tmpl
  18. +0 −87 devtools/templates/turbogears-minimal/+package+/config/app_cfg.py_tmpl
  19. +0 −110 devtools/templates/turbogears-minimal/+package+/config/deployment.ini_tmpl_tmpl
  20. +0 −9 devtools/templates/turbogears-minimal/+package+/config/environment.py_tmpl
  21. +0 −39 devtools/templates/turbogears-minimal/+package+/config/middleware.py_tmpl
  22. +0 −2 devtools/templates/turbogears-minimal/+package+/controllers/__init__.py_tmpl
  23. +0 −25 devtools/templates/turbogears-minimal/+package+/controllers/controller.template_tmpl
  24. +0 −30 devtools/templates/turbogears-minimal/+package+/controllers/error.py_tmpl
  25. +0 −84 devtools/templates/turbogears-minimal/+package+/controllers/root.py_tmpl
  26. +0 −36 devtools/templates/turbogears-minimal/+package+/controllers/template.py_tmpl
  27. +0 −24 devtools/templates/turbogears-minimal/+package+/i18n/ru/LC_MESSAGES/+package+.po_tmpl
  28. +0 −2 devtools/templates/turbogears-minimal/+package+/lib/__init__.py_tmpl
  29. +0 −18 devtools/templates/turbogears-minimal/+package+/lib/app_globals.py_tmpl
  30. +0 −38 devtools/templates/turbogears-minimal/+package+/lib/base.py_tmpl
  31. +0 −5 devtools/templates/turbogears-minimal/+package+/lib/helpers.py_tmpl
  32. +0 −71 devtools/templates/turbogears-minimal/+package+/model/__init__.py_tmpl
  33. +0 −234 devtools/templates/turbogears-minimal/+package+/model/auth.py_tmpl
  34. +0 −22 devtools/templates/turbogears-minimal/+package+/model/model.template_tmpl
  35. +0 −62 devtools/templates/turbogears-minimal/+package+/public/css/admin.css
  36. +0 −267 devtools/templates/turbogears-minimal/+package+/public/css/style.css
  37. BIN devtools/templates/turbogears-minimal/+package+/public/images/add.png
  38. BIN devtools/templates/turbogears-minimal/+package+/public/images/delete.png
  39. BIN devtools/templates/turbogears-minimal/+package+/public/images/error.png
  40. BIN devtools/templates/turbogears-minimal/+package+/public/images/info.png
  41. BIN devtools/templates/turbogears-minimal/+package+/public/images/loginbg.png
  42. BIN devtools/templates/turbogears-minimal/+package+/public/images/loginbottombg.png
  43. BIN devtools/templates/turbogears-minimal/+package+/public/images/loginheader-left.png
  44. BIN devtools/templates/turbogears-minimal/+package+/public/images/loginheader-right.png
  45. BIN devtools/templates/turbogears-minimal/+package+/public/images/ok.png
  46. BIN devtools/templates/turbogears-minimal/+package+/public/images/pencil.png
  47. BIN devtools/templates/turbogears-minimal/+package+/public/images/star.png
  48. BIN devtools/templates/turbogears-minimal/+package+/public/images/warning.png
  49. 0 devtools/templates/turbogears-minimal/+package+/public/javascript/empty
  50. +0 −2 devtools/templates/turbogears-minimal/+package+/templates/__init__.py
  51. +0 −25 devtools/templates/turbogears-minimal/+package+/templates/error.html
  52. +0 −16 devtools/templates/turbogears-minimal/+package+/templates/footer.html
  53. +0 −12 devtools/templates/turbogears-minimal/+package+/templates/header.html
  54. +0 −39 devtools/templates/turbogears-minimal/+package+/templates/index.html
  55. +0 −25 devtools/templates/turbogears-minimal/+package+/templates/login.html
  56. +0 −43 devtools/templates/turbogears-minimal/+package+/templates/master.html
  57. +0 −64 devtools/templates/turbogears-minimal/+package+/tests/__init__.py_tmpl
  58. +0 −2 devtools/templates/turbogears-minimal/+package+/tests/functional/__init__.py_tmpl
  59. +0 −88 devtools/templates/turbogears-minimal/+package+/tests/functional/test_authentication.py_tmpl
  60. +0 −83 devtools/templates/turbogears-minimal/+package+/tests/functional/test_root.py_tmpl
  61. +0 −62 devtools/templates/turbogears-minimal/+package+/tests/models/__init__.py_tmpl
  62. +0 −55 devtools/templates/turbogears-minimal/+package+/tests/models/test_auth.py_tmpl
  63. +0 −19 devtools/templates/turbogears-minimal/+package+/websetup/__init__.py_tmpl
  64. +0 −59 devtools/templates/turbogears-minimal/+package+/websetup/bootstrap.py_tmpl
  65. +0 −28 devtools/templates/turbogears-minimal/+package+/websetup/schema.py_tmpl
  66. +0 −4 devtools/templates/turbogears-minimal/MANIFEST.in_tmpl
  67. +0 −24 devtools/templates/turbogears-minimal/README.txt_tmpl
  68. +0 −146 devtools/templates/turbogears-minimal/development.ini_tmpl
  69. +0 −14 devtools/templates/turbogears-minimal/ez_setup/README.txt
  70. +0 −229 devtools/templates/turbogears-minimal/ez_setup/__init__.py
  71. 0 devtools/templates/turbogears-minimal/migration/__init__.py_tmpl
  72. +0 −20 devtools/templates/turbogears-minimal/migration/migrate.cfg_tmpl
  73. 0 devtools/templates/turbogears-minimal/migration/versions/__init__.py_tmpl
  74. +0 −37 devtools/templates/turbogears-minimal/setup.cfg_tmpl
  75. +0 −84 devtools/templates/turbogears-minimal/setup.py_tmpl
  76. +0 −28 devtools/templates/turbogears-minimal/test.ini_tmpl
  77. +2 −1 devtools/templates/turbogears/+package+/public/css/bootstrap-responsive.css
  78. +1 −1 devtools/templates/turbogears/+package+/public/css/bootstrap-responsive.min.css
  79. +10 −0 devtools/templates/turbogears/+package+/public/css/style.css
  80. +0 −17 devtools/templates/turbogears/+package+/templates/debug.html
  81. +6 −4 devtools/templates/turbogears/+package+/templates/index.html
  82. +3 −6 devtools/templates/turbogears/+package+/templates/master.html
@@ -137,10 +137,6 @@ class QuickstartCommand(command.Command):
help="use toscawidgets 1.x in place of 2.x version",
action="store_true", dest="tw1", default=False)
- parser.add_option("--minimal",
- help="use the minimal template to quickstart your application",
- action="store_true", dest="minimal", default=False)
-
parser.add_option("--dry-run",
help="dry run (don't actually do anything)",
action="store_true", dest="dry_run")
@@ -258,8 +254,6 @@ def command(self):
command = create_distro.CreateDistroCommand("create")
cmd_args = []
templates = self.templates.split()
- if self.minimal:
- templates = ['turbogears2-minimal']
for template in templates:
cmd_args.append("--template=%s" % template)
if self.dry_run:
@@ -317,7 +311,7 @@ def command(self):
package_template_dir = os.path.abspath(os.path.join(self.package, 'templates'))
shutil.rmtree(package_template_dir, ignore_errors=True)
- #replace template files with mako ones
+ #replace template files with jinja ones
jinja_template_dir = os.path.abspath(os.path.dirname(__file__))+'/quickstart_jinja'
shutil.copytree(jinja_template_dir, package_template_dir)
@@ -1 +0,0 @@
-__author__ = 'clsdaniel'
@@ -1,4 +1,4 @@
-{% extends "master.html" %}
+{% extends "master.jinja" %}
{% block master_title %}
Learning TurboGears 2.1: Quick guide to the Quickstart pages.
@@ -1,4 +1,4 @@
-{% extends "master.html" %}
+{% extends "master.jinja" %}
{% block master_title %}
Learning TurboGears 2.1: Quick guide to the Quickstart pages.
@@ -1,20 +0,0 @@
-<!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">
-
-<xi:include href="master.html" />
-
-<head>
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" py:if="False"/>
- <title>Sample Template, for looking at template locals</title>
-</head>
-
-<body>
- <h1>All objects from locals():</h1>
-
- <div py:for="item in sorted(locals()['data'].keys())">
- ${item}: ${repr(locals()['data'][item])}</div>
-</body>
-</html>
@@ -1,4 +1,4 @@
-{% extends "master.html" %}
+{% extends "master.jinja" %}
{% block master_title %}
Learning TurboGears 2.1: Information about TG and WSGI
@@ -1,4 +1,4 @@
-{% extends "master.html" %}
+{% extends "master.jinja" %}
{% block master_title %}
A {{ code }} Error has Occurred
@@ -1,15 +1,15 @@
-{% extends "master.html" %}
+{% extends "master.jinja" %}
{% block master_title %}
-Welcome to TurboGears 2.1, standing on the shoulders of giants, since 2007
+Welcome to TurboGears 2.2, standing on the shoulders of giants, since 2007
{% endblock %}
{% block contents %}
<div class="row">
- <div class="span8 hidden-phone hidden-tablet">
+ <div class="span8 hidden-phone">
<div class="hero-unit">
- <h1>Welcome to TurboGears 2.1</h1>
+ <h1>Welcome to TurboGears 2.2</h1>
<p>If you see this page it means your installation was successful!</p>
<p>TurboGears 2 is rapid web application development toolkit designed to make your life easier.</p>
<p>
@@ -20,9 +20,13 @@
</div>
</div>
<div class="span4">
- <a class="btn btn-small" href="http://www.turbogears.org/2.1/docs/">{{h.icon('book')}} TG2 Documents</a> <span class="label label-success">new</span> Read everything in the Getting Started section<br/>
- <a class="btn btn-small" href="http://docs.turbogears.org/1.0">{{h.icon('book')}} TG1 Documents</a> (still useful, although a lot has changed for TG2)<br/>
- <a class="btn btn-small" href="http://groups.google.com/group/turbogears">{{h.icon('comment')}} Join the Mail List</a> for general TG use/topics
+ <a class="btn btn-small" href="http://www.turbogears.org/2.2/docs/">{{h.icon('book')}} TG2 Documents</a>
+ <span class="label label-success">new</span> Read the Getting Started section<br/>
+ <br/>
+ <a class="btn btn-small" href="http://www.turbogears.org/book/">{{h.icon('book')}} TG2 Book</a> Work in progress TurboGears2 book<br/>
+ <br/>
+ <a class="btn btn-small" href="http://groups.google.com/group/turbogears">{{h.icon('comment')}} Join the Mail List</a>
+ for general TG use/topics
</div>
</div>
@@ -1,4 +1,4 @@
-{% extends "master.html" %}
+{% extends "master.jinja" %}
{% block master_title %}
Login Form
@@ -1,62 +1,59 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="charset={{ response.charset }}"/>
- {% block master_head %}
- {% endblock %}
- <title>{% block master_title %}{% endblock %}</title>
- <link rel="stylesheet" type="text/css" media="screen" href="{{tg.url('/css/bootstrap.min.css')}}" />
- <link rel="stylesheet" type="text/css" media="screen" href="{{tg.url('/css/bootstrap-responsive.min.css')}}" />
- <style>
- .footer { margin-top: 45px; padding: 35px 0 36px; border-top: 1px solid #e5e5e5; }
- .footer p { margin-bottom: 0; color: #555; }
- </style>
+<!--
+ Genshi template master file, this is here
+ to permit to extensions and pluggable applications
+ to always have a reliable master template
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ py:strip="">
+<head py:match="head" py:attrs="select('@*')">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <meta charset="${response.charset}" />
+ <title py:if="False">Your generic title goes here</title>
+ <meta py:replace="select('*')"/>
+ <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/bootstrap.min.css')}" />
+ <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/bootstrap-responsive.min.css')}" />
+ <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/style.css')}" />
</head>
-<body>
- <div class="container">
+<body py:match="body" py:attrs="select('@*')">
+ <div class="container">
- <!-- Navbar -->
- <div class="navbar">
- <div class="navbar-inner">
- <div class="container">
- <a class="brand" href="#"><img src="{{tg.url('/images/turbogears_logo.png')}}" alt="TurboGears 2"/>turbogears2</a>
- <ul class="nav">
- <li class="{% if page == 'index' %}active{% endif %}"><a href="{{ tg.url('/') }}">Welcome</a></li>
- <li><a href="{{ tg.url('/about') }}" class="{% if page == 'about' %}active{% endif %}">About</a></li>
- <li><a href="{{ tg.url('/environ') }}" class="{% if page == 'environ' %}active{% endif %}">WSGI Environment</a></li>
- </ul>
-
- {% if tg.auth_stack_enabled %}
- <ul class="nav pull-right">
- {% if request.identity %}
- <li py:if="request.identity"><a href="{{tg.url('/logout_handler')}}">Logout</a></li>
- <li py:if="request.identity"><a href="{{tg.url('/admin')}}">Admin</a></li>
- {% else %}
- <li py:if="not request.identity"><a href="{{tg.url('/login')}}">Login</a></li>
- {% endif %}
- </ul>
- {% endif %}
- </div>
- </div>
+ <!-- Navbar -->
+ <div class="navbar">
+ <div class="navbar-inner">
+ <div class="container">
+ <a class="brand" href="#"><img src="${tg.url('/images/turbogears_logo.png')}" alt="TurboGears 2"/> ${getattr(tmpl_context, 'project_name', 'turbogears2')}</a>
+ <ul class="nav">
+ <li class="${('', 'active')[defined('page') and page=='index']}"><a href="${tg.url('/')}">Welcome</a></li>
+ <li class="${('', 'active')[defined('page') and page=='about']}"><a href="${tg.url('/about')}">About</a></li>
+ <li class="${('', 'active')[defined('page') and page=='environ']}"><a href="${tg.url('/environ')}">WSGI Environment</a></li>
+ </ul>
+ <ul class="nav pull-right" py:if="tg.auth_stack_enabled">
+ <li py:if="not request.identity"><a href="${tg.url('/login')}">Login</a></li>
+ <li py:if="request.identity"><a href="${tg.url('/logout_handler')}">Logout</a></li>
+ <li py:if="request.identity"><a href="${tg.url('/admin')}">Admin</a></li>
+ </ul>
</div>
+ </div>
+ </div>
- <!-- Flash messages -->
-
- {% with flash=tg.flash_obj.render('flash', use_js=False) %}
- <div class="row"><div class="span8 offset2">
- {{ flash|safe }}
- </div></div>
- {% endwith %}
+ <!-- Flash messages -->
+ <py:with vars="flash=tg.flash_obj.render('flash', use_js=False)">
+ <div class="row"><div class="span8 offset2">
+ <div py:if="flash" py:replace="Markup(flash)" />
+ </div></div>
+ </py:with>
- {% block contents %}
- {% endblock %}
+ <!-- Main included content -->
+ <div py:replace="select('*|text()')"/>
- <!-- End of main_content -->
- <footer class="footer hidden-tablet hidden-phone">
- <a class="pull-right" href="http://www.turbogears.org/2.1/"><img style="vertical-align:middle;" src="{{tg.url('/images/under_the_hood_blue.png')}}" alt="TurboGears 2" /></a>
- <p>Copyright &copy; turbogears2 {{h.current_year()}}</p>
- </footer>
- </div>
+ <!-- Footer included from an external template -->
+ <footer class="footer hidden-tablet hidden-phone">
+ <a class="pull-right" href="http://www.turbogears.org/2.1/"><img style="vertical-align:middle;" src="${tg.url('/images/under_the_hood_blue.png')}" alt="TurboGears 2" /></a>
+ <p>Copyright &copy; ${getattr(tmpl_context, 'project_name', 'TurboGears2')} ${h.current_year()}</p>
+ </footer>
+ </div>
</body>
</html>
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta charset="charset={{ response.charset }}"/>
+ {% block master_head %}
+ {% endblock %}
+ <title>{% block master_title %}{% endblock %}</title>
+ <link rel="stylesheet" type="text/css" media="screen" href="{{tg.url('/css/bootstrap.min.css')}}" />
+ <link rel="stylesheet" type="text/css" media="screen" href="{{tg.url('/css/bootstrap-responsive.min.css')}}" />
+ <link rel="stylesheet" type="text/css" media="screen" href="{{tg.url('/css/style.css')}}" />
+</head>
+
+<body>
+ <div class="container">
+
+ <!-- Navbar -->
+ <div class="navbar">
+ <div class="navbar-inner">
+ <div class="container">
+ <a class="brand" href="#"><img src="{{tg.url('/images/turbogears_logo.png')}}" alt="TurboGears 2"/>turbogears2</a>
+ <ul class="nav">
+ <li class="{% if page == 'index' %}active{% endif %}"><a href="{{ tg.url('/') }}">Welcome</a></li>
+ <li><a href="{{ tg.url('/about') }}" class="{% if page == 'about' %}active{% endif %}">About</a></li>
+ <li><a href="{{ tg.url('/environ') }}" class="{% if page == 'environ' %}active{% endif %}">WSGI Environment</a></li>
+ </ul>
+
+ {% if tg.auth_stack_enabled %}
+ <ul class="nav pull-right">
+ {% if request.identity %}
+ <li py:if="request.identity"><a href="{{tg.url('/logout_handler')}}">Logout</a></li>
+ <li py:if="request.identity"><a href="{{tg.url('/admin')}}">Admin</a></li>
+ {% else %}
+ <li py:if="not request.identity"><a href="{{tg.url('/login')}}">Login</a></li>
+ {% endif %}
+ </ul>
+ {% endif %}
+ </div>
+ </div>
+ </div>
+
+ <!-- Flash messages -->
+
+ {% with flash=tg.flash_obj.render('flash', use_js=False) %}
+ <div class="row"><div class="span8 offset2">
+ {{ flash|safe }}
+ </div></div>
+ {% endwith %}
+
+ {% block contents %}
+ {% endblock %}
+
+ <!-- End of main_content -->
+ <footer class="footer hidden-tablet hidden-phone">
+ <a class="pull-right" href="http://www.turbogears.org/2.1/"><img style="vertical-align:middle;" src="{{tg.url('/images/under_the_hood_blue.png')}}" alt="TurboGears 2" /></a>
+ <p>Copyright &copy; {{ tmpl_context.project_name|default('TurboGears2') }} {{h.current_year()}}</p>
+ </footer>
+ </div>
+</body>
+</html>
@@ -1,13 +1,13 @@
<%inherit file="local:templates.master"/>
<%def name="title()">
- Welcome to TurboGears 2.1, standing on the shoulders of giants, since 2007
+ Welcome to TurboGears 2.2, standing on the shoulders of giants, since 2007
</%def>
<div class="row">
<div class="span8 hidden-phone hidden-tablet">
<div class="hero-unit">
- <h1>Welcome to TurboGears 2.1</h1>
+ <h1>Welcome to TurboGears 2.2</h1>
<p>If you see this page it means your installation was successful!</p>
<p>TurboGears 2 is rapid web application development toolkit designed to make your life easier.</p>
<p>
@@ -18,8 +18,10 @@
</div>
</div>
<div class="span4">
- <a class="btn btn-small" href="http://www.turbogears.org/2.1/docs/">${h.icon('book')} TG2 Documents</a> <span class="label label-success">new</span> Read everything in the Getting Started section<br/>
- <a class="btn btn-small" href="http://docs.turbogears.org/1.0">${h.icon('book')} TG1 Documents</a> (still useful, although a lot has changed for TG2)<br/>
+ <a class="btn btn-small" href="http://www.turbogears.org/2.2/docs/">${h.icon('book')} TG2 Documents</a> <span class="label label-success">new</span> Read the Getting Started section<br/>
+ <br/>
+ <a class="btn btn-small" href="http://www.turbogears.org/book/">${h.icon('book')} TG2 Book</a> Work in progress TurboGears2 book<br/>
+ <br/>
<a class="btn btn-small" href="http://groups.google.com/group/turbogears">${h.icon('comment')} Join the Mail List</a> for general TG use/topics
</div>
</div>
@@ -0,0 +1,59 @@
+<!--
+ Genshi template master file, this is here
+ to permit to extensions and pluggable applications
+ to always have a reliable master template
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ py:strip="">
+<head py:match="head" py:attrs="select('@*')">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <meta charset="${response.charset}" />
+ <title py:if="False">Your generic title goes here</title>
+ <meta py:replace="select('*')"/>
+ <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/bootstrap.min.css')}" />
+ <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/bootstrap-responsive.min.css')}" />
+ <link rel="stylesheet" type="text/css" media="screen" href="${tg.url('/css/style.css')}" />
+</head>
+
+<body py:match="body" py:attrs="select('@*')">
+ <div class="container">
+
+ <!-- Navbar -->
+ <div class="navbar">
+ <div class="navbar-inner">
+ <div class="container">
+ <a class="brand" href="#"><img src="${tg.url('/images/turbogears_logo.png')}" alt="TurboGears 2"/> ${getattr(tmpl_context, 'project_name', 'turbogears2')}</a>
+ <ul class="nav">
+ <li class="${('', 'active')[defined('page') and page=='index']}"><a href="${tg.url('/')}">Welcome</a></li>
+ <li class="${('', 'active')[defined('page') and page=='about']}"><a href="${tg.url('/about')}">About</a></li>
+ <li class="${('', 'active')[defined('page') and page=='environ']}"><a href="${tg.url('/environ')}">WSGI Environment</a></li>
+ </ul>
+ <ul class="nav pull-right" py:if="tg.auth_stack_enabled">
+ <li py:if="not request.identity"><a href="${tg.url('/login')}">Login</a></li>
+ <li py:if="request.identity"><a href="${tg.url('/logout_handler')}">Logout</a></li>
+ <li py:if="request.identity"><a href="${tg.url('/admin')}">Admin</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+
+ <!-- Flash messages -->
+ <py:with vars="flash=tg.flash_obj.render('flash', use_js=False)">
+ <div class="row"><div class="span8 offset2">
+ <div py:if="flash" py:replace="Markup(flash)" />
+ </div></div>
+ </py:with>
+
+ <!-- Main included content -->
+ <div py:replace="select('*|text()')"/>
+
+ <!-- Footer included from an external template -->
+ <footer class="footer hidden-tablet hidden-phone">
+ <a class="pull-right" href="http://www.turbogears.org/2.1/"><img style="vertical-align:middle;" src="${tg.url('/images/under_the_hood_blue.png')}" alt="TurboGears 2" /></a>
+ <p>Copyright &copy; ${getattr(tmpl_context, 'project_name', 'TurboGears2')} ${h.current_year()}</p>
+ </footer>
+ </div>
+</body>
+</html>
Oops, something went wrong.

0 comments on commit 8c4db5a

Please sign in to comment.