From 65c8b3dcce64f5c865baa472c0307a07c1f9872b Mon Sep 17 00:00:00 2001 From: Magnus Granberg Date: Sun, 26 Jul 2015 16:37:39 +0200 Subject: 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(-) create mode 100644 python/templates/pages/packages/ebuilds/ebuild/index.html 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\d+)/$', 'packages'), url(r'^package/(?P\d+)/$', 'ebuilds'), + url(r'^ebuild/(?P\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 @@ - {% for BuildLogId, B in BL.items %} + {% for B in BL%} -
+ {{ B.C }}/{{ B.P }}-{{ B.V }}::{{ B.R }}

{{ B.SummeryText|truncatewords:3 }}

{% 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 %} {{ BE.ErrorId.ErrorName|upper }} {% elif BE.ErrorId.ErrorId == 3 %} OTHERS {% else %} - {{ BE.ErrorId.ErrorName|upper}} + {{ BE.ErrorId.ErrorName|upper }} {% 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 @@

Packages in {{ C.Category }}

- {% for key, PM in PM_tmp.items %} + {% for PM in PM_tmp %}
- {{ C.Category }}/{{ key }} + {{ C.Category }}/{{ PM.Package }}

Changlog

{{ PM.Descriptions }}

-

Versions

+

Versions

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 %} +
+
+

{{ E.PackageId.CategoryId.Category }}/{{ E.PackageId.Package }}

+ + {% for EM in EM_tmp %} + + + + + {% endfor %} +
+ {{ E.PackageId.Package }}-{{ E.Version }}::{{ E.PackageId.RepoId.Repo }}

+ Build + {% for BL in BL_tmp %} + {% if BL.Fail %} + Fail + {% else %} + Success + {% endif %} + {% endfor %} +
+ {% for K in EK_tmp %} + {% if K.EbuildId.EbuildId == E.EbuildId and K.KeywordId.Keyword != '*' %} + {% if K.Status == 'Stable' %}{{ K.KeywordId.Keyword }}{% endif %} + {% if K.Status == 'Unstable' %}{{ K.KeywordId.Keyword }}{% endif %} + {% if K.Status == 'Negative' %}{{ K.KeywordId.Keyword }}{% endif %} + {% endif %} + {% endfor %} +

+ {% for U in EU_tmp %} + {% if U.Status %} + {{ U.UseId.Flag }} + {% else %} + {{ U.UseId.Flag }} + {% endif %} + {% endfor %} +

+ {% for R in ER_tmp %} + {{ R.RestrictionId.Restriction }} + {% endfor %} +

+
+
+
+{% 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 @@

Categories

- {% for key, CM in CM_tmp.items %} + {% for CM in CM_tmp %}
- {{ key }} + {{CM.Category }}

{{ CM.Descriptions }}

-

Packages

+

Packages

-- cgit v1.2.3-65-gdbad