commit:     65c8b3dcce64f5c865baa472c0307a07c1f9872b
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 26 14:37:39 2015 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sun Jul 26 14:37:39 2015 +0000
URL:        
https://gitweb.gentoo.org/proj/tinderbox-cluster-www.git/commit/?id=65c8b3dc

add ebuild info and fix listing of packages

 python/tbc_www/models.py                           | 27 +++++++++++++
 python/tbc_www/urls.py                             |  1 +
 python/tbc_www/views.py                            | 40 ++++++++++++------
 python/templates/includes/frontpage/new_logs       |  8 ++--
 .../templates/pages/packages/category/index.html   |  6 +--
 .../pages/packages/ebuilds/ebuild/index.html       | 47 ++++++++++++++++++++++
 python/templates/pages/packages/index.html         |  6 +--
 7 files changed, 112 insertions(+), 23 deletions(-)

diff --git a/python/tbc_www/models.py b/python/tbc_www/models.py
index 621a7dc..2cb327a 100644
--- a/python/tbc_www/models.py
+++ b/python/tbc_www/models.py
@@ -175,6 +175,14 @@ class Keywords(models.Model):
        def __str__(self):
                return '%s %s' % (self.KeywordId, self.Keyword)
 
+class Restrictions(models.Model):
+       RestrictionId = models.IntegerField(primary_key=True, 
db_column='restriction_id')
+       Restriction = models.CharField(max_length=150, db_column='restriction')
+       class Meta:
+               db_table = 'restrictions'
+       def __str__(self):
+               return '%s %s' % (self.RestrictionId, self.Restriction)
+
 class EbuildsKeywords(models.Model):
        Id =  models.IntegerField(primary_key=True, db_column='id')
        EbuildId = models.ForeignKey(Ebuilds, db_column='ebuild_id')
@@ -184,3 +192,22 @@ class EbuildsKeywords(models.Model):
                db_table = 'ebuilds_keywords'
        def __str__(self):
                return '%s %s %s' % (self.EbuildId, self.KeywordId, self.Status)
+
+class EbuildsIuse(models.Model):
+       Id =  models.IntegerField(primary_key=True, db_column='id')
+       EbuildId = models.ForeignKey(Ebuilds, db_column='ebuild_id')
+       UseId = models.ForeignKey(Uses, db_column='use_id')
+       Status =models.BooleanField(db_column='status')
+       class Meta:
+               db_table = 'ebuilds_iuse'
+       def __str__(self):
+               return '%s %s %s %s' % (self.Id, self.EbuildId, self.UseId, 
self.Status)
+
+class EbuildsRestrictions(models.Model):
+       Id =  models.IntegerField(primary_key=True, db_column='id')
+       EbuildId = models.ForeignKey(Ebuilds, db_column='ebuild_id')
+       RestrictionId = models.ForeignKey(Restrictions, 
db_column='restriction_id')
+       class Meta:
+               db_table = 'ebuilds_restrictions'
+       def __str__(self):
+               return '%s %s' % (self.EbuildId, self.RestrictionId)

diff --git a/python/tbc_www/urls.py b/python/tbc_www/urls.py
index 193443f..4d50f40 100644
--- a/python/tbc_www/urls.py
+++ b/python/tbc_www/urls.py
@@ -5,5 +5,6 @@ urlpatterns = patterns('tbc_www.views',
        url(r'^packages/$', 'categories'),
        url(r'^categories/(?P<category_id>\d+)/$', 'packages'),
        url(r'^package/(?P<package_id>\d+)/$', 'ebuilds'),
+       url(r'^ebuild/(?P<ebuild_id>\d+)/$', 'ebuild'),
        url(r'^new/$', 'new_main'),
 )

diff --git a/python/tbc_www/views.py b/python/tbc_www/views.py
index f68a706..5b719aa 100644
--- a/python/tbc_www/views.py
+++ b/python/tbc_www/views.py
@@ -7,7 +7,7 @@ from django.conf import settings
 from gentoo_www.models import SiteSettings, Layout, Pages, SubPages, Sponsors, 
Posts
 from tbc_www.models import EbuildsMetadata, BuildLogs, BuildJobs, 
BuildLogsRepomanQa, \
        BuildJobsUse, Categories, CategoriesMetadata, Packages, 
PackagesMetadata, Ebuilds, \
-       Repos, EbuildsKeywords, BuildLogsErrors
+       Repos, EbuildsKeywords, BuildLogsErrors, EbuildsRestrictions, 
EbuildsIuse
 import re
 
 def default_TmpDict(pagerequest):
