Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #73 -- Added djangoproject.com templates to subversion. Now the…

…y're publicly available so people can learn from them.

git-svn-id: http://code.djangoproject.com/svn/djangoproject.com@189 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit e1d5ba5dbb8bd21e3d5b2c7eb70b73655eb36999 1 parent 64589db
adrian authored
Showing with 3,066 additions and 0 deletions.
  1. +11 −0 django_website/templates/404.html
  2. +15 −0 django_website/templates/500.html
  3. +55 −0 django_website/templates/base.html
  4. +14 −0 django_website/templates/base_2col.html
  5. +19 −0 django_website/templates/base_3col.html
  6. +7 −0 django_website/templates/base_code.html
  7. +7 −0 django_website/templates/base_community.html
  8. +7 −0 django_website/templates/base_docs.html
  9. +7 −0 django_website/templates/base_download.html
  10. +7 −0 django_website/templates/base_overview.html
  11. +24 −0 django_website/templates/base_weblog.html
  12. +14 −0 django_website/templates/blog/entries_archive.html
  13. +16 −0 django_website/templates/blog/entries_archive_day.html
  14. +16 −0 django_website/templates/blog/entries_archive_month.html
  15. +15 −0 django_website/templates/blog/entries_archive_year.html
  16. +28 −0 django_website/templates/blog/entries_detail.html
  17. +45 −0 django_website/templates/comments/free_preview.html
  18. +17 −0 django_website/templates/comments/posted.html
  19. +30 −0 django_website/templates/docs/documents_detail.html
  20. +7 −0 django_website/templates/flatfiles/code.html
  21. +7 −0 django_website/templates/flatfiles/community.html
  22. +7 −0 django_website/templates/flatfiles/default.html
  23. +58 −0 django_website/templates/flatfiles/docs.html
  24. +7 −0 django_website/templates/flatfiles/download.html
  25. +78 −0 django_website/templates/flatfiles/homepage.html
  26. +7 −0 django_website/templates/flatfiles/overview.html
  27. +1 −0  django_website/templates/rss/weblog_description.html
  28. +1 −0  django_website/templates/rss/weblog_title.html
  29. +5 −0 django_website/templates/trac_templates/README
  30. +40 −0 django_website/templates/trac_templates/attachment.cs
  31. +94 −0 django_website/templates/trac_templates/browser.cs
  32. +175 −0 django_website/templates/trac_templates/changeset.cs
  33. +54 −0 django_website/templates/trac_templates/error.cs
  34. +70 −0 django_website/templates/trac_templates/file.cs
  35. +47 −0 django_website/templates/trac_templates/footer.cs
  36. +109 −0 django_website/templates/trac_templates/header.cs
  37. +53 −0 django_website/templates/trac_templates/log.cs
  38. +31 −0 django_website/templates/trac_templates/log_rss.cs
  39. +207 −0 django_website/templates/trac_templates/macros.cs
  40. +177 −0 django_website/templates/trac_templates/milestone.cs
  41. +84 −0 django_website/templates/trac_templates/newticket.cs
  42. +162 −0 django_website/templates/trac_templates/query.cs
  43. +237 −0 django_website/templates/trac_templates/report.cs
  44. +51 −0 django_website/templates/trac_templates/report_rss.cs
  45. +53 −0 django_website/templates/trac_templates/roadmap.cs
  46. +116 −0 django_website/templates/trac_templates/search.cs
  47. +70 −0 django_website/templates/trac_templates/settings.cs
  48. +270 −0 django_website/templates/trac_templates/ticket.cs
  49. +23 −0 django_website/templates/trac_templates/ticket_notify_email.cs
  50. +98 −0 django_website/templates/trac_templates/timeline.cs
  51. +65 −0 django_website/templates/trac_templates/timeline_rss.cs
  52. +248 −0 django_website/templates/trac_templates/wiki.cs
