Commits

Chris Miles committed 1d5e802

Restored the base template, home template, CSS and images from the old project.

Comments (0)

Files changed (20)

chronr/chronr/public/css/style.css

-html {
-  margin: 0px 0px 0px 0px;
+/*
+ * Column layout thanks to http://matthewjamestaylor.com/blog/perfect-2-column-right-menu.htm
+ */
+
+html, body {
+  color: black;
+  background-color: white;
+  font: x-small "Lucida Grande", "Lucida Sans Unicode", geneva, verdana, sans-serif;
+  margin: 0;
+  padding: 0;
+  border: 0;   /* This removes the border around the viewport in old versions of IE */
+  width: 100%;
+  min-width: 600px;
 }
 
-body {
-  margin: 0px 0px 0px 0px;
-  font-size: 90%;
-  font-family: arial, helvetica, sans-serif;
-  background-color: #E6EEEF;
-  width: 100%;
+td, th {padding:3px;border:none;}
+tr th {text-align:left;background-color:#f0f0f0;color:#333;}
+tr.odd td {background-color:#edf3fe;}
+tr.even td {background-color:#fff;}
+
+#header {
+/*  width: 777px;*/
+  height: 108px;
+  background: white;
+/*  border-left: 1px solid #aaa;*/
+/*  border-right: 1px solid #aaa;*/
+  margin: 0 auto 0 auto;
+  font: 75px "Lucida Grande";
+  clear:both;
+  float:left;
+  width:100%;
+  position: relative;
 }
 
-#header {
-  background-color: #fff;
-  position: relative;
-  width: 100%;
-  height: 50px;
+#pageLogin {
+  font-size: 10px;
+  font-family: verdana;
+  text-align: right;
+  padding: 5px 10px;
 }
 
-#header_logo {
-  background: #fff URL('/images/BlastOff-header.png ') left center no-repeat;
+/*#header a {
+  color: black;
+  text-decoration: none;
+}
+*/
+#banner {
+  background: #fff URL('../images/chronr-banner.png') left center no-repeat;
+  width: 308px;
+  height: 108px;
   float: left;
-  height: 50px;
-  width: 320px;
-  margin-left: 10px;
 }
 
-#user_login {
-  position: absolute;
-  right: 0px;
-  bottom: 7px;
-  margin-right: 10px;
+/* column container */
+.colmask {
+  position:relative;	/* This fixes the IE7 overflow hidden bug */
+  clear:both;
+  float:left;
+  width:100%;			/* width of whole page */
+  overflow:hidden;		/* This chops off any overhanging divs */
+}
+
+/* common column settings */
+.colright,
+.colmid,
+.colleft {
+  float:left;
+  width:100%;
+  position:relative;
+}
+
+.col1,
+.col2,
+.col3 {
+  float:left;
+  position:relative;
+  padding:0 0 1em 0;
+  overflow:hidden;
+  min-height: 400px;
+}
+
+.col1 {
+  font-size: 127%;
+/*  border-right: 2px solid #f3f2f1;*/
+}
+
+/* 2 Column (right menu) settings */
+.rightmenu {
+/*  background:#eee;		/* right column background colour */
+}
+.rightmenu .colleft {
+  right:25%;			/* right column width */
+  background:#fff;		/* left column background colour */
+}
+.rightmenu .col1 {
+  width:71%;			/* left column content width (left column width minus left and right padding) */
+  left:27%;			/* (right column width) plus (left column left padding) */
+}
+.rightmenu .col2 {
+  width:21%;			/* right column content width (right column width minus left and right padding) */
+  left:29%;			/* (right column width) plus (left column left and right padding) plus (right column left padding) */
+  border-left: 2px solid #ffe2d8;
+  padding-left: 15px;
+}
+
+a.link, a, a.active {
+  color: #369;
+}
+
+#main_contentx {
+  color: black;
+  font-size: 127%;
+  background-color: white;
+/*  width: 757px;*/
+  margin: 0 auto 0 auto;
+/*  border-left: 1px solid #aaa;*/
+/*  border-right: 1px solid #aaa;*/
+  padding: 0;
+}
+
+#sidebar {
+  border: 1px solid #ff9370;
+  background-color: #ffe2d9;
+  margin: 0.5em;
+  padding: 1em;
+  float: right;
+  width: 200px;
+  font-size: 88%;
+}
+
+#sidebar h2 {
+  margin-top: 0;
+}
+
+#sidebar ul {
+  margin-left: 1.5em;
+  padding-left: 0;
+}
+
+h1,h2,h3,h4,h5,h6,#getting_started_steps {
+  font-family: Helvetica;
+  font-weight: normal;
+}
+
+h1 {
+  font-size: 22px;
+}
+
+h2 {
+  font-size: 150%;
+}
+
+#getting_started_steps a {
+  text-decoration: none;
+}
+
+#getting_started_steps a:hover {
+  text-decoration: underline;
+}
+
+#getting_started_steps li {
+  font-size: 80%;
+  margin-bottom: 0.5em;
+}
+
+#getting_started_steps h2 {
+  font-size: 120%;
+}
+
+#getting_started_steps p {
+  font: 100% "Lucida Grande", "Lucida Sans Unicode", geneva, verdana, sans-serif;
+}
+
+#footer {
+/*  border: 1px solid #aaa;*/
+/*  border-top: 0px none;*/
+  color: #999;
+  background-color: white;
+/*  padding: 10px;*/
+  font-size: 80%;
+  text-align: center;
+/*  width: 757px;*/
+  margin: 0 auto 1em auto;
+  clear:both;
+  float:left;
+  width:100%;
+}
+
+#footer a {
+  color: #999;
+}
+
+.code {
+  font-family: monospace;
+}
+
+span.code {
+  font-weight: bold;
+  background: #eee;
+}
+
+#status_block {
+  margin: 0 auto 0.5em auto;
+  padding: 15px 10px 15px 55px;
+  background: #cec URL('../images/ok.png') left center no-repeat;
+  border: 1px solid #9c9;
+  width: 450px;
+  font-size: 120%;
+  font-weight: bolder;
+}
+
+.notice {
+  margin: 0.5em auto 0.5em auto;
+  padding: 15px 10px 15px 55px;
+  width: 450px;
+  background: #eef URL('../images/info.png') left center no-repeat;
+  border: 1px solid #cce;
+}
+
+.fielderror {
+    color: red;
+    font-weight: bold;
+}
+
+
+/* TGPriFlash Classes */
+.flash_ok {
+  margin: 0.5em auto 0.5em auto;
+  padding: 15px 10px 15px 55px;
+  width: 450px;
+  background: #cec URL('/static/images/flash_ok.png') left center no-repeat;
+  border: 1px solid #9c9;
+  font-size: 120%;
+  font-weight: bolder;
+  clear: both;
+}
+
+.flash_warning {
+  margin: 0.5em auto 0.5em auto;
+  padding: 15px 10px 15px 55px;
+  width: 450px;
+  background: #eef URL('/static/images/flash_info.png') left center no-repeat;
+  border: 1px solid #99c;
+  font-size: 120%;
+  font-weight: bolder;
+  clear: both;
+}
+
+.flash_alert {
+  margin: 0.5em auto 0.5em auto;
+  padding: 15px 10px 15px 55px;
+  width: 450px;
+  background: #fd9393 URL('/static/images/flash_alert.png') left center no-repeat;
+  border: 1px solid #e11;
+  font-size: 120%;
+  font-weight: bolder;
+  clear: both;
+}
+
+.group_name {
+  font-weight: bold;
+  color: black;
+  background: #f3f2f1;
+  padding: 0.2em 0.3em;
+  margin: 0.5em 0;
+  clear: both;
+}
+
+.group_name2 {
+  font-weight: bold;
+  color: black;
+/*  background: #f3f2f1;*/
+  border-bottom: 1px solid #f3f2f1;
+  padding: 0.2em 0.3em;
+  margin: 0.5em 0;
+  clear: both;
+}
+
+.event_summary {
+  clear: both;
+  font-family: arial, helvetica, sans-serif;
+  padding-left: 0.5em;
+}
+
+.event {
+  clear: both;
+  font-family: arial, helvetica, sans-serif;
+  padding-bottom: 1.5em;
+  padding-left: 0.5em;
+}
+
+.event a:hover {
+  background: #f9e0c6;
+}
+
+.event_time_remaining {
+  font-family: "Myriad Pro", Tahoma, Geneva, sans-serif;
+  font-weight: bold;
+  width: 65px;
+  height: 60px;
+  float: left;
+  margin-right: 1em;
+  text-align: center;
+  background: white URL('/static/images/faintclock.png') center top no-repeat;
+  margin-bottom: 1em;
+}
+
+.event_time_remaining > div {
+  display: table;
+  width: 65px;
+  height: 60px;
+}
+.event_time_remaining > div > div {
+  display:table-row;
+}
+
+.event_time_remaining > div > div > div {
+  display: table-cell;
+  vertical-align: middle;
+  text-align: center;
+}
+
+.event_title {
+  font-size: 110%;
+  font-weight: bold;
+  padding-bottom: 0.3em;
+}
+
+.event_title a {
+  color: #ff6633;
+}
+
+.event_metadata {
   font-size: 85%;
 }
 
