summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'python/tbc_www')
-rw-r--r--python/tbc_www/__init__.py0
-rw-r--r--python/tbc_www/models.py111
-rw-r--r--python/tbc_www/router.py30
-rw-r--r--python/tbc_www/views.py37
4 files changed, 178 insertions, 0 deletions
diff --git a/python/tbc_www/__init__.py b/python/tbc_www/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/python/tbc_www/__init__.py
diff --git a/python/tbc_www/models.py b/python/tbc_www/models.py
new file mode 100644
index 0000000..b51e154
--- /dev/null
+++ b/python/tbc_www/models.py
@@ -0,0 +1,111 @@
+# Copyright 1998-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+from django.db import models
+
+class Categories(models.Model):
+ CategoryId = models.IntegerField(primary_key=True, db_column='category_id')
+ Category = models.CharField(max_length=150, db_column='category')
+ Active = models.BooleanField(db_column='active')
+ TimeStamp = models.DateTimeField(db_column='time_stamp')
+ class Meta:
+ db_table = 'categories'
+ def __str__(self):
+ return '%s %s %s %s' % (self.CategoryId, self.Category, self.Active, self.TimeStamp)
+
+class Repos(models.Model):
+ RepoId = models.IntegerField(primary_key=True, db_column='repo_id')
+ Repo = models.CharField(max_length=100, db_column='repo')
+ class Meta:
+ db_table = 'repos'
+ def __str__(self):
+ return '%s %s' % (self.RepoId, self.Repo)
+
+class Packages(models.Model):
+ PackageId = models.IntegerField(primary_key=True, db_column='package_id')
+ CategoryId = models.ForeignKey(Categories, db_column='category_id')
+ Package = models.CharField(max_length=150, db_column='package')
+ RepoId = models.ForeignKey(Repos, db_column='repo_id')
+ Checksum = models.CharField(max_length=100, db_column='checksum')
+ Active = models.BooleanField(db_column='active')
+ TimeStamp = models.DateTimeField(db_column='time_stamp')
+ class Meta:
+ db_table = 'packages'
+ 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 Ebuilds(models.Model):
+ EbuildId = models.IntegerField(primary_key=True, db_column='ebuild_id')
+ PackageId = models.ForeignKey(Packages, db_column='package_id')
+ Version = models.CharField(max_length=150, db_column='version')
+ Checksum = models.CharField(max_length=100, db_column='checksum')
+ Active = models.BooleanField(db_column='active')
+ TimeStamp = models.DateTimeField(db_column='time_stamp')
+ class Meta:
+ db_table = 'ebuilds'
+ def __str__(self):
+ return '%s %s %s %s %s %s' % (self.EbuildId, self.PackageId, self.Version, self.Checksum, self.Active, self.TimeStamp)
+
+class EbuildsMetadata(models.Model):
+ Id = models.IntegerField(primary_key=True, db_column='id')
+ EbuildId = models.ForeignKey(Ebuilds, db_column='ebuild_id')
+ Revision = models.CharField(max_length=30, db_column='revision')
+ Descriptions = models.CharField(max_length=200, db_column='descriptions')
+ class Meta:
+ db_table = 'ebuilds_metadata'
+ def __str__(self):
+ return '%s %s %s %s' % (self.Id, self.EbuildId, self.Revision, self.Descriptions)
+
+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')
+ SummeryText = models.TextField(db_column='summery_text')
+ LogHash = models.CharField(max_length=100, db_column='log_hash')
+ BugId = models.IntegerField( db_column='bug_id')
+ TimeStamp = models.DateTimeField(db_column='time_stamp')
+ 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)
+
+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'
+ def __str__(self):
+ return '%s %s %s' % (self.Id, self.BuildLogId, self.SummeryText)
+
+class Setups(models.Model):
+ SetupId = models.AutoField(primary_key=True, db_column='setup_id')
+ Setup = models.CharField(max_length=100, db_column='setup')
+ Profile = models.CharField(max_length=150, db_column='profile')
+ class Meta:
+ db_table = 'setups'
+ def __str__(self):
+ return '%s %s %s' % (self.SetupId, self.Setup, self.Profile)
+
+class Configs(models.Model):
+ ConfigId = models.AutoField(primary_key=True, db_column='config_id')
+ HostName = models.CharField(max_length=150, db_column='hostname')
+ SetupId = models.ForeignKey(Setups, db_column='setup_id')
+ DefaultConfig = models.BooleanField(db_column='default_config')
+ class Meta:
+ db_table = 'configs'
+ def __str__(self):
+ return '%s %s %s %s' % (self.ConfigId, self.HostName, self.SetupId, self.DefaultConfig)
+
+class BuildJobs(models.Model):
+ BuildJobId = models.AutoField(primary_key=True, db_column='build_job_id')
+ EbuildId = models.ForeignKey(Ebuilds, db_column='ebuild_id')
+ ConfigId = models.ForeignKey(Configs, db_column='config_id')
+ Status = models.CharField(max_length=21, db_column='status')
+ BuildNow = models.BooleanField(db_column='build_now')
+ RemoveBin = models.BooleanField(db_column='removebin')
+ TimeStamp = models.DateTimeField(db_column='time_stamp')
+ class Meta:
+ db_table = 'build_jobs'
+ def __str__(self):
+ return '%s %s %s %s %s %s %s' % (self.BuildJobId, self.EbuildId, self.ConfigId, self.Status, self.BuildNow, self.RemoveBin, self.TimeStamp)
diff --git a/python/tbc_www/router.py b/python/tbc_www/router.py
new file mode 100644
index 0000000..aa16759
--- /dev/null
+++ b/python/tbc_www/router.py
@@ -0,0 +1,30 @@
+# Copyright 1998-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+class TBCRouter(object):
+ def db_for_read(self, model, **hints):
+ "Point all operations on zobcs models to 'zobcs'"
+ if model._meta.app_label == 'tbc_www':
+ return 'zobcs'
+ return 'default'
+
+ def db_for_write(self, model, **hints):
+ "Point all operations on zobcs models to 'zobcs'"
+ if model._meta.app_label == 'tbc_www':
+ return 'zobcs'
+ return 'default'
+
+ def allow_relation(self, obj1, obj2, **hints):
+ "Allow any relation if a both models in zobcs app"
+ if obj1._meta.app_label == 'tbc_www' and obj2._meta.app_label == 'tbc_www':
+ return True
+ # Allow if neither is zobcs app
+ elif 'tbc_www' not in [obj1._meta.app_label, obj2._meta.app_label]:
+ return True
+ return False
+
+ def allow_migrate(self, db, model):
+ if db == 'zobcs' or model._meta.app_label == "tbc_www":
+ return False # we're not using syncdb on our legacy database
+ else: # but all other models/databases are fine
+ return True
diff --git a/python/tbc_www/views.py b/python/tbc_www/views.py
new file mode 100644
index 0000000..58f186e
--- /dev/null
+++ b/python/tbc_www/views.py
@@ -0,0 +1,37 @@
+# Copyright 1998-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+from django.shortcuts import render, get_object_or_404, HttpResponseRedirect
+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
+
+import re
+
+def default_TmpDict(pagerequest):
+ site = get_object_or_404(SiteSettings)
+ page = get_object_or_404(Pages, nav1 = pagerequest)
+ pages = Pages.objects.all()
+ if page.SubMenu:
+ subpages = SubPages.objects.filter(PageId = page.PageId)
+ else:
+ subpages = False
+ contact = get_object_or_404(SubPages, nav2 = 'contact')
+ TmpDict = {'site' : site}
+ TmpDict['page'] = page
+ TmpDict['pages'] = pages
+ TmpDict['subpages'] = subpages
+ TmpDict['contact'] = contact
+ TmpDict['smappages'] = SubPages.objects.all()
+ return TmpDict
+
+def home(request):
+ pagerequest = 'home'
+ Lines = 10
+ TmpDict = default_TmpDict(pagerequest)
+ TmpDict['EM'] = EbuildsMetadata.objects.filter(Revision = '1.1').order_by('-Id')[:Lines]
+ TmpDict['BL'] = BuildLogs.objects.order_by('-TimeStamp')[:Lines]
+ TmpDict['BJ'] = BuildJobs.objects.order_by('-TimeStamp')[:Lines]
+ TmpDict['RM'] = BuildLogsRepomanQa.objects.order_by('-Id')[:Lines]
+ return render(request, 'pages/' + pagerequest + '/index.html', TmpDict)