diff options
-rw-r--r-- | patchtracker/urls.py | 4 | ||||
-rw-r--r-- | patchtracker/views.py | 28 |
2 files changed, 32 insertions, 0 deletions
diff --git a/patchtracker/urls.py b/patchtracker/urls.py index 23992f4..9738dc5 100644 --- a/patchtracker/urls.py +++ b/patchtracker/urls.py @@ -8,4 +8,8 @@ urlpatterns = patterns('', views.download_series_patch), url(r'^patch/series/view/(?P<package>\w+)/(?P<version>[^/]+)/(?P<patch>[^/]*)$', views.view_series_patch), + url(r'^patch/debianonly/dl/(?P<package>\w+)/(?P<version>[^/]+)$', + views.download_debianonly_patch), + url(r'^patch/debianonly/view/(?P<package>\w+)/(?P<version>[^/]+)$', + views.view_debianonly_patch), ) diff --git a/patchtracker/views.py b/patchtracker/views.py index eac4e89..3ac95e4 100644 --- a/patchtracker/views.py +++ b/patchtracker/views.py @@ -47,3 +47,31 @@ def view_series_patch(request, package, version, patch): extra = { 'pkg':pkg, 'patch':patch, 'patchContents':patchContents, 'patchType':'series', 'conf':Conf } return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx) + +def download_debianonly_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(dtar) + patchContents = diffhandler.debiandir() + return django.http.HttpResponse(patchContents, mimetype="text/plain") + +def view_debianonly_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(dtar) + patchContents = diffhandler.debiandir() + 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) |