summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Finney <seanius@debian.org>2010-05-13 13:04:37 +0200
committerSean Finney <seanius@debian.org>2010-05-13 13:04:37 +0200
commit4b8d2dc2b041e4fb0a6eed4244c47e3d62a5b3f9 (patch)
tree4dccb8fc09ee9bcd81af2f486c983cffd4d157b9
parente18cb8cd9179424c765c4aee5ff7481a528a6698 (diff)
downloadpatch-tracker-4b8d2dc2b041e4fb0a6eed4244c47e3d62a5b3f9.tar.gz
Django implementations of the rest of the patch view/download views
-rw-r--r--patchtracker/urls.py9
-rw-r--r--patchtracker/views.py58
-rw-r--r--templates/package_vers.html27
3 files changed, 94 insertions, 0 deletions
diff --git a/patchtracker/urls.py b/patchtracker/urls.py
index 9738dc5..95376ca 100644
--- a/patchtracker/urls.py
+++ b/patchtracker/urls.py
@@ -12,4 +12,13 @@ urlpatterns = patterns('',
views.download_debianonly_patch),
url(r'^patch/debianonly/view/(?P<package>\w+)/(?P<version>[^/]+)$',
views.view_debianonly_patch),
+ url(r'^patch/nondebian/view/(?P<package>\w+)/(?P<version>[^/]+)$',
+ views.view_nondebian_patch),
+ url(r'^patch/nondebian/dl/(?P<package>\w+)/(?P<version>[^/]+)$',
+ views.download_nondebian_patch),
+ url(r'^patch/misc/view/(?P<package>\w+)/(?P<version>[^/]+)/(?P<patch>.*)$',
+ views.view_misc_patch),
+ url(r'^patch/misc/dl/(?P<package>\w+)/(?P<version>[^/]+)/(?P<patch>.*)$',
+ views.download_misc_patch),
+
)
diff --git a/patchtracker/views.py b/patchtracker/views.py
index 611684b..9f5ff56 100644
--- a/patchtracker/views.py
+++ b/patchtracker/views.py
@@ -78,3 +78,61 @@ def view_debianonly_patch(request, package, version):
extra = { 'pkg':pkg, 'patch':'debian-dir only changes',
'patchContents':patchContents, 'patchType':'series', 'conf':Conf }
return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx)
+
+def view_nondebian_patch(request, package, version):
+ pkg = models.SourcePackage.objects.get( name=package, version=version )
+ ctx = django.template.RequestContext(request)
+ tmpl = 'patch_view.html'
+ diffhandler = None
+ if pkg.diffgz_name:
+ dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name])
+ diffhandler = DiffGzHandler.DiffGzHandler(dgz)
+ elif pkg.debtar_name:
+ dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name])
+ diffhandler = DebTarHandler.DebTarHandler(dtar)
+ patchContents = diffhandler.nondebiandir()
+ extra = { 'pkg':pkg, 'patch':'direct (non-packaging) changes',
+ 'patchContents':patchContents, 'patchType':'series', 'conf':Conf }
+ return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx)
+
+def download_nondebian_patch(request, package, version):
+ pkg = models.SourcePackage.objects.get( name=package, version=version )
+ diffhandler = None
+ if pkg.diffgz_name:
+ dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name])
+ diffhandler = DiffGzHandler.DiffGzHandler(dgz)
+ elif pkg.debtar_name:
+ dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name])
+ diffhandler = DebTarHandler.DebTarHandler(dtar)
+ patchContents = diffhandler.nondebiandir()
+ return django.http.HttpResponse(patchContents, mimetype="text/plain")
+
+def download_misc_patch(request, package, version, patch):
+ pkg = models.SourcePackage.objects.get( name=package, version=version )
+ diffhandler = None
+ if pkg.diffgz_name:
+ dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name])
+ diffhandler = DiffGzHandler.DiffGzHandler(dgz)
+ elif pkg.debtar_name:
+ dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name])
+ diffhandler = DebTarHandler.DebTarHandler(dtar)
+ patchContents = diffhandler.filterdiff(include=patch)
+ return django.http.HttpResponse(patchContents, mimetype="text/plain")
+
+def view_misc_patch(request, package, version, patch):
+ pkg = models.SourcePackage.objects.get( name=package, version=version )
+ ctx = django.template.RequestContext(request)
+ tmpl = 'patch_view.html'
+ diffhandler = None
+ if pkg.diffgz_name:
+ dgz = os.sep.join([Conf.archive_root, pkg.loc, pkg.diffgz_name])
+ diffhandler = DiffGzHandler.DiffGzHandler(dgz)
+ elif pkg.debtar_name:
+ dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name])
+ diffhandler = DebTarHandler.DebTarHandler(dtar)
+ patchContents = diffhandler.filterdiff(include=patch)
+ extra = { 'pkg':pkg, 'patch':patch, 'patchContents':patchContents,
+ 'patchType':'series', 'conf':Conf }
+ return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx)
+
+
diff --git a/templates/package_vers.html b/templates/package_vers.html
index 536aed0..81f03b2 100644
--- a/templates/package_vers.html
+++ b/templates/package_vers.html
@@ -117,5 +117,32 @@ debian specific patch information for {{ pkg.name }} / {{ pkg.version }}
{% endif %}
{% endif %}
+{% if pkg.diffgz_name and diffhandler.nondebiandir.lines %}
+ <div class="nondebdiff">
+ <a name="direct-patches"></a>
+ <h2> Misc. Non-packaging "direct" style patches </h2>
+ <table class="patchlisting">
+ <tr>
+ <th>file</th>
+ <th>inserted</th>
+ <th>deleted</th>
+ <th>modified</th>
+ <th>view</th>
+ <th>download</th>
+ </tr>
+ {% for insd,deld,modd,f in diffhandler.nondebiandir.diffstat.stats %}
+ <tr>
+ <td>{{ f }}</td><td>{{ insd }}</td><td>{{ deld }}</td><td>{{ modd }}</td>
+ <td>
+ <a href="{{ conf.root_url }}/patch/misc/view/{{ pkg.name }}/{{ pkg.version }}/{{ f }}">view</a>
+ </td>
+ <td>
+ <a href="{{ conf.root_url }}/patch/misc/dl/{{ pkg.name }}/{{ pkg.version }}/{{ f }}">download</a>
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ </div> <!-- nondebdiff -->
+{% endif %}
{% endblock %}