diff options
-rw-r--r-- | python/gentoo_main/urls.py | 7 | ||||
-rw-r--r-- | python/tbc_www/models.py | 26 | ||||
-rw-r--r-- | python/tbc_www/urls.py | 8 | ||||
-rw-r--r-- | python/tbc_www/views.py | 89 | ||||
-rw-r--r-- | python/templates/pages/new/index.html | 25 | ||||
-rw-r--r-- | python/templates/pages/packages/category/index.html | 23 | ||||
-rw-r--r-- | python/templates/pages/packages/ebuilds/index.html | 17 | ||||
-rw-r--r-- | python/templates/pages/packages/index.html | 21 |
8 files changed, 208 insertions, 8 deletions
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<category_id>\d+)/$', 'packages'), + url(r'^package/(?P<package_id>\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 %} +<div class="row"> + <div class="col-xs-12 col-md-6"> + <h2>New Packages <small>more at the <a href="/new_packages/">New Packages</a></small></h2> + {% include "includes/frontpage/new_packages" %} + </div> + <div class="col-xs-12 col-md-6"> + <h2>New Logs <small>more at the <a href="/new_logs/">New Logs</a></small></h2> + {% include "includes/frontpage/new_logs" %} + </div> +</div> + +<div class="row"> + <div class="col-xs-12 col-md-6"> + <h2>New Build Requests <small>more at the <a href="/new_build_req">New Build Requests</a></small></h2> + {% include "includes/frontpage/new_build_req" %} + </div> + <div class="col-xs-12 col-md-6"> + <h2>New Repoman or QA's <small>on the <a href="/new_repoman_qa/">New Repoman or QA's</a></small></h2> + {% include "includes/frontpage/new_repoman_qa" %} + </div> +</div> + +{% 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 %} +<div class="row"> + <div class="col-xs-12 col-md-6"> + <h2>Packages in {{ C.Category }}</h2> + <table class="table table-striped frontpage-table"> + {% for key, PM in PM_tmp.items %} + <tr> + <td class="frontpage-table-package-atom"> + <a href="/package/{{ PM.PackageId }}/" title="{{ C.Category }}/{{ key }}">{{ C.Category }}/{{ key }}</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> + </td> + </tr> + {% endfor %} +</table> + </div> +</div> + +{% 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 %} +<div class="row"> + <div class="col-xs-12 col-md-6"> + <h2>{{ P.CategoryId.Category }}/{{ P.Package }}</h2> + <table class="table table-striped frontpage-table"> + {% for E in EB_tmp %} + <tr> + <td class="frontpage-table-package-atom"> + <a href="/ebuild/{{ E.EbuildId }}/" title="{{ P.CategoryId.Category }}/{{ P.Package }}-{{ E.Version }}::{{ E.PackageId.RepoId.Repo }}">{{ P.Package }}-{{ E.Version }}::{{ E.PackageId.RepoId.Repo }}</a></td> + <td><p></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 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 %} +<div class="row"> + <div class="col-xs-12 col-md-6"> + <h2>Categories</h2> + <table class="table table-striped frontpage-table"> + {% for key, CM in CM_tmp.items %} + <tr> + <td class="frontpage-table-package-atom"> + <a href="/categories/{{ CM.CategoryId }}/" title="{{ key }}">{{ key }}</a></td> + <td> + <p title="{{ CM.Descriptions }}">{{ CM.Descriptions }}</p> + <p title="{% for P in CM.Packages %}{{ key }}/{{ P }}{% endfor %}">Packages</p> + </td> + </tr> + {% endfor %} +</table> + </div> +</div> + +{% endblock %}
\ No newline at end of file |