diff options
Diffstat (limited to 'patchtracker')
-rw-r--r-- | patchtracker/models.py | 7 | ||||
-rw-r--r-- | patchtracker/urls.py | 8 | ||||
-rw-r--r-- | patchtracker/views.py | 21 |
3 files changed, 35 insertions, 1 deletions
diff --git a/patchtracker/models.py b/patchtracker/models.py index 12bd76a..0fb997d 100644 --- a/patchtracker/models.py +++ b/patchtracker/models.py @@ -15,6 +15,13 @@ class SourcePackage (models.Model): maintainer = models.CharField(max_length=1024) uploaders = models.CharField(max_length=4096, null=True, blank=True) + def type( self ): + """ Source package "type". Not incredibly useful, i guess... """ + if self.diffgz_name or self.debtar_name: + return "Debian-diff" + else: + return "Native" + def __unicode__( self ): return "%s (%s)"%(self.name, self.version) diff --git a/patchtracker/urls.py b/patchtracker/urls.py new file mode 100644 index 0000000..422a2a1 --- /dev/null +++ b/patchtracker/urls.py @@ -0,0 +1,8 @@ +from django.conf.urls.defaults import * +import views + +urlpatterns = patterns('', + url(r'^package/(?P<package>\w+)/(?P<version>[^/]+)$', + views.package_vers, + name='user_profile') + ) diff --git a/patchtracker/views.py b/patchtracker/views.py index 60f00ef..e24ba1b 100644 --- a/patchtracker/views.py +++ b/patchtracker/views.py @@ -1 +1,20 @@ -# Create your views here. +import os + +import django.template +import django.shortcuts + +import models +import DiffGzHandler +import Conf + +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) + extra = { 'pkg':pkg, 'ctx':ctx, 'conf':Conf, 'diffhandler':diffhandler } + return django.shortcuts.render_to_response(tmpl, extra, context_instance=ctx) + |