diff options
author | Sean Finney <seanius@debian.org> | 2010-05-13 13:31:43 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2010-05-13 13:31:43 +0200 |
commit | 022a984fd1d24241c3e1801fd210cd34cdf0e5a6 (patch) | |
tree | e51aa84ed32f31c16883d87124b887d3c4d16b16 /patchtracker | |
parent | b0e279670a4d96c9929b70a658e3b1dc09ae50ee (diff) | |
download | patch-tracker-022a984fd1d24241c3e1801fd210cd34cdf0e5a6.tar.gz |
Refactor the view code down considerably
Diffstat (limited to 'patchtracker')
-rw-r--r-- | patchtracker/urls.py | 20 | ||||
-rw-r--r-- | patchtracker/views.py | 116 |
2 files changed, 29 insertions, 107 deletions
diff --git a/patchtracker/urls.py b/patchtracker/urls.py index 95376ca..6d2d20b 100644 --- a/patchtracker/urls.py +++ b/patchtracker/urls.py @@ -4,21 +4,9 @@ import views urlpatterns = patterns('', url(r'^package/(?P<package>\w+)/(?P<version>[^/]+)$', views.package_vers), - url(r'^patch/series/dl/(?P<package>\w+)/(?P<version>[^/]+)/(?P<patch>[^/]*)$', - 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), - 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), + url(r'^patch/(?P<patchType>(debianonly|misc|nondebian|series))/view/(?P<package>\w+)/(?P<version>[^/]+)/(?P<patchName>.*)$', + views.display_patch), + url(r'^patch/(?P<patchType>(debianonly|misc|nondebian|series))/dl/(?P<package>\w+)/(?P<version>[^/]+)/(?P<patchName>.*)$', + views.download_patch), ) diff --git a/patchtracker/views.py b/patchtracker/views.py index 9f5ff56..ec20cdb 100644 --- a/patchtracker/views.py +++ b/patchtracker/views.py @@ -23,19 +23,7 @@ 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.DebTarHandler(dtar) - patchContents = diffhandler.series().fetch(patch) - return django.http.HttpResponse(patchContents, mimetype="text/plain") - -def view_series_patch(request, package, version, patch): +def display_patch(request, patchType, package, version, patchName): pkg = models.SourcePackage.objects.get( name=package, version=version ) ctx = django.template.RequestContext(request) tmpl = 'patch_view.html' @@ -46,43 +34,26 @@ def view_series_patch(request, package, version, patch): elif pkg.debtar_name: dtar = os.sep.join([Conf.archive_root, pkg.loc, pkg.debtar_name]) diffhandler = DebTarHandler.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) -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.DebTarHandler(dtar) - patchContents = diffhandler.debiandir() - return django.http.HttpResponse(patchContents, mimetype="text/plain") + if patchType == "debianonly": + patch = diffhandler.debiandir() + patchTitle = "debian-dir only changes" + elif patchType == "misc": + patch = diffhandler.filterdiff(include=patchName) + patchTitle = patchName + elif patchType == "nondebian": + patch = diffhandler.nondebiandir() + patchTitle = "direct (non-packaging) changes" + elif patchType == "series": + patch = diffhandler.series().fetch(patchName) + patchTitle = patchName -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.DebTarHandler(dtar) - patchContents = diffhandler.debiandir() - extra = { 'pkg':pkg, 'patch':'debian-dir only changes', - 'patchContents':patchContents, 'patchType':'series', 'conf':Conf } + extra = { 'pkg':pkg, 'patch':patch, 'patchType':patchType, 'conf':Conf, + 'patchName':patchName, 'patchTitle':patchTitle } return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx) -def view_nondebian_patch(request, package, version): +def download_patch(request, patchType, package, version, patchName): 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]) @@ -90,49 +61,12 @@ def view_nondebian_patch(request, package, version): 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) - - + if patchType == "debianonly": + patch = diffhandler.debiandir() + elif patchType == "misc": + patch = diffhandler.filterdiff(include=patchName) + elif patchType == "nondebian": + patch = diffhandler.nondebiandir() + elif patchType == "series": + patch = diffhandler.series().fetch(patchName) + return django.http.HttpResponse(patch, mimetype="text/plain") |