[Python-checkins] r85129 - in tracker/instances/python-dev/lib/rietveld: Makefile roundup_helper roundup_helper/__init__.py roundup_helper/middleware.py roundup_helper/models.py roundup_helper/urls.py settings.py templates templates/404.html templates/500.html templates/all.html templates/base.html templates/branch_edit.html templates/branch_new.html templates/diff.html templates/diff2.html templates/diff_navigation.html templates/draft_message.html templates/edit.html templates/feeds templates/file_navigation.html templates/inline_comment.html templates/issue.html templates/issue_base.html templates/issue_heading.html templates/issue_row.html templates/issue_star.html templates/live_revision.html templates/mails templates/new.html templates/patch.html templates/patchset.html templates/publish.html templates/repo_new.html templates/repos.html templates/repos_base.html templates/settings.html templates/starred.html templates/use_uploadpy.html templates/user.html templates/user_popup.html templates/view_details_select.html

martin.v.loewis python-checkins at python.org
Thu Sep 30 23:07:31 CEST 2010


Author: martin.v.loewis
Date: Thu Sep 30 23:07:30 2010
New Revision: 85129

Log:
Integrate with roundup user management; adjust UI.


Added:
   tracker/instances/python-dev/lib/rietveld/roundup_helper/
   tracker/instances/python-dev/lib/rietveld/roundup_helper/__init__.py   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/roundup_helper/middleware.py   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/roundup_helper/models.py   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/roundup_helper/urls.py   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/
   tracker/instances/python-dev/lib/rietveld/templates/404.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/500.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/all.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/base.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/branch_edit.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/branch_new.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/diff.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/diff2.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/diff_navigation.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/draft_message.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/edit.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/feeds   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/file_navigation.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/inline_comment.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/issue.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/issue_base.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/issue_heading.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/issue_row.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/issue_star.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/live_revision.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/mails   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/new.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/patch.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/patchset.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/publish.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/repo_new.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/repos.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/repos_base.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/settings.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/starred.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/use_uploadpy.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/user.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/user_popup.html   (contents, props changed)
   tracker/instances/python-dev/lib/rietveld/templates/view_details_select.html   (contents, props changed)
Modified:
   tracker/instances/python-dev/lib/rietveld/Makefile
   tracker/instances/python-dev/lib/rietveld/settings.py

Modified: tracker/instances/python-dev/lib/rietveld/Makefile
==============================================================================
--- tracker/instances/python-dev/lib/rietveld/Makefile	(original)
+++ tracker/instances/python-dev/lib/rietveld/Makefile	Thu Sep 30 23:07:30 2010
@@ -11,7 +11,7 @@
 clean_external: clean_rietveld clean_django
 
 clean_rietveld:
-	rm -rf codereview static templates
+	rm -rf codereview static templates_svn
 
 clean_django:
 	unlink django
@@ -21,9 +21,9 @@
 	rm -f dev.db
 
 gae2django:
-	ln -s ../../gae2django .
+	ln -s ../../gae2django/gae2django .
 
-dev.db:
+syncdb:
 	./manage.py syncdb
 
 codereview:
@@ -33,8 +33,8 @@
 	svn co http://rietveld.googlecode.com/svn/trunk/static@$(RIETVELDREV)
 	patch -p0 < patches/upload.diff
 
-templates:
-	svn co http://rietveld.googlecode.com/svn/trunk/templates@$(RIETVELDREV)
+templates_svn:
+	svn co http://rietveld.googlecode.com/svn/trunk/templates@$(RIETVELDREV) templates_svn
 
 django:
-	ln -s ../../django .
\ No newline at end of file
+	ln -s ../../gae2django/django .

Added: tracker/instances/python-dev/lib/rietveld/roundup_helper/__init__.py
==============================================================================