-#maincontent {
-  float:left;
-  width:67%;
-  border-right:2px solid rgb(141, 179, 180);
-/*  border-bottom:2px solid #000;*/
-  margin-right:15px;
-  padding-left: 10px;
-  padding-bottom:20px;
+.event_description {
+  color: #333333;
+  padding-bottom: 0.3em;
 }
 
-#rightcontent {
+.event_description a {
+  color: #333333;
+  font-size: 95%;
 }
 
-#footer {
-  clear: both;
-  font-size: 80%;
-  text-align: center;
-  color: #aaa;
-  padding-top: 20px;
+.event_duedate {
+  color: #999999;
+  font-size: 85%;
+  padding-bottom: 0.3em;
 }
 
-#footer a:link, #footer a:visited {
-  color: #aaa;
-  text-decoration: none;
+.event_owner_list {
+  float: left;
 }
 
-#nav_strip {
-  clear: both;
-  width: 100%;
-  margin-left: 0;
-  margin-right: 0;
-  padding-top: 2px;
-  padding-bottom: 2px;
-  background: rgb(141, 179, 180);
-  font-size: 90%;
+.event_owner {
+  font-size: 95%;
+  font-style: italic;
+  color: #333333;
 }
 
-#nav_strip ul {
+.event_owner a {
+  color: black;
+}
+
+.event_tags {
+  display: inline;
+  font-size: 95%;
+}
+
+.event_tags li {
+  list-style: none;
   display: inline;
 }
 
