diff options
-rw-r--r-- | patchtracker/models.py | 7 | ||||
-rw-r--r-- | patchtracker/urls.py | 8 | ||||
-rw-r--r-- | patchtracker/views.py | 21 | ||||
-rw-r--r-- | settings.py | 1 | ||||
-rw-r--r-- | templates/base.html | 34 | ||||
-rw-r--r-- | templates/package_vers.html | 121 | ||||
-rw-r--r-- | urls.py | 20 |
7 files changed, 200 insertions, 12 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) + diff --git a/settings.py b/settings.py index 65cbea0..81ab0b6 100644 --- a/settings.py +++ b/settings.py @@ -70,6 +70,7 @@ TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. + '/home/sean/debian/patch-tracker/templates' ) INSTALLED_APPS = ( diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..aa832ad --- /dev/null +++ b/templates/base.html @@ -0,0 +1,34 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> + <head> + <title>{% block title %}{% endblock %}</title> + <link rel="stylesheet" type="text/css" + href="/static/css/patches.css"/> + </head> + <body> + <div class="pageheader"> + <img alt="[patchlogo]" src="/static/img/swirlpatch.png"/> + <p> <a href="/">Debian patch tracking system </a> </p> + <div class="breadcrumb"> + {% for crumb in crumbs %} + {{ crumb }} + {% endfor %} + </div> <!-- breadcrumb --> + </div> + {% block content %}{% endblock %} + <div class="pagefooter"> + page code/design/content is copyright (c) 2008 sean finney + <seanius@debian.org>. <br/> + patches viewed/retrieved through this system are copyrighted by + their respective authors. <br/> + <a href="http://git.debian.org/?p=users/seanius/patch-tracker.git"> + browse git repo + </a> + - + <a href="http://git.debian.org/git/users/seanius/patch-tracker.git"> + clone git repo + </a> + </div> <!-- pagefooter --> + </body> +</html> diff --git a/templates/package_vers.html b/templates/package_vers.html new file mode 100644 index 0000000..536aed0 --- /dev/null +++ b/templates/package_vers.html @@ -0,0 +1,121 @@ +{% extends "base.html" %} +{% block title %} +debian specific patch information for {{ pkg.name }} / {{ pkg.version }} +{% endblock %} +{% block content %} + <h1> + debian specific patch information for {{ pkg.name }} / {{ pkg.version }} + </h1> + <div class="diffsummary"> + <a name="diff-summary"></a> + <h2> Summary </h2> + <table class="summary"> + <tr> + <th>Package Version</th> + <th>Package Type</th> + <th>Source Package Format</th> + </tr> + <tr> + <td>{{ pkg.version }}</td> + <td>{{ pkg.type }}</td> + <td>{{ pkg.format }}</td> + </tr> + </table> + </div> <!-- diffsummary --> + +{% if pkg.debtar_name %} + <div class="debdiff"> + <a name="debian-tarball"></a> + <h2> Debian packaging Information </h2> + <table class="patchlisting"> + <tr> + <th>Debian changes tarfile</th> + <td colspan="2"> + <a href="{{ conf.archive_root_url }}/{{ pkg.loc }}/{{ pkg.debtar_name }}"> + {{ pkg.debtar_name }} + </a> + </td> + </tr> + <tr> + <th>Size</th><td colspan="2">{{ pkg.debtar_size }}</td> + </tr> + <tr> + <th>MD5sum</th><td colspan="2">{{ pkg.debtar_md5sum }}</td> + </tr> + </table> + </div> <!-- debdiff --> +{% endif %} +{% if pkg.diffgz_name %} + <div class="debdiff"> + <a name="debian-patches"></a> + <h2> Debian packaging Information </h2> + <table class="patchlisting"> + <tr> + <th>Diff file</th> + <td colspan="2"> + <a href="{{ conf.archive_root_url }}/{{ pkg.loc }}/{{ pkg.diffgz_name }}"> + {{ pkg.diffgz_name }} + </a> + </td> + </tr> + <tr> + <th>Size</th><td colspan="2">{{ pkg.diffgz_size }}</td> + </tr> + <tr> + <th>MD5sum</th><td colspan="2">{{ pkg.diffgz_md5sum }}</td> + </tr> + <tr> + <th>./debian only changes</th> + <td> + <a href="{{ conf.root_url }}/patch/debianonly/view/{{ pkg.name }}/{{ pkg.version }}">view</a> + </td> + <td> + <a href="{{ conf.root_url }}/patch/debianonly/dl/{{ pkg.name }}/{{ pkg.version }}">download</a> + </td> + </tr> + {% if pkg.diffgz_name and diffhandler.nondebiandir.lines %} + <tr> + <th>non packaging (i.e. not ./debian) changes</th> + <td> + <a href="{{ conf.root_url }}/patch/nondebian/view/{{ pkg.name }}/{{ pkg.version }}">view</a> + </td> + <td> + <a href="{{ conf.root_url }}/patch/nondebian/dl/{{ pkg.name }}/{{ pkg.version }}">download</a> + </td> + </tr> + {% endif %} + </table> + </div> <!-- debdiff --> +{% endif %} + +{% if pkg.diffgz_name or pkg.debtar_name %} + {% if diffhandler.series %} + <div class="debseries"> + <a name="series-patches"></a> + <h2> "series" style patches </h2> + <table class="patchlisting"> + <tr> + <th>patch</th> + <th>summary</th> + <th>view</th> + <th>raw</th> + </tr> + {% for name,patch in diffhandler.series.iterpatches %} + <tr> + <td>{{ name }}</td> + <td class="diffstat"><pre>{{ patch.diffstat }}</pre></td> + <td> + <a href="{{ conf.root_url }}/patch/series/view/{{ pkg.name }}/{{ pkg.version }}/{{ name }}">view</a> + </td> + <td> + <a href="{{ conf.root_url }}/patch/series/dl/{{ pkg.name }}/{{ pkg.version }}/{{ name }}">download</a> + </td> + </tr> + {% endfor %} + </table> + </div> <!-- debseries --> + {% endif %} +{% endif %} + + +{% endblock %} @@ -1,19 +1,17 @@ +import os + from django.conf.urls.defaults import * from django.contrib import admin admin.autodiscover() -# Uncomment the next two lines to enable the admin: -# from django.contrib import admin -# admin.autodiscover() +import patchtracker urlpatterns = patterns('', - # Example: - # (r'^debianpatchtracker/', include('debianpatchtracker.foo.urls')), - - # Uncomment the admin/doc line below and add 'django.contrib.admindocs' - # to INSTALLED_APPS to enable admin documentation: - # (r'^admin/doc/', include('django.contrib.admindocs.urls')), - - # Uncomment the next line to enable the admin: + # admin interface (for debugging, mostly) (r'^admin/', include(admin.site.urls)), + # static content + (r'^static/(?P<path>.*)$', 'django.views.static.serve', + {'document_root': os.path.sep.join([os.curdir, "static"])}), + + (r'^', include('patchtracker.urls')), ) |