Added: tracker/instances/python-dev/lib/rietveld/roundup_helper/middleware.py
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/roundup_helper/middleware.py	Thu Sep 30 23:07:30 2010
@@ -0,0 +1,48 @@
+from models import Session, User
+from django.contrib import auth
+from django.contrib.auth.backends import RemoteUserBackend
+
+class UserBackend(RemoteUserBackend):
+    def configure_user(self, user):
+        roundup_user = User.objects.filter(_username=user.username)[0]
+        user.email = roundup_user._address
+        user.save()
+        from codereview import models
+        account = models.Account.get_account_for_user(user)
+        account.nickname = user.username
+        account.save()
+        return user
+
+class LookupRoundupUser(object):
+
+    def process_request(self, request):
+        session_key = request.COOKIES.get('roundup_session_Tracker', None)
+        if not session_key:
+            self.logout(request)
+            return
+        session = Session.objects.filter(session_key = session_key)
+        if not session:
+            self.logout(request)
+            return
+        username = eval(session[0].session_value)['user']
+        # the username comes from the cookie, so it really ought to exist
+        roundup_user = User.objects.filter(_username=username)[0]
+        if not roundup_user._address:
+            # Rietveld insists that user objects must have email addresses
+            return
+        # Taken from RemoteUserMiddleware: auto-create the user if it's new
+        if request.user.is_authenticated():
+            if request.user.username == username:
+                return
+        # We are seeing this user for the first time in this session, attempt
+        # to authenticate the user.
+        user = auth.authenticate(remote_user=username)
+        if user:
+            # User is valid.  Set request.user and persist user in the session
+            # by logging the user in.
+            request.user = user
+            auth.login(request, user)
+        
+    def logout(self, request):
+        # Clear django session if roundup session is gone.
+        auth.logout(request)

Added: tracker/instances/python-dev/lib/rietveld/roundup_helper/models.py
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/roundup_helper/models.py	Thu Sep 30 23:07:30 2010
@@ -0,0 +1,15 @@
+# Django mappings for roundup tables
+from django.db import models
+
+class Session(models.Model):
+    session_key = models.CharField(primary_key=True, max_length=255)
+    session_value = models.TextField()
+    class Meta:
+        db_table = 'sessions'
+
+class User(models.Model):
+    _username = models.CharField()
+    _realname = models.CharField()
+    _address = models.CharField()
+    class Meta:
+        db_table = '_user'

Added: tracker/instances/python-dev/lib/rietveld/roundup_helper/urls.py
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/roundup_helper/urls.py	Thu Sep 30 23:07:30 2010
@@ -0,0 +1,7 @@
+from django.conf.urls.defaults import *
+from django.contrib import admin
+
+urlpatterns = patterns('',
+        ('python-dev/', 'roundup'),
+        ('review/', include('rietveld_helper.urls')),
+    )

Modified: tracker/instances/python-dev/lib/rietveld/settings.py
==============================================================================
--- tracker/instances/python-dev/lib/rietveld/settings.py	(original)
+++ tracker/instances/python-dev/lib/rietveld/settings.py	Thu Sep 30 23:07:30 2010
@@ -2,7 +2,7 @@
 
 # NOTE: Keep the settings.py in examples directories in sync with this one!
 
-import os
+import os, ConfigParser
 
 DEBUG = True
 TEMPLATE_DEBUG = DEBUG
@@ -13,19 +13,22 @@
 
 MANAGERS = ADMINS
 
-DATABASE_ENGINE = 'sqlite3'    # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
-DATABASE_NAME = 'dev.db'       # Or path to database file if using sqlite3.
-DATABASE_USER = ''             # Not used with sqlite3.
-DATABASE_PASSWORD = ''         # Not used with sqlite3.
-DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
-DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
+_c = ConfigParser.ConfigParser({'password':'', 'port':''})
+_c.read(os.path.dirname(__file__)+"/../../config.ini")
+
+DATABASE_ENGINE = 'postgresql_psycopg2'
+DATABASE_NAME = _c.get('rdbms', 'name')
+DATABASE_USER = _c.get('rdbms', 'user')
+DATABASE_PASSWORD = _c.get('rdbms', 'password')
+DATABASE_HOST = _c.get('rdbms', 'host')
+DATABASE_PORT = _c.get('rdbms', 'port')
 
 # Local time zone for this installation. Choices can be found here:
 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
 # although not all choices may be available on all operating systems.
 # If running in a Windows environment this must be set to the same as your
 # system time zone.
-TIME_ZONE = 'America/Chicago'
+TIME_ZONE = 'Europe/Amsterdam'
 
 # Language code for this installation. All choices can be found here:
 # http://www.i18nguy.com/unicode/language-identifiers.html
@@ -44,7 +47,7 @@
 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
 # trailing slash if there is a path component (optional in other cases).
 # Examples: "http://media.lawrence.com", "http://example.com/media/"
-MEDIA_URL = '/static/'
+MEDIA_URL = '/review/static/'
 
 # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
 # trailing slash.
@@ -52,7 +55,7 @@
 ADMIN_MEDIA_PREFIX = '/media/'
 
 # Make this unique, and don't share it with anybody.
