diff options
author | Sean Finney <seanius@debian.org> | 2010-05-13 13:04:37 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2010-05-13 13:04:37 +0200 |
commit | 4b8d2dc2b041e4fb0a6eed4244c47e3d62a5b3f9 (patch) | |
tree | 4dccb8fc09ee9bcd81af2f486c983cffd4d157b9 | |
parent | e18cb8cd9179424c765c4aee5ff7481a528a6698 (diff) | |
download | patch-tracker-4b8d2dc2b041e4fb0a6eed4244c47e3d62a5b3f9.tar.gz |
Django implementations of the rest of the patch view/download views
-rw-r--r-- | patchtracker/urls.py | 9 | ||||
-rw-r--r-- | patchtracker/views.py | 58 | ||||
-rw-r--r-- | templates/package_vers.html | 27 |
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 %} |