summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--patchtracker/models.py13
-rw-r--r--patchtracker/views.py41
-rw-r--r--templates/package_vers.html10
3 files changed, 27 insertions, 37 deletions
diff --git a/patchtracker/models.py b/patchtracker/models.py
index 95a59df..3d4f582 100644
--- a/patchtracker/models.py
+++ b/patchtracker/models.py
@@ -1,5 +1,9 @@
+import os
import re
+import Conf
+import DiffGzHandler, DebTarHandler
+
from django.db import models
from django.contrib import admin
@@ -24,6 +28,15 @@ class SourcePackage (models.Model):
else:
return "Native"
+ def diffhandler( self ):
+ """ Return a diffhandler object too the caller """
+ if self.diffgz_name:
+ dgz = os.sep.join([Conf.archive_root, self.loc, self.diffgz_name])
+ return DiffGzHandler.DiffGzHandler(dgz)
+ elif self.debtar_name:
+ dtar = os.sep.join([Conf.archive_root, self.loc, self.debtar_name])
+ return DebTarHandler.DebTarHandler(dtar)
+
def anchor_name(self):
""" output a version of the package name suitable for use as an
anchor name (i.e. <a name="foo">) """
diff --git a/patchtracker/views.py b/patchtracker/views.py
index 4db3666..e790f3a 100644
--- a/patchtracker/views.py
+++ b/patchtracker/views.py
@@ -5,8 +5,6 @@ import django.shortcuts
import django.template
import ComplexQueries
-import DebTarHandler
-import DiffGzHandler
import Conf
import models
@@ -14,14 +12,7 @@ def package_vers(request, package, version):
pkg = models.SourcePackage.objects.get( name=package, version=version )
ctx = django.template.RequestContext(request)
tmpl = 'package_vers.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)
- extra = { 'pkg':pkg, 'ctx':ctx, 'conf':Conf, 'diffhandler':diffhandler }
+ extra = { 'pkg':pkg, 'ctx':ctx, 'conf':Conf }
return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx)
def display_toc(request, index):
@@ -35,25 +26,18 @@ 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'
- 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)
if patchType == "debianonly":
- patch = diffhandler.debiandir()
+ patch = pkg.diffhandler().debiandir()
patchTitle = "debian-dir only changes"
elif patchType == "misc":
- patch = diffhandler.filterdiff(include=patchName)
+ patch = pkg.diffhandler().filterdiff(include=patchName)
patchTitle = patchName
elif patchType == "nondebian":
- patch = diffhandler.nondebiandir()
+ patch = pkg.diffhandler().nondebiandir()
patchTitle = "direct (non-packaging) changes"
elif patchType == "series":
- patch = diffhandler.series().fetch(patchName)
+ patch = pkg.diffhandler().series().fetch(patchName)
patchTitle = patchName
extra = { 'pkg':pkg, 'patch':patch, 'patchType':patchType, 'conf':Conf,
@@ -62,19 +46,12 @@ def display_patch(request, patchType, package, version, patchName):
def download_patch(request, patchType, package, version, patchName):
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)
if patchType == "debianonly":
- patch = diffhandler.debiandir()
+ patch = pkg.diffhandler().debiandir()
elif patchType == "misc":
- patch = diffhandler.filterdiff(include=patchName)
+ patch = pkg.diffhandler().filterdiff(include=patchName)
elif patchType == "nondebian":
- patch = diffhandler.nondebiandir()
+ patch = pkg.diffhandler().nondebiandir()
elif patchType == "series":
- patch = diffhandler.series().fetch(patchName)
+ patch = pkg.diffhandler().series().fetch(patchName)
return django.http.HttpResponse(patch, mimetype="text/plain")
diff --git a/templates/package_vers.html b/templates/package_vers.html
index 81f03b2..7e4c1cb 100644
--- a/templates/package_vers.html
+++ b/templates/package_vers.html
@@ -73,7 +73,7 @@ debian specific patch information for {{ pkg.name }} / {{ pkg.version }}
<a href="{{ conf.root_url }}/patch/debianonly/dl/{{ pkg.name }}/{{ pkg.version }}">download</a>
</td>
</tr>
- {% if pkg.diffgz_name and diffhandler.nondebiandir.lines %}
+ {% if pkg.diffgz_name and pkg.diffhandler.nondebiandir.lines %}
<tr>
<th>non packaging (i.e. not ./debian) changes</th>
<td>
@@ -89,7 +89,7 @@ debian specific patch information for {{ pkg.name }} / {{ pkg.version }}
{% endif %}
{% if pkg.diffgz_name or pkg.debtar_name %}
- {% if diffhandler.series %}
+ {% if pkg.diffhandler.series %}
<div class="debseries">
<a name="series-patches"></a>
<h2> "series" style patches </h2>
@@ -100,7 +100,7 @@ debian specific patch information for {{ pkg.name }} / {{ pkg.version }}
<th>view</th>
<th>raw</th>
</tr>
- {% for name,patch in diffhandler.series.iterpatches %}
+ {% for name,patch in pkg.diffhandler.series.iterpatches %}
<tr>
<td>{{ name }}</td>
<td class="diffstat"><pre>{{ patch.diffstat }}</pre></td>
@@ -117,7 +117,7 @@ debian specific patch information for {{ pkg.name }} / {{ pkg.version }}
{% endif %}
{% endif %}
-{% if pkg.diffgz_name and diffhandler.nondebiandir.lines %}
+{% if pkg.diffgz_name and pkg.diffhandler.nondebiandir.lines %}
<div class="nondebdiff">
<a name="direct-patches"></a>
<h2> Misc. Non-packaging "direct" style patches </h2>
@@ -130,7 +130,7 @@ debian specific patch information for {{ pkg.name }} / {{ pkg.version }}
<th>view</th>
<th>download</th>
</tr>
- {% for insd,deld,modd,f in diffhandler.nondebiandir.diffstat.stats %}
+ {% for insd,deld,modd,f in pkg.diffhandler.nondebiandir.diffstat.stats %}
<tr>
<td>{{ f }}</td><td>{{ insd }}</td><td>{{ deld }}</td><td>{{ modd }}</td>
<td>