View
11 django_website/templates/404.html
@@ -0,0 +1,11 @@
+{% extends "base_2col" %}
+
+{% block title %}Page not found{% endblock %}
+
+{% block content %}
+
+<h2>Page not found</h2>
+
+<p>We're sorry, but the requested page could not be found.</p>
+
+{% endblock %}
View
15 django_website/templates/500.html
@@ -0,0 +1,15 @@
+{% extends "base_2col" %}
+
+{% block title %}Page unavailable{% endblock %}
+
+{% block content %}
+
+<h2>Page unavailable</h2>
+
+<p>We're sorry, but the requested page is currently unavailable.</p>
+
+<p>We're messing around with things internally, and the server had a bit of a hiccup.</p>
+
+<p>Please try again later.</p>
+
+{% endblock %}
View
55 django_website/templates/base.html
@@ -0,0 +1,55 @@
+<!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" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Language" content="en-us" />
+
+ <title>Django | {% block title %}The Web framework for perfectionists with deadlines{% endblock %}</title>
+
+ <meta name="ROBOTS" content="ALL" />
+ <meta http-equiv="imagetoolbar" content="no" />
+ <meta name="MSSmartTagsPreventParsing" content="true" />
+ <meta name="Copyright" content="This site's design and contents Copyright (c) 2005 World Online." />
+ <!-- (c) Copyright 2005 World Online All Rights Reserved. -->
+
+ <meta name="keywords" content="Python, Django, framework, open-source" />
+ <meta name="description" content="Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design." />
+
+ <link href="http://media.djangoproject.com/css/base.css" rel="stylesheet" type="text/css" media="all" />
+ {% block extrahead %}{% endblock %}
+ </head>
+
+ <body id="{% block sectionid %}generic{% endblock %}">
+
+ <div id="container">
+ <div id="header">
+ <h1 id="logo"><a href="/"><img src="http://media.djangoproject.com/img/site/hdr_logo.gif" alt="Django" /></a></h1>
+ <ul id="nav-global">
+ <li id="nav-homepage"><a href="/">Home</a></li>
+ <li id="nav-download"><a href="/download/">Download</a></li>
+ <li id="nav-documentation"><a href="/documentation/">Documentation</a></li>
+ <li id="nav-weblog"><a href="/weblog/">Weblog</a></li>
+ <li id="nav-community"><a href="/community/">Community</a></li>
+ <li id="nav-code"><a href="http://code.djangoproject.com/">Code</a></li>
+ </ul>
+ </div>
+ <!-- END Header -->
+ <div id="billboard">{% block billboard %}{% endblock %}</div>
+ <div id="columnwrap">
+ {% block columnwrap %}
+ <div id="content-main">
+ {% block content %}{% endblock %}
+ </div>
+ <!-- END #content-main -->
+ {% endblock %}
+ </div>
+ <!-- END #content -->
+ <div id="footer">
+ <p>This site's design and contents Copyright &copy; 2005 Lawrence Journal-World unless otherwise noted.</p>
+ </div>
+ </div>
+ <!-- END #container -->
+ </body>
+</html>
+
View
14 django_website/templates/base_2col.html
@@ -0,0 +1,14 @@
+{% extends "base" %}
+
+{% block columnwrap %}
+ <div id="content-main">
+ {% block content %}
+ {% endblock %}
+ </div>
+ <!-- END #content-main -->
+ <div id="content-related" class="sidebar">
+ {% block content-related %}
+ {% endblock %}
+ </div>
+ <!-- END #content-related -->
+{% endblock %}
View
19 django_website/templates/base_3col.html
@@ -0,0 +1,19 @@
+{% extends "base" %}
+
+{% block columnwrap %}
+ <div id="subwrap">
+ <div id="content-main">
+ {% block content %}{% endblock %}
+ </div>
+ <!-- END #content-main -->
+ <div id="content-related" class="sidebar">
+ {% block content-related %}{% endblock %}
+ </div>
+ <!-- END #content-related -->
+ </div>
+ <!-- END #subwrap -->
+ <div id="content-extra" class="sidebar">
+ {% block content-extra %}{% endblock %}
+ </div>
+ <!-- END #content-extra -->
+{% endblock %}
View
7 django_website/templates/base_code.html
@@ -0,0 +1,7 @@
+{% extends "base_2col" %}
+
+{% block sectionid %}code{% endblock %}
+
+{% block title %}Code{% endblock %}
+
+{% block billboard %}<h2><a href="http://code.djangoproject.com/"><img src="http://media.djangoproject.com/img/site/bbd_code.gif" alt="Django source code" /></a></h2>{% endblock %}
View
7 django_website/templates/base_community.html
@@ -0,0 +1,7 @@
+{% extends "base" %}
+
+{% block sectionid %}community{% endblock %}
+
+{% block title %}Community{% endblock %}
+
+{% block billboard %}<h2>Community</h2>{% endblock %}
View
7 django_website/templates/base_docs.html
@@ -0,0 +1,7 @@
+{% extends "base_2col" %}
+
+{% block sectionid %}documentation{% endblock %}
+
+{% block title %}Documentation{% endblock %}
+
+{% block billboard %}<h2><a href="/documentation/">Django documentation</a></h2>{% endblock %}
View
7 django_website/templates/base_download.html
@@ -0,0 +1,7 @@
+{% extends "base" %}
+
+{% block sectionid %}download{% endblock %}
+
+{% block title %}Download{% endblock %}
+
+{% block billboard %}<h2>Download</h2>{% endblock %}
View
7 django_website/templates/base_overview.html
@@ -0,0 +1,7 @@
+{% extends "base" %}
+
+{% block sectionid %}overview{% endblock %}
+
+{% block title %}Overview{% endblock %}
+
+{% block billboard %}<h2><a href="/overview/">Overview</a></h2>{% endblock %}
View
24 django_website/templates/base_weblog.html
@@ -0,0 +1,24 @@
+{% extends "base_2col" %}
+
+{% block extrahead %}
+<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss/weblog/" />
+{% endblock %}
+
+{% block sectionid %}weblog{% endblock %}
+
+{% block title %}Weblog{% endblock %}
+
+{% block billboard %}<h2><a href="/weblog/">Weblog</a></h2>{% endblock %}
+
+{% block content-related %}
+<h2>Archives</h2>
+<ul class="linklist">
+<li><a href="/weblog/2005/jul/">July 2005</a></li>
+</ul>
+
+<h2>RSS feeds</h2>
+<ul class="linklist">
+<li><a href="/rss/weblog/">Latest weblog entries</a></li>
+<li><a href="http://code.djangoproject.com/timeline?daysback=90&amp;max=50&amp;wiki=on&amp;ticket=on&amp;changeset=on&amp;milestone=on&amp;format=rss">Recent code changes</a></li>
+</ul>
+{% endblock %}
View
14 django_website/templates/blog/entries_archive.html
@@ -0,0 +1,14 @@
+{% extends "base_weblog" %}
+
+{% block content %}
+
+<h1>Latest entries</h1>
+
+{% for object in latest %}
+<h2><a href="{{ object.get_absolute_url }}">{{ object.headline }}</a></h2>
+{{ object.body }}
+<p class="date small">Posted by <strong>{{ object.author }}</strong> on {{ object.pub_date|date:"F j, Y" }}</p>
+
+{% endfor %}
+
+{% endblock %}
View
16 django_website/templates/blog/entries_archive_day.html
@@ -0,0 +1,16 @@
+{% extends "base_weblog" %}
+
+{% block title %}Weblog | {{ day|date:"F j" }}{% endblock %}
+
+{% block content %}
+
+<h1>{{ day|date:"F j" }} archive</h1>
+
+{% for object in object_list %}
+<h2><a href="{{ object.get_absolute_url }}">{{ object.headline }}</a></h2>
+<p class="small date">{{ object.pub_date|date:"F j, Y" }}</p>
+{{ object.body }}
+
+{% endfor %}
+
+{% endblock %}
View
16 django_website/templates/blog/entries_archive_month.html
@@ -0,0 +1,16 @@
+{% extends "base_weblog" %}
+
+{% block title %}Weblog | {{ month|date:"F" }}{% endblock %}
+
+{% block content %}
+
+<h1>{{ month|date:"F" }} archive</h1>
+
+{% for object in object_list %}
+<h2><a href="{{ object.get_absolute_url }}">{{ object.headline }}</a></h2>
+<p class="small date">{{ object.pub_date|date:"F j, Y" }}</p>
+{{ object.body }}
+
+{% endfor %}
+
+{% endblock %}
View
15 django_website/templates/blog/entries_archive_year.html
@@ -0,0 +1,15 @@
+{% extends "base_weblog" %}
+
+{% block title %}Weblog | {{ year }}{% endblock %}
+
+{% block content %}
+
+<h1>{{ year }} archive</h1>
+
+<ul class="linklist">
+{% for date in date_list %}
+<li><a href="{{ date|date:"M"|lower }}/">{{ date|date:"F" }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
View
28 django_website/templates/blog/entries_detail.html
@@ -0,0 +1,28 @@
+{% extends "base_weblog" %}
+
+{% block title %}Weblog | {{ object.headline|escape }}{% endblock %}
+
+{% block content %}
+
+<h1>{{ object.headline }}</h1>
+{{ object.body }}
+<p class="date small">Posted by <strong>{{ object.author }}</strong> on {{ object.pub_date|date:"F j, Y" }}</p>
+
+{% load comments %}
+{% get_free_comment_list for blog.entries object.id as comment_list %}
+
+<div id="content-secondary">
+<h2 id="comments">Comments</h2>
+
+{% for comment in comment_list %}
+<div class="comment" id="c{{ comment.id }}">
+ <h3>{{ comment.person_name }} <span class="small quiet">{{ comment.submit_date|date:"F j, Y" }} at {{ comment.submit_date|date:"P" }}</span></h3>
+ {{ comment.comment|escape|urlizetrunc:"40"|linebreaks }}
+</div>
+{% endfor %}
+
+<h2>Post a comment</h2>
+
+{% free_comment_form for blog.entries object.id %}
+</div>
+{% endblock %}
View
45 django_website/templates/comments/free_preview.html
@@ -0,0 +1,45 @@
+{% extends "base_weblog" %}
+
+{% block title %}Django | Weblog | Preview comment{% endblock %}
+
+{% block content %}
+
+<style type="text/css">
+#comments textarea { width: 380px; font: 12px verdana,sans-serif; }
+</style>
+
+<h1>Preview your comment</h1>
+
+<form action="../postfree/" method="post">
+
+{% if comment_form.has_errors %}
+ <p><strong style="color: red;">Please correct the following errors.</strong></p>
+{% else %}
+ <div class="comment">
+ {{ comment.comment|escape|urlizetrunc:"40"|linebreaks }}
+ <p class="date small">Posted by <strong>{{ comment.person_name }}</strong></p>
+ </div>
+
+ <p><input type="submit" name="post" value="Post public comment" /></p>
+
+ <h1>Or edit it again</h1>
+{% endif %}
+
+{% if comment_form.person_name.errors %}
+ {{ comment_form.person_name.html_error_list }}
+{% endif %}
+
+<p><label for="id_person_name">Your name:</label> {{ comment_form.person_name }}</p>
+
+{% if comment_form.comment.errors %}
+{{ comment_form.comment.html_error_list }}
+{% endif %}
+
+<p><label for="id_person_name">Comment:</label><br />{{ comment_form.comment }}</p>
+<input type="hidden" name="options" value="{{ options }}" />
+<input type="hidden" name="target" value="{{ target }}" />
+<input type="hidden" name="gonzo" value="{{ hash }}" />
+<p><input type="submit" name="preview" value="Preview revised comment" /></p>
+</form>
+
+{% endblock %}
View
17 django_website/templates/comments/posted.html
@@ -0,0 +1,17 @@
+{% extends "base_weblog" %}
+
+{% block title %}Comment posted{% endblock %}
+
+{% block content %}
+
+<h1>Comment posted successfully</h1>
+
+<p>Thanks for contributing.</p>
+
+{% if object %}
+<ul>
+<li><a href="{{ object.get_absolute_url }}">View your comment</a></li>
+</ul>
+{% endif %}
+
+{% endblock %}
View
30 django_website/templates/docs/documents_detail.html
@@ -0,0 +1,30 @@
+{% extends "base_docs" %}
+
+{% block title %}Documentation | {{ object.title }}{% endblock %}
+
+{% block content %}
+{{ object.get_content }}
+
+{% load comments %}
+{% get_free_comment_list for docs.documents object.id as comment_list %}
+
+<div id="content-secondary">
+<h2 id="comments">Comments</h2>
+
+{% for comment in comment_list %}
+<div class="comment" id="c{{ comment.id }}">
+ <h3>{{ comment.person_name }} <span class="small quiet">{{ comment.submit_date|date:"F j, Y" }} at {{ comment.submit_date|date:"P" }}</span></h3>
+ {{ comment.comment|escape|urlizetrunc:"40"|linebreaks }}
+</div>
+{% endfor %}
+
+<h2>Post a comment</h2>
+
+<p class="small quiet"><strong>Note:</strong> comments will be periodically reviewed, integrated
+into the documentation proper, and removed.</p>
+
+{% free_comment_form for docs.documents object.id %}
+</div>
+{% endblock %}
+
+{% block content-related %}<h2>Contents</h2>{{ object.get_toc }}{% endblock %}
View
7 django_website/templates/flatfiles/code.html
@@ -0,0 +1,7 @@
+{% extends "base_code" %}
+
+{% block content %}
+<h1>{{ flatfile.title }}</h1>
+
+{{ flatfile.content }}
+{% endblock %}
View
7 django_website/templates/flatfiles/community.html
@@ -0,0 +1,7 @@
+{% extends "base_community" %}
+
+{% block content %}
+<h1>{{ flatfile.title }}</h1>
+
+{{ flatfile.content }}
+{% endblock %}
View
7 django_website/templates/flatfiles/default.html
@@ -0,0 +1,7 @@
+{% extends "base" %}
+
+{% block content %}
+<h1>{{ flatfile.title }}</h1>
+
+{{ flatfile.content }}
+{% endblock %}
View
58 django_website/templates/flatfiles/docs.html
@@ -0,0 +1,58 @@
+{% extends "base_docs" %}
+
+{% block content %}
+<h1>Getting Started</h1>
+
+<p>Note that we're not officially launched yet, and we're continuing to improve documentation as our foremost goal.</p>
+
+<h1>The essentials</h1>
+
+<p>Read the following before anything else.</p>
+
+<h3><a href="install/">Installation guide</a></h3>
+<p>How to get the code and set things up so that you can use Django.</p>
+
+<h3>Tutorial: Writing your first Django app</h3>
+<ul>
+<li><a href="/documentation/tutorial1/">Part 1: Initialization, creating models, the database API</a></li>
+<li><a href="/documentation/tutorial2/">Part 2: Exploring the automatically-generated admin site</a></li>
+</ul>
+
+<h3><a href="faq/">FAQ</a></h3>
+<p>Wherein all Q's F A'd are answered.</p>
+
+<h1 id="reference">Reference</h1>
+
+<h3><a href="model_api/">Model reference</a></h3>
+<p>An explanation of all the options and settings available to data models.</p>
+
+<h3><a href="db_api/">Database abstraction layer reference</a></h3>
+<p>How to use data models to access the database.</p>
+
+<h3><a href="templates/">Template authoring guide</a></h3>
+<p>An introduction and guide to the template language for designers and HTML authors.</p>
+
+<h3><a href="cache/">Cache framework</a></h3>
+<p>So you got slashdotted. Now what?</p>
+
+<h3><a href="url_dispatch/">URL dispatch</a></h3>
+<p>Design your URLs to be as purty as your code.</p>
+
+<h3><a href="admin_css/">Django admin CSS guide</a></h3>
+<p>Although the underlying format of the admin pages is built in to Django, you
+can customize the look and feel by editing the admin stylesheet and images.</p>
+
+{% endblock %}
+
+{% block content-related %}
+
+<h2>Getting help</h2>
+<ul class="toc">
+ <li><a href="irc://irc.freenode.net/django">#django IRC channel</a></li>
+ <li><a href="http://loglibrary.com/show_page/latest/179">#django IRC logs</a></li>
+ <li><a href="http://groups-beta.google.com/group/django-users">Django-users mailing list</a></li>
+ <li><a href="http://groups-beta.google.com/group/django-developers">Django-developers mailing list</a></li>
+ <li><a href="http://code.djangoproject.com/newticket">Report a bug</a></li>
+</ul>
+
+{% endblock %}
View
7 django_website/templates/flatfiles/download.html
@@ -0,0 +1,7 @@
+{% extends "base_download" %}
+
+{% block content %}
+<h1>{{ flatfile.title }}</h1>
+
+{{ flatfile.content }}
+{% endblock %}
View
78 django_website/templates/flatfiles/homepage.html
@@ -0,0 +1,78 @@
+{% extends "base_3col" %}
+
+{% block sectionid %}homepage{% endblock %}
+
+{% block billboard %}<h2>The Web framework for perfectionists (with deadlines). Django makes it easier to build better Web apps more quickly and with less code.</h2>{% endblock %}
+
+{% block content %}
+<h1>Meet Django</h1>
+<h2 class="deck">Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.</h2>
+<p>Developed and used over the past two years by a newspaper Web operation, Django is well-suited for developing content-management systems. It was designed from scratch to handle the intensive deadlines of a newsroom and the stringent requirements of experienced Web developers. It focuses on automating as much as possible and adhering to the <a href="http://c2.com/cgi/wiki?DontRepeatYourself"><abbr title="Don't Repeat Yourself">DRY</abbr> principle</a>.</p>
+<p>Dive in by <a href="/overview/">reading the overview &rarr;</a></p>
+<p>When you're ready to code, read the <a href="/documentation/install/">installation guide</a> and <a href="/documentation/tutorial1/">tutorial</a>.</p>
+<div id="content-secondary">
+ <h2>The Django framework</h2>
+ <h3>Object-relational mapper</h3>
+ <p>Define your <a href="http://www.djangoproject.com/documentation/model_api/">data models</a> entirely in Python. You get a rich, <a href="/documentation/db_api/">dynamic database-access API</a> for free &mdash; but you can still write SQL if needed.</p>
+ <h3>URL dispatcher</h3>
+ <p>Design pretty, <a href="http://www.djangoproject.com/documentation/url_dispatch/">cruft-free URLs</a> with no framework-specific limitations. Be as flexible as you like.</p>
+ <h3>Template system</h3>
+ <p>Use Django's powerful and extensible <a href="http://www.djangoproject.com/documentation/templates/">template language</a> to separate design, content and Python code.</p>
+ <h3>Cache system</h3>
+ <p>Hook into memcached or other cache frameworks for <a href="http://www.djangoproject.com/documentation/cache/">super caching</a> &mdash; as granularly as you need.</p>
+ <h3>Automatic admin interface</h3>
+ <p>Save yourself the tedious work of creating interfaces for people to add and update content. <a href="http://www.djangoproject.com/documentation/admin_css/">Django does that automatically</a>.</p>
+</div>
+<!-- END #content-secondary -->
+{% endblock %}
+
+{% block content-related %}
+
+<h2>Download</h2>
+<ul class="linklist">
+ <li><a href="/download/">Get current version: 1.0</a></li>
+</ul>
+<h2>Documentation</h2>
+<ul class="linklist">
+ <li><a href="/documentation/tutorial1/">Tutorial</a></li>
+ <li><a href="/documentation/templates/">Template language guide</a></li>
+ <li><a href="/documentation/#reference">API reference</a></li>
+</ul>
+<h2>Sites that use Django</h2>
+<dl>
+ <dt><a href="http://www.chicagocrime.org/">chicagocrime.org</a></dt>
+ <dd>A freely browsable database of crimes reported in Chicago.</dd>
+ <dt><a href="http://www.lawrence.com/">lawrence.com</a></dt>
+ <dd>An internationally renowned local-entertainment site with events, stories, bands, drink specials and more.</dd>
+ <dt><a href="http://www.ljworld.com/">LJWorld.com</a></dt>
+ <dd>An industry-leading newspaper site.</dd>
+ <dt><a href="http://www.kusports.com/">KUSports.com</a></dt>
+ <dd>The bible for University of Kansas sports fans.</dd>
+ <dt><a href="http://www.lawrencechamber.com/">lawrencechamber.com</a></dt>
+ <dd>A Chamber of Commerce site that doesn't suck.</dd>
+ <dt><a href="http://www.kkcscountry.com/">KKCScountry.com</a></dt>
+ <dd>A radio station site in Colorado Springs.</dd>
+</dl>
+{% endblock %}
+
+{% block content-extra %}
+<h2>Weblog</h2>
+
+{% load latestblogentry %}
+{% get_latest_blog_entries 2 as latest_entries %}
+
+{% for latest_entry in latest_entries %}
+<h3><a href="{{ latest_entry.get_absolute_url }}">{{ latest_entry.headline }}</a></h3>
+<p class="date">by <strong>{{ latest_entry.author }}</strong> on {{ latest_entry.pub_date|date:"F j, Y" }}</p>
+{{ latest_entry.summary }}
+<p class="more"><a href="{{ latest_entry.get_absolute_url }}">Read more</a> / <a href="{{ latest_entry.get_absolute_url }}#comments">Comments</a></p>
+{% endfor %}
+
+{% comment %}
+<blockquote class="fancyquote">
+<p>Django's cool. I should know because I’m British.</p>
+<cite><strong>Simon Willison</strong><br />Mad Genius</cite>
+</blockquote>
+{% endcomment %}
+
+{% endblock %}
View
7 django_website/templates/flatfiles/overview.html
@@ -0,0 +1,7 @@
+{% extends "base_overview" %}
+
+{% block content %}
+<h1>{{ flatfile.title }}</h1>
+
+{{ flatfile.content }}
+{% endblock %}
View
1  django_website/templates/rss/weblog_description.html
@@ -0,0 +1 @@
+{{ obj.body }}
View
1  django_website/templates/rss/weblog_title.html
@@ -0,0 +1 @@
+{{ obj.headline }}
View
5 django_website/templates/trac_templates/README
@@ -0,0 +1,5 @@
+This directory contains Trac's default clearsilver templates.
+
+Local modifications to these files might be lost during the installation of
+a new Trac version. This can be avoided by making a copy of this entire
+directory before beginning modifications.
View
40 django_website/templates/trac_templates/attachment.cs
@@ -0,0 +1,40 @@
+<?cs set:html.stylesheet = 'css/code.css' ?>
+<?cs include "header.cs" ?>
+<?cs include "macros.cs" ?>
+
+<div id="ctxtnav" class="nav"></div>
+
+<div id="content" class="attachment">
+
+ <h3>Add Attachment to <a href="<?cs
+ var:file.attachment_parent_href?>"><?cs var:file.attachment_parent?></a></h3>
+ <form id="attachment" method="post" enctype="multipart/form-data" action="<?cs
+ var:cgi_location ?>">
+ <div class="field">
+ <label for="file">File:</label>
+ <input type="file" id="file" name="attachment" />
+ </div>
+ <fieldset>
+ <legend>Attachment Info</legend>
+ <div class="field">
+ <label for="author">Your email or username:</label><br />
+ <input type="text" id="author" name="author" class="textwidget" size="30"
+ value="<?cs var:attachment.author?>" />
+ </div>
+ <div class="field">
+ <label for="description">Description of the file (optional):</label><br />
+ <input type="text" id="description" name="description" class="textwidget"
+ size="60" />
+ </div><br />
+ </fieldset>
+ <div class="buttons">
+ <input type="hidden" name="mode" value="attachment" />
+ <input type="hidden" name="type" value="<?cs var:attachment.type ?>" />
+ <input type="hidden" name="id" value="<?cs var:attachment.id ?>" />
+ <input type="submit" value="Add Attachment" />
+ <input type="submit" name="cancel" value="Cancel" />
+ </div>
+ </form>
+
+</div>
+<?cs include "footer.cs"?>
View
94 django_website/templates/trac_templates/browser.cs
@@ -0,0 +1,94 @@
+<?cs set:html.stylesheet = 'css/browser.css' ?>
+<?cs include: "header.cs"?>
+<?cs include "macros.cs"?>
+
+<div id="ctxtnav" class="nav">
+ <ul>
+ <li class="last"><a href="<?cs var:browser.log_href ?>">Revision Log</a></li>
+ </ul>
+</div>
+
+<div id="content" class="browser">
+ <?cs call:browser_path_links(browser.path, browser) ?>
+
+ <div id="jumprev">
+ <form action="<?cs var:browser_current_href ?>" method="get">
+ <div>
+ <label for="rev">View revision:</label>
+ <input type="text" id="rev" name="rev" value="<?cs
+ var:browser.revision?>" size="4" />
+ </div>
+ </form>
+ </div>
+
+ <table class="listing" id="dirlist">
+ <thead>
+ <tr>
+ <th class="name<?cs if:browser.order == "name" ?> <?cs
+ var:browser.order_dir ?><?cs /if ?>"><a title="Sort by name<?cs
+ if:browser.order == "name" && browser.order_dir == "asc" ?> (descending)<?cs
+ /if ?>" href="<?cs var:browser.current_href?>?order=name<?cs
+ if:browser.order == "name" && browser.order_dir == "asc" ?>&desc=1<?cs
+ /if ?>">Name</a>
+ </th>
+ <th class="rev">Rev</th>
+ <th class="age<?cs if:browser.order == "date" ?> <?cs
+ var:browser.order_dir ?><?cs /if ?>"><a title="Sort by age<?cs
+ if:browser.order == "date" && browser.order_dir == "asc" ?> (descending)<?cs
+ /if ?>" href="<?cs var:browser.current_href?>?order=date<?cs
+ if:browser.order == "date" && browser.order_dir == "asc" ?>&desc=1<?cs
+ /if ?>">Age</a>
+ </th>
+ <th class="change">Last Change</th>
+ </tr>
+ </thead>
+ <tbody>
+ <?cs if:browser.path != "/" ?>
+ <tr class="even">
+ <td class="name" colspan="4">
+ <a class="parent" title="Parent Directory" href="<?cs
+ var:browser.parent_href ?>">../</a>
+ </td>
+ </tr>
+ <?cs /if ?>
+ <?cs each:item = browser.items ?>
+ <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>">
+ <td class="name"><?cs
+ if:item.is_dir ?><?cs
+ if:item.permission ?>
+ <a class="dir" title="Browse Directory" href="<?cs
+ var:item.browser_href ?>"><?cs var:item.name ?></a><?cs
+ else ?>
+ <span class="dir" title="Access Denied" href=""><?cs
+ var:item.name ?></span><?cs
+ /if ?><?cs
+ else ?><?cs
+ if:item.permission != '' ?>
+ <a class="file" title="View File" href="<?cs
+ var:item.browser_href ?>"><?cs var:item.name ?></a><?cs
+ else ?>
+ <span class="file" title="Access Denied" href=""><?cs
+ var:item.name ?></span><?cs
+ /if ?><?cs
+ /if ?>
+ </td>
+ <td class="rev"><?cs if:item.permission != '' ?><a title="View Revision Log" href="<?cs
+ var:item.log_href ?>"><?cs var:item.created_rev ?></a><?cs else ?><?cs var:item.created_rev ?><?cs /if ?></td>
+ <td class="age"><span title="<?cs var:item.date ?>"><?cs
+ var:item.age ?></span></td>
+ <td class="change">
+ <span class="author"><?cs var:item.author ?>:</span>
+ <span class="change"><?cs var:item.change ?></span>
+ </td>
+ </tr>
+ <?cs /each ?>
+ </tbody>
+ </table>
+
+ <div id="help">
+ <strong>Note:</strong> See <a href="<?cs var:trac.href.wiki
+ ?>/TracBrowser">TracBrowser</a> for help on using the browser.
+ </div>
+
+</div>
+<?cs include:"footer.cs"?>
View
175 django_website/templates/trac_templates/changeset.cs
@@ -0,0 +1,175 @@
+<?cs set:html.stylesheet = 'css/changeset.css' ?>
+<?cs include "header.cs"?>
+<?cs include "macros.cs"?>
+
+<div id="ctxtnav" class="nav">
+ <h2>Changeset Navigation</h2>
+ <ul><?cs
+ if:len(links.prev) ?>
+ <li class="first<?cs if:!len(links.next) ?> last<?cs /if ?>">
+ <a class="prev" href="<?cs var:links.prev.0.href ?>" title="<?cs
+ var:links.prev.0.title ?>">Previous Changeset</a>
+ </li><?cs
+ /if ?><?cs
+ if:len(links.next) ?>
+ <li class="<?cs if:len(links.prev) ?>first <?cs /if ?>last">
+ <a class="next" href="<?cs var:links.next.0.href ?>" title="<?cs
+ var:links.next.0.title ?>">Next Changeset</a>
+ </li><?cs
+ /if ?>
+ </ul>
+</div>
+
+<div id="content" class="changeset">
+<h1>Changeset <?cs var:changeset.revision ?></h1>
+
+<?cs if:len(changeset.diff.files) ?><form method="post" id="prefs" action="">
+ <div>
+ <label for="style">View differences</label>
+ <select id="style" name="style">
+ <option value="inline"<?cs
+ if:diff.style == 'inline' ?> selected="selected"<?cs
+ /if ?>>inline</option>
+ <option value="sidebyside"<?cs
+ if:diff.style == 'sidebyside' ?> selected="selected"<?cs
+ /if ?>>side by side</option>
+ </select>
+ <div class="field">
+ Show <input type="text" name="contextlines" id="contextlines" size="2"
+ maxlength="2" value="<?cs var:diff.options.contextlines ?>" />
+ <label for="contextlines">lines around each change</label>
+ </div>
+ <fieldset id="ignore">
+ <legend>Ignore:</legend>
+ <div class="field">
+ <input type="checkbox" id="blanklines" name="ignoreblanklines"<?cs
+ if:diff.options.ignoreblanklines ?> checked="checked"<?cs /if ?> />
+ <label for="blanklines">Blank lines</label>
+ </div>
+ <div class="field">
+ <input type="checkbox" id="case" name="ignorecase"<?cs
+ if:diff.options.ignorecase ?> checked="checked"<?cs /if ?> />
+ <label for="case">Case changes</label>
+ </div>
+ <div class="field">
+ <input type="checkbox" id="whitespace" name="ignorewhitespace"<?cs
+ if:diff.options.ignorewhitespace ?> checked="checked"<?cs /if ?> />
+ <label for="whitespace">White space changes</label>
+ </div>
+ </fieldset>
+ <div class="buttons">
+ <input type="submit" name="update" value="Update" />
+ </div>
+ </div>
+</form><?cs /if ?>
+
+<dl id="overview">
+ <dt class="time">Timestamp:</dt>
+ <dd class="time"><?cs var:changeset.time ?></dd>
+ <dt class="author">Author:</dt>
+ <dd class="author"><?cs var:changeset.author ?></dd>
+ <dt class="message">Message:</dt>
+ <dd class="message" id="searchable"><?cs var:changeset.message ?></dd>
+ <dt class="files">Files:</dt>
+ <dd class="files"><?cs set:anchor_idx = #0 ?>
+ <ul><?cs each:item = changeset.changes ?>
+ <li>
+ <?cs if:item.change == "A" ?>
+ <div class="add"></div>
+ <a href="<?cs var:item.browser_href ?>" title="Show file in browser"><?cs
+ var:item.name ?></a> <span class="comment">(added)</span>
+ <?cs elif:item.change == "M" ?>
+ <div class="mod"></div>
+ <a href="<?cs var:item.browser_href ?>" title="Show file in browser"><?cs
+ var:item.name ?></a> <span class="comment">(modified)</span><?cs
+ if:len(changeset.diff.files[anchor_idx].changes) ?>
+ (<a href="#file<?cs var:anchor_idx ?>" title="Show differences">diff</a>)<?cs
+ /if ?><?cs set:anchor_idx = anchor_idx + #1 ?>
+ <?cs elif:item.change == "D" ?>
+ <div class="rem"></div>
+ <?cs var:item.name ?> <span class="comment">(deleted)</span>
+ <?cs /if ?>
+ </li>
+ <?cs /each ?></ul>
+ </dd>
+</dl>
+
+<div class="diff">
+ <div id="legend">
+ <h3>Legend:</h3>
+ <dl>
+ <dt class="unmod"></dt><dd>Unmodified</dd>
+ <dt class="add"></dt><dd>Added</dd>
+ <dt class="rem"></dt><dd>Removed</dd>
+ <dt class="mod"></dt><dd>Modified</dd>
+ </dl>
+ </div>
+ <ul>
+ <?cs each:file = changeset.diff.files ?>
+ <?cs if:len(file.changes) ?>
+ <li id="file<?cs var:name(file) ?>">
+ <h2><a href="<?cs
+ var:file.browser_href.new ?>" title="Show version <?cs
+ var:file.rev.new ?> of this file in browser"><?cs
+ var:file.name.new ?></a></h2>
+ <?cs if:diff.style == 'sidebyside' ?>
+ <table class="sidebyside" summary="Differences" cellspacing="0">
+ <colgroup class="base">
+ <col class="lineno" /><col class="content" />
+ <colgroup class="chg">
+ <col class="lineno" /><col class="content" />
+ </colgroup>
+ <thead><tr>
+ <th colspan="2"><a href="<?cs var:file.browser_href.old ?>">Revision <?cs
+ var:file.rev.old ?></a></th>
+ <th colspan="2"><a href="<?cs var:file.browser_href.new ?>">Revision <?cs
+ var:file.rev.new ?></a></th>
+ </tr></thead>
+ <?cs each:change = file.changes ?>
+ <tbody>
+ <?cs call:diff_display(change, diff.style) ?>
+ </tbody>
+ <?cs if:name(change) < len(file.changes) - 1 ?>
+ <tbody class="skippedlines">
+ <tr><th>&hellip;</th><td>&nbsp;</td>
+ <th>&hellip;</th><td>&nbsp;</td></tr>
+ </tbody>
+ <?cs /if ?>
+ <?cs /each ?>
+ </table>
+ <?cs else ?>
+ <table class="inline" summary="Differences" cellspacing="0">
+ <colgroup>
+ <col class="lineno" />
+ <col class="lineno" />
+ <col class="content" />
+ </colgroup>
+ <thead><tr>
+ <th title="Revision <?cs var:file.rev.old ?>"><a href="<?cs
+ var:file.browser_href.old ?>" title="Show revision <?cs
+ var:file.rev.old ?> of this file in browser">r<?cs
+ var:file.rev.old ?></a></th>
+ <th title="Revision <?cs var:file.rev.new ?>"><a href="<?cs
+ var:file.browser_href.new ?>" title="Show revision <?cs
+ var:file.rev.new ?> of this file in browser">r<?cs
+ var:file.rev.new ?></a></th>
+ <th>&nbsp;</th>
+ </tr></thead>
+ <?cs each:change = file.changes ?>
+ <?cs call:diff_display(change, diff.style) ?>
+ <?cs if:name(change) < len(file.changes) - 1 ?>
+ <tbody class="skippedlines">
+ <tr><th>&hellip;</th><th>&hellip;</th><td>&nbsp;</td></tr>
+ </tbody>
+ <?cs /if ?>
+ <?cs /each ?>
+ </table>
+ <?cs /if ?>
+ </li>
+ <?cs /if ?>
+ <?cs /each ?>
+ </ul>
+</div>
+
+</div>
+<?cs include "footer.cs"?>
View
54 django_website/templates/trac_templates/error.cs
@@ -0,0 +1,54 @@
+<?cs include "header.cs"?>
+
+<div id="ctxtnav" class="nav"></div>
+
+<div id="content" class="error">
+
+ <?cs if error.type == "TracError" ?>
+ <h3><?cs var:error.title ?></h3>
+ <p class="message">
+ <?cs var:error.message ?>
+ </p>
+
+ <?cs elif error.type == "internal" ?>
+ <h3>Oops...</h3>
+ <div class="message">
+ <strong>Trac detected an internal error:</strong>
+ <pre><?cs var:error.message ?></pre>
+ </div>
+ <p>
+ If you think this really should work and you can reproduce it. Then you
+ should consider to report this problem to the Trac team.
+ </p>
+ <p>
+ Go to <a href="<?cs var:trac.href.homepage ?>"><?cs
+ var:trac.href.homepage ?></a> and create a new ticket where you describe
+ the problem, how to reproduce it. Don't forget to include the python
+ traceback found below.
+ </p>
+
+ <?cs elif error.type == "permission" ?>
+ <h3>Permission Denied</h3>
+ <p class="message">
+ This action requires <tt><?cs var:error.action ?></tt> permission.
+ </p>
+ <div id="help">
+ <strong>Note</strong>: See
+ <a href="<?cs var:trac.href.wiki ?>/TracPermissions">TracPermissions</a> for
+ help on managing Trac permissions.
+ </div>
+
+ <?cs /if ?>
+
+ <p>
+ <a href="<?cs var:trac.href.wiki ?>/TracGuide">TracGuide</a>
+ &mdash; The Trac User and Administration Guide
+ </p>
+
+ <?cs if $error.traceback ?>
+ <h4>Python traceback</h4>
+ <pre><?cs var:error.traceback ?></pre>
+ <?cs /if ?>
+
+</div>
+<?cs include "footer.cs"?>
View
70 django_website/templates/trac_templates/file.cs
@@ -0,0 +1,70 @@
+<?cs set:html.stylesheet = 'css/browser.css' ?>
+<?cs include "header.cs"?>
+<?cs include "macros.cs"?>
+
+<div id="ctxtnav" class="nav">
+ <?cs if:args.mode != 'attachment' && trac.acl.LOG_VIEW ?><ul>
+ <li class="last"><a href="<?cs var:file.logurl ?>">Revision Log</a></li>
+ </ul><?cs /if ?>
+</div>
+
+<div id="content" class="file">
+
+ <?cs if file.attachment_parent ?>
+ <h1><a href="<?cs var:file.attachment_parent_href ?>"><?cs
+ var:file.attachment_parent ?></a>: <?cs var:file.filename ?></h1>
+
+ <?cs else ?>
+ <?cs call:browser_path_links(file.path, file) ?>
+ <div id="jumprev">
+ <form action="" method="get">
+ <div>
+ <label for="rev">View revision:</label>
+ <input type="text" id="rev" name="rev" value="<?cs
+ var:file.rev ?>" size="4" />
+ </div>
+ </form>
+ </div>
+ <table id="info" summary="Revision info">
+ <tr>
+ <th scope="row">
+ Revision <a href="<?cs var:file.chgset_href ?>"><?cs var:file.rev ?></a>
+ (by <?cs var:file.rev_author ?>, <?cs var:file.rev_date ?>)
+ </th>
+ <td class="message"><?cs var:file.rev_msg ?></td>
+ </tr>
+ </table>
+ <?cs /if ?>
+
+ <div id="preview">
+ <?cs if:file.highlighted_html ?>
+ <?cs var:file.highlighted_html ?>
+ <?cs elif:file.max_file_size_reached ?>
+ <strong>HTML preview not available</strong>, since file-size exceeds
+ <?cs var:file.max_file_size ?> bytes.
+ Try <a href="?format=raw">downloading the file</a> instead.
+ <?cs else ?>
+ <strong>HTML preview not available</strong>. To view, <a href="<?cs
+ var:file.filename + '?rev=' + file.rev ?>&format=raw">download the
+ file</a>.
+ <?cs /if ?>
+ </div>
+
+ <?cs if:attachment.delete_href ?><div class="buttons">
+ <form method="get" action=""><div id="delete">
+ <input type="hidden" name="delete" value="yes" />
+ <input type="submit" value="Delete Attachment" onclick="return confirm('Do you really want to delete this attachment?\nThis is an irreversible operation.')" />
+ </div></form>
+ </div><?cs /if ?>
+
+ <?cs if:!file.attachment_parent ?>
+ <div id="help">
+ <strong>Note:</strong> See <a href="<?cs var:trac.href.wiki
+ ?>/TracBrowser">TracBrowser</a> for help on using the browser.
+ </div>
+ <?cs /if ?>
+
+
+</div>
+
+<?cs include "footer.cs"?>
View
47 django_website/templates/trac_templates/footer.cs
@@ -0,0 +1,47 @@
+<script type="text/javascript">searchHighlight()</script>
+
+<?cs if:len(links.alternate) ?>
+<div id="altlinks">
+ <h3>Download in other formats:</h3>
+ <ul><?cs each:link = links.alternate ?><?cs
+ set:isfirst = name(link) == 0 ?><?cs
+ set:islast = name(link) == len(links.alternate) - 1?>
+ <li<?cs
+ if:isfirst || islast ?> class="<?cs
+ if:isfirst ?>first<?cs /if ?><?cs
+ if:isfirst && islast ?> <?cs /if ?><?cs
+ if:islast ?>last<?cs /if ?>"<?cs
+ /if ?>>
+ <a href="<?cs var:link.href ?>"<?cs if:link.class ?> class="<?cs
+ var:link.class ?>"<?cs /if ?>><?cs var:link.title ?></a>
+ </li><?cs /each ?>
+ </ul>
+</div>
+<?cs /if ?>
+
+
+</div>
+
+<div id="footer">
+ <div id="metanav" class="nav">
+ <h2>Navigation</h2>
+ <ul>
+ <li class="first"><?cs if:trac.authname == "anonymous" || !trac.authname ?>
+ <a href="<?cs var:trac.href.login ?>">Login</a>
+ <?cs else ?>
+ logged in as <?cs var:trac.authname ?> </li>
+ <li><a href="<?cs var:trac.href.logout ?>">Logout</a>
+ <?cs /if ?></li>
+ <li><a href="<?cs var:trac.href.settings ?>">Settings</a></li>
+ <li style="display: none"><a accesskey="6" href="<?cs var:trac.href.wiki ?>/TracGuide">Help/Guide</a></li>
+ <li style="display: none"><a accesskey="5" href="http://projects.edgewall.com/trac/wiki/TracFaq">FAQ</a></li>
+ <li style="display: none"><a accesskey="0" href="<?cs var:trac.href.wiki ?>/TracAccessibility">Accessibility</a></li>
+ <li class="last"><a accesskey="9" href="<?cs var:trac.href.about ?>">About Trac</a></li>
+ </ul>
+ </div>
+</div>
+
+
+<?cs include "site_footer.cs" ?>
+ </body>
+</html>
View
109 django_website/templates/trac_templates/header.cs
@@ -0,0 +1,109 @@
+<!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" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+ <meta http-equiv="Content-Language" content="en-us" />
+
+ <title>Django | Code <?cs if:title ?>| <?cs var:title ?><?cs /if ?></title>
+
+ <meta name="ROBOTS" content="ALL" />
+ <meta http-equiv="imagetoolbar" content="no" />
+ <meta name="MSSmartTagsPreventParsing" content="true" />
+ <meta name="Copyright" content="This site's design and contents Copyright (c) 2005 World Online." />
+ <!-- (c) Copyright 2005 World Online All Rights Reserved. -->
+
+ <meta name="keywords" content="Python, Django, framework, open-source" />
+ <meta name="description" content="Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design." />
+
+ <?cs each:rel = links ?>
+ <?cs each:link = rel ?>
+ <link rel="<?cs var:name(rel) ?>"
+ href="<?cs var:link.href ?>"
+ <?cs if:link.title ?>title="<?cs var:link.title ?>"<?cs /if ?>
+ <?cs if:link.type ?>type="<?cs var:link.type ?>"<?cs /if ?> />
+ <?cs /each ?>
+ <?cs /each ?>
+
+ <style type="text/css">
+ <?cs if:html.stylesheet ?>@import url(http://media.djangoproject.com/trac/<?cs
+ var:html.stylesheet ?>);<?cs /if ?>
+ <?cs include "site_css.cs" ?>
+ </style>
+ <script src="<?cs var:htdocs_location ?>trac.js" type="text/javascript"></script>
+
+ <link href="http://media.djangoproject.com/trac/css/trac.css" rel="stylesheet" type="text/css" media="all" />
+ <link href="http://media.djangoproject.com/css/base.css" rel="stylesheet" type="text/css" media="all" />
+
+ </head>
+
+ <body id="code">
+
+ <div id="container">
+ <div id="header">
+ <h1 id="logo"><a href="http://www.djangoproject.com/"><img src="http://media.djangoproject.com/img/site/hdr_logo.gif" alt="Django" /></a></h1>
+ <ul id="nav-global">
+ <li id="nav-homepage"><a href="http://www.djangoproject.com/">Home</a></li>
+ <li id="nav-download"><a href="http://www.djangoproject.com/download/">Download</a></li>
+ <li id="nav-documentation"><a href="http://www.djangoproject.com/documentation/">Documentation</a></li>
+ <li id="nav-weblog"><a href="http://www.djangoproject.com/weblog/">Weblog</a></li>
+ <li id="nav-community"><a href="http://www.djangoproject.com/community/">Community</a></li>
+ <li id="nav-code"><a href="http://code.djangoproject.com/">Code</a></li>
+ </ul>
+ </div>
+ <!-- END Header -->
+ <div id="billboard"><h2><a href="http://code.djangoproject.com/">Code</a></h2></div>
+ <div id="columnwrap">
+
+ <div id="content-main">
+
+ <?cs def:navlink(text, href, id, aclname, accesskey) ?><?cs
+ if $aclname ?><li><a href="<?cs var:href ?>"<?cs
+ if $id == $trac.active_module ?> class="active"<?cs
+ /if ?><?cs
+ if:$accesskey!="" ?> accesskey="<?cs var:$accesskey ?>"<?cs
+ /if ?>><?cs var:text ?></a></li><?cs
+ /if ?><?cs
+ /def ?>
+
+ <?cs if $trac.active_module == "wiki" ?><?cs
+ set:$wiki_view="wiki" ?><?cs
+ else ?><?cs
+ set:$wiki_view="attachment" ?><?cs
+ /if ?><?cs
+ if $trac.active_module == "ticket" ?><?cs
+ set:$ticket_view="ticket" ?><?cs
+ elif $trac.active_module == "query" ?><?cs
+ set:$ticket_view="query" ?><?cs
+ else ?><?cs
+ set:$ticket_view="report" ?><?cs
+ /if ?><?cs
+ if $trac.active_module == "log" ?><?cs
+ set:$browser_view="log" ?><?cs
+ elif $trac.active_module == "file" ?><?cs
+ set:$browser_view="file" ?><?cs
+ else ?><?cs
+ set:$browser_view="browser" ?><?cs
+ /if ?><?cs
+ if $trac.active_module == "milestone" ?><?cs
+ set:$roadmap_view="milestone" ?><?cs
+ else ?><?cs
+ set:$roadmap_view="roadmap" ?><?cs
+ /if ?>
+
+ <div id="mainnav" class="nav">
+ <ul><?cs
+ call:navlink("Start", trac.href.wiki, wiki_view,
+ trac.acl.WIKI_VIEW, "1") ?><?cs
+ call:navlink("Timeline", trac.href.timeline, "timeline",
+ trac.acl.TIMELINE_VIEW, "2") ?><?cs
+ call:navlink("Browse source", trac.href.browser, browser_view,
+ trac.acl.BROWSER_VIEW, "") ?><?cs
+ call:navlink("View tickets", trac.href.report, ticket_view,
+ trac.acl.REPORT_VIEW, "") ?><?cs
+ call:navlink("New ticket", trac.href.newticket, "newticket",
+ trac.acl.TICKET_CREATE, "7") ?><?cs
+ call:navlink("Search", trac.href.search, "search",
+ trac.acl.SEARCH_VIEW, "4") ?></ul>
+ </div>
+
View
53 django_website/templates/trac_templates/log.cs
@@ -0,0 +1,53 @@
+<?cs set:html.stylesheet = 'css/browser.css' ?>
+<?cs include "header.cs"?>
+<?cs include "macros.cs"?>
+
+<div id="ctxtnav" class="nav">
+ <ul>
+ <li class="last"><a href="<?cs
+ var:log.items.0.file_href ?>">View Latest Revision</a></li>
+ </ul>
+</div>
+
+<div id="content" class="log">
+ <?cs call:browser_path_links(log.path, log) ?>
+
+ <div id="jumprev">
+ <form action="<?cs var:browser_current_href ?>" method="get">
+ <div>
+ <label for="rev">View revision:</label>
+ <input type="text" id="rev" name="rev" value="<?cs
+ var:log.items.0.rev ?>" size="4" />
+ </div>
+ </form>
+ </div>
+
+ <table id="chglist" class="listing">
+ <thead>
+ <tr>
+ <th class="data">Date</th>
+ <th class="rev">Rev</th>
+ <th class="chgset">Chgset</th>
+ <th class="author">Author</th>
+ <th class="summary">Log Message</th>
+ </tr>
+ </thead>
+ <tbody>
+ <?cs each:item = log.items ?>
+ <tr class="<?cs if:name(item) % #2 ?>even<?cs else ?>odd<?cs /if ?>">
+ <td class="date"><?cs var:item.date ?></td>
+ <td class="rev">
+ <a href="<?cs var:item.file_href ?>"><?cs var:item.rev ?></a>
+ </td>
+ <td class="chgset">
+ <a class="block-link" href="<?cs var:item.changeset_href ?>"><?cs var:item.rev ?></a>
+ </td>
+ <td class="author"><?cs var:item.author ?></td>
+ <td class="summary"><?cs var:item.log ?></td>
+ </tr>
+ <?cs /each ?>
+ </tbody>
+ </table>
+
+</div>
+<?cs include "footer.cs"?>
View
31 django_website/templates/trac_templates/log_rss.cs
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!-- RSS generated by Trac v<?cs var:$trac.version ?> on <?cs var:$trac.time ?> -->
+<rss version="2.0">
+ <?cs set base_url = $HTTP.Protocol+'://'+$HTTP.Host ?>
+ <?cs if $HTTP.Port ?>
+ <?cs set base_url = $base_url + ':' + $HTTP.Port ?>
+ <?cs /if ?>
+ <channel>
+ <?cs if $project.name.encoded ?>
+ <title><?cs var:$project.name.encoded ?>: Revisions of <?cs var:$log.path ?></title>
+ <?cs else ?>
+ <title>Revisions of <?cs var:$log.filename ?></title>
+ <?cs /if ?>
+ <link><?cs var:$base_url ?><?cs var:$log.href ?></link>
+ <description>Trac Log - Revisions of <?cs var:$log.path ?></description>
+ <language>en-us</language>
+ <generator>Trac v<?cs var:$trac.version ?></generator>
+ <?cs each:item = $log.items ?>
+ <item>
+<!-- XXX: author element requires email address in rss 2.0.
+ maybe we should use the DC rdf stuff for metadata instead?
+ <author><?cs var:$item.author ?></author> -->
+ <pubDate><?cs var:$item.gmt ?></pubDate>
+ <title><?cs var:$item.rev+': '+$item.shortlog ?></title>
+ <link><?cs var:$base_url+$item.file_href ?></link>
+ <description><?cs var:$item.log.raw ?></description>
+ <category>Report</category>
+ </item>
+ <?cs /each ?>
+ </channel>
+</rss>
View
207 django_website/templates/trac_templates/macros.cs
@@ -0,0 +1,207 @@
+<?cs def:hdf_select(options, name, selected) ?>
+ <select size="1" id="<?cs var:name ?>" name="<?cs var:name ?>"><?cs
+ each:option = options ?><?cs
+ if option.name == $selected ?>
+ <option selected="selected"><?cs var:option.name ?></option><?cs
+ else ?>
+ <option><?cs var:option.name ?></option><?cs
+ /if ?><?cs
+ /each ?>
+ </select><?cs
+/def?>
+
+<?cs def:hdf_select_multiple(options, name, size) ?>
+ <select size="<?cs var:size ?>" id="<?cs var:name ?>" name="<?cs
+ var:name ?>" multiple="multiple"><?cs
+ each:option = options ?>
+ <option<?cs if:option.selected ?> selected="selected"<?cs /if ?>><?cs
+ var:option.name ?></option><?cs
+ /each ?>
+ </select><?cs
+/def ?>
+
+<?cs def:browser_path_links(path, file) ?><?cs
+ set:first = #1 ?>
+ <h1><?cs
+ each:part = path ?><?cs
+ set:last = name(part) == len(path) - #1 ?><a<?cs
+ if:first ?> class="first" title="Go to root directory"<?cs
+ set:first = #0 ?><?cs
+ else ?> title="Go to directory"<?cs
+ /if ?> href="<?cs var:part.url ?>"><?cs var:part ?></a><?cs
+ if:file.filename || !last ?><span class="sep">/</span><?cs /if ?><?cs
+ /each ?><?cs
+ if:file.filename ?><span class="filename"><?cs var:file.filename ?></span><?cs
+ /if ?></h1>
+<?cs /def ?>
+
+<?cs def:diff_display(change, style) ?><?cs
+ if:style == 'sidebyside' ?><?cs
+ each:block = change.blocks ?><?cs
+ if:block.type == 'unmod' ?><tbody class="unmod"><?cs
+ each:line = block.base.lines ?><tr>
+ <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th>
+ <td class="base"><span><?cs var:line ?></span>&nbsp;</td>
+ <th class="chg"><?cs var:#block.changed.offset + name(line) + 1 ?></th>
+ <td class="chg"><span><?cs var:line ?></span>&nbsp;</td>
+ </tr><?cs /each ?>
+ </tbody><?cs
+ elif:block.type == 'mod' ?><tbody class="mod"><?cs
+ if:len(block.base.lines) >= len(block.changed.lines) ?><?cs
+ each:line = block.base.lines ?><tr>
+ <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th>
+ <td class="base"><?cs var:line ?>&nbsp;</td><?cs
+ if:len(block.changed.lines) >= name(line) + 1 ?><?cs
+ each:changedline = block.changed.lines ?><?cs
+ if:name(changedline) == name(line) ?>
+ <th class="chg"><?cs var:#block.changed.offset + name(changedline) + 1 ?></th>
+ <td class="chg"><?cs var:changedline ?>&nbsp;</td><?cs
+ /if ?><?cs
+ /each ?><?cs
+ else ?>
+ <th class="chg">&nbsp;</th>
+ <td class="chg">&nbsp;</td><?cs
+ /if ?>
+ </tr><?cs /each ?><?cs
+ else ?><?cs
+ each:line = block.changed.lines ?><tr><?cs
+ if:len(block.base.lines) >= name(line) + 1 ?><?cs
+ each:baseline = block.base.lines ?><?cs
+ if:name(baseline) == name(line) ?>
+ <th class="base"><?cs var:#block.base.offset + name(baseline) + 1 ?></th>
+ <td class="base"><?cs var:baseline ?>&nbsp;</td><?cs
+ /if ?><?cs
+ /each ?><?cs
+ else ?>
+ <th class="base">&nbsp;</th>
+ <td class="base">&nbsp;</td><?cs
+ /if ?>
+ <th class="chg"><?cs var:#block.changed.offset + name(line) + 1 ?></th>
+ <td class="chg"><?cs var:line ?>&nbsp;</td>
+ </tr><?cs /each ?><?cs
+ /if ?>
+ </tbody><?cs
+ elif:block.type == 'add' ?><tbody class="add"><?cs
+ each:line = block.changed.lines ?><tr>
+ <th class="base">&nbsp;</th>
+ <td class="base">&nbsp;</td>
+ <th class="chg"><?cs var:#block.changed.offset + name(line) + 1 ?></th>
+ <td class="chg"><ins><?cs var:line ?></ins>&nbsp;</td>
+ </tr><?cs /each ?><?cs
+ elif:block.type == 'rem' ?><tbody class="rem"><?cs
+ each:line = block.base.lines ?><tr>
+ <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th>
+ <td class="base"><del><?cs var:line ?></del>&nbsp;</td>
+ <th class="chg">&nbsp;</th>
+ <td class="chg">&nbsp;</td>
+ </tr><?cs /each ?><?cs
+ /if ?>
+ </tbody><?cs
+ /each ?><?cs
+ else ?><?cs
+ each:block = change.blocks ?>
+ <?cs if:block.type == 'unmod' ?><tbody class="unmod"><?cs
+ each:line = block.base.lines ?><tr>
+ <th class="base"><?cs var:#block.base.offset + name(line) + #1 ?></th>
+ <th class="chg"><?cs var:#block.changed.offset + name(line) + #1 ?></th>
+ <td class="base"><span><?cs var:line ?></span>&nbsp;</td>
+ </tr><?cs /each ?>
+ </tbody>
+ <?cs elif:block.type == 'mod' ?><tbody class="mod"><?cs
+ each:line = block.base.lines ?><tr class="<?cs
+ if:name(line) == 0 ?>first<?cs /if ?>">
+ <th class="base"><?cs var:#block.base.offset + name(line) + #1 ?></th>
+ <th class="chg">&nbsp;</th>
+ <td class="base"><?cs var:line ?>&nbsp;</td>
+ </tr><?cs /each ?><?cs
+ each:line = block.changed.lines ?><tr class="<?cs
+ if:name(line) + 1 == len(block.changed.lines) ?> last<?cs /if ?>">
+ <th class="base">&nbsp;</th>
+ <th class="chg"><?cs var:#block.changed.offset + name(line) + #1 ?></th>
+ <td class="chg"><?cs var:line ?>&nbsp;</td>
+ </tr><?cs /each ?>
+ </tbody>
+ <?cs elif:block.type == 'add' ?><tbody class="add"><?cs
+ each:line = block.changed.lines ?><tr class="<?cs
+ if:name(line) == 0 ?>first<?cs /if ?><?cs
+ if:name(line) + 1 == len(block.changed.lines) ?> last ?><?cs /if ?>">
+ <th class="base">&nbsp;</th>
+ <th class="chg"><?cs var:#block.changed.offset + name(line) + #1 ?></th>
+ <td class="chg"><ins><?cs var:line ?></ins>&nbsp;</td>
+ </tr><?cs /each ?>
+ </tbody>
+ <?cs elif:block.type == 'rem' ?><tbody class="rem"><?cs
+ each:line = block.base.lines ?><tr class="<?cs
+ if:name(line) == 0 ?>first<?cs /if ?><?cs
+ if:name(line) + 1 == len(block.base.lines) ?> last ?><?cs /if ?>">
+ <th class="base"><?cs var:#block.base.offset + name(line) + 1 ?></th>
+ <th class="chg">&nbsp;</th>
+ <td class="base"><del><?cs var:line ?></del>&nbsp;</td>
+ </tr><?cs /each ?>
+ </tbody>
+ <?cs /if ?><?cs
+ /each ?><?cs
+ /if ?><?cs
+/def ?>
+
+<?cs def:session_name_email() ?><?cs
+ if trac.authname != "anonymous" ?><?cs
+ var:trac.authname ?><?cs
+ elif trac.session.var.name && trac.session.var.email ?><?cs
+ var:trac.session.var.name ?> &lt;<?cs var:trac.session.var.email ?>&gt;<?cs
+ elif !trac.session.var.name && trac.session.var.email ?><?cs
+ var:trac.session.var.email ?><?cs
+ else ?><?cs
+ var:trac.authname ?><?cs
+ /if ?><?cs
+ /def ?>
+
+<?cs def:ticket_custom_props(ticket) ?><?cs
+ each c=ticket.custom ?>
+ <div class="field custom_<?cs var c.name ?>"><?cs
+ if c.type == 'text' || c.type == 'select' ?>
+ <label for="custom_<?cs var c.name ?>"><?cs alt c.label ?><?cs
+ var c.name ?><?cs /alt ?></label>:<?cs
+ /if ?><?cs
+ if c.type == 'text' ?>
+ <input type="text" id="custom_<?cs var c.name ?>" name="custom_<?cs
+ var c.name ?>" value="<?cs var c.value ?>" /><?cs
+ elif c.type == 'textarea' ?>
+ <label for="custom_<?cs var c.name ?>"><?cs alt c.label ?><?cs
+ var c.name ?><?cs /alt ?></label>:<br />
+ <textarea cols="<?cs alt c.width ?>60<?cs /alt ?>" rows="<?cs
+ alt c.height ?>12<?cs /alt ?>" name="custom_<?cs var c.name ?>"><?cs
+ var c.value ?></textarea><?cs
+ elif c.type == 'checkbox' ?>
+ <input type="hidden" name="checkbox_<?cs var c.name ?>" value="custom_<?cs
+ var c.name ?>" />
+ <input type="checkbox" id="custom_<?cs var c.name ?>" name="custom_<?cs
+ var c.name ?>" value="1" <?cs if c.selected ?>checked="checked"<?cs /if ?> />
+ <label for="custom_<?cs var c.name ?>"><?cs alt c.label ?><?cs
+ var c.name ?><?cs /alt ?></label><?cs
+ elif c.type == 'select' ?>
+ <select name="custom_<?cs var c.name ?>"><?cs each v = c.option ?>
+ <option <?cs if v.selected ?>selected="selected"<?cs /if ?>><?cs
+ var v ?></option><?cs /each ?>
+ </select><?cs
+ elif c.type == 'radio' ?>
+ <fieldset class="radio">
+ <legend><?cs alt c.label ?><?cs var c.name ?><?cs /alt ?>:</legend><?cs
+ each v = c.option ?>
+ <input type="radio" id="custom_<?cs var c.name ?>_<?cs
+ var v ?>" name="custom_<?cs var c.name ?>"<?cs
+ if v.selected ?> checked="checked"<?cs /if ?> value="<?cs var v ?>"/>
+ <label for="custom_<?cs var c.name ?>_<?cs var v ?>"><?cs
+ var v ?></label><?cs
+ /each ?>
+ </fieldset><?cs
+ /if ?>
+ </div><?cs
+ /each ?><?cs
+/def ?>
+
+<?cs def:wiki_toolbar(textarea_id) ?>
+<script type='text/javascript'>
+ addWikiFormattingToolbar(document.getElementById("<?cs var:textarea_id ?>"));
+</script>
+<?cs /def ?>
View
177 django_website/templates/trac_templates/milestone.cs
@@ -0,0 +1,177 @@
+<?cs set:html.stylesheet = 'css/roadmap.css' ?>
+<?cs include:"header.cs"?>
+<?cs include:"macros.cs"?>
+
+<div id="ctxtnav" class="nav">
+ <ul>
+ <?cs if:milestone.href.edit ?><li class="first"><a href="<?cs
+ var:milestone.href.edit ?>">Edit Milestone Info</a></li><?cs /if ?>
+ <?cs if:milestone.href.delete ?><li class="last"><a href="<?cs
+ var:milestone.href.delete ?>">Delete Milestone</a></li><?cs /if ?>
+ </ul>
+</div>
+
+<div id="content" class="milestone">
+ <?cs if:milestone.mode == "new" ?>
+ <h1>New Milestone</h1>
+ <?cs elif:milestone.mode == "edit" ?>
+ <h1>Edit Milestone <?cs var:milestone.name ?></h1>
+ <?cs elif:milestone.mode == "delete" ?>
+ <h1>Delete Milestone <?cs var:milestone.name ?></h1>
+ <?cs else ?>
+ <h1>Milestone <?cs var:milestone.name ?></h1>
+ <form action="#stats" id="prefs" method="get">
+ <div>
+ <label for="by">View status by</label>
+ <select id="by" name="by"><?cs each:group = milestone.stats.available_groups ?>
+ <option<?cs
+ if:milestone.stats.grouped_by == group?> selected="selected"<?cs
+ /if ?>><?cs var:group ?></option>
+ <?cs /each ?></select>
+ <div>
+ <input name="showempty" id="showempty" type="checkbox"<?cs
+ if:milestone.stats.show_empty ?> checked="checked"<?cs /if ?>>
+ <label for="showempty">Show groups with no assigned tickets</label>
+ </div>
+ <div class="buttons">
+ <input type="submit" value="Update" />
+ </div>
+ </div>
+ </form>
+ <?cs /if ?>
+
+ <?cs if:milestone.mode == "edit" || milestone.mode == "new" ?>
+ <script type="text/javascript">
+ addEvent(window, 'load', function() {
+ document.getElementById('name').focus() }
+ );
+ </script>
+ <form id="edit" action="<?cs var:cgi_location ?>" method="post">
+ <input type="hidden" name="mode" value="milestone" />
+ <input type="hidden" name="id" value="<?cs var:milestone.name ?>" />
+ <input type="hidden" name="action" value="commit_changes" />
+ <div class="field">
+ <label for="name">Name of the milestone:</label><br />
+ <input type="text" id="name" name="name" size="32" value="<?cs
+ var:milestone.name ?>" />
+ </div>
+ <div class="field">
+ <label for="datemode">Completion date:</label><br />
+ <select name="datemode" id="datemode"
+ onchange="enableControl('date',this.value=='manual');
+ if (this.value=='manual') document.getElementById('date').focus();">
+ <option value="manual">Set manually</option>
+ <option value="now">Mark as completed now</option>
+ </select>
+ <input type="text" id="date" name="date" size="8" value="<?cs
+ var:milestone.date ?>" title="Format: <?cs var:milestone.date_hint ?>" />
+ <label for="date"><em>Format: <?cs var:milestone.date_hint ?></em></label>
+ </div>
+ <div class="field">
+ <fieldset class="iefix">
+ <label for="descr">Description (you may use <a tabindex="42" href="<?cs
+ var:trac.href.wiki ?>/WikiFormatting">WikiFormatting</a> here):</label>
+ <p><textarea id="descr" name="descr" rows="12" cols="80"><?cs
+ var:milestone.descr_source ?></textarea></p>
+ <?cs call:wiki_toolbar('descr') ?>
+ </fieldset>
+ </div>
+ <div class="buttons">
+ <?cs if:milestone.mode == "new"
+ ?><input type="submit" name="save" value="Add Milestone" /><?cs
+ else
+ ?><input type="submit" name="save" value="Save Changes" /><?cs
+ /if ?>
+ <input type="submit" name="cancel" value="Cancel" />
+ </div>
+ </form>
+ <?cs elif:milestone.mode == "delete" ?>
+ <form action="<?cs var:cgi_location ?>" method="post">
+ <input type="hidden" name="mode" value="milestone" />
+ <input type="hidden" name="id" value="<?cs var:milestone.name ?>" />
+ <input type="hidden" name="action" value="confirm_delete" />
+ <p><strong>Are you sure you want to delete this milestone?</strong></p>
+ <input type="checkbox" id="retarget" name="retarget" checked="checked"
+ onclick="enableControl('target', this.checked)"/>
+ <label for="target">Retarget associated tickets to milestone</label>
+ <select name="target" id="target">
+ <option value="">None</option><?cs
+ each:other = milestones ?><?cs if:other != milestone.name ?>
+ <option><?cs var:other ?></option><?cs
+ /if ?><?cs /each ?>
+ </select>
+ <div class="buttons">
+ <input type="submit" name="cancel" value="Cancel" />
+ <input type="submit" name="delete" value="Delete Milestone" />
+ </div>
+ </form>
+ <?cs else ?>
+ <em class="date"><?cs if:milestone.date ?>
+ <?cs var:milestone.date ?><?cs else ?>No date set<?cs /if ?>
+ </em>
+ <div class="descr"><?cs var:milestone.descr ?></div>
+ <?cs /if ?>
+
+ <?cs if:milestone.mode == "view" ?>
+ <h2 class="stats">Status by <?cs var:milestone.stats.grouped_by ?></h2>
+ <table class="listing" id="stats"
+ summary="Shows the milestone completion status grouped by <?cs
+ var:milestone.stats.grouped_by ?>">
+ <thead><tr>
+ <th class="name" rowspan="2"><?cs var:milestone.stats.grouped_by ?></th>
+ <th class="tickets" scope="col" colspan="2">Tickets</th>
+ <th class="progress" rowspan="2">Percent Resolved</th>
+ </tr><tr>
+ <th class="open" scope="col">Active</th>
+ <th class="closed" scope="col">Closed</th>
+ </tr></thead>
+ <?cs if:len(milestone.stats.groups) ?><tbody>
+ <?cs each:group = milestone.stats.groups ?>
+ <tr class="<?cs if:name(group) % 2 ?>odd<?cs else ?>even<?cs /if ?>">
+ <th class="name" scope="row"><a href="<?cs
+ var:group.queries.all_tickets ?>"><?cs var:group.name ?></a></th>
+ <td class="open tickets"><a href="<?cs
+ var:group.queries.active_tickets ?>"><?cs
+ var:group.active_tickets ?></a></td>
+ <td class="closed tickets"><a href="<?cs
+ var:group.queries.closed_tickets ?>"><?cs
+ var:group.closed_tickets ?></a></td>
+ <td class="progress">
+ <?cs if:#group.total_tickets ?>
+ <div class="progress" style="width: <?cs
+ var:#group.percent_total * #80 / #100 ?>%"><div style="width: <?cs
+ var:#group.percent_complete ?>%"></div>
+ </div>
+ <p class="percent"><?cs var:#group.percent_complete ?>%</p>
+ <?cs /if ?>
+ </td>
+ </tr>
+ <?cs /each ?>
+ </tbody><?cs /if ?>
+ <tbody class="totals"><tr>
+ <th class="name" scope="row"><a href="<?cs
+ var:milestone.queries.all_tickets ?>">Total</a></th>
+ <td class="open tickets"><a href="<?cs
+ var:milestone.queries.active_tickets ?>"><?cs
+ var:milestone.stats.active_tickets ?></a></td>
+ <td class="closed tickets"><a href="<?cs
+ var:milestone.queries.closed_tickets ?>"><?cs
+ var:milestone.stats.closed_tickets ?></a></td>
+ <td class="progress">
+ <?cs if:#milestone.stats.total_tickets ?>
+ <div class="progress" style="width: 80%">
+ <div style="width: <?cs var:#milestone.stats.percent_complete ?>%"></div>
+ </div>
+ <p class="percent"><?cs var:#milestone.stats.percent_complete ?>%</p>
+ <?cs /if ?>
+ </td>
+ </tr></tbody>
+ </table><?cs /if ?>
+
+ <div id="help">
+ <strong>Note:</strong> See <a href="<?cs
+ var:trac.href.wiki ?>/TracRoadmap">TracRoadmap</a> for help on using the roadmap.
+ </div>
+
+</div>
+<?cs include:"footer.cs"?>
View
84 django_website/templates/trac_templates/newticket.cs
@@ -0,0 +1,84 @@
+<?cs set:html.stylesheet = 'css/ticket.css' ?>
+<?cs include "header.cs" ?>
+<?cs include "macros.cs" ?>
+<script type="text/javascript">
+addEvent(window, 'load', function() { document.getElementById('summary').focus()});
+</script>
+
+<div id="ctxtnav" class="nav"></div>
+
+<div id="content" class="ticket">
+
+<h3>Create New Ticket:</h3>
+<form id="newticket" action="<?cs var:cgi_location ?>#preview" method="post">
+ <div class="field">
+ <label for="reporter">Your email or username:</label><br />
+ <input type="text" id="reporter" name="reporter" size="40" value="<?cs
+ var:newticket.reporter ?>" /><br />
+ </div>
+ <div class="field">
+ <label for="summary">Short summary:</label><br />
+ <input id="summary" type="text" name="summary" size="80" value="<?cs var:newticket.summary ?>"/>
+ </div>
+ <div class="field">
+ <label for="description">Full description (you may use <a tabindex="42" href="<?cs
+ var:$trac.href.wiki ?>/WikiFormatting">WikiFormatting</a> here):</label><br />
+ <textarea id="description" name="description" rows="10" cols="78"><?cs
+ var:newticket.description ?></textarea><?cs
+ call:wiki_toolbar('description') ?><?cs
+ if:newticket.description_preview ?>
+ <fieldset id="preview">
+ <legend>Description Preview</legend>
+ <?cs var:newticket.description_preview ?>
+ </fieldset><?cs
+ /if ?>
+ </div>
+
+ <fieldset id="properties">
+ <legend>Ticket Properties</legend>
+ <input type="hidden" name="mode" value="newticket" />
+ <input type="hidden" name="action" value="create" />
+ <input type="hidden" name="status" value="new" />
+ <div class="col1">
+ <label for="component">Component:</label><?cs
+ call:hdf_select(newticket.components, "component", newticket.component) ?>
+ <br />
+ <label for="version">Version:</label><?cs
+ call:hdf_select(newticket.versions, "version", newticket.version) ?>
+ <br />
+ <label for="severity">Severity:</label><?cs
+ call:hdf_select(enums.severity, "severity", newticket.severity) ?>
+ <br />
+ <label for="keywords">Keywords:</label>
+ <input type="text" id="keywords" name="keywords" size="20"
+ value="<?cs var:newticket.keywords ?>" />
+ </div>
+ <div class="col2">
+ <label for="priority">Priority:</label><?cs
+ call:hdf_select(enums.priority, "priority", newticket.priority) ?><br />
+ <label for="milestone">Milestone:</label><?cs
+ call:hdf_select(newticket.milestones, "milestone", newticket.milestone) ?><br />
+ <label for="owner">Assign to:</label>
+ <input type="text" id="owner" name="owner" size="20" value="<?cs
+ var:newticket.owner ?>" /><br />
+ <label for="cc">Cc:</label>
+ <input type="text" id="cc" name="cc" size="30" value="<?cs var:newticket.cc ?>" />
+ </div>
+ <?cs if:len(ticket.custom) ?><div class="custom">
+ <?cs call:ticket_custom_props(ticket) ?>
+ </div><?cs /if ?>
+ </fieldset>
+
+ <div class="buttons">
+ <input type="submit" value="Preview" />&nbsp;
+ <input type="submit" name="create" value="Submit ticket" />
+ </div>
+</form>
+
+ <div id="help">
+ <strong>Note:</strong> See <a href="<?cs var:$trac.href.wiki
+ ?>/TracTickets">TracTickets</a> for help on using tickets.
+ </div>
+</div>
+
+<?cs include "footer.cs" ?>
View
162 django_website/templates/trac_templates/query.cs
@@ -0,0 +1,162 @@
+<?cs set:html.stylesheet = 'css/report.css' ?>
+<?cs include:"header.cs" ?>
+<?cs include:"macros.cs" ?>
+
+<div id="ctxtnav" class="nav"><?cs if:query.edit_href ?>
+ <ul>
+ <li class="last"><a href="<?cs var:query.edit_href ?>">Refine Query</a></li>
+ </ul>
+<?cs /if ?></div>
+
+<div id="content" class="query">
+ <h1><?cs var:title ?></h1>
+
+<?cs if:query.action == 'edit' ?>
+
+<form id="query" action="<?cs var:cgi_location ?>" method="post">
+ <fieldset>
+ <input type="hidden" name="mode" value="query" />
+ <input type="hidden" name="order" value="<?cs var:query.order ?>" />
+ <?cs if:query.desc ?><input type="hidden" name="desc" value="1" /><?cs /if ?>
+ <legend>Ticket Properties</legend>
+ <div>
+ <label for="component" accesskey="c">Component:</label>
+ <?cs call:hdf_select_multiple(query.options.component, 'component', 4) ?>
+ </div>
+ <div>
+ <label for="version" accesskey="v">Version:</label>
+ <?cs call:hdf_select_multiple(query.options.version, 'version', 4) ?>
+ </div>
+ <div>
+ <label for="severity" accesskey="e">Severity:</label>
+ <?cs call:hdf_select_multiple(query.options.severity, 'severity', 4) ?>
+ </div>
+ <br />
+ <div>
+ <label for="keywords">Keywords contain:</label>
+ <input type="text" name="keywords" id="keywords" accesskey="k" value="<?cs
+ var:query.constraints.keywords.0 ?>" />
+ </div>
+ <br />
+ <div>
+ <label for="status" accesskey="s">Status:</label>
+ <?cs call:hdf_select_multiple(query.options.status, 'status', 4) ?>
+ </div>
+ <div>
+ <label for="resolution" accesskey="r">Resolution:</label>
+ <?cs call:hdf_select_multiple(query.options.resolution, 'resolution', 4) ?>
+ <script type="text/javascript">
+ var status = document.getElementById("status");
+ var updateResolution = function() {
+ enableControl('resolution', status.selectedIndex == -1 ||
+ status.selectedIndex >= 3);
+ };
+ addEvent(window, 'load', updateResolution);
+ addEvent(status, 'change', updateResolution);
+ </script>
+ </div>
+ <div>
+ <label for="milestone" accesskey="m">Milestone:</label>
+ <?cs call:hdf_select_multiple(query.options.milestone, 'milestone', 4) ?>
+ </div>
+ <div>
+ <label for="priority" accesskey="p">Priority:</label>
+ <?cs call:hdf_select_multiple(query.options.priority, 'priority', 4) ?>
+ </div>
+ <br />
+ <div>
+ <label for="owner">Assigned to:</label>
+ <input type="text" name="owner" id="owner" accesskey="a" value="<?cs
+ var:query.constraints.owner.0 ?>" />
+ </div>
+ <div>
+ <label for="reporter">Reported by:</label>
+ <input type="text" name="reporter" id="reporter" accesskey="b" value="<?cs
+ var:query.constraints.reporter.0 ?>" />
+ </div>
+ <div>
+ <label for="cc">Cc contains:</label>
+ <input type="text" name="cc" id="cc" value="<?cs
+ var:query.constraints.cc.0 ?>" />
+ </div>
+ <?cs if:len(query.custom) ?><?cs set:idx = 0 ?><?cs
+ each:custom = query.custom ?><?cs
+ if:custom.type == 'select' || custom.type == 'radio' ?>
+ <?cs if:idx == 0 ?><br /><?cs /if ?><div>
+ <label for="<?cs var:custom.name ?>"><?cs var:custom.label ?></label>
+ <?cs call:hdf_select_multiple(custom.options, custom.name, 4) ?>
+ </div><?cs set:idx = idx + 1 ?><?cs
+ /if ?><?cs
+ /each ?><?cs set:idx = 0 ?><?cs
+ each:custom = query.custom ?><?cs
+ if:custom.type == 'text' ?>
+ <?cs if:idx == 0 ?><br /><?cs /if ?><div>
+ <label for="<?cs var:custom.name ?>"><?cs var:custom.label ?></label>
+ <input type="text" name="<?cs var:custom.name ?>" id="<?cs
+ var:custom.name ?>" value="<?cs var:query[custom.name] ?>" />
+ </div><?cs set:idx = idx + 1 ?><?cs
+ /if ?><?cs
+ /each ?><?cs
+ /if ?>
+ <br />
+ </fieldset>
+ <div class="buttons">
+ <input type="submit" name="search" value="Search">
+ </div>
+</form>
+
+<?cs else ?>
+
+<?cs if:len(query.results) ?>
+ <p><?cs var:len(query.results) ?> ticket<?cs if:len(query.results) != 1 ?>s<?cs
+ /if ?> matched this query.</p>
+ <table id="tktlist" class="listing">
+ <thead><tr><?cs each:header = query.headers ?><?cs
+ if:name(header) == 0 ?><th class="ticket<?cs
+ if:header.order ?> <?cs var:header.order ?><?cs /if ?>">
+ <a href="<?cs var:header.href ?>" title="Sort by ID (<?cs
+ if:header.order == 'asc' ?>descending<?cs
+ else ?>ascending<?cs /if ?>)">Ticket</a>
+ </th><?cs
+ else ?>
+ <th<?cs if:header.order ?> class="<?cs var:header.order ?>"<?cs /if ?>>
+ <a href="<?cs var:header.href ?>" title="Sort by <?cs
+ var:header.name ?> (<?cs if:header.order == 'asc' ?>descending<?cs
+ else ?>ascending<?cs /if ?>)"><?cs var:header.name ?></a>
+ </th><?cs
+ /if ?>
+ <?cs /each ?></tr></thead>
+ <tbody>
+ <?cs each:result = query.results ?><tr class="<?cs
+ if:name(result) % 2 ?>odd<?cs else ?>even<?cs /if ?> <?cs
+ var:result.priority ?>">
+ <?cs each:header = query.headers ?><?cs
+ if:name(header) == 0 ?>
+ <td class="ticket"><a href="<?cs var:result.href ?>" title="View ticket"><?cs
+ var:result.id ?></a></td><?cs
+ else ?>
+ <td><?cs if:header.name == 'summary' ?>
+ <a href="<?cs var:result.href ?>" title="View ticket"><?cs
+ var:result[header.name] ?></a><?cs
+ else ?>
+ <?cs var:result[header.name] ?><?cs
+ /if ?>
+ </td><?cs
+ /if ?>
+ <?cs /each ?>
+ </tr><?cs /each ?>
+ </tbody>
+ </table>
+<?cs else ?>
+ <p>No tickets matched this query.</p>
+<?cs /if ?>
+
+<?cs /if ?>
+
+ <div id="help">
+ <strong>Note:</strong> See <a href="<?cs var:$trac.href.wiki ?>/TracQuery">TracQuery</a>
+ for help on using queries.
+ </div>
+
+</div>
+<?cs include:"footer.cs" ?>
View
237 django_website/templates/trac_templates/report.cs
@@ -0,0 +1,237 @@
+<?cs set:html.stylesheet = 'css/report.css' ?>
+<?cs include "header.cs" ?>
+<?cs include "macros.cs" ?>
+
+<div id="ctxtnav" class="nav">
+ <h2>Report Navigation</h2>
+ <ul>
+ <?cs if report.edit_href || report.copy_href || report.delete_href ?>
+ <li><b>This report:</b>
+ <ul>
+ <?cs if report.edit_href
+ ?><li <?cs if !report.delete_href && !report.copy_href ?>class="last"<?cs /if
+ ?>><a href="<?cs var:report.edit_href ?>">Edit</a></li><?cs
+ /if ?><?cs
+ if report.copy_href ?><li <?cs if !report.delete_href ?>class="last"<?cs /if
+ ?>><a href="<?cs var:report.copy_href ?>">Copy</a></li><?cs /if ?><?cs
+ if report.delete_href ?><li class="last"><a href="<?cs var:report.delete_href ?>">Delete</a></li><?cs /if ?></ul></li>
+ <?cs /if ?>
+ <?cs if:report.create_href ?>
+ <li><a href="<?cs var:report.create_href ?>">New Report</a></li>
+ <?cs /if ?>
+ <li class="last"><a href="<?cs var:$trac.href.query ?>">Custom Query</a></li>
+ </ul>
+</div>
+
+<div id="content" class="report">
+
+<?cs if report.message ?>
+ <div class="error"><?cs var report.message ?></div>
+<?cs else ?>
+ <?cs def:report_hdr(header) ?>
+ <?cs if $header ?>
+ <?cs if idx > 0 ?>
+ </table>
+ <?cs /if ?>
+ <?cs /if ?>
+ <?cs if:header ?><h2><?cs var:header ?></h2><?cs /if ?>
+ <?cs if $report.id == -1 ?>
+ <table id="reportlist" class="listing">
+ <?cs else ?>
+ <table id="tktlist" class="listing">
+ <?cs /if ?>
+ <thead>
+ <tr>
+ <?cs set numcols = #0 ?>
+ <?cs each header = report.headers ?>
+ <?cs if $header.fullrow ?>
+ </tr><tr><th colspan="100"><?cs var:header ?></th>
+ <?cs else ?>
+ <?cs if $report.sorting.enabled ?>
+ <?cs set vars='' ?>
+ <?cs each arg = report.var ?>
+ <?cs set vars = vars + '&amp;' + name(arg) + '=' + arg ?>
+ <?cs /each ?>
+ <?cs set sortValue = '' ?>
+ <?cs if $header.asc == '1' ?>
+ <?cs set sortValue = '?sort='+$header.real+'&amp;asc=0' ?>
+ <?cs else ?>
+ <?cs set sortValue = '?sort='+$header.real+'&amp;asc=1' ?>
+ <?cs /if ?>
+ <?cs if $header ?>
+ <th><a href="<?cs var:sortValue ?><?cs var:vars ?>"><?cs var:header ?></a></th>
+ <?cs /if ?>
+ <?cs elif $header ?>
+ <th><?cs var:header ?></th>
+ <?cs /if ?>
+ <?cs if $header.breakrow ?>
+ </tr><tr>
+ <?cs /if ?>
+ <?cs /if ?>
+ <?cs set numcols = numcols + #1 ?>
+ <?cs /each ?>
+ </tr>
+ </thead>
+ <?cs /def ?>
+
+ <?cs def:report_cell(class,contents) ?>
+ <?cs if $cell.fullrow ?>
+ </tr><tr class="<?cs var:row_class ?>" style="<?cs var: row_style ?>;border: none; padding: 0;">
+ <td class="fullrow" colspan="100">
+ <?cs var:$contents ?><hr />
+ </td>
+ <?cs else ?>
+ <td <?cs if $cell.breakrow || $col == $numcols ?>colspan="100" <?cs /if
+ ?>class="<?cs var:$class ?>"><?cs if $contents ?><?cs var:$contents ?><?cs /if ?></td>
+
+ <?cs if $cell.breakafter ?>
+ </tr><tr class="<?cs var: row_class ?>" style="<?cs var: row_style ?>;border: none; padding: 0">
+ <?cs /if ?>
+ <?cs /if ?>
+ <?cs set col = $col + #1 ?>
+ <?cs /def ?>
+
+ <?cs set idx = #0 ?>
+ <?cs set group = '' ?>
+
+ <?cs if:report.mode == "list" ?>
+ <h1><?cs var:title ?><?cs
+ if:report.numrows && report.id != -1 ?><span class="numrows"> (<?cs
+ var:report.numrows ?> matches)</span><?cs
+ /if ?></h1>
+ <?cs if:report.description ?><div id="description"><?cs
+ var:report.description ?></div><?cs
+ /if ?>
+
+ <?cs each row = report.items ?>
+ <?cs if group != row.__group__ || idx == #0 ?>
+ <?cs if:idx != #0 ?></tbody><?cs /if ?>
+ <?cs set group = row.__group__ ?>
+ <?cs call:report_hdr(group) ?>
+ <tbody>
+ <?cs /if ?>
+
+ <?cs if row.__color__ ?>
+ <?cs set rstem='color'+$row.__color__ +'-' ?>
+ <?cs else ?>
+ <?cs set rstem='' ?>
+ <?cs /if ?>
+ <?cs if idx % #2 ?>
+ <?cs set row_class=$rstem+'even' ?>