summaryrefslogtreecommitdiff
path: root/patchtracker
diff options
context:
space:
mode:
authorSean Finney <seanius@debian.org>2010-05-13 13:31:43 +0200
committerSean Finney <seanius@debian.org>2010-05-13 13:31:43 +0200
commit022a984fd1d24241c3e1801fd210cd34cdf0e5a6 (patch)
treee51aa84ed32f31c16883d87124b887d3c4d16b16 /patchtracker
parentb0e279670a4d96c9929b70a658e3b1dc09ae50ee (diff)
downloadpatch-tracker-022a984fd1d24241c3e1801fd210cd34cdf0e5a6.tar.gz
Refactor the view code down considerably
Diffstat (limited to 'patchtracker')
-rw-r--r--patchtracker/urls.py20
-rw-r--r--patchtracker/views.py116
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")