From 2251b1ad2020d70c58d01fdcefb087dd8838db1c Mon Sep 17 00:00:00 2001 From: Magnus Granberg Date: Wed, 22 Jul 2015 00:57:00 +0200 Subject: add package and new to menu --- python/gentoo_main/urls.py | 7 +- python/tbc_www/models.py | 26 ++++++- python/tbc_www/urls.py | 8 ++ python/tbc_www/views.py | 89 +++++++++++++++++++++- python/templates/pages/new/index.html | 25 ++++++ .../templates/pages/packages/category/index.html | 23 ++++++ python/templates/pages/packages/ebuilds/index.html | 17 +++++ python/templates/pages/packages/index.html | 21 +++++ 8 files changed, 208 insertions(+), 8 deletions(-) create mode 100644 python/tbc_www/urls.py create mode 100644 python/templates/pages/new/index.html create mode 100644 python/templates/pages/packages/category/index.html create mode 100644 python/templates/pages/packages/ebuilds/index.html create mode 100644 python/templates/pages/packages/index.html diff --git a/python/gentoo_main/urls.py b/python/gentoo_main/urls.py index 6cead02..1eb5179 100644 --- a/python/gentoo_main/urls.py +++ b/python/gentoo_main/urls.py @@ -3,6 +3,7 @@ from django.conf.urls import patterns, include, url -urlpatterns = patterns('tbc_www.views', - (r'^home/$', 'home'), -) +urlpatterns = [ + url(r'^home/$', views.home), + url(r'^packages/$', views.packages), +] diff --git a/python/tbc_www/models.py b/python/tbc_www/models.py index 04a3bb8..3d284c2 100644 --- a/python/tbc_www/models.py +++ b/python/tbc_www/models.py @@ -13,6 +13,16 @@ class Categories(models.Model): def __str__(self): return '%s %s %s %s' % (self.CategoryId, self.Category, self.Active, self.TimeStamp) +class CategoriesMetadata(models.Model): + Id = models.IntegerField(primary_key=True, db_column='id') + CategoryId = models.ForeignKey(Categories, db_column='category_id') + Checksum = models.CharField(max_length=100, db_column='checksum') + Descriptions = models.TextField(db_column='descriptions') + class Meta: + db_table = 'categories_metadata' + def __str__(self): + return '%s %s %s %s' % (self.Id, self.CategoryId, self.Checksum, self.Descriptions) + class Repos(models.Model): RepoId = models.IntegerField(primary_key=True, db_column='repo_id') Repo = models.CharField(max_length=100, db_column='repo') @@ -34,6 +44,16 @@ class Packages(models.Model): def __str__(self): return '%s %s %s %s %s %s %s' % (self.PackageId, self.CategoryId, self.Package, self.RepoId, self.Checksum, self.Active, self.TimeStamp) +class PackagesMetadata(models.Model): + Id = models.IntegerField(primary_key=True, db_column='id') + PackageId = models.ForeignKey(Packages, db_column='package_id') + Changlog = models.TextField(db_column='changlog') + Descriptions = models.TextField(db_column='descriptions') + class Meta: + db_table = 'packages_metadata' + def __str__(self): + return '%s %s %s %s' % (self.Id, self.PackageId, self.Changlog, self.Descriptions) + class Ebuilds(models.Model): EbuildId = models.IntegerField(primary_key=True, db_column='ebuild_id') PackageId = models.ForeignKey(Packages, db_column='package_id') @@ -60,6 +80,8 @@ class BuildLogs(models.Model): BuildLogId = models.IntegerField(primary_key=True, db_column='build_log_id') EbuildId = models.ForeignKey(Ebuilds, db_column='ebuild_id') Fail = models.BooleanField(db_column='fail') + RmQa = models.BooleanField(db_column='rmqa') + Others = models.BooleanField(db_column='others') SummeryText = models.TextField(db_column='summery_text') LogHash = models.CharField(max_length=100, db_column='log_hash') BugId = models.IntegerField( db_column='bug_id') @@ -67,14 +89,14 @@ class BuildLogs(models.Model): class Meta: db_table = 'build_logs' def __str__(self): - return '%s %s %s %s %s %s %s' % (self.BuildLogId, self.EbuildId, self.Fail, self.SummeryText, self.LogHash, self.BugId, self.TimeStamp) + return '%s %s %s %s %s %s %s %s %s' % (self.BuildLogId, self.EbuildId, self.Fail, self.RmQa, self.Others, self.SummeryText, self.LogHash, self.BugId, self.TimeStamp) class BuildLogsRepomanQa(models.Model): Id = models.IntegerField(primary_key=True, db_column='id') BuildLogId = models.ForeignKey(BuildLogs, db_column='build_log_id') SummeryText = models.TextField(db_column='summery_text') class Meta: - db_table = 'build_logs_repoman' + db_table = 'build_logs_repoman_qa' def __str__(self): return '%s %s %s' % (self.Id, self.BuildLogId, self.SummeryText) diff --git a/python/tbc_www/urls.py b/python/tbc_www/urls.py new file mode 100644 index 0000000..82e9336 --- /dev/null +++ b/python/tbc_www/urls.py @@ -0,0 +1,8 @@ +from django.conf.urls import patterns, include, url + +urlpatterns = patterns('tbc_www.views', + url(r'^home/$', 'home'), + url(r'^packages/$', 'categories'), + url(r'^categories/(?P\d+)/$', 'packages'), + url(r'^package/(?P\d+)/$', 'ebuilds'), +) diff --git a/python/tbc_www/views.py b/python/tbc_www/views.py index dcc89d4..252998e 100644 --- a/python/tbc_www/views.py +++ b/python/tbc_www/views.py @@ -6,8 +6,8 @@ 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 - + BuildJobsUse, Categories, CategoriesMetadata, Packages, PackagesMetadata, Ebuilds, \ + Repos import re def default_TmpDict(pagerequest): @@ -29,7 +29,90 @@ def default_TmpDict(pagerequest): def home(request): pagerequest = 'home' - Lines = 10 + Lines = 5 + adict = {} + TmpDict = default_TmpDict(pagerequest) + TmpDict['EM'] = EbuildsMetadata.objects.filter(Revision = '1.1').order_by('-Id')[:Lines] + TmpDict['BL'] = BuildLogs.objects.order_by('-TimeStamp')[:Lines] + BJ_Tmp = BuildJobs.objects.order_by('-TimeStamp')[:Lines] + for BJ in BJ_Tmp: + adict2 = {} + adict2['EbuildId'] = BJ.EbuildId.EbuildId + adict2['C'] = BJ.EbuildId.PackageId.CategoryId.Category + adict2['P'] = BJ.EbuildId.PackageId.Package + adict2['V'] = BJ.EbuildId.Version + adict2['R'] = BJ.EbuildId.PackageId.RepoId.Repo + adict2['title'] = "Setup: " + BJ.SetupId.Setup + "\n" + "Profile: " + BJ.SetupId.Profile + "\n" + BJU = BuildJobsUse.objects.filter(BuildJobId = BJ.BuildJobId) + if not BJU == []: + use_enable = [] + use_disable = [] + for BU in BJU: + if BU.Status: + use_enable.append(BU.UseId.Flag) + else: + use_disable.append(BU.UseId.Flag) + if not use_enable == []: + adict2['title'] = adict2['title'] + "Enable: " + for use in use_enable: + adict2['title'] = adict2['title'] + use + " " + adict2['title'] = adict2['title'] + "\n" + if not use_disable == []: + adict2['title'] = adict2['title'] + "Disable: " + for use in use_disable: + adict2['title'] = adict2['title'] + use + " " + adict2['title'] = adict2['title'] + "\n" + adict[BJ.BuildJobId] = adict2 + TmpDict['BJ'] = adict + TmpDict['RM'] = BuildLogsRepomanQa.objects.order_by('-Id')[:Lines] + return render(request, 'pages/' + pagerequest + '/index.html', TmpDict) + +def categories(request): + pagerequest = 'packages' + TmpDict = default_TmpDict(pagerequest) + adict2 = {} + for CM in CategoriesMetadata.objects.filter(CategoryId__Active = True).order_by('CategoryId__Category'): + adict = {} + adict['CategoryId'] = CM.CategoryId.CategoryId + adict['Category'] = CM.CategoryId.Category + adict['Descriptions'] = CM.Descriptions + packages = [] + 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 + return render(request, 'pages/' + pagerequest + '/index.html', TmpDict) + +def packages(request, category_id): + pagerequest = 'packages' + TmpDict = default_TmpDict(pagerequest) + adict2 = {} + for PM in PackagesMetadata.objects.filter(PackageId__CategoryId_id = category_id).filter(PackageId__Active = True): + adict = {} + adict['PackageId'] = PM.PackageId.PackageId + adict['Package'] = PM.PackageId.Package + adict['Descriptions'] = PM.Descriptions + adict['Changlog'] =PM.Changlog + ebuilds = [] + for E in Ebuilds.objects.filter(Active = True).filter(PackageId_id = PM.PackageId.PackageId): + ebuilds.append(E.Version + '::' + E.PackageId.RepoId.Repo + '\n') + adict['Ebuilds'] = ebuilds + adict2[PM.PackageId.Package] = adict + TmpDict['PM_tmp'] = adict2 + TmpDict['C'] = get_object_or_404(Categories, CategoryId = category_id) + return render(request, 'pages/' + pagerequest + '/category/index.html', TmpDict) + +def ebuilds(request, package_id): + pagerequest = 'packages' + TmpDict = default_TmpDict(pagerequest) + TmpDict['EB_tmp'] = Ebuilds.objects.filter(PackageId_id = package_id) + TmpDict['P'] = get_object_or_404(Packages, PackageId = package_id) + return render(request, 'pages/' + pagerequest + '/ebuilds/index.html', TmpDict) + +def new(request): + pagerequest = 'new' + Lines = 20 adict = {} TmpDict = default_TmpDict(pagerequest) TmpDict['EM'] = EbuildsMetadata.objects.filter(Revision = '1.1').order_by('-Id')[:Lines] diff --git a/python/templates/pages/new/index.html b/python/templates/pages/new/index.html new file mode 100644 index 0000000..5195584 --- /dev/null +++ b/python/templates/pages/new/index.html @@ -0,0 +1,25 @@ +{% extends "layout/base.html" %} +{% block content %} +
+
+