@@ -32,9 +32,10 @@ def home(request):
        Lines = 5
        TmpDict = default_TmpDict(pagerequest)
        TmpDict['EM'] = EbuildsMetadata.objects.filter(Revision = 
'1.1').order_by('-Id')[:Lines]
-       adict = {}
+       alist = []
        for BL in BuildLogs.objects.order_by('-TimeStamp')[:Lines]:
                adict2 = {}
+               adict2['BuildLogId'] = BL.BuildLogId
                adict2['C'] = BL.EbuildId.PackageId.CategoryId.Category
                adict2['P'] = BL.EbuildId.PackageId.Package
                adict2['V'] = BL.EbuildId.Version
@@ -43,8 +44,8 @@ def home(request):
                adict2['SummeryText'] = BL.SummeryText
                if BL.Fail:
                        adict2['BE_tmp'] = 
BuildLogsErrors.objects.filter(BuildLogId = BL.BuildLogId)
-               adict[BL.BuildLogId] = adict2
-       TmpDict['BL'] = adict
+               alist.append(adict2)
+       TmpDict['BL'] = alist
        adict = {}
        BJ_Tmp = BuildJobs.objects.order_by('-TimeStamp')[:Lines]
        for BJ in BJ_Tmp:
@@ -82,7 +83,7 @@ def home(request):
 def categories(request):
        pagerequest = 'packages'
        TmpDict = default_TmpDict(pagerequest)
-       adict2 = {}
+       alist = []
        for CM in CategoriesMetadata.objects.filter(CategoryId__Active = 
True).order_by('CategoryId__Category'):
                adict = {}
                adict['CategoryId'] = CM.CategoryId.CategoryId
@@ -92,14 +93,14 @@ def categories(request):
                for P in Packages.objects.filter(Active = 
True).filter(CategoryId_id = CM.CategoryId.CategoryId).order_by('Package'):
                        packages.append(P.Package + '\n')
                adict['Packages'] = packages
-               adict2[CM.CategoryId.Category] = adict
-       TmpDict['CM_tmp'] = adict2
+               alist.append(adict)
+       TmpDict['CM_tmp'] = alist
        return render(request, 'pages/' + pagerequest + '/index.html', TmpDict)
 
 def packages(request, category_id):
        pagerequest = 'packages'
        TmpDict = default_TmpDict(pagerequest)
-       adict2 = {}
+       alist = []
        for PM in PackagesMetadata.objects.filter(PackageId__CategoryId_id = 
category_id).filter(PackageId__Active = True):
                adict = {}
                adict['PackageId'] = PM.PackageId.PackageId
@@ -110,8 +111,8 @@ def packages(request, category_id):
                for E in Ebuilds.objects.filter(Active = 
True).filter(PackageId__Package = PM.PackageId.Package):
                        ebuilds.append(E.Version + '::' +  
E.PackageId.RepoId.Repo + '\n')
                adict['Ebuilds'] = ebuilds
-               adict2[PM.PackageId.Package] = adict
-       TmpDict['PM_tmp'] = adict2
+               alist.append(adict)
+       TmpDict['PM_tmp'] = alist
        TmpDict['C'] = get_object_or_404(Categories,  CategoryId = category_id)
        return render(request, 'pages/' + pagerequest + '/category/index.html', 
TmpDict)
 
@@ -122,16 +123,29 @@ def ebuilds(request, package_id):
        TmpDict['P'] = P
        TmpDict['EM_tmp'] = EbuildsMetadata.objects.filter(EbuildId__Active = 
True).filter(EbuildId__PackageId__Package = P.PackageId.Package)
        TmpDict['EK_tmp'] = EbuildsKeywords.objects.filter(EbuildId__Active = 
True).filter(EbuildId__PackageId__Package = P.PackageId.Package)
+       
        return render(request, 'pages/' + pagerequest + '/ebuilds/index.html', 
TmpDict)
 
