]> git.ozlabs.org Git - patchwork/commitdiff
Make pwclient visible thorugh site, and add .pwclientrc infrastructure
authorJeremy Kerr <jk@ozlabs.org>
Mon, 8 Sep 2008 03:07:25 +0000 (13:07 +1000)
committerJeremy Kerr <jk@ozlabs.org>
Mon, 8 Sep 2008 03:07:25 +0000 (13:07 +1000)
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
apps/patchwork/requestcontext.py
apps/patchwork/urls.py
apps/patchwork/views/base.py
templates/patchwork/help/pwclient.html [new file with mode: 0644]
templates/patchwork/project.html
templates/patchwork/pwclient.py [new symlink]
templates/patchwork/pwclientrc

index e9a267519fa3e1bf772daa31f511f5437aef1afe..c1440dd28ea1df8d6d6b58f0c8e2c16a1445c12f 100644 (file)
@@ -20,6 +20,7 @@
 from django.template import RequestContext
 from django.utils.html import escape
 from django.contrib.sites.models import Site
 from django.template import RequestContext
 from django.utils.html import escape
 from django.contrib.sites.models import Site
+from django.conf import settings
 from patchwork.filters import Filters
 from patchwork.models import Bundle, Project
 
 from patchwork.filters import Filters
 from patchwork.models import Bundle, Project
 
@@ -67,6 +68,7 @@ class PatchworkRequestContext(RequestContext):
         self.update({
                 'project': self.project,
                 'site': Site.objects.get_current(),
         self.update({
                 'project': self.project,
                 'site': Site.objects.get_current(),
+                'settings': settings,
                 'other_projects': len(self.projects) > 1
             })
 
                 'other_projects': len(self.projects) > 1
             })
 
index 20de7b8e96d4d66b0423038d185f0da797ed00ee..f7c942a3882fdfa5089132239848a0d55a191a1e 100644 (file)
@@ -58,6 +58,7 @@ urlpatterns = patterns('',
 
 if settings.ENABLE_XMLRPC:
     urlpatterns += patterns('',
 
 if settings.ENABLE_XMLRPC:
     urlpatterns += patterns('',
+        (r'^pwclient.py/$', 'patchwork.views.pwclient'),
         (r'^project/(?P<project_id>[^/]+)/pwclientrc/$',
              'patchwork.views.pwclientrc'),
     )
         (r'^project/(?P<project_id>[^/]+)/pwclientrc/$',
              'patchwork.views.pwclientrc'),
     )
index 8697ab4c4b2c1d3a9503c950850584e5b64f4049..b49b221e5214842a5d4935017e3fab471d4653d5 100644 (file)
@@ -30,6 +30,7 @@ import django.core.urlresolvers
 from patchwork.requestcontext import PatchworkRequestContext
 from django.core import serializers
 from django.template.loader import render_to_string
 from patchwork.requestcontext import PatchworkRequestContext
 from django.core import serializers
 from django.template.loader import render_to_string
+from django.conf import settings
 
 def projects(request):
     context = PatchworkRequestContext(request)
 
 def projects(request):
     context = PatchworkRequestContext(request)
@@ -66,6 +67,13 @@ def pwclientrc(request, project_id):
     response.write(render_to_string('patchwork/pwclientrc', context))
     return response
 
     response.write(render_to_string('patchwork/pwclientrc', context))
     return response
 
+def pwclient(request):
+    context = PatchworkRequestContext(request)
+    response = HttpResponse(mimetype = "text/x-python")
+    response['Content-Disposition'] = 'attachment; filename=pwclient.py'
+    response.write(render_to_string('patchwork/pwclient.py', context))
+    return response
+
 def submitter_complete(request):
     search = request.GET.get('q', '')
     response = HttpResponse(mimetype = "text/plain")
 def submitter_complete(request):
     search = request.GET.get('q', '')
     response = HttpResponse(mimetype = "text/plain")
@@ -75,7 +83,12 @@ def submitter_complete(request):
         json_serializer.serialize(queryset, ensure_ascii=False, stream=response)
     return response
 
         json_serializer.serialize(queryset, ensure_ascii=False, stream=response)
     return response
 
-help_pages = {'': 'index.html', 'about/': 'about.html'}
+help_pages = {'':           'index.html',
+              'about/':     'about.html',
+             }
+
+if settings.ENABLE_XMLRPC:
+    help_pages['pwclient/'] = 'pwclient.html'
 
 def help(request, path):
     context = PatchworkRequestContext(request)
 
 def help(request, path):
     context = PatchworkRequestContext(request)
diff --git a/templates/patchwork/help/pwclient.html b/templates/patchwork/help/pwclient.html
new file mode 100644 (file)
index 0000000..efce79c
--- /dev/null
@@ -0,0 +1,23 @@
+{% extends "base.html" %}
+
+{% block title %}Command-line client{% endblock %}
+{% block heading %} - Command-line client{% endblock %}
+
+{% block body %}
+
+<p><code>pwclient</code> is the command-line client for patchwork. Currently,
+it provides access to some read-only features of patchwork, such as downloading
+and applying patches.</p>
+
+<p>To use pwclient, you will need:</p>
+<ul>
+ <li>The <a href="{% url patchwork.views.pwclient %}">pwclient.py</a>
+  program (11kB, python script)</li>
+ <li>(optional) a <code>.pwclientrc</code> file in your home directory.</li>
+</ul>
+
+<p>You can create your own <code>.pwclientrc</code> file. Each
+<a href="{% url patchwork.views.projects %}">patchwork project</a>
+provides a sample linked from the 'project info' page.</p>
+
+{% endblock %}
index f29540cedfc3eb2437ca29f411d7d7ccd7b6a62a..49ceb575829aa9a2b1df7fc1f858f406caaef181 100644 (file)
   <td>{{n_patches}} (+ {{n_archived_patches}} archived)</td>
  </tr>
 </table>
   <td>{{n_patches}} (+ {{n_archived_patches}} archived)</td>
  </tr>
 </table>
+
+{% if settings.ENABLE_XMLRPC %}
+<p>Sample <a href="{% url patchwork.views.help "pwclient/" %}">patchwork
+client</a> configuration for this project: <a
+href="{% url patchwork.views.pwclientrc project.linkname %}"
+>.pwclientrc</a>.</p>
+{% endif %}
   
 {% endblock %}
   
 {% endblock %}
diff --git a/templates/patchwork/pwclient.py b/templates/patchwork/pwclient.py
new file mode 120000 (symlink)
index 0000000..c196eb3
--- /dev/null
@@ -0,0 +1 @@
+../../apps/patchwork/bin/pwclient.py
\ No newline at end of file
index d7c1c321a36e16849945e9a9c51303dd7aa2dd17..7aaf34630b68d577921935658420e14bc490520b 100644 (file)
@@ -6,8 +6,10 @@
 [base]
 url: http://{{site.domain}}{% url django_xmlrpc.views.handle_xmlrpc %}
 project: {{ project.linkname }}
 [base]
 url: http://{{site.domain}}{% url django_xmlrpc.views.handle_xmlrpc %}
 project: {{ project.linkname }}
+{% comment %}
 {% if user.is_authenticated %}
 [auth]
 user: {{ user.username }}
 password: <add your patchwork password here>
 {% endif %}
 {% if user.is_authenticated %}
 [auth]
 user: {{ user.username }}
 password: <add your patchwork password here>
 {% endif %}
+{% endcomment %}