New Packages more at the New Packages

+ {% include "includes/frontpage/new_packages" %} +
+
+

New Logs more at the New Logs

+ {% include "includes/frontpage/new_logs" %} +
+
+ +
+
+

New Build Requests more at the New Build Requests

+ {% include "includes/frontpage/new_build_req" %} +
+
+

New Repoman or QA's on the New Repoman or QA's

+ {% include "includes/frontpage/new_repoman_qa" %} +
+
+ +{% endblock %} \ No newline at end of file diff --git a/python/templates/pages/packages/category/index.html b/python/templates/pages/packages/category/index.html new file mode 100644 index 0000000..34c1426 --- /dev/null +++ b/python/templates/pages/packages/category/index.html @@ -0,0 +1,23 @@ +{% extends "layout/base.html" %} +{% block content %} +
+
+

Packages in {{ C.Category }}

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

Changlog

+
+

{{ PM.Descriptions }}

+

Versions

+
+
+
+ +{% endblock %} \ No newline at end of file diff --git a/python/templates/pages/packages/ebuilds/index.html b/python/templates/pages/packages/ebuilds/index.html new file mode 100644 index 0000000..a5ed0d6 --- /dev/null +++ b/python/templates/pages/packages/ebuilds/index.html @@ -0,0 +1,17 @@ +{% extends "layout/base.html" %} +{% block content %} +
+
+

{{ P.CategoryId.Category }}/{{ P.Package }}

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

+
+
+{% endblock %} \ No newline at end of file diff --git a/python/templates/pages/packages/index.html b/python/templates/pages/packages/index.html new file mode 100644 index 0000000..82ccf59 --- /dev/null +++ b/python/templates/pages/packages/index.html @@ -0,0 +1,21 @@ +{% extends "layout/base.html" %} +{% block content %} +
+
+

Categories

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

{{ CM.Descriptions }}

+

Packages

+
+
+
+ +{% endblock %} \ No newline at end of file -- cgit v1.2.3-65-gdbad