+def ebuild(request, ebuild_id):
+       pagerequest = 'packages'
+       TmpDict = default_TmpDict(pagerequest)
+       TmpDict['E'] = get_object_or_404(Ebuilds,  EbuildId = ebuild_id)
+       TmpDict['EM_tmp'] = EbuildsMetadata.objects.filter(EbuildId__EbuildId = 
ebuild_id)
+       TmpDict['EK_tmp'] = EbuildsKeywords.objects.filter(EbuildId__EbuildId = 
ebuild_id)
+       TmpDict['BL_tmp'] = BuildLogs.objects.filter(EbuildId__EbuildId = 
ebuild_id)
+       TmpDict['EU_tmp'] = EbuildsIuse.objects.filter(EbuildId__EbuildId = 
ebuild_id)
+       TmpDict['ER_tmp'] = 
EbuildsRestrictions.objects.filter(EbuildId__EbuildId = ebuild_id)
+       return render(request, 'pages/' + pagerequest + 
'/ebuilds/ebuild/index.html', TmpDict)
+
 def new_main(request):
        pagerequest = 'new'
        Lines = 30
        TmpDict = default_TmpDict(pagerequest)
        TmpDict['EM'] = EbuildsMetadata.objects.filter(Revision = 
'1.1').order_by('-Id')[:Lines]
-       adict = {}
+       alist = []
        for BL in BuildLogs.objects.order_by('-TimeStamp')[:Lines]:
                adict2 = {}
+               adict2['BuildLogId'] = BL.BuildLogId
                adict2['C'] = BL.EbuildId.PackageId.CategoryId.Category
                adict2['P'] = BL.EbuildId.PackageId.Package
                adict2['V'] = BL.EbuildId.Version
@@ -140,8 +154,8 @@ def new_main(request):
                adict2['SummeryText'] = BL.SummeryText
                if BL.Fail:
                        adict2['BE_tmp'] = 
BuildLogsErrors.objects.filter(BuildLogId = BL.BuildLogId)
-               adict[BL.BuildLogId] = adict2
-       TmpDict['BL'] = adict
+               alist.append(adict2)
+       TmpDict['BL'] = alist
        adict = {}
        BJ_Tmp = BuildJobs.objects.order_by('-TimeStamp')[:Lines]
        for BJ in BJ_Tmp:

diff --git a/python/templates/includes/frontpage/new_logs 
b/python/templates/includes/frontpage/new_logs
index afe190c..3074c4d 100644
--- a/python/templates/includes/frontpage/new_logs
+++ b/python/templates/includes/frontpage/new_logs
@@ -1,19 +1,19 @@
 <table class="table table-striped frontpage-table">
-  {% for BuildLogId, B in BL.items %}
+  {% for B in BL%}
     <tr>
-      <td class="frontpage-table-package-atom"><a href="/new_logs/{{ 
BuildLogId }}/" title="{{ B.C }}/{{ B.P }}-{{ B.V }}::{{ B.R }}">
+      <td class="frontpage-table-package-atom"><a href="/new_logs/{{ 
B.BuildLogId }}/" title="{{ B.C }}/{{ B.P }}-{{ B.V }}::{{ B.R }}">
       {{ B.C }}/{{ B.P }}-{{ B.V }}::{{ B.R }}</a></td>
       <td><p title="{{ B.SummeryText }}">{{ B.SummeryText|truncatewords:3 
}}</p>
       <td class="text-right">
         {% if B.Fail %}
           {% for BE in B.BE_tmp %}
-            {% if BE.BuildLogId.BuildLogId == BuildLogId %}
+            {% if BE.BuildLogId.BuildLogId == B.BuildLogId %}
               {% if BE.ErrorId.ErrorId == 1 or BE.ErrorId.ErrorId == 2 %}
                 <span class="label label-warning">{{ 
BE.ErrorId.ErrorName|upper }}</span>
               {% elif BE.ErrorId.ErrorId == 3 %}
                 <span class="label label-info">OTHERS</span>
               {% else %}
-                <span class="label label-danger">{{ 
BE.ErrorId.ErrorName|upper}}</span>
+                <span class="label label-danger">{{ BE.ErrorId.ErrorName|upper 
}}</span>
               {% endif %}
             {% endif %}
           {% endfor %}

diff --git a/python/templates/pages/packages/category/index.html 
b/python/templates/pages/packages/category/index.html
index edc7cc9..2f2b6f2 100644
--- a/python/templates/pages/packages/category/index.html
+++ b/python/templates/pages/packages/category/index.html
@@ -3,16 +3,16 @@
 <div class="row">
   <h2>Packages in {{ C.Category }}</h2>
   <div class="col-xs-12 col-md-5">
-    {% for key, PM in PM_tmp.items %}
+    {% for PM in PM_tmp %}
       <table class="table table-striped frontpage-table">
         <tr>
           <td class="frontpage-table-package-atom">
-            <a href="/package/{{ PM.PackageId }}/" title="{{ C.Category }}/{{ 
key }}">{{ C.Category }}/{{ key }}</a>
+            <a href="/package/{{ PM.PackageId }}/" title="{{ C.Category }}/{{ 
PM.Package }}">{{ C.Category }}/{{ PM.Package }}</a>
             <p title="{{ PM.Changlog }}">Changlog</p>
           </td>
           <td>
             <p title="{{ PM.Descriptions }}">{{ PM.Descriptions }}</p>
