[buildinfo.debian.net] 02/02: Add a (source, version) page, experimenting with some kind of "is X repro.." use-case..

Chris Lamb chris at chris-lamb.co.uk
Tue Nov 8 14:20:45 UTC 2016


This is an automated email from the git hooks/post-receive script.

lamby pushed a commit to branch master
in repository buildinfo.debian.net.

commit beaaa36cb59c5ad130a73c32757d01127a67d6b3
Author: Chris Lamb <lamby at debian.org>
Date:   Tue Nov 8 14:20:32 2016 +0000

    Add a (source, version) page, experimenting with some kind of "is X repro.." use-case..
---
 bidb/packages/urls.py                  |  2 ++
 bidb/packages/views.py                 | 21 ++++++++++++++++++++-
 templates/packages/source.html         |  2 +-
 templates/packages/source_version.html | 33 +++++++++++++++++++++++++++++++++
 4 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/bidb/packages/urls.py b/bidb/packages/urls.py
index f7cf570..b5c0967 100644
--- a/bidb/packages/urls.py
+++ b/bidb/packages/urls.py
@@ -11,6 +11,8 @@ urlpatterns = (
 
     url(r'^sources/(?P<name>[^/]+)$', views.source,
         name='source'),
+    url(r'^sources/(?P<name>[^/]+)/(?P<version>[^/]+)$', views.source_version,
+        name='source-version'),
     url(r'^binaries/(?P<name>[^/]+)$', views.binary,
         name='binary'),
 )
diff --git a/bidb/packages/views.py b/bidb/packages/views.py
index 8f45ccb..9615d48 100644
--- a/bidb/packages/views.py
+++ b/bidb/packages/views.py
@@ -1,5 +1,6 @@
 from django.shortcuts import render, get_object_or_404
 
+from bidb.utils.itertools import groupby
 from bidb.utils.paginator import AutoPaginator
 
 from .models import Binary, Source
@@ -19,7 +20,6 @@ def binaries(request):
         'page': page,
     })
 
-
 def source(request, name):
     source = get_object_or_404(Source, name=name)
 
@@ -36,6 +36,25 @@ def source(request, name):
         'versions': versions,
     })
 
+def source_version(request, name, version):
+    source = get_object_or_404(
+        Source,
+        name=name,
+        buildinfos__version=version,
+    )
+
+    buildinfos_by_arch = groupby(
+        source.buildinfos.order_by('architecture__name'),
+        lambda x: x.architecture.name,
+        lambda x: x.version,
+    )
+
+    return render(request, 'packages/source_version.html', {
+        'source': source,
+        'version': version,
+        'buildinfos_by_arch': buildinfos_by_arch,
+    })
+
 def binary(request, name):
     binary = get_object_or_404(Binary, name=name)
 
diff --git a/templates/packages/source.html b/templates/packages/source.html
index 5c2f676..42183f4 100644
--- a/templates/packages/source.html
+++ b/templates/packages/source.html
@@ -28,7 +28,7 @@
 <ul class="list-horizontal">
   {% for x in versions %}
   <li>
-    <code>{{ x }}</code>
+    <code><a href="{% url "packages:source-version" source.name x %}">{{ x }}</a></code>
   </li>
   {% endfor %}
 </ul>
diff --git a/templates/packages/source_version.html b/templates/packages/source_version.html
new file mode 100644
index 0000000..84126dc
--- /dev/null
+++ b/templates/packages/source_version.html
@@ -0,0 +1,33 @@
+{% extends "base/base.html" %}
+
+{% block body_classes %}{{ block.super }} f_packages_source{% endblock %}
+
+{% block title %}{{ source.name }} (source package) — {{ block.super }}{% endblock %}
+
+{% block content %}
+
+<div class="page-header">
+  <h1>
+    <a href="{{ source.get_absolute_url }}"><span class="label label-primary">{{ source.name }}</span></a>
+    <small>{{ version }}</small>
+  </h1>
+</div>
+
+<h2>.buildinfo files:</h2>
+
+<ul>
+  {% for architecture,buildinfos in buildinfos_by_arch %}
+  <li>
+    {{ architecture }}:
+    <ul>
+      {% for buildinfo in buildinfos %}
+      <li>
+        <a href="{{ buildinfo.get_absolute_url }}"><code>{{ buildinfo.get_filename }}.buildinfo</code></a>
+      </li>
+      {% endfor %}
+    </ul>
+  </li>
+  {% endfor %}
+</ul>
+
+{% endblock%}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/buildinfo.debian.net.git



More information about the Reproducible-commits mailing list