-#nav_strip li {
-  display: inline;
-  margin-left: 5px;
-  margin-right: 5px;
+.description {
+  background-color: #ffe2d9;
+/*  color: #ff6633;*/
+  padding: 5px;
 }
 
-#nav_strip li a {
-  padding: 2px 4px 2px 4px;
+.time_highlight {
+  font-size: 110%;
+  font-weight: bold;
 }
 
-#nav_strip a:link
-{
-	color: #043435;
-	background-color: transparent;
-	text-decoration: none;
+ul.taglist {
+  margin: 0 10px;
+  padding: 0;
+  list-style-type: none;
 }
 
-#nav_strip a:visited
-{
-	color: #0F5557;
-	background-color: transparent;
-	text-decoration: none;
+ul.taglist li {
+  display: inline;
+  padding: 0 4px;
 }
 
-#nav_strip a:hover, #nav_strip a:active
-{
-	color: #fff;
-	background-color: #084C4E;
+.banner_text {
+  font-family: Rockwell, Garamond, Times New Roman;
+  font-size: 14pt;
+  color: #666;
+  position: absolute;
+  bottom: 13px;
+  left: 330px;
 }
+
+.welcome {
+  color: #555;
+  font-size: 95%;
+}
Add a comment to this file

chronr/chronr/public/images/BlastOff-header.png

Removed
Old image
Add a comment to this file

chronr/chronr/public/images/apple-touch-icon.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/chronr-banner.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/faintclock.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/favicon.ico

Added
New image
Add a comment to this file

chronr/chronr/public/images/flash_alert.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/flash_info.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/flash_ok.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/header_inner.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/hosted-by-webfaction.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/info.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/ok.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/python-powered-w-100x40.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/tg_under_the_hood.png

Added
New image
Add a comment to this file

chronr/chronr/public/images/under_the_hood_blue.png

Added
New image

chronr/chronr/templates/base/base-index.mako

  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
-  <title>chronr - ${self.title()}</title>
-  <link href="/css/style.css" type="text/css" rel="stylesheet" />
+  <title>Chronr - ${self.title()}</title>
+  <link rel="stylesheet" type="text/css" media="screen" href="${url('/css/style.css')}" />
+  <link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />
 
   ${self.head()}
 </head>
 
 <body>
   <div id="header">
-    <a href="${url('/')}"><div id="header_logo"></div></a>
-    <div id="user_login">
+    <a href="/"><div id="banner"></div></a>
+    <div id="pageLogin">
     % if h.user():
-        ${h.user().display_name or h.user().user_name}.
+        Welcome <a href="/people/${h.user().user_name}">${h.user().display_name or h.user().user_name}</a>.
         <a href="/account/logout">Logout</a> 
     % else:
+      <a href="/account/register">Register</a> |
       <a href="/account/login?came_from=${h.url_for()}">Login</a>
     % endif
     </div>  <!-- id="user_login" -->
+    <span class="banner_text">Shared Event Engine</span>
   </div>  <!-- id="header" -->
-  
-  <div id="nav_strip">
-    <ul>
-      <li> <a href="/nav1">Nav Item 1</a> </li>
-      <li> <a href="/nav2">Nav Item 2</a> </li>
-    </ul>
-  </div>  <!-- id="nav_strip" -->
-  
-  <div id="maincontent">
+
   ${next.body()}
-  </div>  <!-- id="maincontent" -->
-
-  <div id="rightcontent">
-    ${self.rightcontent()}
-  </div>    <!-- id="rightcontent" -->
 
   <div id="footer">
-    &copy; Copyright <a href="#">You</a> 2009.
+    <p><a href="/about">About</a> | <a href="http://dev.chronr.com/">Developers</a></p>
+    <p>Copyright &copy; 2008-2009 <a href="http://chrismiles.info/">Chris Miles</a>. All rights reserved.</p>
+    <p>Version ?</p>
   </div>  <!-- id="footer" -->
+
+  <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+  </script>
+  <script type="text/javascript">
+  _uacct = "UA-121474-5";
+  urchinTracker();
+  </script>
 </body>
 
 <%def name="head()"></%def>
-<%def name="rightcontent()"></%def>

chronr/chronr/templates/home.mako

 
 <%def name="title()">Home</%def>
 
-Welcome to chronr.
+<div class="colmask rightmenu">
+  <div class="colleft">
+    <div class="col1">
 
-<%def name="rightcontent()">Right Hand Content.</%def>
+      <h2>Welcome to Chronr</h2>
+      
+      <div class="welcome">
+        <p>
+          Chronr is an open source event engine.  
+          Manage, follow and share events
+          that are of interest to you, either through the chronr.com website or
+          via custom applications using the <a href="http://dev.chronr.com/wiki/RESTfulAPI">Chronr API</a>.
+        </p>
+        <p>
+          Chronr is open source. That's right, not only is Chronr
+          built on open source technologies, but the Chronr source code is also open
+          source.  That means that if Chronr doesn't do something that you want
+          it to, you have the ability to <a href="http://dev.chronr.com/">fix it</a>.  Want to deploy a private instance
+          of Chronr for your organisation or club?  <a href="http://dev.chronr.com/">Go for it!</a>
+        </p>
+      </div>
+
+      <h2>Upcoming Events (<a href="/events/">more</a>)</h2>
+      
+      <div>
+        ${c.grouped_events}
+      </div>
+      
+    </div>
+
+    <div class="col2">
+      <p><a href="/events/">Browse Events</a></p>
+    </div>
+
+  </div>
+</div>

chronr/data/templates/base/base-index.mako.py

 __M_dict_builtin = dict
 __M_locals_builtin = locals
 _magic_number = 5
-_modified_time = 1248261675.0158801
+_modified_time = 1248701886.4342041
 _template_filename='/Users/chris/src/chronr-hg-rebuild_in_pylons/chronr/chronr/templates/base/base-index.mako'
 _template_uri='/base/base-index.mako'
 _template_cache=cache.Cache(__name__, _modified_time)
 _source_encoding='utf-8'
 from webhelpers.html import escape
-_exports = ['head', 'rightcontent']
+_exports = ['head']
 
 
 def render_body(context,**pageargs):
         next = context.get('next', UNDEFINED)
         __M_writer = context.writer()
         # SOURCE LINE 2
-        __M_writer(u'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\n<head>\n  <title>chronr - ')
+        __M_writer(u'<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\n<head>\n  <title>Chronr - ')
         # SOURCE LINE 7
         __M_writer(escape(self.title()))
-        __M_writer(u'</title>\n  <link href="/css/style.css" type="text/css" rel="stylesheet" />\n\n  ')
-        # SOURCE LINE 10
+        __M_writer(u'</title>\n  <link rel="stylesheet" type="text/css" media="screen" href="')
+        # SOURCE LINE 8
+        __M_writer(escape(url('/css/style.css')))
+        __M_writer(u'" />\n  <link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />\n\n  ')
+        # SOURCE LINE 11
         __M_writer(escape(self.head()))
-        __M_writer(u'\n</head>\n\n<body>\n  <div id="header">\n    <a href="')
-        # SOURCE LINE 15
-        __M_writer(escape(url('/')))
-        __M_writer(u'"><div id="header_logo"></div></a>\n    <div id="user_login">\n')
-        # SOURCE LINE 17
+        __M_writer(u'\n</head>\n\n<body>\n  <div id="header">\n    <a href="/"><div id="banner"></div></a>\n    <div id="pageLogin">\n')
+        # SOURCE LINE 18
         if h.user():
-            # SOURCE LINE 18
-            __M_writer(u'        ')
+            # SOURCE LINE 19
+            __M_writer(u'        Welcome <a href="/people/')
+            __M_writer(escape(h.user().user_name))
+            __M_writer(u'">')
             __M_writer(escape(h.user().display_name or h.user().user_name))
-            __M_writer(u'.\n        <a href="/account/logout">Logout</a> \n')
-            # SOURCE LINE 20
+            __M_writer(u'</a>.\n        <a href="/account/logout">Logout</a> \n')
+            # SOURCE LINE 21
         else:
-            # SOURCE LINE 21
-            __M_writer(u'      <a href="/account/login?came_from=')
+            # SOURCE LINE 22
+            __M_writer(u'      <a href="/account/register">Register</a> |\n      <a href="/account/login?came_from=')
+            # SOURCE LINE 23
             __M_writer(escape(h.url_for()))
             __M_writer(u'">Login</a>\n')
-        # SOURCE LINE 23
-        __M_writer(u'    </div>  <!-- id="user_login" -->\n  </div>  <!-- id="header" -->\n  \n  <div id="nav_strip">\n    <ul>\n      <li> <a href="/nav1">Nav Item 1</a> </li>\n      <li> <a href="/nav2">Nav Item 2</a> </li>\n    </ul>\n  </div>  <!-- id="nav_strip" -->\n  \n  <div id="maincontent">\n  ')
-        # SOURCE LINE 34
+        # SOURCE LINE 25
+        __M_writer(u'    </div>  <!-- id="user_login" -->\n    <span class="banner_text">Shared Event Engine</span>\n  </div>  <!-- id="header" -->\n\n  ')
+        # SOURCE LINE 29
         __M_writer(escape(next.body()))
-        __M_writer(u'\n  </div>  <!-- id="maincontent" -->\n\n  <div id="rightcontent">\n    ')
-        # SOURCE LINE 38
-        __M_writer(escape(self.rightcontent()))
-        __M_writer(u'\n  </div>    <!-- id="rightcontent" -->\n\n  <div id="footer">\n    &copy; Copyright <a href="#">You</a> 2009.\n  </div>  <!-- id="footer" -->\n</body>\n\n')
-        # SOURCE LINE 46
-        __M_writer(u'\n')
-        # SOURCE LINE 47
+        __M_writer(u'\n\n  <div id="footer">\n    <p><a href="/about">About</a> | <a href="http://dev.chronr.com/">Developers</a></p>\n    <p>Copyright &copy; 2008-2009 <a href="http://chrismiles.info/">Chris Miles</a>. All rights reserved.</p>\n    <p>Version ?</p>\n  </div>  <!-- id="footer" -->\n\n  <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">\n  </script>\n  <script type="text/javascript">\n  _uacct = "UA-121474-5";\n  urchinTracker();\n  </script>\n</body>\n\n')
+        # SOURCE LINE 45
         __M_writer(u'\n')
         return ''
     finally:
         context.caller_stack._pop_frame()
 
 
-def render_rightcontent(context):
-    context.caller_stack._push_frame()
-    try:
-        __M_writer = context.writer()
-        return ''
-    finally:
-        context.caller_stack._pop_frame()
-
-

chronr/data/templates/home.mako.py

 __M_dict_builtin = dict
 __M_locals_builtin = locals
 _magic_number = 5
-_modified_time = 1248261674.9838619
+_modified_time = 1248701380.1007521
 _template_filename='/Users/chris/src/chronr-hg-rebuild_in_pylons/chronr/chronr/templates/home.mako'
 _template_uri='/home.mako'
 _template_cache=cache.Cache(__name__, _modified_time)
 _source_encoding='utf-8'
 from webhelpers.html import escape
-_exports = ['rightcontent', 'title']
+_exports = ['title']
 
 
 def _mako_get_namespace(context, name):
     context.caller_stack._push_frame()
     try:
         __M_locals = __M_dict_builtin(pageargs=pageargs)
+        c = context.get('c', UNDEFINED)
         __M_writer = context.writer()
         # SOURCE LINE 1
         __M_writer(u'\n\n')
         # SOURCE LINE 3
-        __M_writer(u'\n\nWelcome to chronr.\n\n')
-        # SOURCE LINE 7
-        __M_writer(u'\n')
-        return ''
-    finally:
-        context.caller_stack._pop_frame()
-
-
-def render_rightcontent(context):
-    context.caller_stack._push_frame()
-    try:
-        __M_writer = context.writer()
-        # SOURCE LINE 7
-        __M_writer(u'Right Hand Content.')
+        __M_writer(u'\n\n<div class="colmask rightmenu">\n  <div class="colleft">\n    <div class="col1">\n\n      <h2>Welcome to Chronr</h2>\n      \n      <div class="welcome">\n        <p>\n          Chronr is an open source event engine.  \n          Manage, follow and share events\n          that are of interest to you, either through the chronr.com website or\n          via custom applications using the <a href="http://dev.chronr.com/wiki/RESTfulAPI">Chronr API</a>.\n        </p>\n        <p>\n          Chronr is open source. That\'s right, not only is Chronr\n          built on open source technologies, but the Chronr source code is also open\n          source.  That means that if Chronr doesn\'t do something that you want\n          it to, you have the ability to <a href="http://dev.chronr.com/">fix it</a>.  Want to deploy a private instance\n          of Chronr for your organisation or club?  <a href="http://dev.chronr.com/">Go for it!</a>\n        </p>\n      </div>\n\n      <h2>Upcoming Events (<a href="/events/">more</a>)</h2>\n      \n      <div>\n        ')
+        # SOURCE LINE 30
+        __M_writer(escape(c.grouped_events))
+        __M_writer(u'\n      </div>\n      \n    </div>\n\n    <div class="col2">\n      <p><a href="/events/">Browse Events</a></p>\n    </div>\n\n  </div>\n</div>\n')
         return ''
     finally:
         context.caller_stack._pop_frame()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.