-            <p title="{% for P in PM.Ebuilds %}{{ key }}/{{ P }}{% endfor 
%}">Versions</p>
+            <p title="{% for P in PM.Ebuilds %}{{ PM.Package }}/{{ P }}{% 
endfor %}">Versions</p>
           </td>
         </tr>
       </table>

diff --git a/python/templates/pages/packages/ebuilds/ebuild/index.html 
b/python/templates/pages/packages/ebuilds/ebuild/index.html
new file mode 100644
index 0000000..e000a53
--- /dev/null
+++ b/python/templates/pages/packages/ebuilds/ebuild/index.html
@@ -0,0 +1,47 @@
+{% extends "layout/base.html" %}
+{% block content %}
+<div class="row">
+  <div class="col-xs-12 col-md-9">
+    <h2>{{ E.PackageId.CategoryId.Category }}/{{ E.PackageId.Package }}</h2>
+    <table class="table table-striped frontpage-table">
+      {% for EM in EM_tmp %}
+        <tr>
+          <td class="frontpage-table-package-atom">
+            <p" title="{{ E.PackageId.CategoryId.Category }}/{{ 
E.PackageId.Package }}-{{ E.EbuildId.Version }}::{{ E.PackageId.RepoId.Repo 
}}">{{ E.PackageId.Package }}-{{ E.Version }}::{{ E.PackageId.RepoId.Repo }}</p>
+            <a class="btn btn-default btn-xs" href="/buildpackage/{{ 
E.EbuildId.EbuildId }}/">Build</a>
+            {% for BL in BL_tmp %}
+               {% if BL.Fail %}
+                 <a class="btn btn-danger btn-xs" href="/buildlog/{{ 
BL.BuildLogId }}/">Fail</a>
+               {% else %}
+                 <a class="btn btn-success btn-xs" href="/buildlog/{{ 
BL.BuildLogId }}/">Success</a>
+               {% endif %}
+              {% endfor %}
+          </td>
+          <td>
+              {% for K in EK_tmp %}
+                {% if K.EbuildId.EbuildId == E.EbuildId and 
K.KeywordId.Keyword != '*' %}
+                  {% if K.Status == 'Stable' %}<span class="label 
label-success">{{ K.KeywordId.Keyword }}</span>{% endif %}
+                  {% if K.Status == 'Unstable' %}<span class="label 
label-warning">{{ K.KeywordId.Keyword }}</span>{% endif %}
+                  {% if K.Status == 'Negative' %}{{ K.KeywordId.Keyword }}{% 
endif %}
+                {% endif %}
+              {% endfor %}
+              <p>
+              {% for U in EU_tmp %}
+                {% if U.Status %}
+                  <span class="label label-info">{{ U.UseId.Flag }}</span>
+                {% else %}
+                  <span class="label label-default">{{ U.UseId.Flag }}</span>
+                {% endif %}
+              {% endfor %}
+              </p><p>
+              {% for R in ER_tmp %}
+                  <span class="label label-warning">{{ 
R.RestrictionId.Restriction }}</span>
+              {% endfor %}
+              </p>
+          </td>
+        </tr>
+      {% endfor %}
+    </table>
+  </div>
+</div>
+{% endblock %}
\ No newline at end of file

diff --git a/python/templates/pages/packages/index.html 
b/python/templates/pages/packages/index.html
index 5e02552..7139c87 100644
--- a/python/templates/pages/packages/index.html
+++ b/python/templates/pages/packages/index.html
@@ -3,15 +3,15 @@
 <div class="row">
 <h2>Categories</h2>
   <div class="col-xs-8 col-md-4">
-    {% for key, CM in CM_tmp.items %}
+    {% for CM in CM_tmp %}
       <table class="table table-striped frontpage-table">
         <tr>
           <td class="frontpage-table-package-atom">
-            <a href="/categories/{{ CM.CategoryId }}/" title="{{ key }}">{{ 
key }}</a>
+            <a href="/categories/{{ CM.CategoryId }}/" title="{{ CM.Category 
}}">{{CM.Category }}</a>
           </td>
           <td>
             <p title="{{ CM.Descriptions }}">{{ CM.Descriptions }}</p>
-            <p title="{% for P in CM.Packages %}{{ key }}/{{ P }}{% endfor 
%}">Packages</p> 
+            <p title="{% for P in CM.Packages %}{{ CM.Category}}/{{ P }}{% 
endfor %}">Packages</p> 
           </td>
         </tr>
       </table>

Reply via email to