-SECRET_KEY = 'el at 4s$*(idwm5-87teftxlksckmy8$tyo7(tm!n-5x)zeuheex'
+SECRET_KEY = _c.get('django', 'secret_key')
 
 # List of callables that know how to import templates from various sources.
 TEMPLATE_LOADERS = (
@@ -61,10 +64,12 @@
 #     'django.template.loaders.eggs.load_template_source',
 )
 
+AUTHENTICATION_BACKENDS = ('roundup_helper.middleware.UserBackend',)
 MIDDLEWARE_CLASSES = (
     'django.middleware.common.CommonMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'roundup_helper.middleware.LookupRoundupUser',
     'gae2django.middleware.FixRequestUserMiddleware',
     'rietveld_helper.middleware.AddUserToRequestMiddleware',
     'django.middleware.doc.XViewMiddleware',
@@ -74,7 +79,7 @@
     'django.core.context_processors.request',
 )
 
-ROOT_URLCONF = 'rietveld_helper.urls'
+ROOT_URLCONF = 'roundup_helper.urls'
 
 TEMPLATE_DIRS = (
     os.path.join(os.path.dirname(__file__), 'templates'),

Added: tracker/instances/python-dev/lib/rietveld/templates/404.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/404.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/404.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/500.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/500.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/500.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/all.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/all.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/all.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/base.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/base.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1,250 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+  "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+  <title>
+    {%if is_dev%}
+      (DEV)
+    {%endif%}
+    {%block title1%}
+      {%if patch%}{{patch.filename}} -{%endif%}
+    {%endblock%}
+    {%block title2%}
+      {%if issue%}Issue {{issue.key.id}}: {{issue.subject}} -{%endif%}
+    {%endblock%}
+    Code Review
+  </title>
+  <link rel="icon" href="{{media_url}}favicon.ico" />
+  <link type="text/css" rel="stylesheet" href="{{media_url}}styles.css" />
+  <script type="text/javascript" src="{{media_url}}script.js"></script>
+  <link rel="alternate" type="application/atom+xml"
+   	title="Recent Issues"
+   	href="{%url django.contrib.syndication.views.feed url="all"%}" />
+   {%if user%}
+     <link rel="alternate" type="application/atom+xml"
+   	  title="Issues created by me"
+   	  href="{%url django.contrib.syndication.views.feed url="mine"%}/{%nickname user True%}" />
+     <link rel="alternate" type="application/atom+xml"
+   	  title="Issues reviewable by me" 
+   	  href="{%url django.contrib.syndication.views.feed url="reviews"%}/{%nickname user True%}" />
+     <link rel="alternate" type="application/atom+xml"
+   	  title="Issues closed by me"
+   	  href="{%url django.contrib.syndication.views.feed url="closed"%}/{%nickname user True%}" />
+   {%endif%}
+   {%if issue%}
+     <link rel="alternate" type="application/atom+xml"
+ 	    title="Issue {{issue.key.id}}"
+ 	    href="{%url django.contrib.syndication.views.feed url="issue"%}/{{issue.key.id}}" />
+   {%endif%} 
+</head>
+<body onunload="M_unloadPage();">
+
+<!-- Begin help window -->
+<script type="text/javascript"><!--
+var xsrfToken = '{{xsrf_token}}';
+var helpDisplayed = false;
+document.onclick = M_clickCommon;
+var media_url = "{{media_url}}";
+var base_url = "{%url codereview.views.index%}";
+{%if issue%}
+var publish_link = "{%url codereview.views.publish issue.key.id%}";
+{%endif%}
+// -->
+</script>
+<div id="help" style="display: none;">
+{%block help%}{%endblock%}
+<div style="font-size: medium; text-align: center;">Keyboard Shortcuts</div>
+<hr />
+<table width="100%">
+
+  <tr valign="top">
+    <td>
+      <table width="100%">
+        <tr>
+          <td></td><th>File</th>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">u</span> <b>:</b></td><td>up to issue</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">m</span> <b>:</b></td><td>publish + mail comments</td>
+        </tr>
+	<tr>
+	  <td class="shortcut"><span class="letter">M</span> <b>:</b></td><td>edit review message</td>
+	</tr>
+        <tr>
+          <td class="shortcut"><span class="letter">j</span> / <span class="letter">k</span> <b>:</b></td><td>jump to file after / before current file</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">J</span> / <span class="letter">K</span> <b>:</b></td><td>jump to next file with a comment after / before current file</td>
+        </tr>
+        <tr>
+          <td></td><th>Side-by-side diff</th>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">i</span> <b>:</b></td><td>toggle intra-line diffs</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">e</span> <b>:</b></td><td>expand all comments</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">c</span> <b>:</b></td><td>collapse all comments</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">s</span> <b>:</b></td><td>toggle showing all comments</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">n</span> / <span class="letter">p</span> <b>:</b></td><td>next / previous diff chunk or comment</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">N</span> / <span class="letter">P</span> <b>:</b></td><td>next / previous comment</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">&lt;Enter&gt;</span> <b>:</b></td><td>respond to / edit current comment</td>
+        </tr>
+      </table>
+    </td>
+    <td>
+      <table width="100%"> 
+        <tr>
+         <td></td><th>Issue</th>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">u</span> <b>:</b></td><td>up to list of issues</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">m</span> <b>:</b></td><td>publish + mail comments</td>
+        </tr>
+	<tr>
+	  <td class="shortcut"><span class="letter">j</span> / <span class="letter">k</span> <b>:</b></td><td>jump to patch after / before current patch</td>
+	</tr>
+	<tr>
+	  <td class="shortcut"><span class="letter">o</span> / <span class="letter">&lt;Enter&gt;</span> <b>:</b></td><td>open current patch in side-by-side view</td>
+	</tr>
+	<tr>
+	  <td class="shortcut"><span class="letter">i</span> <b>:</b></td><td>open current patch in unified diff view</td>
+	</tr>
+        <tr><td>&nbsp;</td></tr>
+        <tr><td></td><th>Issue List</th></tr>
+        <tr>
+          <td class="shortcut"><span class="letter">j</span> / <span class="letter">k</span> <b>:</b></td><td>jump to issue after / before current issue</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">o</span> / <span class="letter">&lt;Enter&gt;</span> <b>:</b></td><td>open current issue</td>
+        </tr>
+        <tr>
+	  <td class="shortcut"><span class="letter">#</span> <b>:</b></td>
+	  <td>close issue</td>
+	</tr>
+        <tr><td>&nbsp;</td></tr>
+        <tr>
+          <td></td><th>Comment/message editing</th>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">&lt;Ctrl&gt;</span> + <span class="letter">s</span> <b>:</b></td><td>save comment</td>
+        </tr>
+        <tr>
+          <td class="shortcut"><span class="letter">&lt;Esc&gt;</span> <b>:</b></td><td>cancel edit</td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+
+</table>
+</div>
+<!-- End help window -->
+
+<div align="right">
+{%if is_dev%}
+<div style="float:left; color:green; font-weight:bold">DEVELOPMENT SERVER</div>
+{%else%}
+<div style="float:left; font-weight:bold"><i>Rietveld</i> Code Review Tool</div>
+{%endif%}
+{%if user%}
+<b>{{user.email}} ({%nickname user True%})</b>
+|
+{%if must_choose_nickname%}
+<span style="color:red">Please choose your nickname with</span>{%endif%}
+<a class="novisit" href="{%url codereview.views.settings%}">Settings</a>
+|
+{%endif%}
+{%if is_dev%}
+<a class="novisit" target="_blank" href="/_ah/admin">Admin</a>
+|
+{%endif%}
+<a class="novisit" target="_blank"
+   href="http://code.google.com/p/rietveld/wiki/CodeReviewHelp">Help</a>
+|
+<a class="novisit" target="_blank"
+   href="http://code.google.com/p/rietveld/issues/list">Bug tracker</a>
+|
+<a class="novisit" target="_blank"
+   href="http://groups.google.com/group/codereview-discuss">Discussion group</a>
+|
+<a class="novisit" target="_blank"
+   href="http://code.google.com/p/rietveld">Source code</a>
+|
+{%if user%}
+<a class="novisit" href="{%url roundup%}?@action=logout">Sign out</a>
+{% else %}
+<a class="novisit" href="{%url roundup%}">Sign in</a>
+{%endif%}
+</div>
+
+<div class="counter">({{counter}})</div>
+<div class="mainmenu">
+  {%block mainmenu%}
+  <a href="{%url codereview.views.index %}">Issues</a>
+  <a href="{%url codereview.views.repos %}">Repositories</a>
+  {%endblock%}
+</div>
+<div class="mainmenu2">
+  {%block mainmenu2%}{%endblock%}
+</div>
+
+<div>
+{%block body%}BODY GOES HERE{%endblock%}
+</div>
+{%block popup%}{%endblock%}
+
+<p />
+<div id="footer" style="float:left; font-size:75%">
+<a href="http://www.python.org/about/website">Website maintained by the Python community</a><br />
+
+<a href="http://www.upfrontsystems.co.za/" title="issue tracker hosting provided by Upfront Systems, South Africa">hosting by Upfront Systems</a> <br/>
+Copyright &copy; 1990-2010, <a href="http://python.org/psf">Python Software Foundation</a><br />
+<a href="http://python.org/about/legal">Legal Statements</a>
+</div> 
+
+<div class="extra" style="font-size: 9pt; float: right; text-align: right;">
+  <div style="height:14px;">
+  <img src="{{media_url}}rss.gif" alt="RSS Feeds" width="14" height="14"
+       align="top" />
+  <a href="{%url django.contrib.syndication.views.feed url="all"%}">Recent Issues</a>
+  {%if user%}
+  |
+  <a href="{%url django.contrib.syndication.views.feed url="mine"%}/{%nickname user True%}">My Issues</a>
+  |
+  <a href="{%url django.contrib.syndication.views.feed url="reviews"%}/{%nickname user True%}">My Reviews</a>
+  |
+  <a href="{%url django.contrib.syndication.views.feed url="closed"%}/{%nickname user True%}">My Closed</a>
+  {%endif%}
+  {%if issue%}
+  |
+  <a href="{%url django.contrib.syndication.views.feed url="issue"%}/{{issue.key.id}}">This issue</a>
+  {%endif%} 
+  </div>
+  <div style="margin-top: .3em;">{%include "live_revision.html"%}</div>
+</div>
+
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+var pageTracker = _gat._getTracker("UA-4803694-4");
+pageTracker._initData();
+pageTracker._trackPageview();
+</script>
+</body>
+</html>

Added: tracker/instances/python-dev/lib/rietveld/templates/branch_edit.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/branch_edit.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/branch_edit.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/branch_new.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/branch_new.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/branch_new.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/diff.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/diff.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/diff.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/diff2.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/diff2.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/diff2.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/diff_navigation.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/diff_navigation.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/diff_navigation.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/draft_message.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/draft_message.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/draft_message.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/edit.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/edit.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/edit.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/feeds
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/feeds	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/feeds
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/file_navigation.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/file_navigation.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/file_navigation.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/inline_comment.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/inline_comment.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/inline_comment.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/issue.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/issue.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/issue.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/issue_base.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/issue_base.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1,127 @@
+{%extends "base.html"%}
+
+{%block mainmenu%}
+  <a href="{%url codereview.views.index%}" class="active">Issues</a>
+  <a href="{%url codereview.views.repos%}">Repositories</a>
+{%endblock%}
+
+
+{%block mainmenu2%}
+  {%if user%}
+    {%if uploadpy_hint%}
+      <a href="{%url codereview.views.use_uploadpy%}">Create Issue</a>
+    {%else%}
+      <a href="{%url codereview.views.new%}">Create Issue</a>
+    {%endif%}
+    |
+    <a href="{%url codereview.views.mine%}">My Issues</a>
+    |
+    <a href="{%url codereview.views.all%}">Recent Issues</a>
+    |
+    <a href="{%url codereview.views.starred%}">Starred Issues</a>
+  {%else%}
+    <a class="novisit" href="{%url codereview.views.index%}">Recent Issues</a>
+    |
+    <a class="novisit" href="{%url roundup%}">Sign in</a>
+    with your traccer account to create issues and add comments
+  {%endif%}
+{%endblock%}
+
+
+{%block body%}
+  <h2>
+    {%include "issue_star.html"%}
+{%if issue.edit_allowed and not issue.closed%}
+<span class="issue-close" id="issue-close-{{issue.key.id}}">
+    <a href="javascript:M_closeIssue({{issue.key.id}})">
+      <img src="{{media_url}}close.gif" title="Close This Issue" width="15"
+	   height="15" border="0"></a>
+</span>
+{%endif%}
+    Issue <a href="{%url codereview.views.show issue.key.id%}"
+               onmouseover="M_showPopUp(this, 'popup-issue');">
+            {{issue.key.id}}</a>:
+    {{issue.subject}} {%if issue.closed %} (Closed) {%endif%}
+  </h2>
+
+  <table class="issue-details" border="0" width="100%">
+    <tr valign="top">
+
+      <td class="meta" width="20%">
+        {%block issue_actions%}
+          <div>
+            {%if issue.edit_allowed%}
+              <a class="novisit"
+                 href="{%url codereview.views.edit issue.key.id%}">
+                Edit Issue
+              </a>
+            {%else%}
+              <span class="disabled">Can't Edit</span>
+            {%endif%}
+            <br/>
+            {%if user%}
+              <a class="novisit"
+                 href="{%url codereview.views.publish issue.key.id%}">
+                Publish+Mail Comments
+              </a> ('m')
+            {%else%}
+              <span class="disabled">Can't Publish+Mail</span>
+            {%endif%}
+            {%if last_patchset and first_patch%}
+              <br/>
+              <a class="novisit"
+                 href="{%url codereview.views.diff issue.key.id,last_patchset.key.id,first_patch.key.id%}">
+                <b>Start Review</b>
+              </a>
+            {%endif%}
+          </div>
+        {%endblock%}
+        <div class="issue_details_sidebar">
+          <div><b>Created:</b><br/>
+            {{issue.created|timesince}} ago by {{issue.owner|show_user}}
+          </div>
+          <div><b>Modified:</b><br/>
+            {{issue.modified|timesince}} ago
+          </div>
+          <div><b>Reviewers:</b><br/>
+            {{issue.reviewers|show_users}}
+          </div>
+          <div><b>CC:</b><br/>
+            {%nicknames issue.cc%}
+          </div>
+          <div><b>SVN Base:</b><br/>
+            {%firstof issue.base%}
+          </div>
+          <div><b>Visibility:</b><br/>
+            {%if issue.private%}
+                Private. Only viewable by reviewers and CCs.
+            {% else %}
+                Public.
+            {%endif%}
+          </div>
+        </div>
+      </td>
+
+      <td style="padding-left: .8em; padding-right: .8em;" width="80%">
+        {%block issue_body%}BODY GOES HERE{%endblock%}
+      </td>
+    </tr>
+  </table>
+{%endblock%}
+
+
+{%block popup%}
+  {%if issue%}
+    <div class="popup" id="popup-issue">
+      <b>Issue {{issue.key.id}}: {{issue.subject}}
+	{%if issue.closed %} (Closed) {%endif%}</b><br/>
+      Created {{issue.created|timesince}} ago by {%nickname issue.owner%}<br/>
+      Modified {{issue.modified|timesince}} ago<br/>
+      Reviewers: {%nicknames issue.reviewers%}<br/>
+      SVN Base: {{issue.base}}<br/>
+      Comments: {{issue.num_comments}}
+      {%if issue.num_drafts%} <span style="color: red;">+
+	{{issue.num_drafts}} drafts</span>{%endif%}
+    </div>
+  {%endif%}
+{%endblock%}

Added: tracker/instances/python-dev/lib/rietveld/templates/issue_heading.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/issue_heading.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/issue_heading.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/issue_row.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/issue_row.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/issue_row.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/issue_star.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/issue_star.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/issue_star.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/live_revision.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/live_revision.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/live_revision.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/mails
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/mails	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/mails
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/new.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/new.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/new.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/patch.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/patch.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/patch.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/patchset.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/patchset.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/patchset.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/publish.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/publish.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/publish.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/repo_new.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/repo_new.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/repo_new.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/repos.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/repos.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/repos.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/repos_base.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/repos_base.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1,15 @@
+{%extends "base.html"%}
+{%block mainmenu%}
+<a href="{%url codereview.views.index%}">Issues</a>
+<a href="{%url codereview.views.repos%}" class="active">Repositories</a>
+{%endblock%}
+
+{%block mainmenu2%}
+  <a href="{%url codereview.views.repos%}">Repositories and Branches</a>
+  {%if is_admin%}
+    |
+    <a href="{%url codereview.views.repo_init%}">Initialize Repositories</a>
+  {%endif%}
+{%endblock%}
+
+{%block body%}BODY GOES HERE{%endblock%}
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/settings.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/settings.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/settings.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/starred.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/starred.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/starred.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/use_uploadpy.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/use_uploadpy.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/use_uploadpy.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/user.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/user.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/user.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/user_popup.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/user_popup.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/user_popup.html
\ No newline at end of file

Added: tracker/instances/python-dev/lib/rietveld/templates/view_details_select.html
==============================================================================
--- (empty file)
+++ tracker/instances/python-dev/lib/rietveld/templates/view_details_select.html	Thu Sep 30 23:07:30 2010
@@ -0,0 +1 @@
+link ../templates_svn/view_details_select.html
\ No newline at end of file


More information about the Python-checkins mailing list