diff options
Diffstat (limited to 'patchtracker/views.py')
-rw-r--r-- | patchtracker/views.py | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/patchtracker/views.py b/patchtracker/views.py index e24ba1b..eac4e89 100644 --- a/patchtracker/views.py +++ b/patchtracker/views.py @@ -1,11 +1,13 @@ import os -import django.template +import django.http import django.shortcuts +import django.template -import models +import DebTarHandler import DiffGzHandler import Conf +import models def package_vers(request, package, version): pkg = models.SourcePackage.objects.get( name=package, version=version ) @@ -18,3 +20,30 @@ def package_vers(request, package, version): extra = { 'pkg':pkg, 'ctx':ctx, 'conf':Conf, 'diffhandler':diffhandler } return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx) +def download_series_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(dtar) + patchContents = diffhandler.series().fetch(patch) + return django.http.HttpResponse(patchContents, mimetype="text/plain") + +def view_series_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(dtar) + patchContents = diffhandler.series().fetch(patch) + extra = { 'pkg':pkg, 'patch':patch, 'patchContents':patchContents, + 'patchType':'series', 'conf':Conf } + return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx) |