summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore8
-rw-r--r--TODO.txt26
-rw-r--r--htdoc/index.html8
-rw-r--r--python/bb_dashboard/bb_dashboard/__init__.py (renamed from python/gentoo_main/__init__.py)0
-rw-r--r--python/bb_dashboard/bb_dashboard/asgi.py16
-rw-r--r--python/bb_dashboard/bb_dashboard/settings.py.sample149
-rw-r--r--python/bb_dashboard/bb_dashboard/urls.py9
-rw-r--r--python/bb_dashboard/bb_dashboard/wsgi.py16
-rwxr-xr-xpython/bb_dashboard/manage.py22
-rw-r--r--python/bb_dashboard/projects/__init__.py (renamed from python/gentoo_www/__init__.py)0
-rw-r--r--python/bb_dashboard/projects/admin.py3
-rw-r--r--python/bb_dashboard/projects/apps.py6
-rw-r--r--python/bb_dashboard/projects/migrations/__init__.py (renamed from python/tbc_www/__init__.py)0
-rw-r--r--python/bb_dashboard/projects/models.py3
-rw-r--r--python/bb_dashboard/projects/tests.py3
-rw-r--r--python/bb_dashboard/projects/views.py3
-rw-r--r--python/bb_dashboard/repository/__init__.py (renamed from python/tbc_www/utils/__init__.py)0
-rw-r--r--python/bb_dashboard/repository/admin.py3
-rw-r--r--python/bb_dashboard/repository/apps.py6
-rw-r--r--python/bb_dashboard/repository/migrations/__init__.py (renamed from static/foo.txt)0
-rw-r--r--python/bb_dashboard/repository/models.py45
-rw-r--r--python/bb_dashboard/repository/tests.py3
-rw-r--r--python/bb_dashboard/repository/views.py3
-rw-r--r--python/bb_dashboard/static/screen.css3
-rw-r--r--python/bb_dashboard/templates/includes/container/end (renamed from python/templates/includes/container/end)0
-rw-r--r--python/bb_dashboard/templates/includes/container/start3
-rw-r--r--python/bb_dashboard/templates/includes/layout/footer.html (renamed from python/templates/includes/layout/footer.html)22
-rw-r--r--python/bb_dashboard/templates/includes/layout/head.html26
-rw-r--r--python/bb_dashboard/templates/includes/layout/header.html89
-rw-r--r--python/bb_dashboard/templates/includes/navigation/primary10
-rw-r--r--python/bb_dashboard/templates/includes/navigation/secondary10
-rw-r--r--python/bb_dashboard/templates/layout/base.html20
-rw-r--r--python/bb_dashboard/www/__init__.py0
-rw-r--r--python/bb_dashboard/www/admin.py7
-rw-r--r--python/bb_dashboard/www/apps.py6
-rw-r--r--python/bb_dashboard/www/migrations/0001_initial.py95
-rw-r--r--python/bb_dashboard/www/migrations/__init__.py0
-rw-r--r--python/bb_dashboard/www/models.py74
-rw-r--r--python/bb_dashboard/www/router.py31
-rw-r--r--python/bb_dashboard/www/templates/www/index.html42
-rw-r--r--python/bb_dashboard/www/templates/www/news.html20
-rw-r--r--python/bb_dashboard/www/tests.py3
-rw-r--r--python/bb_dashboard/www/urls.py7
-rw-r--r--python/bb_dashboard/www/utils.py55
-rw-r--r--python/bb_dashboard/www/views.py16
-rw-r--r--python/gentoo_main/settings.py.conf163
-rw-r--r--python/gentoo_main/urls.py10
-rw-r--r--python/gentoo_main/wsgi.py.conf29
-rw-r--r--python/gentoo_www/__pycache__/models.cpython-33.pycbin11144 -> 0 bytes
-rw-r--r--python/gentoo_www/__pycache__/urls.cpython-33.pycbin351 -> 0 bytes
-rw-r--r--python/gentoo_www/__pycache__/views.cpython-33.pycbin6394 -> 0 bytes
-rw-r--r--python/gentoo_www/models.py124
-rw-r--r--python/gentoo_www/urls.py7
-rw-r--r--python/gentoo_www/views.py205
-rwxr-xr-xpython/manage.py11
-rw-r--r--python/tbc_www/forms.py33
-rw-r--r--python/tbc_www/models.py319
-rw-r--r--python/tbc_www/router.py30
-rw-r--r--python/tbc_www/urls.py22
-rw-r--r--python/tbc_www/utils/bugzillasubmit.py27
-rw-r--r--python/tbc_www/views.py459
-rw-r--r--python/templates/includes/container/start3
-rw-r--r--python/templates/includes/downloads/alpha.html17
-rw-r--r--python/templates/includes/downloads/amd64.html6
-rw-r--r--python/templates/includes/downloads/arch-default.html33
-rw-r--r--python/templates/includes/downloads/arch-main.html29
-rw-r--r--python/templates/includes/downloads/arm.html17
-rw-r--r--python/templates/includes/downloads/experimental.html12
-rw-r--r--python/templates/includes/downloads/hppa.html18
-rw-r--r--python/templates/includes/downloads/ia64.html25
-rw-r--r--python/templates/includes/downloads/ppc.html12
-rw-r--r--python/templates/includes/downloads/s390.html7
-rw-r--r--python/templates/includes/downloads/sh.html7
-rw-r--r--python/templates/includes/downloads/sparc.html11
-rw-r--r--python/templates/includes/downloads/warnings.html11
-rw-r--r--python/templates/includes/downloads/x86-default.html17
-rw-r--r--python/templates/includes/downloads/x86.html7
-rw-r--r--python/templates/includes/frontpage/new_build_req16
-rw-r--r--python/templates/includes/frontpage/new_logs31
-rw-r--r--python/templates/includes/frontpage/new_packages10
-rw-r--r--python/templates/includes/frontpage/new_qa10
-rw-r--r--python/templates/includes/frontpage/new_repoman10
-rw-r--r--python/templates/includes/frontpage/news6
-rw-r--r--python/templates/includes/frontpage/updated_packages77
-rw-r--r--python/templates/includes/hero-section/end3
-rw-r--r--python/templates/includes/hero-section/start3
-rw-r--r--python/templates/includes/layout/footer_db_update.html10
-rw-r--r--python/templates/includes/layout/head.html29
-rw-r--r--python/templates/includes/layout/header.html96
-rw-r--r--python/templates/includes/navigation/primary9
-rw-r--r--python/templates/includes/navigation/secondary5
-rw-r--r--python/templates/includes/navigation/sitemap_secondary5
-rw-r--r--python/templates/includes/navigation/tertiary12
-rw-r--r--python/templates/includes/partials/download-link-raw.html5
-rw-r--r--python/templates/includes/partials/download-link.html4
-rw-r--r--python/templates/includes/partials/irc-channel.html8
-rw-r--r--python/templates/includes/partials/mailinglist.html21
-rw-r--r--python/templates/includes/partials/sponsor.html14
-rw-r--r--python/templates/layout/base.html33
-rw-r--r--python/templates/pages/build_req/index.html16
-rw-r--r--python/templates/pages/categories/index.html61
-rw-r--r--python/templates/pages/categories/packages/index.html63
-rw-r--r--python/templates/pages/categories/packages/versions/ebuild/index.html75
-rw-r--r--python/templates/pages/categories/packages/versions/index.html233
-rw-r--r--python/templates/pages/home/index.html70
-rw-r--r--python/templates/pages/logs/all/build/index.html103
-rw-r--r--python/templates/pages/logs/build/index.html114
-rw-r--r--python/templates/pages/logs/build/submitbug/index.html8
-rw-r--r--python/templates/pages/logs/index.html42
-rw-r--r--python/templates/registration/bugzillauser.html10
-rw-r--r--python/templates/registration/logged_out.html5
-rw-r--r--python/templates/registration/login.html12
-rw-r--r--sql/gentoo-www.sql244
-rw-r--r--sql/gentoo-www_data.sql106
-rw-r--r--sql/gentoo-www_full.sql651
115 files changed, 852 insertions, 3920 deletions
diff --git a/.gitignore b/.gitignore
index d778590..ddf3b02 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,5 @@
# Backup files
*~
__pycache__
-# log dir
-static/logs
-# Python compiled files
-*.pyc
-python//gentoo_main/settings.py
-python/gentoo_main/wsgi.py
+python/bb_dashboard/bb_dashboard/settings.py
+
diff --git a/TODO.txt b/TODO.txt
new file mode 100644
index 0000000..8a6fdee
--- /dev/null
+++ b/TODO.txt
@@ -0,0 +1,26 @@
+* Project
+ + List Project
+ + Add Project (User) (Admins enable project)
+ + Add workers (Project creator), (Admins enable worker)
+ + List builds
+ + List build requests
+ + List issues
+ + Add issues (User)
+ + Add,change,remove settings (User, Group Member of the project)
+ + Add repository (Project creator), (Admins enable repository)
+* Repository
+ + Mix of Gitlab, Github, Gitweb view
+ + Request builds (User, Group Member of the projects)
+* Issues
+ + List
+ + Add issues (User)
+ + Support for PR's (User creator)
+ + Support for Bugzilla (User creator)
+ + Support Bumps (User)
+ + Support Patches (User)
+ + Support Attachment (User)
+* REST
+ + List Workers
+ + List Workers with password (authentication needed)
+ + List Repository
+ + List Repository with ssh keys (authentication needed)
diff --git a/htdoc/index.html b/htdoc/index.html
deleted file mode 100644
index c217ab3..0000000
--- a/htdoc/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
- <head>
- <title></title>
- <meta content="">
- <style></style>
- </head>
- <body></body>
-</html> \ No newline at end of file
diff --git a/python/gentoo_main/__init__.py b/python/bb_dashboard/bb_dashboard/__init__.py
index e69de29..e69de29 100644
--- a/python/gentoo_main/__init__.py
+++ b/python/bb_dashboard/bb_dashboard/__init__.py
diff --git a/python/bb_dashboard/bb_dashboard/asgi.py b/python/bb_dashboard/bb_dashboard/asgi.py
new file mode 100644
index 0000000..1e2115c
--- /dev/null
+++ b/python/bb_dashboard/bb_dashboard/asgi.py
@@ -0,0 +1,16 @@
+"""
+ASGI config for bb_dashboard project.
+
+It exposes the ASGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/
+"""
+
+import os
+
+from django.core.asgi import get_asgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'bb_dashboard.settings')
+
+application = get_asgi_application()
diff --git a/python/bb_dashboard/bb_dashboard/settings.py.sample b/python/bb_dashboard/bb_dashboard/settings.py.sample
new file mode 100644
index 0000000..079368e
--- /dev/null
+++ b/python/bb_dashboard/bb_dashboard/settings.py.sample
@@ -0,0 +1,149 @@
+"""
+Django settings for bb_dashboard project.
+
+Generated by 'django-admin startproject' using Django 3.2.3.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.2/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/3.2/ref/settings/
+"""
+
+from pathlib import Path
+
+# Build paths inside the project like this: BASE_DIR / 'subdir'.
+BASE_DIR = Path(__file__).resolve().parent.parent
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = 'fooo'
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = [
+ '.localhost',
+ '127.0.0.1',
+ '[::1]',
+ ]
+
+
+# Application definition
+
+INSTALLED_APPS = [
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+ 'www.apps.WwwConfig',
+]
+
+MIDDLEWARE = [
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'bb_dashboard.urls'
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [
+ 'templates',
+ ],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'bb_dashboard.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.postgresql',
+ 'NAME': '',
+ 'USER': '',
+ 'PASSWORD': '',
+ 'HOST': '',
+ 'PORT': '',
+ },
+ 'gentoo-ci': {
+ 'ENGINE': 'django.db.backends.postgresql',
+ 'NAME': '',
+ 'USER': '',
+ 'PASSWORD': '',
+ 'HOST': '',
+ 'PORT': '',
+ }
+}
+
+DATABASE_ROUTERS = ['www.router.WWWRouter']
+
+# Password validation
+# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators
+
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+
+
+# Internationalization
+# https://docs.djangoproject.com/en/3.2/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'Europe/Stockholm'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/3.2/howto/static-files/
+
+STATIC_URL = '/static/'
+
+STATICFILES_DIRS = [
+ BASE_DIR / "static",
+]
+
+# Default primary key field type
+# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
+
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
diff --git a/python/bb_dashboard/bb_dashboard/urls.py b/python/bb_dashboard/bb_dashboard/urls.py
new file mode 100644
index 0000000..f1e4c86
--- /dev/null
+++ b/python/bb_dashboard/bb_dashboard/urls.py
@@ -0,0 +1,9 @@
+from django.contrib import admin
+from django.urls import include, path
+
+urlpatterns = [
+ path('www/', include('www.urls')),
+ #path('auth/', include('gosbs_auth.urls')),
+ #path('projects/', include('projects.urls', namespace="projects")),
+ #path('admin/', admin.site.urls),
+]
diff --git a/python/bb_dashboard/bb_dashboard/wsgi.py b/python/bb_dashboard/bb_dashboard/wsgi.py
new file mode 100644
index 0000000..cf71243
--- /dev/null
+++ b/python/bb_dashboard/bb_dashboard/wsgi.py
@@ -0,0 +1,16 @@
+"""
+WSGI config for bb_dashboard project.
+
+It exposes the WSGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
+"""
+
+import os
+
+from django.core.wsgi import get_wsgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'bb_dashboard.settings')
+
+application = get_wsgi_application()
diff --git a/python/bb_dashboard/manage.py b/python/bb_dashboard/manage.py
new file mode 100755
index 0000000..8a6e55f
--- /dev/null
+++ b/python/bb_dashboard/manage.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+"""Django's command-line utility for administrative tasks."""
+import os
+import sys
+
+
+def main():
+ """Run administrative tasks."""
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'bb_dashboard.settings')
+ try:
+ from django.core.management import execute_from_command_line
+ except ImportError as exc:
+ raise ImportError(
+ "Couldn't import Django. Are you sure it's installed and "
+ "available on your PYTHONPATH environment variable? Did you "
+ "forget to activate a virtual environment?"
+ ) from exc
+ execute_from_command_line(sys.argv)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/python/gentoo_www/__init__.py b/python/bb_dashboard/projects/__init__.py
index e69de29..e69de29 100644
--- a/python/gentoo_www/__init__.py
+++ b/python/bb_dashboard/projects/__init__.py
diff --git a/python/bb_dashboard/projects/admin.py b/python/bb_dashboard/projects/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/python/bb_dashboard/projects/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/python/bb_dashboard/projects/apps.py b/python/bb_dashboard/projects/apps.py
new file mode 100644
index 0000000..afae498
--- /dev/null
+++ b/python/bb_dashboard/projects/apps.py
@@ -0,0 +1,6 @@
+from django.apps import AppConfig
+
+
+class ProjectsConfig(AppConfig):
+ default_auto_field = 'django.db.models.BigAutoField'
+ name = 'projects'
diff --git a/python/tbc_www/__init__.py b/python/bb_dashboard/projects/migrations/__init__.py
index e69de29..e69de29 100644
--- a/python/tbc_www/__init__.py
+++ b/python/bb_dashboard/projects/migrations/__init__.py
diff --git a/python/bb_dashboard/projects/models.py b/python/bb_dashboard/projects/models.py
new file mode 100644
index 0000000..71a8362
--- /dev/null
+++ b/python/bb_dashboard/projects/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/python/bb_dashboard/projects/tests.py b/python/bb_dashboard/projects/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/python/bb_dashboard/projects/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/python/bb_dashboard/projects/views.py b/python/bb_dashboard/projects/views.py
new file mode 100644
index 0000000..91ea44a
--- /dev/null
+++ b/python/bb_dashboard/projects/views.py
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/python/tbc_www/utils/__init__.py b/python/bb_dashboard/repository/__init__.py
index e69de29..e69de29 100644
--- a/python/tbc_www/utils/__init__.py
+++ b/python/bb_dashboard/repository/__init__.py
diff --git a/python/bb_dashboard/repository/admin.py b/python/bb_dashboard/repository/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/python/bb_dashboard/repository/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/python/bb_dashboard/repository/apps.py b/python/bb_dashboard/repository/apps.py
new file mode 100644
index 0000000..9c086eb
--- /dev/null
+++ b/python/bb_dashboard/repository/apps.py
@@ -0,0 +1,6 @@
+from django.apps import AppConfig
+
+
+class RepositoryConfig(AppConfig):
+ default_auto_field = 'django.db.models.BigAutoField'
+ name = 'repository'
diff --git a/static/foo.txt b/python/bb_dashboard/repository/migrations/__init__.py
index e69de29..e69de29 100644
--- a/static/foo.txt
+++ b/python/bb_dashboard/repository/migrations/__init__.py
diff --git a/python/bb_dashboard/repository/models.py b/python/bb_dashboard/repository/models.py
new file mode 100644
index 0000000..a7989bc
--- /dev/null
+++ b/python/bb_dashboard/repository/models.py
@@ -0,0 +1,45 @@
+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)
+
diff --git a/python/bb_dashboard/repository/tests.py b/python/bb_dashboard/repository/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/python/bb_dashboard/repository/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/python/bb_dashboard/repository/views.py b/python/bb_dashboard/repository/views.py
new file mode 100644
index 0000000..91ea44a
--- /dev/null
+++ b/python/bb_dashboard/repository/views.py
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/python/bb_dashboard/static/screen.css b/python/bb_dashboard/static/screen.css
new file mode 100644
index 0000000..b0470e8
--- /dev/null
+++ b/python/bb_dashboard/static/screen.css
@@ -0,0 +1,3 @@
+.devmap-entry{background-color:#f7f7f7;border:1px solid #e1e1e1;border-radius:4px;padding:8px;margin-bottom:4px;max-width:300px}.devmap-entry h3 small{color:#333;font-size:80%;mmargin-left:1em}.download-size{margin-left:1em}.download-tag{margin-left:1em}.stick-top{margin-top:0}@media (min-width: 768px){.other-arches .tab-pane{margin-left:1em}}ul.sitemap{padding-left:1em}ul.sitemap li{list-style-type:none}@media (min-width: 768px){.container-sitemap{padding-top:1em;margin-top:1em;margin-bottom:1em}}@media (min-width: 992px){.container-sitemap{border-top:1px solid #d5d5d5;border-bottom:1px solid #d5d5d5}}.footer-breadcrumb{margin-top:2em}.hero-section{background-size:cover;background-repeat:no-repeat;min-height:200px;font-size:120%;padding-top:2%;padding-bottom:2%}@media (min-width: 768px){.hero-section{font-size:150%}.hero-section h2{font-size:130%}}.get-started-livecd{color:black;background-color:#B0BEC5}.get-started-handbook{color:black;background-color:#90A4AE;margin-top:-1px}.get-started-go{color:white;background-color:#54487a;margin-top:-1px}.emergehdr{margin-top:-21px;background-color:#54487a;background-image:url("https://www.gentoo.org/assets/img/bg/emerge.jpg");cursor:default;min-height:0;box-shadow:0px 0px 5px #333;padding-top:1em;padding-bottom:1em}@media (min-width: 992px){.emergehdr{font-size:1.95em}}.emergehdr p{text-shadow:0px 0px 5px black;color:white;margin:0}.emergehdr .buttons{margin-top:3px}.abouthdr{background:#c2bcd6;background:-moz-linear-gradient(-45deg, #c2bcd6 0%, #53487a 43%, #53487a 100%);background:-webkit-gradient(left top, right bottom, color-stop(0%, #c2bcd6), color-stop(43%, #53487a), color-stop(100%, #53487a));background:-webkit-linear-gradient(-45deg, #c2bcd6 0%, #53487a 43%, #53487a 100%);background:-o-linear-gradient(-45deg, #c2bcd6 0%, #53487a 43%, #53487a 100%);background:-ms-linear-gradient(-45deg, #c2bcd6 0%, #53487a 43%, #53487a 100%);background:linear-gradient(135deg, #c2bcd6 0%, #53487a 43%, #53487a 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#c2bcd6', endColorstr='#53487a', GradientType=1 );bbackground-size:cover;bbackground-repeat:no-repeat;bbackground-image:url("/assets/img/bg/larry-about.jpg");min-height:300px;color:white}.abouthdr .right{text-align:right;margin-right:20%}.featured-panel{margin-top:2em;margin-bottom:2em;background-color:#eaeaea}.featured-panel p:last-child{margin-bottom:0}.pound-gentoo{background-color:#e1e1e1}@media (min-width: 768px){.pound-gentoo{margin-top:1em;margin-bottom:1em}}.ml-actions{width:8em;text-align:right}.huge{font-size:140%}.large{font-size:125%}@media (min-width: 768px){.huge{font-size:200%}.huge h1{font-size:200%}}::selection{background:#dddaec}::-moz-selection{background:#dddaec}.gentoo-nav a:link,.gentoo-nav a:visited{color:#54487a}.old-docs dd{margin-bottom:.5em;margin-left:.5em;font-size:90%}body.nav-align-h2 #content h2:first-of-type{margin-top:0}.caption h3{margin-top:5px}.label-aspect{width:4em;display:inline-block}.gentoo-badges img{max-width:6em;min-width:6em}.herd-desc-col{width:10em}.herd-maint-col{width:50%}@media (min-width: 768px){.frontpage-table{width:100%;table-layout:fixed}.frontpage-table td{text-overflow:ellipsis;max-height:1.2em;overflow:hidden;white-space:nowrap}.frontpage-table-planet-author{width:30%}.frontpage-table-package-atom{width:30%}.frontpage-table-wiki-title{width:70%}}.get-started-icon .fa,.contribute-icon .fa{padding-left:20px}@media (max-width: 768px){.button-bar{line-height:3em}}.site-logo object{overflow:hidden}.use-flag{width:25%}.use-desc{width:75%}.external-link{color:#979797}.stick-top{margin-top:0}.stick-bottom{margin-bottom:0}.logo-table img{max-height:100px}.logo-table td.img{text-align:center}article.newsitem{margin-top:2em}.newsitem-headline{padding-left:45px}.newsitem-content{padding-left:46px}.newsitem-bullet{color:#aaa;float:left}@media (max-width: 768px){.newsitem-bullet{display:none}.newsitem-content,.newsitem-headline{padding-left:0}}.news-img-right{float:right;margin-left:2em}.news-more{text-align:right;margin:0;margin-top:18px;padding:0;font-size:90%}.news-more a:link,.news-more a:active,.news-more a:visited,.news-more a:hover{color:#aaa}.news-more hr{margin-top:2px}.sponsor{margin-bottom:.5em}@media (min-width: 768px){.sponsor{display:flex;align-items:center}}.sponsorlogo{text-align:center}.sponsorlogo img{margin-bottom:.5em}.sponsortext h3{margin-top:0}.text-ad{display:inline-block;height:125px;width:125px;line-height:125px;overflow:hidden;border:1px solid #ddd;padding:2px;font-size:90%;background:#ffffff;background:-moz-linear-gradient(top, #fff 0%, #f6f6f6 47%, #ededed 100%);background:-webkit-gradient(left top, left bottom, color-stop(0%, #fff), color-stop(47%, #f6f6f6), color-stop(100%, #ededed));background:-webkit-linear-gradient(top, #fff 0%, #f6f6f6 47%, #ededed 100%);background:-o-linear-gradient(top, #fff 0%, #f6f6f6 47%, #ededed 100%);background:-ms-linear-gradient(top, #fff 0%, #f6f6f6 47%, #ededed 100%);background:linear-gradient(to bottom, #fff 0%, #f6f6f6 47%, #ededed 100%)}.text-ad>.text-ad-content{display:inline-block;vertical-align:middle;line-height:1.2em}.donate{margin-top:-21px;background-color:#a40000;background-image:url("/assets/img/bg/donate.jpg");cursor:default}.donate-thanks{background-image:url("/assets/img/bg/larry-lessthanthree.png");background-size:contain;background-position:50% 50%;height:400px}.donate h1{color:white;text-shadow:0px 0px 5px black}.donate p{text-shadow:0px 0px 5px black;color:white}@media (min-width: 768px){.donate-form{margin-left:20%;margin-right:20%}}
+
+/*# sourceMappingURL=screen.css.map */
diff --git a/python/templates/includes/container/end b/python/bb_dashboard/templates/includes/container/end
index 492b151..492b151 100644
--- a/python/templates/includes/container/end
+++ b/python/bb_dashboard/templates/includes/container/end
diff --git a/python/bb_dashboard/templates/includes/container/start b/python/bb_dashboard/templates/includes/container/start
new file mode 100644
index 0000000..1dca7a2
--- /dev/null
+++ b/python/bb_dashboard/templates/includes/container/start
@@ -0,0 +1,3 @@
+</div></div></div>
+<div class="hero-section emergehdr">
+ <div class="container">
diff --git a/python/templates/includes/layout/footer.html b/python/bb_dashboard/templates/includes/layout/footer.html
index 6767871..71d1339 100644
--- a/python/templates/includes/layout/footer.html
+++ b/python/bb_dashboard/templates/includes/layout/footer.html
@@ -2,22 +2,27 @@
<div class="container">
<div class="row">
<div class="col-xs-12 col-md-offset-2 col-md-7">
- {% include "includes/layout/footer_db_update.html" %}
</div>
<div class="col-xs-12 col-md-3">
<h3 class="footerhead">Questions or comments?</h3>
- Please feel free to <a href="{{ site.contact }}">contact us</a>.
+ Please feel free to <a href="/inside-gentoo/contact/">contact us</a>.
</div>
</div>
+ </div>
+ <div class="container">
<div class="row">
- <div class="col-xs-2 col-sm-3 col-md-2">
+ <div class="col-xs-3 col-md-2">
<ul class="footerlinks three-icons">
<li><a href="https://twitter.com/gentoo" title="@Gentoo on Twitter"><span class="fa fa-twitter fa-fw"></span></a></li>
- <li><a href="https://plus.google.com/+Gentoo" title="+Gentoo on Google+"><span class="fa fa-google-plus fa-fw"></span></a></li>
<li><a href="https://www.facebook.com/gentoo.org" title="Gentoo on Facebook"><span class="fa fa-facebook fa-fw"></span></a></li>
</ul>
+ <div>
+ <div class="sitemap text-center">
+ <a href="https://wiki.gentoo.org/wiki/Foundation:Privacy_Policy">Privacy Policy</a>
</div>
- <div class="col-xs-10 col-sm-9 col-md-10">
+ </div>
+ </div>
+ <div class="col-xs-8 col-md-8">
<strong>&copy; 2001-{% now "Y" %} Gentoo Foundation, Inc.</strong><br>
<small>
Gentoo is a trademark of the Gentoo Foundation, Inc.
@@ -26,6 +31,13 @@
The <a href="https://www.gentoo.org/inside-gentoo/foundation/name-logo-guidelines.html">Gentoo Name and Logo Usage Guidelines</a> apply.
</small>
</div>
+ <div class="col-xs-1 col-md-1">
+ <strong><a class="text-dark" href="https://gitweb.gentoo.org/sites/www.git/">Version</a></strong><br>
+ <small>
+ de76aa4
+
+ </small>
+ </div>
</div>
</div>
</footer>
diff --git a/python/bb_dashboard/templates/includes/layout/head.html b/python/bb_dashboard/templates/includes/layout/head.html
new file mode 100644
index 0000000..492b392
--- /dev/null
+++ b/python/bb_dashboard/templates/includes/layout/head.html
@@ -0,0 +1,26 @@
+<head>
+ {% load static %}
+ <title>{% if activemeny.title %}{{ activemeny.title }} – {{ site.title }}{% else %}{{ site.title }}{% endif %}</title>
+ {% if activemeny.description %}<meta name="description" content="{{ activemeny.description }}">{% endif %}
+ <meta charset="utf-8">
+ <meta name="theme-color" content="#54487a">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta property="og:title" content="{% if activemeny.title %}{{ activemeny.title }} – {{ site.title }}{% else %}{{ site.title }}{% endif %}">
+ <meta property="og:image" content="https://www.gentoo.org/assets/img/logo/gentoo-g.png">
+ <meta property="og:description" content="{% if activemeny.description %}{{ activemeny.description }}{% else %}{{ site.description }}{% endif %}">
+ <meta name="twitter:image" content="https://www.gentoo.org/assets/img/logo/gentoo-g.png">
+ <link rel="apple-touch-icon" href="https://www.gentoo.org/assets/img/logo/icon-192.png">
+ <link rel="icon" sizes="192x192" href="https://www.gentoo.org/assets/img/logo/icon-192.png">
+ <link href="https://assets.gentoo.org/tyrian/v1/bootstrap.min.css" rel="stylesheet" media="screen">
+ <link href="https://assets.gentoo.org/tyrian/v1/tyrian.min.css" rel="stylesheet" media="screen">
+ <link href="{% static 'screen.css' %}" rel="stylesheet" media="screen">
+
+ <link rel="icon" href="https://www.gentoo.org/favicon.ico" type="image/x-icon">
+ <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/www-gentoo-org.xml" title="Gentoo Website">
+ <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/forums-gentoo-org.xml" title="Gentoo Forums">
+ <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/bugs-gentoo-org.xml" title="Gentoo Bugzilla">
+ <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/packages-gentoo-org.xml" title="Gentoo Packages">
+ <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/archives-gentoo-org.xml" title="Gentoo List Archives">
+ <link rel="alternate" type="application/atom+xml" title="Gentoo Linux news" href="https://www.gentoo.org/feeds/news.xml">
+</head>
diff --git a/python/bb_dashboard/templates/includes/layout/header.html b/python/bb_dashboard/templates/includes/layout/header.html
new file mode 100644
index 0000000..382bcf4
--- /dev/null
+++ b/python/bb_dashboard/templates/includes/layout/header.html
@@ -0,0 +1,89 @@
+<header>
+ <div class="site-title">
+ <div class="container">
+ <div class="row">
+ <div class="site-title-buttons">
+ <div class="btn-group btn-group-sm">
+ <a href="https://get.gentoo.org/" role="button" class="btn get-gentoo"><span class="fa fa-fw fa-download"></span> <strong>Get Gentoo!</strong></a>
+ <div class="btn-group btn-group-sm">
+ <a class="btn gentoo-org-sites dropdown-toggle" data-toggle="dropdown" data-target="#" href="#">
+ <span class="fa fa-fw fa-map-o"></span> <span class="hidden-xs">gentoo.org sites</span> <span class="caret"></span>
+ </a>
+ <ul class="dropdown-menu dropdown-menu-right">
+ <li><a href="https://www.gentoo.org/" title="Main Gentoo website"><span class="fa fa-home fa-fw"></span> gentoo.org</a></li>
+ <li><a href="https://wiki.gentoo.org/" title="Find and contribute documentation"><span class="fa fa-file-text-o fa-fw"></span> Wiki</a></li>
+ <li><a href="https://bugs.gentoo.org/" title="Report issues and find common issues"><span class="fa fa-bug fa-fw"></span> Bugs</a></li>
+ <li><a href="https://forums.gentoo.org/" title="Discuss with the community"><span class="fa fa-comments-o fa-fw"></span> Forums</a></li>
+ <li><a href="https://packages.gentoo.org/" title="Find software for your Gentoo"><span class="fa fa-hdd-o fa-fw"></span> Packages</a></li>
+ <li class="divider"></li>
+ <li><a href="https://planet.gentoo.org/" title="Find out what's going on in the developer community"><span class="fa fa-rss fa-fw"></span> Planet</a></li>
+ <li><a href="https://archives.gentoo.org/" title="Read up on past discussions"><span class="fa fa-archive fa-fw"></span> Archives</a></li>
+ <li><a href="https://gitweb.gentoo.org/" title="Browse our source code in Gitweb"><span class="fa fa-code fa-fw"></span> Gitweb</a></li>
+ <li class="divider"></li>
+ <li><a href="https://infra-status.gentoo.org/" title="Get updates on the services provided by Gentoo"><span class="fa fa-server fa-fw"></span> Infra status</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="logo">
+ <a href="/" title="Back to the homepage" class="site-logo">
+ <object data="https://assets.gentoo.org/tyrian/site-logo.svg" type="image/svg+xml">
+ <img src="https://assets.gentoo.org/tyrian/site-logo.png" alt="Gentoo Linux logo">
+ </object>
+ </a>
+ <span class="site-label">Gentoo Ci Dashboard</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <nav class="tyrian-navbar" role="navigation">
+ <div class="container">
+ <div class="row">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main-collapse">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ </div>
+ <div class="collapse navbar-collapse navbar-main-collapse">
+ <ul class="nav navbar-nav">
+ {% include "includes/navigation/primary" %}
+ </ul>
+ <ul class="nav navbar-nav navbar-right">
+ <li class=""><a href="http://www.gentoo.org/donate/"><span class="fa fa-heart" style="color:#d9534f;"></span> Donate</a></li>
+ </ul>
+ <ul class="nav navbar-nav navbar-right">
+ <li class=""><span class="" style="color:#d9534f;"></span>
+ {% if user.is_authenticated %}
+ Welcome, {{ user.username }}. Thanks for logging in.
+ {% endif %}
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </nav>
+ {% if subpages %}
+ <nav class="navbar navbar-grey navbar-stick" role="navigation">
+ <div class="container">
+ <div class="row">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-secondary-collapse">
+ <span class="sr-only">Toggle secondary navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ </div>
+ <div class="collapse navbar-collapse navbar-secondary-collapse">
+ <ul class="nav navbar-nav">
+ {% include "includes/navigation/secondary" %}
+ </ul>
+ </div>
+ </div>
+ </div>
+ </nav>
+ {% endif %}
+</header>
diff --git a/python/bb_dashboard/templates/includes/navigation/primary b/python/bb_dashboard/templates/includes/navigation/primary
new file mode 100644
index 0000000..9db245d
--- /dev/null
+++ b/python/bb_dashboard/templates/includes/navigation/primary
@@ -0,0 +1,10 @@
+{% for meny in menys %}
+ {% if meny.view %}
+ {% if activemeny.name == meny.name %}
+ <li class="active">
+ {% else %}
+ <li class="">
+ {% endif %}
+ <a href="/{{ meny.url }}/">{{meny.title}}</a></li>
+ {% endif %}
+{% endfor %}
diff --git a/python/bb_dashboard/templates/includes/navigation/secondary b/python/bb_dashboard/templates/includes/navigation/secondary
new file mode 100644
index 0000000..ad11ad5
--- /dev/null
+++ b/python/bb_dashboard/templates/includes/navigation/secondary
@@ -0,0 +1,10 @@
+{% for meny in submenys %}
+ {% if meny.view %}
+ {% if subactivemeny == meny.name %}
+ <li class="active">
+ {% else %}
+ <li class="">
+ {% endif %}
+ <a href="{% url meny.url %}">{{meny.title}}</a></li>
+ {% endif %}
+{% endfor %}
diff --git a/python/bb_dashboard/templates/layout/base.html b/python/bb_dashboard/templates/layout/base.html
new file mode 100644
index 0000000..0dd7d8c
--- /dev/null
+++ b/python/bb_dashboard/templates/layout/base.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+ {% include "includes/layout/head.html" %}
+ <body class="">
+ {% include "includes/layout/header.html" %}
+
+ <div class="container">
+ <div class="row">
+ <div id="content" class="col-md-12">
+ {% block content %}{% endblock %}
+ </div>
+ </div>
+ </div>
+
+ {% include "includes/layout/footer.html" %}
+
+ <script src="https://assets.gentoo.org/tyrian/v1/jquery.min.js"></script>
+ <script src="https://assets.gentoo.org/tyrian/v1/bootstrap.min.js"></script>
+ </body>
+</html>
diff --git a/python/bb_dashboard/www/__init__.py b/python/bb_dashboard/www/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/python/bb_dashboard/www/__init__.py
diff --git a/python/bb_dashboard/www/admin.py b/python/bb_dashboard/www/admin.py
new file mode 100644
index 0000000..168b0b2
--- /dev/null
+++ b/python/bb_dashboard/www/admin.py
@@ -0,0 +1,7 @@
+from django.contrib import admin
+
+from .models import SiteSettings, Menys, SubMenys
+
+admin.site.register(SiteSettings)
+admin.site.register(Menys)
+admin.site.register(SubMenys)
diff --git a/python/bb_dashboard/www/apps.py b/python/bb_dashboard/www/apps.py
new file mode 100644
index 0000000..a339bca
--- /dev/null
+++ b/python/bb_dashboard/www/apps.py
@@ -0,0 +1,6 @@
+from django.apps import AppConfig
+
+
+class WwwConfig(AppConfig):
+ default_auto_field = 'django.db.models.BigAutoField'
+ name = 'www'
diff --git a/python/bb_dashboard/www/migrations/0001_initial.py b/python/bb_dashboard/www/migrations/0001_initial.py
new file mode 100644
index 0000000..d2ef79d
--- /dev/null
+++ b/python/bb_dashboard/www/migrations/0001_initial.py
@@ -0,0 +1,95 @@
+# Generated by Django 3.2.3 on 2021-06-12 23:07
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Menys',
+ fields=[
+ ('id', models.IntegerField(primary_key=True, serialize=False)),
+ ('title', models.CharField(max_length=200)),
+ ('description', models.CharField(max_length=200)),
+ ('name', models.CharField(max_length=100)),
+ ('view', models.BooleanField(default=False)),
+ ('sort', models.IntegerField(default=0)),
+ ('url', models.CharField(max_length=200)),
+ ('arg', models.CharField(blank=True, max_length=50)),
+ ('access', models.BooleanField(default=False)),
+ ('sub', models.BooleanField(default=False)),
+ ],
+ options={
+ 'db_table': 'menys',
+ },
+ ),
+ migrations.CreateModel(
+ name='Posts',
+ fields=[
+ ('id', models.IntegerField(primary_key=True, serialize=False)),
+ ('title', models.CharField(max_length=200)),
+ ('url', models.CharField(max_length=200)),
+ ('text', models.TextField()),
+ ('created_at', models.DateTimeField(auto_now_add=True)),
+ ],
+ options={
+ 'db_table': 'posts',
+ },
+ ),
+ migrations.CreateModel(
+ name='SiteSettings',
+ fields=[
+ ('id', models.IntegerField(primary_key=True, serialize=False)),
+ ('site', models.CharField(max_length=20)),
+ ('title', models.CharField(max_length=50)),
+ ('email', models.CharField(max_length=50)),
+ ('description', models.CharField(max_length=100)),
+ ('url', models.CharField(max_length=50)),
+ ('contact', models.CharField(max_length=50)),
+ ],
+ options={
+ 'db_table': 'site_settings',
+ },
+ ),
+ migrations.CreateModel(
+ name='Sponsors',
+ fields=[
+ ('id', models.IntegerField(primary_key=True, serialize=False)),
+ ('name', models.CharField(max_length=200)),
+ ('img', models.CharField(max_length=200)),
+ ('link', models.CharField(max_length=200)),
+ ('title', models.CharField(max_length=200)),
+ ('alt', models.CharField(max_length=200)),
+ ('weight', models.IntegerField(default=0)),
+ ('active', models.BooleanField(default=False)),
+ ],
+ options={
+ 'db_table': 'sponsors',
+ },
+ ),
+ migrations.CreateModel(
+ name='SubMenys',
+ fields=[
+ ('id', models.IntegerField(primary_key=True, serialize=False)),
+ ('title', models.CharField(max_length=200)),
+ ('description', models.CharField(max_length=200)),
+ ('name', models.CharField(max_length=100)),
+ ('view', models.BooleanField(default=False)),
+ ('sort', models.IntegerField(default=0)),
+ ('url', models.CharField(max_length=200)),
+ ('arg', models.CharField(blank=True, max_length=50)),
+ ('access', models.BooleanField(default=False)),
+ ('MenyId', models.ForeignKey(db_column='meny_id', on_delete=django.db.models.deletion.CASCADE, to='www.menys')),
+ ],
+ options={
+ 'db_table': 'sub_menys',
+ },
+ ),
+ ]
diff --git a/python/bb_dashboard/www/migrations/__init__.py b/python/bb_dashboard/www/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/python/bb_dashboard/www/migrations/__init__.py
diff --git a/python/bb_dashboard/www/models.py b/python/bb_dashboard/www/models.py
new file mode 100644
index 0000000..85dbc35
--- /dev/null
+++ b/python/bb_dashboard/www/models.py
@@ -0,0 +1,74 @@
+# Copyright 1998-2019 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+from django.db import models
+
+class SiteSettings(models.Model):
+ id = models.IntegerField(primary_key=True)
+ site = models.CharField(max_length=20)
+ title = models.CharField(max_length=50)
+ email = models.CharField(max_length=50)
+ description = models.CharField(max_length=100)
+ url = models.CharField(max_length=50)
+ contact = models.CharField(max_length=50)
+ class Meta:
+ db_table = 'site_settings'
+ def __str__(self):
+ return '%s %s %s %s %s %s %s' % (self.id, self.site, self.title, self.email, self.description, self.url, self.contact)
+
+class Menys(models.Model):
+ id = models.IntegerField(primary_key=True)
+ title = models.CharField(max_length=200)
+ description = models.CharField(max_length=200)
+ name = models.CharField(max_length=100)
+ view = models.BooleanField(default=False)
+ sort = models.IntegerField(default=0)
+ url = models.CharField(max_length=200)
+ arg = models.CharField(max_length=50, blank=True)
+ access = models.BooleanField(default=False)
+ sub = models.BooleanField(default=False)
+ class Meta:
+ db_table = 'menys'
+ def __str__(self):
+ return '%s %s %s %s %s %s %s %s %s %s' % (self.id, self.title, self.description, self.name, self.view, self.sort, self.url, self.arg, self.access, self.sub)
+
+class SubMenys(models.Model):
+ id = models.IntegerField(primary_key=True)
+ title = models.CharField(max_length=200)
+ description = models.CharField(max_length=200)
+ MenyId = models.ForeignKey(Menys, on_delete=models.CASCADE, db_column='meny_id')
+ name = models.CharField(max_length=100)
+ view = models.BooleanField(default=False)
+ sort = models.IntegerField(default=0)
+ url = models.CharField(max_length=200)
+ arg = models.CharField(max_length=50, blank=True)
+ access = models.BooleanField(default=False)
+ class Meta:
+ db_table = 'sub_menys'
+ def __str__(self):
+ return '%s %s %s %s %s %s %s %s %s %s' % (self.id, self.title, self.description, self.MenyId, self.name, self.view, self.sort, self.url, self.arg, self.access)
+
+class Posts(models.Model):
+ id = models.IntegerField(primary_key=True)
+ title = models.CharField(max_length=200)
+ url = models.CharField(max_length=200)
+ text = models.TextField()
+ created_at = models.DateTimeField(auto_now_add=True)
+ class Meta:
+ db_table='posts'
+ def __str__(self):
+ return '%s %s %s %s %s' % (self.id, self.title, self.url, self.text, self.created_at)
+
+class Sponsors(models.Model):
+ id = models.IntegerField(primary_key=True)
+ name = models.CharField(max_length=200)
+ img = models.CharField(max_length=200)
+ link = models.CharField(max_length=200)
+ title = models.CharField(max_length=200)
+ alt = models.CharField(max_length=200)
+ weight = models.IntegerField(default=0)
+ active = models.BooleanField(default=False)
+ class Meta:
+ db_table = 'sponsors'
+ def __str__(self):
+ return '%s %s %s %s %s %s %s' % (self.id, self.name, self.img, self.link, self.alt, self.weight, self.active)
diff --git a/python/bb_dashboard/www/router.py b/python/bb_dashboard/www/router.py
new file mode 100644
index 0000000..70fa685
--- /dev/null
+++ b/python/bb_dashboard/www/router.py
@@ -0,0 +1,31 @@
+# Copyright 1998-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+class WWWRouter(object):
+ def db_for_read(self, model, **hints):
+ "Point all operations on zobcs models to 'zobcs'"
+ if model._meta.app_label == 'www':
+ return 'default'
+ return 'gentoo-ci'
+
+ def db_for_write(self, model, **hints):
+ "Point all operations on zobcs models to 'zobcs'"
+ if model._meta.app_label == 'www':
+ return 'default'
+ return 'gentoo-ci'
+
+ def allow_relation(self, obj1, obj2, **hints):
+ "Allow any relation if a both models in zobcs app"
+ if obj1._meta.app_label == 'www' and obj2._meta.app_label == 'www':
+ return True
+ # Allow if neither is zobcs app
+ elif 'www' not in [obj1._meta.app_label, obj2._meta.app_label]:
+ return True
+ return False
+
+ def allow_migrate(self, db, app_label, model_name=None, **hints):
+ if db == 'gentoo-ci':
+ return app_label == 'gentoo-ci'
+ elif app_label == 'gentoo-ci':
+ return False
+ return True
diff --git a/python/bb_dashboard/www/templates/www/index.html b/python/bb_dashboard/www/templates/www/index.html
new file mode 100644
index 0000000..18ecc63
--- /dev/null
+++ b/python/bb_dashboard/www/templates/www/index.html
@@ -0,0 +1,42 @@
+{% extends "layout/base.html" %}
+{% block content %}
+{% include "includes/container/start" %}
+<div class="row">
+ <div class="col-xs-12 col-sm-8 col-md-9">
+ <p>
+ Welcome to Gentoo Ci Dashboard.
+ </p>
+ </div>
+ <div class="col-xs-12 col-sm-4 col-md-3 buttons">
+ <a href="/get-started/about/" class="btn btn-default btn-block">Learn more</a>
+ <a href="/get-started/" class="btn btn-primary btn-block"><i class="fa fa-fw fa-rocket"></i> Get started now</a>
+ </div>
+</div>
+{% include "includes/container/end" %}
+{% include "www/news.html" %}
+
+<div class="row">
+ <div class="col-xs-12 col-md-6">
+ <h2>New Commits <small>more at the <a href="/new_packages/">New Commits</a></small></h2>
+
+ </div>
+ <div class="col-xs-12 col-md-6">
+ <h2>New Builds <small>more at the <a href="/new_logs/">New Builds</a></small></h2>
+
+ </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>
+
+ </div>
+ <div class="col-xs-12 col-md-6">
+ <h2>New Pkgcheck or QA checks <small>on the <a href="/new/repomanqa/">New Pkgcheck or QA checks</a></small></h2>
+
+ </div>
+</div>
+
+<hr>
+
+{% endblock %}
diff --git a/python/bb_dashboard/www/templates/www/news.html b/python/bb_dashboard/www/templates/www/news.html
new file mode 100644
index 0000000..b722f51
--- /dev/null
+++ b/python/bb_dashboard/www/templates/www/news.html
@@ -0,0 +1,20 @@
+<section id="news">
+{% for post in posts %}
+<article class="newsitem">
+<h2 class="stick-top newsitem-bullet">
+ <span class="fa fa-fw fa-chevron-circle-right" title="News item"> </span>
+ </h2>
+ <h2 class="stick-top newsitem-headline">
+ <a href="{{ post.url }}">{{ post.title }}</a> <small>{{ post.created_at }}</small>
+ </h2>
+ <div class="newsitem-content">
+ <p>{{ post.text|safe|escape }}</p>
+ </div>
+</article>
+{% endfor %}
+</section>
+
+<div class="news-more">
+ <a href="/news" class="btn btn-xs">All news items <span class="fa fa-fw fa-chevron-right"></span></a>
+<hr>
+</div>
diff --git a/python/bb_dashboard/www/tests.py b/python/bb_dashboard/www/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/python/bb_dashboard/www/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/python/bb_dashboard/www/urls.py b/python/bb_dashboard/www/urls.py
new file mode 100644
index 0000000..88a9cac
--- /dev/null
+++ b/python/bb_dashboard/www/urls.py
@@ -0,0 +1,7 @@
+from django.urls import path
+
+from . import views
+
+urlpatterns = [
+ path('', views.index, name='index'),
+]
diff --git a/python/bb_dashboard/www/utils.py b/python/bb_dashboard/www/utils.py
new file mode 100644
index 0000000..a69f406
--- /dev/null
+++ b/python/bb_dashboard/www/utils.py
@@ -0,0 +1,55 @@
+# Copyright 1998-2019 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+import calendar
+import datetime
+import dateutil.tz
+
+from django.shortcuts import get_object_or_404
+from www.models import SiteSettings, Menys, SubMenys
+
+def default_siteinfo(request, menyrequest):
+ siteinfo = {}
+ siteinfo['site'] = get_object_or_404(SiteSettings)
+ activemeny = get_object_or_404(Menys, name = menyrequest)
+ menys = Menys.objects.all().order_by('sort')
+ #contact = get_object_or_404(SubPages, nav2 = 'contact')
+ for meny in menys:
+ if meny.title == 'Login' and request.user.is_authenticated:
+ meny.show = False
+ if meny.title == 'User' and request.user.is_authenticated:
+ meny.show = True
+ if meny.arg == '':
+ meny.arg = False
+ siteinfo['activemeny'] = activemeny
+ siteinfo['menys'] = menys
+ #siteinfo['contact'] = contact
+ if activemeny.sub:
+ submenys = SubMenys.objects.filter(MenyId = activemeny.id).order_by('sort')
+ for submeny in submenys:
+ if submeny.arg == '':
+ submeny.arg = False
+ siteinfo['submenys'] = submenys
+ siteinfo['subactivemeny'] = False
+ else:
+ siteinfo['submenys'] = []
+ siteinfo['subactivemeny'] = False
+ return siteinfo
+
+# time-handling methods
+
+# this used to be a custom class; now it's just an instance of dateutil's class
+UTC = dateutil.tz.tzutc()
+
+def epoch2datetime(epoch):
+ """Convert a UNIX epoch time to a datetime object, in the UTC timezone"""
+ if epoch is not None:
+ return datetime.datetime.fromtimestamp(epoch, tz=UTC)
+ return None
+
+
+def datetime2epoch(dt):
+ """Convert a non-naive datetime object to a UNIX epoch timestamp"""
+ if dt is not None:
+ return calendar.timegm(dt.utctimetuple())
+ return None
diff --git a/python/bb_dashboard/www/views.py b/python/bb_dashboard/www/views.py
new file mode 100644
index 0000000..05dcd10
--- /dev/null
+++ b/python/bb_dashboard/www/views.py
@@ -0,0 +1,16 @@
+# Copyright 1998-2019 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+from django.http import HttpResponse
+from django.shortcuts import render
+from django.conf import settings
+
+from .utils import default_siteinfo
+from .models import Posts
+
+def index(request):
+ menyrequest = 'www'
+ siteinfo = default_siteinfo(request, menyrequest)
+ siteinfo['posts'] = Posts.objects.all()[:2]
+ htmlrequest = menyrequest + '/index.html'
+ return render(request, htmlrequest, siteinfo)
diff --git a/python/gentoo_main/settings.py.conf b/python/gentoo_main/settings.py.conf
deleted file mode 100644
index 573d178..0000000
--- a/python/gentoo_main/settings.py.conf
+++ /dev/null
@@ -1,163 +0,0 @@
-import os
-ROOT_PATH = os.path.dirname(__file__)
-
-# Django settings for tinderbox-cluster project.
-
-DEBUG = True
-TEMPLATE_DEBUG = DEBUG
-
-ADMINS = (
- # ('Magnus Granberg', 'zorry@gentoo.org'),
-)
-
-MANAGERS = ADMINS
-
-DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': 'gentoo-www', # Or path to database file if using sqlite3.
- 'USER': 'tbc_www', # Not used with sqlite3.
- 'PASSWORD': 'fooo', # Not used with sqlite3.
- 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
- 'PORT': '', # Set to empty string for default. Not used with sqlite3.
- },
- 'tbc': {
- 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': 'tbc', # Or path to database file if using sqlite3.
- 'USER': 'tbc', # Not used with sqlite3.
- 'PASSWORD': 'fooooo.', # Not used with sqlite3.
- 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
- 'PORT': '', # Set to empty string for default. Not used with sqlite3.
- }
-}
-DATABASE_ROUTERS = ['tbc_www.router.TBCRouter']
-# Local time zone for this installation. Choices can be found here:
-# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
-# although not all choices may be available on all operating systems.
-# In a Windows environment this must be set to your system time zone.
-TIME_ZONE = 'Europe/Stockholm'
-
-# Language code for this installation. All choices can be found here:
-# http://www.i18nguy.com/unicode/language-identifiers.html
-LANGUAGE_CODE = 'en-us'
-
-SITE_ID = 1
-
-# If you set this to False, Django will make some optimizations so as not
-# to load the internationalization machinery.
-USE_I18N = True
-
-# If you set this to False, Django will not format dates, numbers and
-# calendars according to the current locale.
-USE_L10N = True
-
-# If you set this to False, Django will not use timezone-aware datetimes.
-USE_TZ = True
-
-# Absolute filesystem path to the directory that will hold user-uploaded files.
-# Example: "/home/media/media.lawrence.com/media/"
-MEDIA_ROOT = os.path.join(ROOT_PATH, '../media/')
-
-# URL that handles the media served from MEDIA_ROOT. Make sure to use a
-# trailing slash.
-# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
-MEDIA_URL = 'http://127.0.0.1/media/'
-
-# Absolute path to the directory static files should be collected to.
-# Don't put anything in this directory yourself; store your static files
-# in apps' "static/" subdirectories and in STATICFILES_DIRS.
-# Example: "/home/media/media.lawrence.com/static/"
-STATIC_ROOT = os.path.join(ROOT_PATH, '../../static/')
-
-# URL prefix for static files.
-# Example: "http://media.lawrence.com/static/"
-STATIC_URL = '/static/'
-
-# Additional locations of static files
-STATICFILES_DIRS = (
- os.path.join(ROOT_PATH, '../zobcs/static/'),
-)
-
-# List of finder classes that know how to find static files in
-# various locations.
-STATICFILES_FINDERS = (
- 'django.contrib.staticfiles.finders.FileSystemFinder',
- 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
- 'django.contrib.staticfiles.finders.DefaultStorageFinder',
-)
-
-# Make this unique, and don't share it with anybody.
-SECRET_KEY = '(7ssrixz5q_xi^*jscmo4nz2m567893d7#ojh-%@$*4*n0m=km'
-
-# List of callables that know how to import templates from various sources.
-TEMPLATE_LOADERS = (
- 'django.template.loaders.filesystem.Loader',
- 'django.template.loaders.app_directories.Loader',
- 'django.template.loaders.eggs.Loader',
-)
-
-MIDDLEWARE_CLASSES = (
- 'django.middleware.common.CommonMiddleware',
- 'django.contrib.sessions.middleware.SessionMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- # Uncomment the next line for simple clickjacking protection:
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
-)
-
-ROOT_URLCONF = 'tbc_www.urls'
-
-# Python dotted path to the WSGI application used by Django's runserver.
-WSGI_APPLICATION = 'gentoo_main.wsgi.application'
-
-TEMPLATE_DIRS = (
- # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
- # Always use forward slashes, even on Windows.
- # Don't forget to use absolute paths, not relative paths.
- os.path.join(ROOT_PATH, '../templates/'),
-)
-
-INSTALLED_APPS = (
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.sites',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- # Uncomment the next line to enable the admin:
- # 'django.contrib.admin',
- # Uncomment the next line to enable admin documentation:
- # 'django.contrib.admindocs',
- 'tbc_www',
- 'gentoo_www',
-)
-
-# A sample logging configuration. The only tangible logging
-# performed by this configuration is to send an email to
-# the site admins on every HTTP 500 error when DEBUG=False.
-# See http://docs.djangoproject.com/en/dev/topics/logging for
-# more details on how to customize your logging configuration.
-LOGGING = {
- 'version': 1,
- 'disable_existing_loggers': False,
- 'filters': {
- 'require_debug_false': {
- '()': 'django.utils.log.RequireDebugFalse'
- }
- },
- 'handlers': {
- 'mail_admins': {
- 'level': 'ERROR',
- 'filters': ['require_debug_false'],
- 'class': 'django.utils.log.AdminEmailHandler'
- }
- },
- 'loggers': {
- 'django.request': {
- 'handlers': ['mail_admins'],
- 'level': 'ERROR',
- 'propagate': True,
- },
- }
-}
diff --git a/python/gentoo_main/urls.py b/python/gentoo_main/urls.py
deleted file mode 100644
index ff710c4..0000000
--- a/python/gentoo_main/urls.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright 1998-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-from django.conf.urls import url
-from . import views
-
-urlpatterns = [
- url(r'^home/$', views.home),
- url(r'^packages/$', views.packages),
-]
diff --git a/python/gentoo_main/wsgi.py.conf b/python/gentoo_main/wsgi.py.conf
deleted file mode 100644
index f3b7191..0000000
--- a/python/gentoo_main/wsgi.py.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-"""
-WSGI config for tinderbox project.
-
-This module contains the WSGI application used by Django's development server
-and any production WSGI deployments. It should expose a module-level variable
-named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
-this application via the ``WSGI_APPLICATION`` setting.
-
-Usually you will have the standard Django WSGI application here, but it also
-might make sense to replace the whole Django WSGI application with a custom one
-that later delegates to the Django one. For example, you could introduce WSGI
-middleware here, or combine a Django application with an application of another
-framework.
-
-"""
-import os
-import sys
-sys.path.append('/home/zorry/zobsc/frontend/python')
-os.environ['DJANGO_SETTINGS_MODULE'] = 'gentoo_main.settings'
-
-# This application object is used by any WSGI server configured to use this
-# file. This includes Django's development server, if the WSGI_APPLICATION
-# setting points here.
-from django.core.wsgi import get_wsgi_application
-application = get_wsgi_application()
-
-# Apply WSGI middleware here.
-# from helloworld.wsgi import HelloWorldApplication
-# application = HelloWorldApplication(application)
diff --git a/python/gentoo_www/__pycache__/models.cpython-33.pyc b/python/gentoo_www/__pycache__/models.cpython-33.pyc
deleted file mode 100644
index 382fe69..0000000
--- a/python/gentoo_www/__pycache__/models.cpython-33.pyc
+++ /dev/null
Binary files differ
diff --git a/python/gentoo_www/__pycache__/urls.cpython-33.pyc b/python/gentoo_www/__pycache__/urls.cpython-33.pyc
deleted file mode 100644
index 1ca5240..0000000
--- a/python/gentoo_www/__pycache__/urls.cpython-33.pyc
+++ /dev/null
Binary files differ
diff --git a/python/gentoo_www/__pycache__/views.cpython-33.pyc b/python/gentoo_www/__pycache__/views.cpython-33.pyc
deleted file mode 100644
index 9d9ac96..0000000
--- a/python/gentoo_www/__pycache__/views.cpython-33.pyc
+++ /dev/null
Binary files differ
diff --git a/python/gentoo_www/models.py b/python/gentoo_www/models.py
deleted file mode 100644
index 2bc345e..0000000
--- a/python/gentoo_www/models.py
+++ /dev/null
@@ -1,124 +0,0 @@
-# Copyright 1998-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-from django.db import models
-
-class SiteSettings(models.Model):
- SiteId = models.IntegerField(primary_key=True, db_column='site_id')
- site = models.CharField(max_length=20)
- title = models.CharField(max_length=50)
- email = models.CharField(max_length=50)
- description = models.CharField(max_length=100)
- url = models.CharField(max_length=50)
- contact = models.CharField(max_length=50)
- cdnurl = models.CharField(max_length=20)
- layout_path = models.CharField(max_length=100)
- download_url = models.CharField(max_length=100)
- class Meta:
- db_table = 'site_settings'
- def __str__(self):
- return '%s %s %s %s %s %s %s %s %s %s' % (self.SiteId, self.site, self.title, self.email, self.description, self.url, self.contact, self.cdnurl, self.layout_path, self.download_url)
-
-class Layout(models.Model):
- LayoutId = models.IntegerField(primary_key=True, db_column='layout_id')
- layout = models.CharField(max_length=20)
- layout_file = models.CharField(max_length=20)
- class Meta:
- db_table = 'layout'
- def __str__(self):
- return '%s %s %s' % (self.LayoutId, self.layout, self.layout_file)
-
-class Pages(models.Model):
- PageId = models.IntegerField(primary_key=True, db_column='page_id')
- nav_title = models.CharField(max_length=200)
- title = models.CharField(max_length=200)
- description = models.CharField(max_length=200)
- nav1 = models.CharField(max_length=100)
- nav1_show = models.BooleanField(default=False)
- nav1_weight = models.IntegerField(default=0)
- meta = models.CharField(max_length=200)
- url = models.CharField(max_length=200)
- inlinejs = models.CharField(max_length=200)
- body_class = models.CharField(max_length=200)
- LayoutId = models.ForeignKey(Layout, db_column='layout_id')
- SubMenu = models.BooleanField(default=False, db_column='sub_menu')
- class Meta:
- db_table = 'pages'
- def __str__(self):
- return '%s %s %s %s %s %s %s %s %s %s %s %s %s' % (self.PageId, self.nav_title, self.title, self.description, self.nav1, self.nav1_show, self.nav1_weight, self.meta, self.url, self.inlinejs, self.body_class, self.LayoutId, self.SubMenu)
-
-class SubPages(models.Model):
- SubPageId = models.IntegerField(primary_key=True, db_column='sub_page_id')
- nav_title = models.CharField(max_length=200)
- title = models.CharField(max_length=200)
- description = models.CharField(max_length=200)
- PageId = models.ForeignKey(Pages, db_column='page_id')
- nav2 = models.CharField(max_length=100)
- nav2_show = models.BooleanField(default=False)
- nav2_weight = models.IntegerField(default=0)
- meta = models.CharField(max_length=200)
- url = models.CharField(max_length=200)
- inlinejs = models.CharField(max_length=200)
- body_class = models.CharField(max_length=200)
- LayoutId = models.ForeignKey(Layout, db_column='layout_id')
- SubMenu = models.BooleanField(default=False, db_column='sub_menu')
- class Meta:
- db_table = 'sub_pages'
- def __str__(self):
- return '%s %s %s %s %s %s %s %s %s %s %s %s %s %s' % (self.SubPageId, self.nav_title, self.title, self.description, self.PageId, self.nav2, self.nav2_show, self.nav2_weight, self.meta, self.url, self.inlinejs, self.body_class, self.LayoutId, self.SubMenu)
-
-class SubSubPages(models.Model):
- SubSubPageId = models.IntegerField(primary_key=True, db_column='subsub_page_id')
- nav_title = models.CharField(max_length=200)
- title = models.CharField(max_length=200)
- description = models.CharField(max_length=200)
- SubPageId = models.ForeignKey(SubPages, db_column='sub_page_id')
- nav3 = models.CharField(max_length=100)
- nav3_show = models.BooleanField(default=False)
- nav3_weight = models.IntegerField(default=0)
- meta = models.CharField(max_length=200)
- url = models.CharField(max_length=200)
- inlinejs = models.CharField(max_length=200)
- body_class = models.CharField(max_length=200)
- LayoutId = models.ForeignKey(Layout, db_column='layout_id')
- class Meta:
- db_table = 'subsub_pages'
- def __str__(self):
- return '%s %s %s %s %s %s %s %s %s %s %s %s %s' % (self.SubSubPageId, self.nav_title, self.title, self.description, self.SubPageId, self.nav3, self.nav3_show, self.nav3_weight, self.meta, self.url, self.inlinejs, self.body_class, self.LayoutId)
-
-class Sponsors(models.Model):
- SponsorsId = models.IntegerField(primary_key=True, db_column='sponsors_id')
- Name = models.CharField(max_length=200, db_column='name')
- AdsName = models.CharField(max_length=200, db_column='ads_name')
- Img = models.CharField(max_length=200, db_column='img')
- AdsImg = models.CharField(max_length=200, db_column='ads_img')
- Link = models.CharField(max_length=200, db_column='link')
- AdsLink = models.CharField(max_length=200, db_column='ads_link')
- Blurb = models.TextField(db_column='blurb')
- AdsAltName = models.CharField(max_length=200, db_column='ads_alt_name')
- Weight = models.IntegerField(default=0, db_column='weight')
- AdsActive = models.BooleanField(default=False, db_column='ads_active')
- Active = models.BooleanField(default=False, db_column='active')
- class Meta:
- db_table = 'sponsors'
- def __str__(self):
- return '%s %s %s %s %s %s %s %s %s %s %s %s' % (self.SponsorsId, self.Name, self.AdsName, self.Img, self.AdsImg, self.Link, self.AdsLink, self.Blurb, self.AdsAltName, self.Weight, self.AdsActive, self.Active)
-
-class Posts(models.Model):
- PostId = models.IntegerField(primary_key=True, db_column='post_id')
- title = models.CharField(max_length=200, db_column='title')
- url = models.CharField(max_length=200, db_column='url')
- text = models.TextField(db_column='text')
- TimeStamp = models.DateTimeField(db_column='time_stamp')
- class Meta:
- db_table='posts'
- def __str__(self):
- return '%s %s %s %s %s' % (self.PostId, self.title, self.url, self.text, self.TimeStamp)
-
-class Bugzilla(models.Model):
- Username = models.CharField(max_length=150,db_column='username')
- Bugzillaname = models.CharField(max_length=150, db_column='bugzillaname')
- class Meta:
- db_table='bugzillauser'
- def __str__(self):
- return '%s %s' % (self.Username, self.Bugzillauser)
diff --git a/python/gentoo_www/urls.py b/python/gentoo_www/urls.py
deleted file mode 100644
index 5cd3d6a..0000000
--- a/python/gentoo_www/urls.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from django.conf.urls import url
-
-from . import views
-
-urlpatterns = [
- url(r'^(?P<pagerequest>\d+)/$', 'views.target'),
-]
diff --git a/python/gentoo_www/views.py b/python/gentoo_www/views.py
deleted file mode 100644
index 9984309..0000000
--- a/python/gentoo_www/views.py
+++ /dev/null
@@ -1,205 +0,0 @@
-# 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
-
-import feedparser
-import urllib3
-import re
-
-# drv_libxml2 have a error with feedparser we work around it for now
-feedparser.PREFERRED_XML_PARSERS.remove('drv_libxml2')
-
-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'
- TmpDict = default_TmpDict(pagerequest)
-
- showposts = 5
- posts = Posts.objects.all()
- sponsors = Sponsors.objects.all()
- pp = feedparser.parse('https://planet.gentoo.org/rss20.xml')
- planetposts = []
- i = 0
- for ppost in pp['entries']:
- if i is showposts:
- break
- attr = {}
- attr['author'] = ppost['author']
- attr['url'] = ppost['link']
- attr['title'] = ppost['title']
- attr['published'] = ppost['published']
- planetposts.append(attr)
- i = i + 1
- gp = feedparser.parse('https://security.gentoo.org/glsa/feed.rss')
- glsaposts = []
- i = 0
- for gpost in gp['entries']:
- if i is showposts:
- break
- split_title = re.split(': ', gpost['title'])
- attr = {}
- attr['id'] = split_title[0]
- attr['url'] = gpost['link']
- attr['title'] = split_title[1] + ': ' + split_title[2]
- attr['severity'] = 'normal'
- glsaposts.append(attr)
- i = i + 1
-
- pkp = feedparser.parse('https://packages.gentoo.org/feed/')
- packageposts = []
- i = 0
- for ppost in pkp['entries']:
- if i is showposts:
- break
- split_title = re.split(': ', ppost['title'])
- attr = {}
- attr['url'] = ppost['links'][0]['href']
- attr['atom'] = re.sub('<span class="cpvstr">', '', re.sub('</span>', '', split_title[0]))
- attr['atom_p'] = attr['atom']
- attr['description'] = re.sub('<span class="description">', '', re.sub('</span>', '', split_title[1]))
- packageposts.append(attr)
- i = i + 1
-
- wp = feedparser.parse('https://wiki.gentoo.org/index.php?title=Special:NewPages&feed=rss&hidebots=1&hideredirs=1&limit=50&offset=&namespace=0&username=&tagfilter=')
- wikiposts = []
- i = 0
- for wpost in wp['entries']:
- if i is showposts:
- break
- attr = {}
- attr['author'] = wpost['author']
- attr['url'] = wpost['link']
- attr['title'] = wpost['title']
- wikiposts.append(attr)
- i = i + 1
- TmpDict['posts'] = posts
- TmpDict['sponsors'] = sponsors
- TmpDict['planetposts'] = planetposts
- TmpDict['glsaposts'] = glsaposts
- TmpDict['packageposts'] = packageposts
- TmpDict['wikiposts'] = wikiposts
- return render(request, 'pages/' + pagerequest + '/index.html', TmpDict)
-
-def downloads(request):
- pagerequest = 'downloads'
- http = urllib3.PoolManager()
- archlist = []
- #FIXME get arch list from db
- archlist.append('amd64')
- archlist.append('x86')
- #archlist.append('ia64')
- downloads_dict = {}
- for arch in archlist:
- # Stage3
- r = http.request('GET', 'http://distfiles.gentoo.org/releases/' + arch + '/autobuilds/latest-stage3.txt')
- rlines = re.split('\n', r.data.decode('utf-8'))
- attr2 = {}
- i = 0
- stage3list = []
- for line in rlines:
- if line == '':
- break
- if i >= 2:
- attr = {}
- attr['tag'] = ''
- attr['defaultstage'] = False
- attr['title'] = 'Stage 3'
- split1 = re.split(' ', line)
- attr['size'] = split1[1]
- attr['link'] = split1[0]
- split2 = re.split('/', split1[0], maxsplit=1)
- attr['date'] = split2[0]
- if '/' in split2[1]:
- split3 = re.split('/', split2[1])
- stage3id = re.split('-' + attr['date'] + '.tar.bz2', re.split('stage3-', split3[1])[1])[0]
- else:
- stage3id = re.split('-' + attr['date'] + '.tar.bz2', re.split('stage3-', split2[1])[1])[0]
- if re.search('nomultilib', stage3id):
- attr['tag'] = 'no multilib'
- elif re.search('uclibc', stage3id):
- attr['tag'] = 'uclibc'
- elif re.search('x32', stage3id):
- attr['tag'] = 'X32'
- else:
- if arch == 'x86':
- if re.search('i686', stage3id):
- attr['defaultstage'] = True
- attr['tag'] = 'i686' +'|' + attr['tag']
- if re.search('i486', stage3id):
- attr['tag'] = 'i486' +'|' + attr['tag']
- else:
- attr['tag'] = False
- else:
- attr['tag'] = False
- attr['defaultstage'] = True
- if re.search('hardened', stage3id):
- attr['title'] = 'Hardened ' + attr['title']
- attr['defaultstage'] = False
- attr['id'] = stage3id
- stage3list.append(attr)
- i = i + 1
- attr2['stage3s'] = stage3list
- # cd's
- r = http.request('GET', 'http://distfiles.gentoo.org/releases/' + arch + '/autobuilds/latest-iso.txt')
- rlines = re.split('\n', r.data.decode('utf-8'))
- isolist = []
- i = 0
- for line in rlines:
- if line == '':
- break
- if i >= 2:
- attr = {}
- split1 = re.split(' ', line)
- attr['size'] = split1[1]
- attr['link'] = split1[0]
- split2 = re.split('/', split1[0], maxsplit=1)
- attr['date'] = split2[0]
- if re.search('/', split2[1]):
- split3 = re.split('/', split2[1])
- if re.search('/', split2[1]):
- split3 = re.split('/', split2[1])
- cdid = re.split('-' + attr['date'] + '.iso', split3[1])[0]
- else:
- cdid = re.split('-' + attr['date'] + '.iso', split2[1])[0]
- if re.search('minimal', cdid):
- attr['id'] = 'minimal'
- attr['title'] = 'Minimal Installation CD'
- elif re.search('admincd', cdid):
- attr['id'] = 'admincd'
- attr['title'] = 'Admin CD'
- else:
- attr['id'] = ''
- attr['title'] = ''
- isolist.append(attr)
- i = i +1
- attr2['isos'] = isolist
- attr2['arch'] = arch
- if arch == 'amd64':
- attr2['aka'] = 'x86_64'
- else:
- attr2['aka'] = False
- downloads_dict[arch] = attr2
- TmpDict = default_TmpDict(pagerequest)
- print(downloads_dict)
- TmpDict['downloadsinfo'] = downloads_dict
- return render(request, 'pages/' + pagerequest + '/index.html', TmpDict)
diff --git a/python/manage.py b/python/manage.py
deleted file mode 100755
index eba76f2..0000000
--- a/python/manage.py
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 1998-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-import os
-import sys
-
-if __name__ == "__main__":
- os.environ.setdefault("DJANGO_SETTINGS_MODULE", "gentoo_main.settings")
- from django.core.management import execute_from_command_line
- execute_from_command_line(sys.argv)
diff --git a/python/tbc_www/forms.py b/python/tbc_www/forms.py
deleted file mode 100644
index 0a91b3b..0000000
--- a/python/tbc_www/forms.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from django import forms
-
-class NameForm(forms.Form):
- packages_search = forms.CharField(label='Find Packages', max_length=100)
-
-class BugForm(forms.Form):
- ChoicesComponent = (('Application', 'Application'),
- ('baselayout', 'baselayout'),
- ('Core system', 'Core system'),
- ('Eclasses and Profiles', 'Eclasses and Profiles'),
- ('Games', 'Games'),
- ('GCC Porting', 'GCC Porting'),
- ('GNOME', 'GNOME'),
- ('Hardened', 'Hardened'),
- ('Java', 'Java'),
- ('KDE', 'KDE'),
- ('SELinux', 'SELinux'),
- ('Server', 'Server'),
- ('Unspecified', 'Unspecified'))
-
- Product = forms.CharField(max_length=100, label='Product')
- Component = forms.ChoiceField(widget=forms.Select, choices=ChoicesComponent, label='Component')
- Version = forms.CharField(label='Version')
- Summary = forms.CharField(label='Summary')
- Description = forms.CharField(widget=forms.Textarea, label='Description')
- EmergeInfo = forms.CharField(widget=forms.Textarea, label='emerge --info')
- AssigendTo = forms.EmailField(label='Assigned To')
- def __unicode__(self):
- return u'Product : %s, Component : %s, Version : %s, Summary : %s, Description : %s, EmergeInfo : %s, AssigendTo : %s' % (self.Product, self.Component, self.Version, self.Summary, self.Description, self.EmergeInfo, self.AssigendTo)
-
-class BugzillaUser(forms.Form):
- BugzillaName = forms.CharField(label='Bugzilla Name', max_length=100)
- BugzillaPassword = forms.CharField(label='Bugzilla Password', max_length=100)
diff --git a/python/tbc_www/models.py b/python/tbc_www/models.py
deleted file mode 100644
index b54c772..0000000
--- a/python/tbc_www/models.py
+++ /dev/null
@@ -1,319 +0,0 @@
-# Copyright 1998-2016 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 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')
- 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')
- 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' % (self.PackageId, self.CategoryId, self.Package, self.RepoId, 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')
- Gitlog = models.TextField(db_column='gitlog')
- Descriptions = models.TextField(db_column='descriptions')
- New = models.BooleanField(db_column='new')
- class Meta:
- db_table = 'packages_metadata'
- def __str__(self):
- return '%s %s %s %s %s' % (self.Id, self.PackageId, self.Gitlog, self.Descriptions, self.New)
-
-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')
- Commit = models.CharField(max_length=30, db_column='git_commit')
- CommitMsg = models.CharField(max_length=100, db_column='git_commit_msg')
- New = models.BooleanField(db_column='new')
- Updated = models.BooleanField(db_column='updated')
- Descriptions = models.CharField(max_length=200, db_column='descriptions')
- Slot = models.CharField(max_length=10, db_column='slot')
- Homepage = models.CharField(max_length=200, db_column='homepage')
- License = models.CharField(max_length=200, db_column='license')
- class Meta:
- db_table = 'ebuilds_metadata'
- def __str__(self):
- return '%s %s %s %s %s %s %s %s %s %s' % (self.Id, self.EbuildId, self.Commit, self.CommitMsg, self.New, self.Updated, self.Descriptions, self.Slot, self.Homepage, self.License)
-
-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')
- New = models.BooleanField(db_column='new')
- TimeStamp = models.DateTimeField(db_column='time_stamp')
- class Meta:
- db_table = 'build_logs'
- def __str__(self):
- return '%s %s %s %s %s %s %s %s' % (self.BuildLogId, self.EbuildId, self.Fail, self.SummeryText, self.LogHash, self.BugId, self.New, self.TimeStamp)
-
-class BuildLogsRepoman(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 BuildLogsQa(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_qa'
- def __str__(self):
- return '%s %s %s' % (self.Id, self.BuildLogId, self.SummeryText)
-
-class PackagesRepoman(models.Model):
- Id = models.IntegerField(primary_key=True, db_column='id')
- PackageId = models.ForeignKey(Packages, db_column='package_id')
- RepomanText = models.TextField(db_column='repoman_text')
- RepomanHash = models.CharField(max_length=100, db_column='repoman_hash')
- TimeStamp = models.DateTimeField(db_column='time_stamp')
- class Meta:
- db_table = 'packages_repoman'
- def __str__(self):
- return '%s %s %s %s %s' % (self.Id, self.PackageId, self.RepomanText, self.RepomanHash, self.TimeStamp)
-
-class ErrorsInfo(models.Model):
- ErrorId = models.IntegerField(primary_key=True, db_column='error_id')
- ErrorName = models.CharField(max_length=20, db_column='error_name')
- ErrorSearch = models.CharField(max_length=30, db_column='error_search')
- class Meta:
- db_table = 'errors_info'
- def __str__(self):
- return '%s %s %s' % (self.ErrorId, self.ErrorName, self.ErrorSearch)
-
-class BuildLogsErrors(models.Model):
- Id = models.IntegerField(primary_key=True, db_column='id')
- BuildLogId = models.ForeignKey(BuildLogs, db_column='build_log_id')
- ErrorId = models.ForeignKey(ErrorsInfo, db_column='error_id')
- class Meta:
- db_table = 'build_logs_errors'
- def __str__(self):
- return '%s %s %s' % (self.Id, self.BuildLogId, self.ErrorId)
-
-class EmergeInfo(models.Model):
- EInfoId = models.IntegerField(primary_key=True, db_column='einfo_id')
- EmergeInfoText = models.TextField(db_column='emerge_info_text')
- class Meta:
- db_table = 'emerge_info'
- def __str__(self):
- return '%s %s %s' % (self.EInfoId, self.Checksum, self.EmergeInfoText)
-
-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 BuildLogsConfig(models.Model):
- LogId = models.IntegerField(primary_key=True, db_column='log_id')
- BuildLogId = models.ForeignKey(BuildLogs, db_column='build_log_id')
- ConfigId = models.ForeignKey(Configs, db_column='config_id')
- EInfoId = models.ForeignKey(EmergeInfo, db_column='einfo_id')
- LogName = models.CharField(max_length=450, db_column='logname')
- TimeStamp = models.DateTimeField(db_column='time_stamp')
- class Meta:
- db_table = 'build_logs_config'
- def __str__(self):
- return '%s %s %s %s %s %s' % (self.LogId, self.BuildLogId, self.ConfigId, self.EInfoId, self.LogName, self.TimeStamp)
-
-class EmergeOptions(models.Model):
- EmergeOptionId = models.IntegerField(primary_key=True, db_column='eoption_id')
- EOption = models.CharField(max_length=45, db_column='eoption')
- class Meta:
- db_table = 'emerge_options'
- def __str__(self):
- return '%s %s' % (self.EmergeOptionId, self.EOption)
-
-class BuildLogsEmergeOptions(models.Model):
- Id = models.IntegerField(primary_key=True, db_column='id')
- BuildLogId = models.ForeignKey(BuildLogs, db_column='build_log_id')
- EmergeOptionId = models.ForeignKey(EmergeOptions, db_column='eoption_id')
- class Meta:
- db_table = 'build_logs_emerge_options'
- def __str__(self):
- return '%s %s %s' % (self.Id, self.BuildLogId, self.EmergeOptionId)
-
-class Uses(models.Model):
- UseId = models.IntegerField(primary_key=True, db_column='use_id')
- Flag = models.CharField(max_length=150, db_column='flag')
- class Meta:
- db_table = 'uses'
- def __str__(self):
- return '%s %s' % (self.UseId, self.Flag)
-
-class BuildLogsUse(models.Model):
- Id = models.IntegerField(primary_key=True, db_column='id')
- BuildLogId = models.ForeignKey(BuildLogs, db_column='build_log_id')
- UseId = models.ForeignKey(Uses, db_column='use_id')
- Status = models.BooleanField(max_length=15, db_column='status')
- class Meta:
- db_table = 'build_logs_use'
- def __str__(self):
- return '%s %s %s' % (self.BuildLogId, self.UseId, self.Status)
-
-class BuildJobs(models.Model):
- BuildJobId = models.AutoField(primary_key=True, db_column='build_job_id')
- EbuildId = models.ForeignKey(Ebuilds, db_column='ebuild_id')
- SetupId = models.ForeignKey(Setups, db_column='setup_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')
- New = models.BooleanField(db_column='new')
- TimeStamp = models.DateTimeField(db_column='time_stamp')
- class Meta:
- db_table = 'build_jobs'
- def __str__(self):
- return '%s %s %s %s %s %s %s %s %s' % (self.BuildJobId, self.EbuildId, self.SetupId, self.ConfigId, self.Status, self.BuildNow, self.RemoveBin, self.New, self.TimeStamp)
-
-class BuildJobsUse(models.Model):
- Id = models.IntegerField(primary_key=True, db_column='id')
- BuildJobId = models.ForeignKey(BuildJobs, db_column='build_job_id')
- UseId = models.ForeignKey(Uses, db_column='use_id')
- Status = models.BooleanField(db_column='status')
- class Meta:
- db_table = 'build_jobs_use'
- def __str__(self):
- return '%s %s %s %s' % (self.Id, self.BuildJobId, self.UseId, self.Status)
-
-class Keywords(models.Model):
- KeywordId = models.IntegerField(primary_key=True, db_column='keyword_id')
- Keyword = models.CharField(max_length=45, db_column='keyword')
- class Meta:
- db_table = 'keywords'
- 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')
- KeywordId = models.ForeignKey(Keywords, db_column='keyword_id')
- Status = models.CharField(max_length=24, db_column='status')
- class Meta:
- 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)
-
-class Emails(models.Model):
- EmailId = models.IntegerField(primary_key=True, db_column='email_id')
- Email = models.CharField(max_length=160, db_column='email')
- class Meta:
- db_table = 'emails'
- def __str__(self):
- return '%s %s' % (self.EmailId, self.Email)
-
-class PackagesEmails(models.Model):
- Id = models.IntegerField(primary_key=True, db_column='id')
- PackageId = models.ForeignKey(Packages, db_column='package_id')
- EmailId = models.ForeignKey(Emails, db_column='email_id')
- class Meta:
- db_table = 'packages_emails'
- def __str__(self):
- return '%s %s' % (self.PackageId, self.EmailId)
-
-class Jobs(models.Model):
- JobId = models.IntegerField(primary_key=True, db_column='job_id')
- JobType = models.CharField(max_length=60, db_column='job_type')
- Status = models.CharField(max_length=60, db_column='status')
- User = models.CharField(max_length=60, db_column='user')
- ConfigId = models.ForeignKey(Configs, db_column='config_id')
- RunConfigId = models.ForeignKey(Configs, to_field='ConfigId', related_name='RunConfigId', db_column='run_config_id')
- TimeStamp = models.DateTimeField(db_column='time_stamp')
- class Meta:
- db_table = 'jobs'
- def __str__(self):
- return '%s %s %s %s %s %s %s' % (self.JobId, self.JobType, self.Status, self.User, self.ConfigId, self.RunConfigId, self.TimeStamp)
-
diff --git a/python/tbc_www/router.py b/python/tbc_www/router.py
deleted file mode 100644
index bac2a30..0000000
--- a/python/tbc_www/router.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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 tbc models to 'tbc'"
- if model._meta.app_label == 'tbc_www':
- return 'tbc'
- return 'default'
-
- def db_for_write(self, model, **hints):
- "Point all operations on tbc models to 'tbc'"
- if model._meta.app_label == 'tbc_www':
- return 'tbc'
- return 'default'
-
- def allow_relation(self, obj1, obj2, **hints):
- "Allow any relation if a both models in tbc app"
- if obj1._meta.app_label == 'tbc_www' and obj2._meta.app_label == 'tbc_www':
- return True
- # Allow if neither is tbc app
- elif 'tbc_www' not in [obj1._meta.app_label, obj2._meta.app_label]:
- return True
- return False
-
- def allow_migrate(self, db, app_label, model_name=None, **hints):
- if db == 'tbc' or 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/urls.py b/python/tbc_www/urls.py
deleted file mode 100644
index dfea3a7..0000000
--- a/python/tbc_www/urls.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from django.conf.urls import url
-from . import views
-from django.contrib.auth import views as auth_views
-
-urlpatterns = [
- url(r'^home/$', views.home),
- url(r'^categories/$', views.categories),
- url(r'^categories/packages/(?P<category_id>\d+)/$', views.packages),
- url(r'^categories/packages/versions/(?P<package_id>\d+)/$', views.versions),
- url(r'^build_req/$', views.new_build_req),
- url(r'^logs/build/(?P<buildlog_id>\d+)/$', views.new_logs_build, name='new_logs_build'),
- url(r'^logs/build/submitlog/(?P<buildlog_id>\d+)/$', views.buildinfo_bugzilla),
- url(r'^logs/$', views.new_logs),
- url(r'^logs/all/build/$', views.new_build_logs_all),
- url(r'^logs/all/repoman/$', views.new_repoman),
- url(r'^user/login/$', auth_views.login, name='login'),
- url(r'^user/logout/$', auth_views.logout, {'next_page': '/home/'}, name='logout'),
- url(r'^user/password_change/$', auth_views.password_change, name='password_change'),
- url(r'^user/password_change/done/$', auth_views.password_change_done, name='password_change_done'),
- url(r'^user/password_reset/$', auth_views.password_reset, name='password_reset'),
- url(r'^user/bugzillalogin/$', views.set_bugzilla_user),
-]
diff --git a/python/tbc_www/utils/bugzillasubmit.py b/python/tbc_www/utils/bugzillasubmit.py
deleted file mode 100644
index d8160dc..0000000
--- a/python/tbc_www/utils/bugzillasubmit.py
+++ /dev/null
@@ -1,27 +0,0 @@
-from __future__ import print_function
-
-import bugzilla
-
-URL = "https://bugs.gentoo.org/xmlrpc.cgi"
-def addnewbug(args):
- bzapi = bugzilla.Bugzilla(URL)
- print(args['username'])
- print(args['password'])
- bzapi.login(user=args['username'], password=args['password'])
- createinfo = bzapi.build_createbug(
- product=args['product'],
- version=args['version'],
- component=args['component'],
- summary=args['summary'],
- description=args['description'],
- assigned_to=args['assigned_to'])
- newbug = bzapi.createbug(createinfo)
- print("Created new bug id=%s url=%s" % (newbug.id, newbug.weburl))
- update = bzapi.build_update(comment=args['comment'])
- bzapi.update_bugs(newbug.id, update)
- kwards = {
- 'contenttype': args['content_type'],
- }
- attchment_id = bzapi.attachfile(newbug.id, args['filename'], args['comment_attach'], **kwards)
- bzapi.logout()
- return newbug
diff --git a/python/tbc_www/views.py b/python/tbc_www/views.py
deleted file mode 100644
index c272c50..0000000
--- a/python/tbc_www/views.py
+++ /dev/null
@@ -1,459 +0,0 @@
-# Copyright 1998-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-from django.shortcuts import render, get_object_or_404, HttpResponseRedirect, redirect
-from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
-from django.conf import settings
-from django.urls import reverse
-from tbc_www.forms import BugForm, BugzillaUser
-from tbc_www.utils.bugzillasubmit import addnewbug
-from gentoo_www.models import SiteSettings, Layout, Pages, SubPages, Sponsors, Posts, Bugzilla
-from tbc_www.models import EbuildsMetadata, BuildLogs, BuildJobs, BuildLogsQa, \
- BuildJobsUse, Categories, CategoriesMetadata, Packages, PackagesMetadata, Ebuilds, \
- Repos, EbuildsKeywords, BuildLogsErrors, EbuildsRestrictions, EbuildsIuse, PackagesRepoman, \
- BuildLogsConfig, BuildLogsUse, BuildLogsRepoman, PackagesEmails, Jobs
-import re
-import gzip
-import os
-
-def default_TmpDict(pagerequest):
- site = get_object_or_404(SiteSettings)
- page = get_object_or_404(Pages, nav1 = pagerequest)
- jobs = get_object_or_404(Jobs, JobType = 'esync')
- pages = Pages.objects.all()
- if page.SubMenu:
- subpages = SubPages.objects.filter(PageId = page.PageId)
- else:
- subpages = False
- TmpDict = {'site' : site}
- TmpDict['page'] = page
- TmpDict['pages'] = pages
- TmpDict['subpages'] = subpages
- TmpDict['smappages'] = SubPages.objects.all()
- TmpDict['jobs'] = jobs
- return TmpDict
-
-def fail_status(buildlog_id):
- BU_tmp = BuildLogsUse.objects.filter(BuildLogId = buildlog_id)
- Test = False
- if BU_tmp != []:
- for BU in BU_tmp:
- if BU.Status:
- if BU.UseId.Flag == 'test':
- Test = True
- adict = {}
- adict['repoman'] = False
- adict['qa'] = False
- adict['others'] = False
- adict['build'] = False
- adict['TestRun'] = Test
- BE_tmp = BuildLogsErrors.objects.filter(BuildLogId__BuildLogId = buildlog_id)
- for BE in BE_tmp:
- if BE.ErrorId.ErrorId == 1:
- adict['repoman'] = True
- if BE.ErrorId.ErrorId == 2:
- adict['qa'] = True
- if BE.ErrorId.ErrorId == 3:
- adict['others'] = True
- if BE.ErrorId.ErrorId == 4:
- adict['test'] = True
- if BE.ErrorId.ErrorId >= 5:
- adict['build'] = True
- adict['builderror'] = BE.ErrorId.ErrorName
- if BE.ErrorId.ErrorName != 'install':
- adict['TestRun'] = False
- return adict
-
-def home(request):
- pagerequest = 'home'
- Lines = 10
- TmpDict = default_TmpDict(pagerequest)
- TmpDict['PM'] = PackagesMetadata.objects.filter(New = True)
- alist = []
- for EM in EbuildsMetadata.objects.filter(Updated = True):
- adict = {}
- adict['EbuildId'] = EM.EbuildId.EbuildId
- adict['C'] = EM.EbuildId.PackageId.CategoryId.Category
- adict['P'] = EM.EbuildId.PackageId.Package
- adict['CId'] = EM.EbuildId.PackageId.CategoryId.CategoryId
- adict['PId'] = EM.EbuildId.PackageId.PackageId
- adict['V'] = EM.EbuildId.Version
- adict['R'] = EM.EbuildId.PackageId.RepoId.Repo
- adict['TimeStamp'] = EM.EbuildId.TimeStamp
- adict['CommitId'] = EM.Commit
- adict['CommitMsg'] = EM.CommitMsg
- adict['Descriptions'] = EM.Descriptions
- adict['EK_tmp'] = EbuildsKeywords.objects.filter(EbuildId__EbuildId = EM.EbuildId.EbuildId)
- alist.append(adict)
- TmpDict['EM_list'] = alist
- alist = []
- for BL in BuildLogs.objects.filter(New = True):
- adict2 = {}
- adict2['BuildLogId'] = BL.BuildLogId
- adict2['C'] = BL.EbuildId.PackageId.CategoryId.Category
- adict2['P'] = BL.EbuildId.PackageId.Package
- adict2['V'] = BL.EbuildId.Version
- adict2['R'] = BL.EbuildId.PackageId.RepoId.Repo
- adict2['SummeryText'] = BL.SummeryText
- adict2['Fail'] = BL.Fail
- if BL.Fail:
- adict2['BE_tmp'] = BuildLogsErrors.objects.filter(BuildLogId = BL.BuildLogId)
- alist.append(adict2)
- TmpDict['BL_tmp'] = alist
- adict = {}
- BJ_Tmp = BuildJobs.objects.filter(New = True)
- 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['Status'] = BJ.Status
- 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['PR_tmp'] = PackagesRepoman.objects.order_by('-Id')[:Lines]
- return render(request, 'pages/' + pagerequest + '/index.html', TmpDict)
-
-def categories(request):
- pagerequest = 'packages'
- TmpDict = default_TmpDict(pagerequest)
- alphabet_list = map(chr, range(97, 123))
- CM_tmp = CategoriesMetadata.objects.filter(CategoryId__Active = True).order_by('CategoryId__Category')
- list2 = []
- for a in alphabet_list:
- alist = []
- for CM in CM_tmp:
- if a == CM.CategoryId.Category[:1]:
- adict = {}
- adict['CategoryId'] = CM.CategoryId.CategoryId
- adict['Category'] = CM.CategoryId.Category
- adict['Descriptions'] = CM.Descriptions
- alist.append(adict)
- adict2 = {}
- adict2['letter'] = a
- adict2['CM_list'] = alist
- if alist != []:
- list2.append(adict2)
- TmpDict['CM_tmp'] = list2
- return render(request, 'pages/categories/index.html', TmpDict)
-
-def packages(request, category_id):
- pagerequest = 'packages'
- TmpDict = default_TmpDict(pagerequest)
- alist = []
- TmpDict['PM_tmp'] = PackagesMetadata.objects.filter(PackageId__CategoryId_id = category_id).filter(PackageId__Active = True)
- TmpDict['C'] = get_object_or_404(CategoriesMetadata, CategoryId__CategoryId = category_id)
- return render(request, 'pages/categories/packages/index.html', TmpDict)
-
-def versions(request, package_id):
- pagerequest = 'packages'
- TmpDict = default_TmpDict(pagerequest)
- P = get_object_or_404(PackagesMetadata, PackageId__PackageId = package_id)
- TmpDict['P'] = P
- alist =[]
- EM_tmp = EbuildsMetadata.objects.filter(EbuildId__Active = True).filter(EbuildId__PackageId__PackageId = P.PackageId.PackageId)
- for EM in EM_tmp:
- adict = {}
- ebuild_id = EM.EbuildId.EbuildId
- adict['EbuildId'] = ebuild_id
- adict['Slot'] = EM.Slot
- adict['Version'] = EM.EbuildId.Version
- adict['TimeStamp'] = EM.EbuildId.TimeStamp
- adict['EK_tmp'] = EbuildsKeywords.objects.filter(EbuildId__EbuildId = ebuild_id)
- adict['EU_tmp'] = EbuildsIuse.objects.filter(EbuildId__EbuildId = ebuild_id)
- adict['ER_tmp'] = EbuildsRestrictions.objects.filter(EbuildId__EbuildId = ebuild_id)
- BL_tmp = BuildLogs.objects.filter(EbuildId__EbuildId = ebuild_id)
- adict['BL_tmp'] = BL_tmp
- alist2 = []
- for BL in BL_tmp:
- adict2 = {}
- adict2['BuildLogId'] = BL.BuildLogId
- adict2['repoman'] = False
- adict2['qa'] = False
- adict2['Blo'] = False
- adict2['Blb'] = False
- if BL.Fail:
- adict2['fail'] = True
- BE_tmp = BuildLogsErrors.objects.filter(BuildLogId__BuildLogId = BL.BuildLogId)
- for BE in BE_tmp:
- if BE.ErrorId.ErrorId == 1:
- adict2['repoman'] = True
- if BE.ErrorId.ErrorId == 2:
- adict2['qa'] = True
- if BE.ErrorId.ErrorId == 3:
- adict2['Blo'] = True
- if BE.ErrorId.ErrorId >= 4:
- adict2['Blb'] = True
- adict2['Ble'] = BE.ErrorId.ErrorName
- alist2.append(adict2)
- adict['fi_tmp'] = alist2
- alist.append(adict)
- TmpDict['EM_info'] = alist
- return render(request, 'pages/categories/packages/versions/index.html', TmpDict)
-
-def new_build_req(request):
- pagerequest = 'build_req'
- TmpDict = default_TmpDict(pagerequest)
- adict = {}
- BJ_Tmp = BuildJobs.objects.order_by('-TimeStamp')
- 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['Status'] = BJ.Status
- 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
- return render(request, 'pages/build_req/index.html', TmpDict)
-
-def new_repoman(request):
- pagerequest = 'new'
- Lines = 30
- TmpDict = default_TmpDict(pagerequest)
- TmpDict['PR_tmp'] = PackagesRepoman.objects.order_by('-Id')[:Lines]
- return render(request, 'pages/' + pagerequest + '/repoman/index.html', TmpDict)
-
-def new_logs(request):
- pagerequest = 'logs'
- TmpDict = default_TmpDict(pagerequest)
- alist = []
- for BL in BuildLogs.objects.order_by('-TimeStamp').filter(New = True):
- adict2 = {}
- adict2['BuildLogId'] = BL.BuildLogId
- adict2['C'] = BL.EbuildId.PackageId.CategoryId.Category
- adict2['P'] = BL.EbuildId.PackageId.Package
- adict2['V'] = BL.EbuildId.Version
- adict2['R'] = BL.EbuildId.PackageId.RepoId.Repo
- adict2['Fail'] = BL.Fail
- adict2['SummeryText'] = BL.SummeryText
- if BL.Fail:
- adict2['FI'] = fail_status(BL.BuildLogId)
- alist.append(adict2)
- TmpDict['BL_tmp'] = alist
- TmpDict['QA_tmp'] = BuildLogsQa.objects.filter(BuildLogId__New = True)
- TmpDict['RM_tmp'] = BuildLogsRepoman.objects.filter(BuildLogId__New = True)
- return render(request, 'pages/logs/index.html', TmpDict)
-
-def new_build_logs_all(request):
- pagerequest = 'logs'
- object_on_page = 50
- TmpDict = default_TmpDict(pagerequest)
- BL_tmp = BuildLogs.objects.order_by('-TimeStamp').filter(Fail = True)
- alist = []
- for BL in BL_tmp:
- adict = {}
- adict['BuildLogId'] = BL.BuildLogId
- adict['C'] = BL.EbuildId.PackageId.CategoryId.Category
- adict['P'] = BL.EbuildId.PackageId.Package
- adict['V'] = BL.EbuildId.Version
- adict['R'] = BL.EbuildId.PackageId.RepoId.Repo
- adict['Fail'] = BL.Fail
- adict['SummeryText'] = BL.SummeryText
- if BL.Fail:
- adict['FI'] = fail_status(BL.BuildLogId)
- alist.append(adict)
- paginator = Paginator(alist, object_on_page)
- page = request.GET.get('page')
- try:
- BL_tmp = paginator.page(page)
- except PageNotAnInteger:
- # If page is not an integer, deliver first page.
- BL_tmp = paginator.page(1)
- except EmptyPage:
- # If page is out of range (e.g. 9999), deliver last page of results.
- BL_tmp = paginator.page(paginator.num_pages)
- TmpDict['BL_tmp'] = BL_tmp
- return render(request, 'pages/logs/all/build/index.html', TmpDict)
-
-def new_logs_build(request, buildlog_id):
- pagerequest = 'logs'
- TmpDict = default_TmpDict(pagerequest)
- TmpDict['Bugzillalogin'] = False
- B = BuildLogs.objects.get(BuildLogId = buildlog_id)
- EM = EbuildsMetadata.objects.get(EbuildId = B.EbuildId.EbuildId)
- PM = PackagesMetadata.objects.get(PackageId__PackageId = B.EbuildId.PackageId.PackageId)
- BLI = {}
- BLI['BuildLogId'] = buildlog_id
- BLI['EbuildId'] = B.EbuildId.EbuildId
- BLI['C'] = B.EbuildId.PackageId.CategoryId.Category
- BLI['P'] = B.EbuildId.PackageId.Package
- BLI['V'] = B.EbuildId.Version
- BLI['R'] = B.EbuildId.PackageId.RepoId.Repo
- BLI['EC'] = EM.Commit
- BLI['PD'] = EM.Descriptions
- BLI['PC'] = PM.Gitlog
- BLI['Fail'] = B.Fail
- BLI['Summery_text'] = B.SummeryText
- if B.BugId == "0":
- BLI['BugId'] = False
- else:
- BLI['BugId'] = B.BugId
- BC = BuildLogsConfig.objects.get(BuildLogId = buildlog_id)
- #CEO_tmp = ConfigsEmergeOptions.objects.filter(ConfigId = BC.ConfigId.ConfigId)
- BU_tmp = BuildLogsUse.objects.filter(BuildLogId = buildlog_id)
- config_eoption = []
- BLI['configid'] = BC.ConfigId.ConfigId
- BLI['hostname'] = BC.ConfigId.HostName
- BLI['config'] = BC.ConfigId.SetupId.Setup
- BLI['profile'] = BC.ConfigId.SetupId.Profile
- BLI['logid'] = BC.LogId
- BLI['logname'] = BC.LogName[1:]
- BLI['emerge_info_text'] = BC.EInfoId.EmergeInfoText
- #for CEO in CEO_tmp:
- # config_eoption.append(CEO.EmergeOptionId.EOption)
- #BLI['emerge_option'] = config_eoption
- if not BU_tmp == []:
- use_enable = []
- use_disable = []
- for BU in BU_tmp:
- if BU.Status:
- use_enable.append(BU.UseId.Flag)
- else:
- use_disable.append(BU.UseId.Flag)
- if not use_enable == []:
- BLI['use_enable'] = use_enable
- if not use_disable == []:
- BLI['use_disable'] = use_disable
- TmpDict['FI'] = fail_status(buildlog_id)
- try:
- BRQ = BuildLogsQa.objects.get(BuildLogId = B.BuildLogId)
- BLI['QA'] = BRQ.SummeryText
- except BuildLogsQa.DoesNotExist as e:
- BLI['QA'] = False
- try:
- BRR = BuildLogsRepoman.objects.get(BuildLogId = B.BuildLogId)
- BLI['Repoman'] = BRR.SummeryText
- except BuildLogsRepoman.DoesNotExist as e:
- BLI['Repoman'] = False
- TmpDict['BLI'] = BLI
- return render(request, 'pages/logs/build/index.html', TmpDict)
-
-def submit_to_bugzilla(request, form, buildlog_id):
- BC = BuildLogsConfig.objects.get(BuildLogId = buildlog_id)
- b = Bugzilla.objects.get(Username=request.user.username)
- args = {}
- args['product'] = form.cleaned_data['Product']
- args['component'] = form.cleaned_data['Component']
- args['version'] = form.cleaned_data['Version']
- args['summary'] = form.cleaned_data['Summary']
- args['description'] = form.cleaned_data['Description']
- args['comment'] = form.cleaned_data['EmergeInfo']
- args['assigned_to'] = form.cleaned_data['AssigendTo']
- args['password'] = request.session['bugzillapassword']
- args['username'] = b.Bugzillaname
- LogFile = BC.ConfigId.HostName + '/' + BC.ConfigId.SetupId.Setup + BC.LogName
- LogDir = settings.STATIC_ROOT + '/logs/'
- Filesize = os.path.getsize(LogDir + LogFile)/1024
- if Filesize > 900:
- #FIXME UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
- with open(LogDir + LogFile, 'rb') as orig_file:
- with gzip.open('/tmp' + BC.LogName + '.gz', 'wb') as zipped_file:
- zipped_file.writelines(orig_file)
- args['filename'] = '/tmp' + BC.LogName + '.gz'
- args['content_type'] = 'application/gzip'
- else:
- args['filename'] = LogDir + LogFile
- args['content_type'] = 'text/plain'
- args['comment_attach'] = 'Build log'
- newbug = addnewbug(args)
- return newbug
-
-def buildinfo_bugzilla(request, buildlog_id):
- pagerequest = 'logs'
- TmpDict = default_TmpDict(pagerequest)
- B = get_object_or_404(BuildLogs, BuildLogId = buildlog_id)
- C = B.EbuildId.PackageId.CategoryId.Category
- P = B.EbuildId.PackageId.Package
- V = B.EbuildId.Version
- R = B.EbuildId.PackageId.RepoId.Repo
- if request.method == 'POST':
- form = BugForm(request.POST)
- if form.is_valid():
- newbug = submit_to_bugzilla(request, form, buildlog_id)
- B.BugId = newbug.id
- B.save()
- return redirect('new_logs_build', buildlog_id=buildlog_id)
- else:
- if B.Fail == 'True':
- F = get_object_or_404(BuildLogsErrors, BuildLogId = buildlog_id)
- FailText = " : " + F.ErrorId.ErrorName
- else:
- FailText = ""
- E = get_object_or_404(BuildLogsConfig, BuildLogId = buildlog_id)
- PE = get_object_or_404(PackagesEmails, PackageId__PackageId = B.EbuildId.PackageId.PackageId)
- form = BugForm()
- form.fields['Product'].initial = 'Gentoo Linux'
- form.fields['Version'].initial = 'unspecified'
- form.fields['Summary'].initial = '[TEST][Tinderbox-cluster]=' + C + '/' + P + '-' + V + '::' + R + FailText
- form.fields['Description'].initial = B.SummeryText
- form.fields['EmergeInfo'].initial = E.EInfoId.EmergeInfoText
- form.fields['AssigendTo'].initial = PE.EmailId.Email
-
- TmpDict['form'] = form
- TmpDict['B'] = B
- return render(request, 'pages/logs/build/submitbug/index.html', TmpDict)
-
-def set_bugzilla_user(request):
- pagerequest = 'home'
- TmpDict = default_TmpDict(pagerequest)
- if request.method == 'POST':
- form = BugzillaUser(request.POST)
- if form.is_valid():
- b = Bugzilla.objects.get(Username=request.user.username)
- if b == []:
- b = Bugzilla(Bugzillaname = form.cleaned_data['BugzillaName'], Username = request.user.username)
- b.save()
- else:
- if b.Bugzillaname != form.cleaned_data['BugzillaName']:
- b.Bugzillaname = form.cleaned_data['BugzillaName']
- b.save()
- request.session['bugzillapassword'] = form.cleaned_data['BugzillaPassword']
- return HttpResponseRedirect('/home/')
-
- else:
- form = BugzillaUser()
- TmpDict['form'] = form
- return render(request, 'registration/bugzillauser.html', TmpDict)
diff --git a/python/templates/includes/container/start b/python/templates/includes/container/start
deleted file mode 100644
index 2ec1951..0000000
--- a/python/templates/includes/container/start
+++ /dev/null
@@ -1,3 +0,0 @@
-</div></div></div>
-<div class="{{ class_include }}">
- <div class="container"> \ No newline at end of file
diff --git a/python/templates/includes/downloads/alpha.html b/python/templates/includes/downloads/alpha.html
deleted file mode 100644
index 15d2d27..0000000
--- a/python/templates/includes/downloads/alpha.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>Boot Media</h4>
- <div class="list-group">
- {% include partials/download-link.html type="iso" arch="alpha" id="minimal" title="Minimal Installation CD" %}
- </div>
- <h4>Stage Archives</h4>
- <div class="list-group">
- {% include partials/download-link.html type="stage3" arch="alpha" id="alpha" title="Stage 3" %}
- </div>
-</div>
-<div class="col-xs-12 col-md-6">
- <h4>Details (Contents, Hashes, and Signatures)</h4>
- <ul>
- <li><a href="http://distfiles.gentoo.org/releases/alpha/autobuilds/current-install-alpha-minimal/">Minimal Installation CD</a></li>
- <li><a href="http://distfiles.gentoo.org/releases/alpha/autobuilds/current-stage3-alpha/">Stage 3</a></li>
- </ul>
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/amd64.html b/python/templates/includes/downloads/amd64.html
deleted file mode 100644
index 556519f..0000000
--- a/python/templates/includes/downloads/amd64.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<div class="alert alert-info">
- <strong><span class="fa fa-fw fa-info-circle"></span> Processor Compatibility</strong>
- <p>
- The <em>amd64</em> architecture is intended for use on AMD 64-bit CPUs as well as 64-bit <strong>Intel Pentium/Core/Xeon</strong> processors.
- </p>
-</div>
diff --git a/python/templates/includes/downloads/arch-default.html b/python/templates/includes/downloads/arch-default.html
deleted file mode 100644
index 529abbf..0000000
--- a/python/templates/includes/downloads/arch-default.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<h4>Boot Media</h4>
-<div class="list-group">
- {% for iso in download.isos %}
- {% if iso.id == 'minimal' %}
- {% include "includes/partials/download-link-raw.html" with arch=download.arch id=iso.id title=iso.title tag=iso.tag link=iso.link date=iso.date size=iso.size urlprefix=site.download_url %}
- {% endif %}
- {% endfor %}
- {% if download.arch == 'amd64' %}
- {% include "includes/partials/download-link-raw.html" with urlprefix='http://bouncer.gentoo.org/fetch/gentoo-20140826-livedvd/' link='amd64/' title='Hybrid ISO (LiveDVD)' size='2800000000' date='2014-08-26' %}
- {% elif download.arch == 'x86' %}
- {% include "includes/partials/download-link-raw.html" with urlprefix='http://bouncer.gentoo.org/fetch/gentoo-20140826-livedvd/' link='x86/' title='Hybrid ISO (LiveDVD)' size='2800000000' date='2014-08-26' %}
- {% endif %}
-</div>
-
-<h4>Stage Archives</h4>
-<div class="list-group">
- {% for stage3 in download.stage3s %}
- {% if stage3.defaultstage %}
- {% include "includes/partials/download-link-raw.html" with arch=download.arch id=stage3.id title=stage3.title tag=stage3.tag link=stage3.link date=stage3.date size=stage3.size urlprefix=site.download_url %}
- {% endif %}
- {% endfor %}
-</div>
-
-<h4>Details (Contents, Hashes, and Signatures)</h4>
-<p>
- <a href="{{site.download_url }}/{{ download.arch }}/autobuilds/current-install-{{ download.arch }}-minimal/">Minimal Installation CD</a>,
- <a href="http://bouncer.gentoo.org/fetch/gentoo-20140826-livedvd/{{ download.arch }}/">Hybrid ISO</a>,
- {% for stage3 in download.stage3s %}
- {% if stage3.defaultstage %}
- <a href="{{site.download_url }}/{{ download.arch }}/autobuilds/current-stage3-{% if stage3.tag %}{{ stage3.tag }}{% else %}{{ download.arch }}{% endif %}/">Stage 3</a>
- {% endif %}
- {% endfor %}
-</p> \ No newline at end of file
diff --git a/python/templates/includes/downloads/arch-main.html b/python/templates/includes/downloads/arch-main.html
deleted file mode 100644
index f4cecd0..0000000
--- a/python/templates/includes/downloads/arch-main.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>Boot Media</h4>
- <div class="list-group">
- {% for iso in download.isos %}
- {% include "includes/partials/download-link-raw.html" with arch=key id=iso.id title=iso.title urlprefix=site.download_url tag=iso.tag link=iso.link date=iso.date size=iso.size %}
- {% endfor %}
- </div>
-
-
- <h4>Stage Archives</h4>
- <div class="list-group">
- {% for stage3 in download.stage3s %}
- {% include "includes/partials/download-link-raw.html" with arch=key id=stage3.id title=stage3.title urlprefix=site.download_url tag=stage3.tag link=stage3.link date=stage3.date size=stage3.size %}
- {% endfor %}
- </div>
-</div>
-<div class="col-xs-12 col-md-6">
- <h4>Details (Contents, Hashes, and Signatures)</h4>
- <ul>
- <li><a href="{{site.download_url }}{{ key }}/autobuilds/current-install-{{ key }}-minimal/">Minimal Installation CD</a></li>
- {% for stage3 in download.stage3s %}
- {% if stage3.defaultstage %}
- <li><a href="{{site.download_url }}{{ key }}/autobuilds/current-stage3-{% if stage3.tag %}{{ stage3.tag }}{% else %}{{ key }}{% endif %}/">Stage 3</a></li>
- {% endif %}
- {% endfor %}
- <li><a href="{{site.download_url }}{{ key }}/autobuilds/">All Stages</a></li>
- </ul>
- {% include "includes/downloads/warnings.html" with key=key %}
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/arm.html b/python/templates/includes/downloads/arm.html
deleted file mode 100644
index a2bf23e..0000000
--- a/python/templates/includes/downloads/arm.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>Stage Archives</h4>
- <div class="list-group">
- {% include partials/download-link.html type="stage3" arch="arm" id="armv4tl" title="Stage 3" tag="ARMv4tl" %}
- {% include partials/download-link.html type="stage3" arch="arm" id="armv5tel" title="Stage 3" tag="ARMv5tel" %}
- {% include partials/download-link.html type="stage3" arch="arm" id="armv6j" title="Stage 3" tag="ARMv6j" %}
- {% include partials/download-link.html type="stage3" arch="arm" id="armv6j_hardfp" title="Stage 3" tag="ARMv6j | HardFP" %}
- {% include partials/download-link.html type="stage3" arch="arm" id="armv7a" title="Stage 3" tag="ARMv7a" %}
- {% include partials/download-link.html type="stage3" arch="arm" id="armv7a_hardfp" title="Stage 3" tag="ARMv7a | HardFP" %}
- </div>
-</div>
-<div class="col-xs-12 col-md-6">
- <h4>Details (Contents, Hashes, and Signatures)</h4>
- <ul>
- <li><a href="http://distfiles.gentoo.org/releases/arm/autobuilds/">Stage 3</a></li>
- </ul>
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/experimental.html b/python/templates/includes/downloads/experimental.html
deleted file mode 100644
index e6fc030..0000000
--- a/python/templates/includes/downloads/experimental.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>mips</h4>
- <div class="list-group">
- <a href="http://distfiles.gentoo.org/experimental/mips/stages/" data-relurl="../experimental/mips/stages/" class="list-group-item download-link download-link-mirrorable">
- <span class="fa fa-download fa-fw"></span>
- <strong>MIPS stages</strong>
- </a>
- </div>
-</div>
-<div class="col-xs-12 col-md-6">
-
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/hppa.html b/python/templates/includes/downloads/hppa.html
deleted file mode 100644
index 908eb7a..0000000
--- a/python/templates/includes/downloads/hppa.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>Boot Media</h4>
- <div class="list-group">
- {% include partials/download-link.html type="iso" arch="hppa" id="minimal" title="Minimal Installation CD" %}
- </div>
- <h4>Stage Archives</h4>
- <div class="list-group">
- {% include partials/download-link.html type="stage3" arch="hppa" id="hppa1.1" title="Stage 3" tag="HPPA 1.1" %}
- {% include partials/download-link.html type="stage3" arch="hppa" id="hppa2.0" title="Stage 3" tag="HPPA 2.0" %}
- </div>
-</div>
-<div class="col-xs-12 col-md-6">
- <h4>Details (Contents, Hashes, and Signatures)</h4>
- <ul>
- <li><a href="http://distfiles.gentoo.org/releases/hppa/autobuilds/current-install-hppa-minimal/">Minimal Installation CD</a></li>
- <li><a href="http://distfiles.gentoo.org/releases/hppa/autobuilds/">Stage 3</a></li>
- </ul>
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/ia64.html b/python/templates/includes/downloads/ia64.html
deleted file mode 100644
index 46aee26..0000000
--- a/python/templates/includes/downloads/ia64.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>Boot Media</h4>
- <div class="list-group">
- {% include partials/download-link.html type="iso" arch="ia64" id="minimal" title="Minimal Installation CD" %}
- </div>
- <h4>Stage Archives</h4>
- <div class="list-group">
- {% include partials/download-link.html type="stage3" arch="ia64" id="ia64" title="Stage 3" %}
- </div>
-</div>
-<div class="col-xs-12 col-md-6">
- <h4>Details (Contents, Hashes, and Signatures)</h4>
- <ul>
- <li><a href="http://distfiles.gentoo.org/releases/ia64/autobuilds/current-iso/">Minimal Installation CD</a></li>
- <li><a href="http://distfiles.gentoo.org/releases/ia64/autobuilds/current-stage3/">Stage 3</a></li>
- </ul>
-
- <div class="alert alert-warning">
- <strong><i class="fa fa-fw fa-warning"></i> Confirm Processor Compatibility</strong>
- <p>
- The <em>ia64</em> architecture is intended for use on <strong>Intel Itanium</strong> processors only.<br />
- If you have a 64-bit <strong>Intel Pentium/Core/Xeon</strong> processor, you need to use the <a href="#amd64" class="alert-link"><em>amd64</em></a> architecture.
- </p>
- </div>
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/ppc.html b/python/templates/includes/downloads/ppc.html
deleted file mode 100644
index 1880dde..0000000
--- a/python/templates/includes/downloads/ppc.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>Boot Media</h4>
- <div class="list-group">
- {% include partials/download-link.html type="iso" arch="ppc" id="minimal" title="Minimal Installation CD" %}
- </div>
- <h4>Stage Archives</h4>
- <div class="list-group">
- {% include partials/download-link.html type="stage3" arch="ppc" id="ppc" title="PPC Stage 3" %}
- {% include partials/download-link.html type="stage3" arch="ppc" id="ppc64-32ul" title="PPC64 Stage 3" tag="32ul" %}
- {% include partials/download-link.html type="stage3" arch="ppc" id="ppc64-64ul" title="PPC64 Stage 3" tag="64ul" %}
- </div>
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/s390.html b/python/templates/includes/downloads/s390.html
deleted file mode 100644
index a93064b..0000000
--- a/python/templates/includes/downloads/s390.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>Stage Archives</h4>
- <div class="list-group">
- {% include partials/download-link.html type="stage3" arch="s390" id="s390" title="Stage 3" tag="S390" %}
- {% include partials/download-link.html type="stage3" arch="s390" id="s390x" title="Stage 3" tag="S390X" %}
- </div>
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/sh.html b/python/templates/includes/downloads/sh.html
deleted file mode 100644
index 8bd2b03..0000000
--- a/python/templates/includes/downloads/sh.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>Stage Archives</h4>
- <div class="list-group">
- {% include partials/download-link.html type="stage3" arch="sh" id="sh4" title="Stage 3" tag="SH4" %}
- {% include partials/download-link.html type="stage3" arch="sh" id="sh4a" title="Stage 3" tag="SH4A" %}
- </div>
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/sparc.html b/python/templates/includes/downloads/sparc.html
deleted file mode 100644
index 7e91ad3..0000000
--- a/python/templates/includes/downloads/sparc.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<div class="col-xs-12 col-md-6">
- <h4>Boot Media</h4>
- <div class="list-group">
- {% include partials/download-link.html type="iso" arch="sparc" id="minimal" title="Minimal Installation CD" %}
- </div>
- <h4>Stage Archives</h4>
- <div class="list-group">
- {% include partials/download-link.html type="stage3" arch="sparc" id="sparc64" title="Stage 3" %}
- {% include partials/download-link.html type="stage3" arch="sparc" id="sparc64-multilib" title="Stage 3" tag="multilib" %}
- </div>
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/warnings.html b/python/templates/includes/downloads/warnings.html
deleted file mode 100644
index 38a1eb5..0000000
--- a/python/templates/includes/downloads/warnings.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<div class="alert alert-info">
- <strong><span class="fa fa-fw fa-info-circle"></span> Processor Compatibility</strong>
- <p>
- {% if key == 'amd64' %}
- The <em>amd64</em> architecture is intended for use on AMD 64-bit CPUs as well as 64-bit <strong>Intel Pentium/Core/Xeon</strong> processors.
- {% elif key == 'x86' %}
- There are two builds of the <em>x86</em> architecture: <em>i486</em> and <em>i686</em>.<br />
- Processors prior to the <strong>Intel Pentium Pro</strong> or <strong>Pentium II</strong> require the <em>i486</em> variant to be used.
- {% endif %}
- </p>
-</div> \ No newline at end of file
diff --git a/python/templates/includes/downloads/x86-default.html b/python/templates/includes/downloads/x86-default.html
deleted file mode 100644
index 03fc9b5..0000000
--- a/python/templates/includes/downloads/x86-default.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<h4>Boot Media</h4>
-<div class="list-group">
- {% include partials/download-link.html type="iso" arch="x86" id="minimal" title="Minimal Installation CD" %}
- {% include partials/download-link-raw.html url='http://bouncer.gentoo.org/fetch/gentoo-20140826-livedvd/x86/' title='Hybrid ISO (LiveDVD)' size='2800000000' date='2014-08-26' %}
-</div>
-
-<h4>Stage Archives</h4>
-<div class="list-group">
- {% include partials/download-link.html type="stage3" arch="x86" id="i686" title="Stage 3" tag="i686" %}
-</div>
-
-<h4>Details (Contents, Hashes, and Signatures)</h4>
-<p>
- <a href="http://distfiles.gentoo.org/releases/x86/autobuilds/current-install-x86-minimal/">Minimal Installation CD</a>,
- <a href="http://bouncer.gentoo.org/fetch/gentoo-20140826-livedvd/x86/">Hybrid ISO</a>,
- <a href="http://distfiles.gentoo.org/releases/x86/autobuilds/current-stage3-i686/">Stage 3</a>
-</p> \ No newline at end of file
diff --git a/python/templates/includes/downloads/x86.html b/python/templates/includes/downloads/x86.html
deleted file mode 100644
index f1a04c9..0000000
--- a/python/templates/includes/downloads/x86.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<div class="alert alert-warning">
- <strong><i class="fa fa-fw fa-warning"></i> Confirm Processor Compatibility</strong>
- <p>
- There are two builds of the <em>x86</em> architecture: <em>i486</em> and <em>i686</em>.<br />
- Processors prior to the <strong>Intel Pentium Pro</strong> or <strong>Pentium II</strong> require the <em>i486</em> variant to be used.
- </p>
-</div>
diff --git a/python/templates/includes/frontpage/new_build_req b/python/templates/includes/frontpage/new_build_req
deleted file mode 100644
index 52a41fe..0000000
--- a/python/templates/includes/frontpage/new_build_req
+++ /dev/null
@@ -1,16 +0,0 @@
-{% for k, v in BJ.items %}
-<tr>
- <td>
- <a href="/new_build_req/{{ k }}">
- <span class="text-muted">{{ v.C }}/</span>/<strong>{{ v.P }}-{{ v.V }}::{{ v.R }}</strong>
- </a>
- </td>
- <td>
- {% if v.Status == 'Building' %}
- <span class="label label-primary">{{ v.Status }}</span>
- {% else %}
- <span class="label label-default">{{ v.Status }}</span>
- {% endif %}
- </td>
-</tr>
-{% endfor %}
diff --git a/python/templates/includes/frontpage/new_logs b/python/templates/includes/frontpage/new_logs
deleted file mode 100644
index 49db4c3..0000000
--- a/python/templates/includes/frontpage/new_logs
+++ /dev/null
@@ -1,31 +0,0 @@
-{% for BL in BL_tmp %}
-<tr>
- <td>
- <a href="/logs/build/{{ BL.BuildLogId }}/">
- <span class="text-muted">{{ BL.C }}/</span>/<strong>{{ BL.P }}-{{ BL.V }}::{{ BL.R }}</strong>
- </a>
- </td>
- <td>
- <p title="{{ BL.SummeryText }}">{{ BL.SummeryText|truncatewords:5 }}</p>
- {% if BL.Fail %}
- {% for BE in B.BE_tmp %}
- {% 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>
- {% endif %}
- {% if BE.ErrorId.ErrorId == 3 %}
- <span class="label label-info">{{ BE.ErrorId.ErrorName|upper }}</span>
- {% elif BE.ErrorId.ErrorId > 3 %}
- <span class="label label-danger">{{ BE.ErrorId.ErrorName|upper }}</span>
- {% endif %}
- {% endif %}
- {% endfor %}
- {% if not B.FailB %}
- <span class="label label-success">BUILD</span>
- {% endif %}
- {% else %}
- <span class="label label-success">Ok</span>
- {% endif %}
- </td>
-</tr>
-{% endfor %}
diff --git a/python/templates/includes/frontpage/new_packages b/python/templates/includes/frontpage/new_packages
deleted file mode 100644
index 297ca8b..0000000
--- a/python/templates/includes/frontpage/new_packages
+++ /dev/null
@@ -1,10 +0,0 @@
-{% for P in PM %}
-<tr>
- <td>
- <a href="/packages/{{ P.PackageId.PackageId }}">
- <span class="text-muted">{{ P.PackageId.CategoryId.Category }}</span>/<strong>{{ P.PackageId.Package }}</strong>
- </a>
- </td>
- <td>{{ P.Descriptions }}</td>
-</tr>
-{% endfor %}
diff --git a/python/templates/includes/frontpage/new_qa b/python/templates/includes/frontpage/new_qa
deleted file mode 100644
index 5b3607b..0000000
--- a/python/templates/includes/frontpage/new_qa
+++ /dev/null
@@ -1,10 +0,0 @@
-<table class="table table-striped frontpage-table">
- {% for QA in QA_tmp %}
- <tr>
- <td class="frontpage-table-package-atom"><a href="/logs/build/{{ QA.BuildLogId.BuildLogId }}">
- {{ QA.BuildLogId.EbuildId.PackageId.CategoryId.Category }}/{{ QA.BuildLogId.EbuildId.PackageId.Package }}::{{ QA.BuildLogId.EbuildId.PackageId.RepoId.Repo }}</a>
- </td>
- <td><p title="{{ QA.SummeryText }}">{{ QA.SummeryText|truncatewords:3 }}</p></td>
- </tr>
- {% endfor %}
-</table>
diff --git a/python/templates/includes/frontpage/new_repoman b/python/templates/includes/frontpage/new_repoman
deleted file mode 100644
index e03b095..0000000
--- a/python/templates/includes/frontpage/new_repoman
+++ /dev/null
@@ -1,10 +0,0 @@
-<table class="table table-striped frontpage-table">
- {% for RM in RM_tmp %}
- <tr>
- <td class="frontpage-table-package-atom"><a href="/logs/build/{{ RM.BuildLogId.BuildLogId }}">
- {{ RM.BuildLogId.EbuildId.PackageId.CategoryId.Category }}/{{ RM.BuildLogId.EbuildId.PackageId.Package }}::{{ RM.BuildLogId.EbuildId.PackageId.RepoId.Repo }}</a>
- </td>
- <td><p title="{{ RM.SummeryText }}">{{ RM.SummeryText|truncatewords:3 }}</p></td>
- </tr>
- {% endfor %}
-</table>
diff --git a/python/templates/includes/frontpage/news b/python/templates/includes/frontpage/news
deleted file mode 100644
index 27d9dc4..0000000
--- a/python/templates/includes/frontpage/news
+++ /dev/null
@@ -1,6 +0,0 @@
-{% for post in posts %}
-<article>
- <h2><a href="{{ post.url }}">{{ post.title }}</a> <small>({{ post.TimeStamp }})</small></h2>
- {{ post.text|safe|escape }}
-</article>
-{% endfor %} \ No newline at end of file
diff --git a/python/templates/includes/frontpage/updated_packages b/python/templates/includes/frontpage/updated_packages
deleted file mode 100644
index 78dc027..0000000
--- a/python/templates/includes/frontpage/updated_packages
+++ /dev/null
@@ -1,77 +0,0 @@
-{% for E in EM_list %}
-<li class="list-group-item kk-package-detailed">
- <div class="row">
- <div class="col-xs-12 col-md-6">
- <h4 class="stick-top"><a href="/packages/{{ E.CId }}/{{ E.PId }}">{{ E.C }}/{{ E.P }}::{{ E.R }}</a></h4>
- <div class="kk-package-detailed-toolbox">
- <div class="btn-group">
- <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- <span class="fa fa-fw fa-navicon"></span>
- </button>
- <ul class="dropdown-menu dropdown-menu-right">
- <li><a href="https://bugs.gentoo.org/buglist.cgi?quicksearch={{ E.C }}/{{ E.P }}" target="_blank">
- <span class="fa fa-fw fa-bug"></span>
- Related bugs
- </a></li>
- <li><a href="https://wiki.gentoo.org/index.php?title=Special%3ASearch&fulltext=Search&search={{ E.P }}" target="_blank">
- <span class="fa fa-fw fa-book"></span>
- Documentation
- </a></li>
- <li><a href="https://forums.gentoo.org/search.php?search_terms=all&show_results=topics&search_keywords={{ E.P }}&mode=results" target="_blank">
- <span class="fa fa-fw fa-comments-o"></span>
- Forums posts
- </a></li>
- <li role="separator" class="divider"></li>
- <li><a href="https://gitweb.gentoo.org/repo/{{ E.R }}.git/tree/{{ E.C }}/{{ E.P }}" target="_blank">
- <span class="fa fa-fw fa-code-fork"></span>
- Git repository browser
- </a></li>
- <li><a href="https://gitweb.gentoo.org/repo/{{ E.R }}.git/log/{{ E.C }}/{{ E.P }}?showmsg=1" target="_blank">
- <span class="fa fa-fw fa-history"></span>
- Git log
- </a></li>
- <li><a href="https://gitweb.gentoo.org/repo/{{ E.R }}.git/atom/{{ E.C }}/{{ E.P }}?h=master" target="_blank">
- <span class="fa fa-fw fa-rss"></span>
- Changes feed
- </a></li>
- <li role="separator" class="divider"></li>
- <li><a href="http://www.portagefilelist.de/site/query/listPackageVersions/?category={{ E.C }}&package={{ E.P }}&do#result" target="_blank">
- <span class="fa fa-fw fa-files-o"></span>
- Installed files <small>(via PFL<span class="fa fa-fw fa-external-link-square"></span>)</small>
- </a></li>
- </ul>
- </div>
- </div>
- {{ E.Descriptions }}
- <br>
- <small class="text-muted">
- </small>
- <div class="kk-inline-changelog-entry">
- <a href="https://gitweb.gentoo.org/repo/{{ E.R }}.git/commit/?id={{ E.CommitId }}" title="Git commit">
- <span class="octicon octicon-git-pull-request"></span>
- <span class="kk-commit-message">
- {{ E.CommitMsg}}
- </span>
- </a>
- </div>
- </div>
- <div class="col-xs-12 col-md-6">
- <small class="text-muted pull-right">
- <span>{{ E.TimeStamp|date:"D d b Y G i" }}</span>
- </small>
- <div class="kk-version-card">
- <p><strong>{{ E.V }}</strong><span class="kk-slot"> : {{ E.Slot }} 0</span></p>
- <p>
- {% for K in E.EK_tmp %}
- {% if K.EbuildId.EbuildId == E.EbuildId and K.KeywordId.Keyword != '*' and '-' not in K.KeywordId.Keyword %}
- {% if K.Status == 'Stable' %}<span class="label kk-keyword-stable" title="{{ E.V }} is stable on {{ K.KeywordId.Keyword }}">{{ K.KeywordId.Keyword }}</span>{% endif %}
- {% if K.Status == 'Unstable' %}<span class="label kk-keyword-testing" title="{{ E.V }} is testing on {{ K.KeywordId.Keyword }}">~{{ K.KeywordId.Keyword }}</span>{% endif %}
- {% if K.Status == 'Negative' %}<span class="label kk-keyword-negative" title="{{ E.V }} is negative on {{ K.KeywordId.Keyword }}">-{{ K.KeywordId.Keyword }}{% endif %}
- {% endif %}
- {% endfor %}
- </p>
- </div>
- </div>
- </div>
-</li>
-{% endfor %}
diff --git a/python/templates/includes/hero-section/end b/python/templates/includes/hero-section/end
deleted file mode 100644
index 492b151..0000000
--- a/python/templates/includes/hero-section/end
+++ /dev/null
@@ -1,3 +0,0 @@
- </div>
-</div>
-<div class="container"><div class="row"><div class="col-md-12"> \ No newline at end of file
diff --git a/python/templates/includes/hero-section/start b/python/templates/includes/hero-section/start
deleted file mode 100644
index 8e9d73c..0000000
--- a/python/templates/includes/hero-section/start
+++ /dev/null
@@ -1,3 +0,0 @@
-</div></div></div>
-<div class="hero-section {{ class_include }}">
- <div class="container"> \ No newline at end of file
diff --git a/python/templates/includes/layout/footer_db_update.html b/python/templates/includes/layout/footer_db_update.html
deleted file mode 100644
index 60284a5..0000000
--- a/python/templates/includes/layout/footer_db_update.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<h3 class="footerhead">Gentoo Packages Database</h3>
- <div class="row">
- <div class="col-xs-12 col-md-4">
- <span class="kk-group-header">Data currrent as of</span><br><span>{{ jobs.TimeStamp|date:"D d b Y G i" }}</span>
- </div>
- <div class="col-xs-12 col-md-4">
- </div>
- <div class="col-xs-12 col-md-4">
- </div>
-</div>
diff --git a/python/templates/includes/layout/head.html b/python/templates/includes/layout/head.html
deleted file mode 100644
index 8e403ee..0000000
--- a/python/templates/includes/layout/head.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<head>
- <title>{% if page.title %}{{ page.title }} – {{ site.title }}{% else %}{{ site.title }}{% endif %}</title>
- {% if page.description %}<meta name="description" content="{{ page.description }}">{% endif %}
- <meta charset="utf-8">
- <meta name="theme-color" content="#54487a">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta property="og:title" content="{% if page.title %}{{ page.title }} – {{ site.title }}{% else %}{{ site.title }}{% endif %}">
- <meta property="og:image" content="https://www.gentoo.org/assets/img/logo/gentoo-g.png">
- <meta property="og:description" content="{% if page.description %}{{ page.description }}{% else %}{{ site.description }}{% endif %}">
- <meta name="twitter:image" content="https://www.gentoo.org/assets/img/logo/gentoo-g.png">
- <link rel="apple-touch-icon" href="https://www.gentoo.org/assets/img/logo/icon-192.png">
- <link rel="icon" sizes="192x192" href="https://www.gentoo.org/assets/img/logo/icon-192.png">
- <link href="https://assets.gentoo.org/tyrian/bootstrap.min.css" rel="stylesheet" media="screen">
- <link href="https://assets.gentoo.org/tyrian/tyrian.min.css" rel="stylesheet" media="screen">
- <link href="https://www.gentoo.org/assets/css/screen.css" rel="stylesheet" media="screen">
- <link rel="stylesheet" media="all" href="https://packages.gentoo.org/assets/application-7fdbe7860b8aec801e4bc160268077e26a710facc864c06d9ad875d9251ee6e9.css" data-turbolinks-track="true" />
- <script src="https://packages.gentoo.org/assets/application-8c602231766f320e4b09bdeed673d188f3719a0c4a277dd54e95992ea8e7a689.js" data-turbolinks-track="true"></script>
- <script src="https://assets.gentoo.org/tyrian/jquery.min.js"></script>
- <script src="https://assets.gentoo.org/tyrian/bootstrap.min.js"></script>
- {% if page.extracss %}{% for css in page.extracss %}<link href="https://www.gentoo.org/assets/css/{{ css }}" rel="stylesheet" media="screen">{% endfor %}{% endif %}
- <link rel="icon" href="/favicon.ico" type="image/x-icon">
- <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/www-gentoo-org.xml" title="Gentoo Website">
- <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/forums-gentoo-org.xml" title="Gentoo Forums">
- <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/bugs-gentoo-org.xml" title="Gentoo Bugzilla">
- <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/packages-gentoo-org.xml" title="Gentoo Packages">
- <link rel="search" type="application/opensearchdescription+xml" href="https://www.gentoo.org/search/archives-gentoo-org.xml" title="Gentoo List Archives">
- {% if page.meta %}{{ page.meta|safe|escape }}{% endif %}
-</head>
diff --git a/python/templates/includes/layout/header.html b/python/templates/includes/layout/header.html
deleted file mode 100644
index 4968f1f..0000000
--- a/python/templates/includes/layout/header.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<header>
- <div class="site-title">
- <div class="container">
- <div class="row">
- <div class="site-title-buttons">
- <div class="btn-group btn-group-sm">
- <a href="http://get.gentoo.org/" role="button" class="btn get-gentoo"><span class="fa fa-download"></span> <strong>Get Gentoo!</strong></a>
- <div class="btn-group btn-group-sm">
- <button type="button" class="btn gentoo-org-sites dropdown-toggle" data-toggle="dropdown">
- <span class="glyphicon glyphicon-globe"></span> gentoo.org sites <span class="caret"></span>
- </button>
- <ul class="dropdown-menu">
- <li><a href="http://www.gentoo.org/" title="Main Gentoo website"><span class="fa fa-home fa-fw"></span> gentoo.org</a></li>
- <li><a href="http://wiki.gentoo.org/" title="Find and contribute documentation"><span class="fa fa-file-text fa-fw"></span> Wiki</a></li>
- <li><a href="https://bugs.gentoo.org/" title="Report issues and find common issues"><span class="fa fa-bug fa-fw"></span> Bugs</a></li>
- <li><a href="http://forums.gentoo.org/" title="Discuss with the community"><span class="fa fa-comments-o fa-fw"></span> Forums</a></li>
- <li><a href="http://packages.gentoo.org/" title="Find software for your Gentoo"><span class="fa fa-hdd-o fa-fw"></span> Packages</a></li>
- <li class="divider"></li>
- <li><a href="http://overlays.gentoo.org/" title="Collaborate on maintaining packages"><span class="fa fa-code-fork fa-fw"></span> Overlays</a></li>
- <li><a href="http://planet.gentoo.org/" title="Find out what's going on in the developer community"><span class="fa fa-rss fa-fw"></span> Planet</a></li>
- <li><a href="http://archives.gentoo.org/" title="Read up on past discussions"><span class="fa fa-archive fa-fw"></span> Archives</a></li>
- <li><a href="http://sources.gentoo.org/" title="Browse our source code"><span class="fa fa-code fa-fw"></span> Sources</a></li>
- <li class="divider"></li>
- <li><a href="http://infra-status.gentoo.org/" title="Get updates on the services provided by Gentoo"><span class="fa fa-tasks fa-fw"></span> Infra Status</a></li>
- </ul>
- </div>
- </div>
- </div>
- <div class="logo">
- <a href="/" title="Back to the homepage" class="site-logo">
- <object data="https://assets.gentoo.org/tyrian/site-logo.svg" type="image/svg+xml">
- <img src="https://assets.gentoo.org/tyrian/site-logo.png" alt="Gentoo Linux Logo">
- </object>
- </a>
- <span class="site-label">Tinderbox-cluster</span>
- </div>
- </div>
- </div>
- </div>
- <nav class="tyrian-navbar" role="navigation">
- <div class="container">
- <div class="row">
- <div class="navbar-header">
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main-collapse">
- <span class="sr-only">Toggle navigation</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- </div>
- <div class="collapse navbar-collapse navbar-main-collapse">
- <ul class="nav navbar-nav">
- {% include "includes/navigation/primary" %}
- </ul>
- <div class="btn-group btn-group-sm">
- <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">
- User <span class="caret"></span>
- </button>
- <ul class="dropdown-menu">
- {% if user.is_authenticated %}
- <li><a href="/user/password_change/"><span class="fa fa-file-text fa-fw"></span> Change password</a></li>
- <li class="divider"></li>
- <li><a href="/user/bugzillalogin/"><span class="fa fa-file-text fa-fw"></span> Bugzilla Login</a></li>
- <li class="divider"></li>
- <li><a href="/user/logout/"><span class="fa fa-home fa-fw"></span> Log out</a></li>
- {% else %}
- <li><a href="/user/login/"><span class="fa fa-tasks fa-fw"></span> Log in</a></li>
- {% endif %}
- </ul>
- </div>
- </div>
- </div>
- </div>
- </nav>
- {% if subpages %}
- <nav class="navbar navbar-grey navbar-stick" role="navigation">
- <div class="container">
- <div class="row">
- <div class="navbar-header">
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-secondary-collapse">
- <span class="sr-only">Toggle secondary navigation</span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- <span class="icon-bar"></span>
- </button>
- </div>
- <div class="collapse navbar-collapse navbar-secondary-collapse">
- <ul class="nav navbar-nav">
- {% include "includes/navigation/secondary" %}
- </ul>
- </div>
- </div>
- </div>
- </nav>
- {% endif %}
-</header>
diff --git a/python/templates/includes/navigation/primary b/python/templates/includes/navigation/primary
deleted file mode 100644
index 76fa273..0000000
--- a/python/templates/includes/navigation/primary
+++ /dev/null
@@ -1,9 +0,0 @@
-{% for node in pages %}
- {% if node.nav1_show %}{% if node.nav1 != 'login' %}
- {% if page.nav1 == node.nav1 %}
- <li class="active"><a href="/{{ node.url }}/" class="active">{% if node.nav_title %}{{ node.nav_title }}{% else %}{{node.title}}{% endif %}</a></li>
- {% else %}
- <li><a href="/{{ node.url }}/">{% if node.nav_title %}{{ node.nav_title }}{% else %}{{node.title}}{% endif %}</a></li>
- {% endif %}
- {% endif %}{% endif %}
-{% endfor %}
diff --git a/python/templates/includes/navigation/secondary b/python/templates/includes/navigation/secondary
deleted file mode 100644
index 60898ab..0000000
--- a/python/templates/includes/navigation/secondary
+++ /dev/null
@@ -1,5 +0,0 @@
-{% for node in subpages %}
- {% if page.PageId == node.PageId.PageId %}
- <li><a href="{{node.url }}">{% if node.navtitle %}{{ node.navtitle }}{% else %}{{node.title}}{% endif %}</a></li>
- {% endif %}
-{% endfor %}
diff --git a/python/templates/includes/navigation/sitemap_secondary b/python/templates/includes/navigation/sitemap_secondary
deleted file mode 100644
index f7b5379..0000000
--- a/python/templates/includes/navigation/sitemap_secondary
+++ /dev/null
@@ -1,5 +0,0 @@
-{% for node in smappages %}
- {% if page.PageId == node.PageId.PageId %}
- <li><a href="{{node.url }}">{% if node.nav_title %}{{ node.nav_title }}{% else %}{{node.title}}{% endif %}</a></li>
- {% endif %}
-{% endfor %}
diff --git a/python/templates/includes/navigation/tertiary b/python/templates/includes/navigation/tertiary
deleted file mode 100644
index 500c358..0000000
--- a/python/templates/includes/navigation/tertiary
+++ /dev/null
@@ -1,12 +0,0 @@
-{% assign pages_list2 = pages_list | sort:"nav3-weight" %}
-{% for node in pages_list2 %}
- {% if page.nav1 == node.nav1 and page.nav2 == node.nav2 and node.nav3-show == true %}
- {% if page.nav3 == node.nav3 %}
- <li class="active"><a href="{{node.url | replace:'index.html',''}}" class="active">{% if node.navtitle %}{{ node.navtitle }}{% else %}{{node.title}}{% endif %}</a></li>
- {% else %}
- <li><a href="{{node.url | replace:'index.html',''}}">{% if node.navtitle %}{{ node.navtitle }}{% else %}{{node.title}}{% endif %}</a></li>
- {% endif %}
- {% endif %}
-{% endfor %}
-{% assign pages_list = nil %}
-{% assign pages_list2 = nil %} \ No newline at end of file
diff --git a/python/templates/includes/partials/download-link-raw.html b/python/templates/includes/partials/download-link-raw.html
deleted file mode 100644
index 0de2157..0000000
--- a/python/templates/includes/partials/download-link-raw.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<a href="{{ urlprefix }}{{ link }}" data-relurl="{{ link }}" class="list-group-item download-link {% if urlprefix %} download-link-mirrorable{% endif %}">
- <span class="fa fa-download fa-fw"></span>
- <strong>{{ title }}</strong>{%if tag %}<span class="label label-primary download-tag"> {{ tag }}</span>{% endif %}
- <span class="pull-right"><small class="download-date">{{ date }}</small> <span class="label label-default download-size hidden-xs">{{ size }}</span></span>
-</a> \ No newline at end of file
diff --git a/python/templates/includes/partials/download-link.html b/python/templates/includes/partials/download-link.html
deleted file mode 100644
index 14a2939..0000000
--- a/python/templates/includes/partials/download-link.html
+++ /dev/null
@@ -1,4 +0,0 @@
-{% capture url %}{{ include.arch }}/autobuilds/{{ site.data.downloads[include.arch][include.type][include.id].filename }}{% endcapture %}
-{% assign date = site.data.downloads[include.arch][include.type][include.id].date %}
-{% assign size = site.data.downloads[include.arch][include.type][include.id].size %}
-{% include partials/download-link-raw.html title=include.title tag=include.tag url=url urlprefix='http://distfiles.gentoo.org/releases/' date=date size=size %} \ No newline at end of file
diff --git a/python/templates/includes/partials/irc-channel.html b/python/templates/includes/partials/irc-channel.html
deleted file mode 100644
index b7e6dba..0000000
--- a/python/templates/includes/partials/irc-channel.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<tr>
- <th>
- <a href="irc://irc.gentoo.org/{{ channel.name }}"><tt>#{{ channel.name }}</tt></a>
- </th>
- <td>
- {{ channel.description }}
- </td>
-</tr> \ No newline at end of file
diff --git a/python/templates/includes/partials/mailinglist.html b/python/templates/includes/partials/mailinglist.html
deleted file mode 100644
index 39a9af1..0000000
--- a/python/templates/includes/partials/mailinglist.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<tr>
- <th>
- {{ list.name }}
- {% if list.moderated %}
- <span class="label label-warning pull-right" title="This list is moderated"><span class="fa fa-fw fa-lock"></span></span>
- {% endif %}
- </th>
- <td>
- {{ list.description }}
- {% if list.moderators %}
- <br><small>Moderators: {{ list.moderators | join:', '}}</small>
- {% endif %}
- </td>
- <td class="ml-actions hidden-xs">
- <div class="btn-group btn-group-xs" role="group" aria-label="Mailing list actions for {{ list.name }}@lists.gentoo.org">
- <a href="mailto:{{ list.name }}@lists.gentoo.org" title="Post to this list" class="btn btn-default"><span class="fa fa-fw fa-send"></span></a>
- <a href="mailto:{{ list.name }}+subscribe@lists.gentoo.org" title="Subscribe to this list" class="btn btn-default"><span class="fa fa-fw fa-plus-square"></span></a>
- <a href="http://archives.gentoo.org/{{ list.name }}/" title="Archives of this list" class="btn btn-default"><span class="fa fa-fw fa-archive"></span></a>
- </div>
- </td>
-</tr> \ No newline at end of file
diff --git a/python/templates/includes/partials/sponsor.html b/python/templates/includes/partials/sponsor.html
deleted file mode 100644
index 056d14e..0000000
--- a/python/templates/includes/partials/sponsor.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<div class="row sponsor">
- <div class="col-xs-12 col-md-3 sponsorlogo">
- {% if sponsor.img and sponsor.link %}
- <a href="{{ sponsor.link }}"><img src="/assets/img/sponsors/{{ sponsor.img }}" alt="{{ sponsor.name }}" /></a>
- {% elsif sponsor.img %}
- <img src="/assets/img/sponsors/{{ sponsor.img }}" alt="{{ sponsor.name }}" />
- {% endif %}
- </div>
- <div class="col-xs-12 col-md-9 sponsortext text-justify">
- <h3>{{ sponsor.name }}</h3>
- {{ sponsor.blurb | markdownify }}
- </div>
-</div>
-<hr /> \ No newline at end of file
diff --git a/python/templates/layout/base.html b/python/templates/layout/base.html
deleted file mode 100644
index 8f10f6e..0000000
--- a/python/templates/layout/base.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
- {% include "includes/layout/head.html" %}
- <body class="{{ page.body_class }}">
- {% include "includes/layout/header.html" %}
-
- <div class="container">
- <div class="row">
- <div id="content" class="col-xs-12">
- {% block content %}{% endblock %}
- </div>
- </div>
- </div>
-
- {% include "includes/layout/footer.html" %}
-
- {% if page.extrajs %}{% for js in page.extrajs %}<script src="{{ STATIC_ROOT }}/js/{{ js }}"></script>{% endfor %}{% endif %}
- {% if page.inlinejs %}<script>{{ page.inlinejs }}</script>{% endif %}
- <script type="text/javascript">
- var _paq = _paq || [];
- _paq.push(["disableCookies"]);
- _paq.push(['trackPageView']);
- (function() {
- var u="//piwik.gentoo.org/";
- _paq.push(['setTrackerUrl', u+'piwik.php']);
- _paq.push(['setSiteId', 7]);
- var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
- g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
- })();
- </script>
- <noscript><p><img src="//piwik.gentoo.org/piwik.php?idsite=7" style="border:0;" alt="" /></p></noscript>
- </body>
-</html>
diff --git a/python/templates/pages/build_req/index.html b/python/templates/pages/build_req/index.html
deleted file mode 100644
index 979921c..0000000
--- a/python/templates/pages/build_req/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{% extends "layout/base.html" %}
-{% block content %}
-<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- <span class="fa fa-fw fa-history"></span>
- <a href="/packages/added">New Build Requst On Packages</a>
- </h3>
- </div>
- <div class="table-responsive">
- <table class="table table-striped">
- {% include "includes/frontpage/new_build_req" %}
- </table>
- </div>
-</div>
-{% endblock %}
diff --git a/python/templates/pages/categories/index.html b/python/templates/pages/categories/index.html
deleted file mode 100644
index f9463e9..0000000
--- a/python/templates/pages/categories/index.html
+++ /dev/null
@@ -1,61 +0,0 @@
-{% extends "layout/base.html" %}
-{% block content %}
-<div class="container">
- <div class="row">
- <div class="col-xs-12">
- <ol class="breadcrumb">
- <li><a href="/home/">Home</a></li>
- <li class="active">Packages</li>
-</ol>
-
-<h1>Packages</h1>
-
-<div class="row">
- <div class="col-md-9">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">Browse Categories</h3>
- </div>
- <div class="panel-body">
- <ul class="kk-col-list kk-4col-list kk-category-listing">
- {% for C_list in CM_tmp %}
- <li class="kk-col-list-header"><span class="kk-group-header">{{ C_list.letter }}</span></li>
- {% for CM in C_list.CM_list %}
- <li><a title="{{ CM.Descriptions }}" data-toggle="tooltip" data-placement="right" href="/categories/packages/{{ CM.CategoryId }}/">{{CM.Category }}</a></li>
- {% endfor %}
- {% endfor %}
- </ul>
- </div>
- </div>
- </div>
- <div class="col-md-3">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">Update Feeds</h3>
- </div>
- <div class="list-group">
- <a href="/packages/added" class="list-group-item">
- <span class="fa fa-fw fa-history"></span>
- Added Packages
- </a>
- <a href="/packages/updated" class="list-group-item">
- <span class="fa fa-fw fa-asterisk"></span>
- Updated Packages
- </a>
- <a href="/packages/stable" class="list-group-item">
- <span class="fa fa-fw fa-check-circle-o"></span>
- Newly Stable Packages
- </a>
- <a href="/packages/keyworded" class="list-group-item">
- <span class="fa fa-fw fa-circle-o"></span>
- <span class="translation_missing" title="translation missing: en.keyworded_packages">Keyworded Packages</span>
- </a>
- </div>
- </div>
- </div>
-</div>
-
- </div>
- </div>
-</div>
-{% endblock %}
diff --git a/python/templates/pages/categories/packages/index.html b/python/templates/pages/categories/packages/index.html
deleted file mode 100644
index 0e5678d..0000000
--- a/python/templates/pages/categories/packages/index.html
+++ /dev/null
@@ -1,63 +0,0 @@
-{% extends "layout/base.html" %}
-{% block content %}
-<div class="container">
- <div class="row">
- <div class="col-xs-12">
- <ol class="breadcrumb">
- <li><a href="/home/">Home</a></li>
- <li><a href="/categories">Packages</a></li>
- <li class="active">{{ C.CategoryId.Category }}</li>
-</ol>
-
-<div class="row">
- <div class="col-md-4">
- <h1 class="stick-top">
- <span class="fa fa-fw fa-cubes"></span>
- {{ C.CategoryId.Category }}
- </h1>
- </div>
- <div class="col-md-8">
- <p class="lead" style="margin: 0;">
- {{ C.Descriptions }}
- </p>
- </div>
-</div>
-<hr>
-
-<div class="row">
- <div class="col-md-9">
- <!--<p>
- <input type="text" class="form-control form-control-xl" placeholder="Search packages in app-accessibility">
- </p>-->
-
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">All packages</h3>
- </div>
- <table class="table">
-{% for PM in PM_tmp %}
- <tr>
- <th class="kk-nobreak-cell"><a href="/categories/packages/versions/{{ PM.PackageId.PackageId }}">{{ PM.PackageId.Package }}</a></th>
- <td>{{ PM.Descriptions }}</td>
- </tr>
-{% endfor %}
-
- </table>
- </div>
- </div>
- <div class="col-md-3">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">Statistics</h3>
- </div>
- <div class="panel-body">
- {{ PM_tmp|length }} Packages
- </div>
- </div>
- </div>
-</div>
-
- </div>
- </div>
-</div>
-{% endblock %}
diff --git a/python/templates/pages/categories/packages/versions/ebuild/index.html b/python/templates/pages/categories/packages/versions/ebuild/index.html
deleted file mode 100644
index 49ad3e5..0000000
--- a/python/templates/pages/categories/packages/versions/ebuild/index.html
+++ /dev/null
@@ -1,75 +0,0 @@
-{% 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>
- </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 class="col-xs-12 col-md-9">
- <table class="table table-striped frontpage-table">
- {% for BL in BL_tmp %}
- <tr>
- <td class="frontpage-table-package-atom">
- {% for FI in fi_tmp %}
- {% if FI.BuildLogId == BL.BuildLogId %}
- {% if FI.Blo %}
- <span class="label label-info">Others</span>
- {% else %}
- {% if FI.qa %}
- <span class="label label-warning">Qa</span>
- {% else %}
- <span class="label label-success">Qa</span>
- {% endif %}
- {% if FI.repoman %}
- <span class="label label-warning">Repoman</span>
- {% else %}
- <span class="label label-success">Repoman</span>
- {% endif %}
-
- {% if FI.Blb %}
- <span class="label label-danger">Build</span>
- {% else %}
- <span class="label label-success">Build</span>
- {% endif %}
- {% endif %}
- {% endif %}
- {% endfor %}
- <a class="btn btn-default btn-xs" href="/new/logs/build/{{ BL.BuildLogId }}/">More info</a>
- </td>
- </tr>
- {% endfor %}
- </table>
- </div>
-</div>
-{% endblock %} \ No newline at end of file
diff --git a/python/templates/pages/categories/packages/versions/index.html b/python/templates/pages/categories/packages/versions/index.html
deleted file mode 100644
index 7300f07..0000000
--- a/python/templates/pages/categories/packages/versions/index.html
+++ /dev/null
@@ -1,233 +0,0 @@
-{% extends "layout/base.html" %}
-{% block content %}
-<div class="kk-header-container">
- <div class="container">
- <div class="row">
- <div class="col-xs-12">
- <ol class="breadcrumb">
- <li><a href="/">Home</a></li>
- <li><a href="/categories">Packages</a></li>
- <li><a href="/categories/packages/P.PackageId.PackageId">{{ P.PackageId.CategoryId.Category }}</a></li>
- <li class="active">{{ P.PackageId.Package }}</li>
- </ol>
-
- <div class="row">
- <div class="col-md-4">
- <h1 class="stick-top kk-package-title" id="package-title" data-atom="{{ P.PackageId.CategoryId.Category }}/{{ P.PackageId.Package }}" data-category="{{ P.PackageId.CategoryId.Category }}" data-name="{{ P.PackageId.Package }}">
- <small class="kk-package-cat">{{ P.PackageId.Package }}/</small>
- <div>
- <svg height="32" class="octicon octicon-package right left kk-package-icon" aria-label="Package icon" viewBox="0 0 16 16" version="1.1" width="32" role="img"><path d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 0 0-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"></path></svg>
- <div class="kk-package-name">{{ P.PackageId.Package }}</div>
- </div>
- </h1>
- </div>
- <div class="col-md-8">
- <p class="lead kk-package-maindesc">
- {{ P.Descriptions }}
- </p>
-
- <p class="kk-package-homepage">
- <a href="https://wiki.gnome.org/Accessibility" rel="nofollow">https://wiki.gnome.org/Accessibility</a>
- </p>
- </div>
- </div>
- </div>
- </div>
- </div>
-</div>
-
-
-<div class="container">
- <div class="row">
- <div class="col-xs-12">
-
-<div class="row">
- <div class="col-md-9">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- Available Versions
- </h3>
- </div>
- {% for E in EM_info %}
- <table class="table table-bordered kk-versions-table">
-<tr>
- <td>
- <strong>{{ E.Version }}</strong><span class="kk-slot"> :{{ E.Slot }}:</span>{{ P.PackageId.RepoId.Repo }}
- {% for R in E.ER_tmp %}
- <span class="label label-danger kk-restrict-label" titel="The following feature are restricted: {{ R.RestrictionId.Restriction}}">{{ R.RestrictionId.Restriction|first|upper }}</span>
- {% endfor %}
- <small class="text-muted pull-right">
- <span>{{ E.TimeStamp|date:"D d b Y G i" }}</span>
- </small>
- </td>
-</tr>
-<tr>
- <td>
- {% for K in E.EK_tmp %}
- {% if K.EbuildId.EbuildId == E.EbuildId and K.KeywordId.Keyword != '*' and '-' not in K.KeywordId.Keyword %}
- {% if K.Status == 'Stable' %}<span class="label kk-keyword-stable" title="{{ E.V }} is stable on {{ K.KeywordId.Keyword }}">{{ K.KeywordId.Keyword }}</span>{% endif %}
- {% if K.Status == 'Unstable' %}<span class="label kk-keyword-testing" title="{{ E.V }} is testing on {{ K.KeywordId.Keyword }}">~{{ K.KeywordId.Keyword }}</span>{% endif %}
- {% if K.Status == 'Negative' %}<span class="label kk-keyword-negative" title="{{ E.V }} is negative on {{ K.KeywordId.Keyword }}">-{{ K.KeywordId.Keyword }}{% endif %}
- {% endif %}
- {% endfor %}
- </td>
-</tr>
-<tr>
- <td>
- {% for U in E.EU_tmp %}
- {% if U.Status %}
- <span class="label label-info">{{ U.UseId.Flag }}</span>
- {% endif %}
- {% endfor %}
- </td>
-</tr>
-<tr>
- <td>
- {% for BL in E.BL_tmp %}
- {% for FI in E.fi_tmp %}
- {% if FI.BuildLogId == BL.BuildLogId %}
- {% if FI.Blo %}
- <span class="label label-info">Others</span>
- {% else %}
- {% if FI.qa %}
- <span class="label label-warning">Qa</span>
- {% else %}
- <span class="label label-success">Qa</span>
- {% endif %}
- {% if FI.repoman %}
- <span class="label label-warning">Repoman</span>
- {% else %}
- <span class="label label-success">Repoman</span>
- {% endif %}
-
- {% if FI.Blb %}
- <span class="label label-danger">Build</span>
- {% else %}
- <span class="label label-success">Build</span>
- {% endif %}
- {% endif %}
- {% endif %}
- {% endfor %}
- <a class="btn btn-default btn-xs" href="/new/logs/build/{{ BL.BuildLogId }}/">More info</a>
- {% endfor %}
- </td>
-</tr>
-</table>
-{% endfor %}
-</div>
-
-
-
-
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">Package Metadata</h3>
- </div>
- <ul class="list-group kk-metadata-list">
- <li class="kk-metadata-item list-group-item">
- <div class="row">
- <div class="col-xs-12 col-md-3 kk-metadata-key">
- <span class="fa fa-fw fa-sliders"></span>
- USE flags
- </div>
- <div class="col-xs-12 col-md-9">
-
-
-
- </div>
- </div>
- </li>
- <li class="kk-metadata-item list-group-item">
- <div class="row">
- <div class="col-xs-12 col-md-3 kk-metadata-key">
- <span class="fa fa-fw fa-legal"></span>
- License
- </div>
- <div class="col-xs-12 col-md-9">
- <a href="https://gitweb.gentoo.org/repo/gentoo.git/plain/licenses/LGPL-2+">LGPL-2+</a>
- </div>
- </div>
- </li>
- <li class="kk-metadata-item list-group-item">
- <div class="row">
- <div class="col-xs-12 col-md-3 kk-metadata-key">
- <span class="fa fa-fw fa-user"></span>
- Maintainer(s)
- </div>
- <div class="col-xs-12 col-md-9">
- <a title="gnome@gentoo.org" href="mailto:gnome@gentoo.org">Gentoo GNOME Desktop</a>
- </div>
- </div>
- </li>
- </ul>
-</div>
-
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">Changelog</h3>
- </div>
- <ul class="list-group" id="changelog-container">
- <li class="list-group-item kk-panel-content-sorry">
- <span class="fa fa-refresh fa-spin fa-3x"></span>
- <noscript>
- <br><br>
- Inline Changelog cannot be displayed.
- <br><br>
- <a href="https://gitweb.gentoo.org/repo/gentoo.git/log/{{ P.PackageId.CategoryId.Category }}/{{ P.PackageId.Package }}?showmsg=1" class="btn btn-default">
- <span class="fa fa-fw fa-history"></span>
- View Git Changelog
- </a>
- </noscript>
- </li>
- </ul>
-</div>
-
- </div>
- <div class="col-md-3">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">Resources</h3>
- </div>
- <div class="list-group">
- <a href="https://bugs.gentoo.org/buglist.cgi?quicksearch={{ P.PackageId.CategoryId.Category }}%2{{ P.PackageId.Package }}" class="list-group-item" target="_blank">
- <span class="fa fa-fw fa-bug"></span>
- Related bugs
- </a>
- <a href="https://wiki.gentoo.org/index.php?title=Special%3ASearch&fulltext=Search&search={{ P.PackageId.Package }}" class="list-group-item" target="_blank">
- <span class="fa fa-fw fa-book"></span>
- Documentation
- </a>
- <a href="https://forums.gentoo.org/search.php?search_terms=all&show_results=topics&search_keywords={{ P.PackageId.Package }}&mode=results" class="list-group-item" target="_blank">
- <span class="fa fa-fw fa-comments-o"></span>
- Forums posts
- </a>
- <a href="https://gitweb.gentoo.org/repo/gentoo.git/tree/{{ P.PackageId.CategoryId.Category }}/{{ P.PackageId.Package }}" class="list-group-item" target="_blank">
- <span class="fa fa-fw fa-code-fork"></span>
- Git repository browser
- </a>
- <a href="https://gitweb.gentoo.org/repo/gentoo.git/log/{{ P.PackageId.CategoryId.Category }}/{{ P.PackageId.Package }}?showmsg=1" class="list-group-item" target="_blank">
- <span class="fa fa-fw fa-history"></span>
- Git log
- </a>
- <a href="https://gitweb.gentoo.org/repo/gentoo.git/atom/{{ P.PackageId.CategoryId.Category }}/{{ P.PackageId.Package }}?h=master" class="list-group-item" target="_blank">
- <span class="fa fa-fw fa-rss"></span>
- Changes feed
- </a>
- <a href="http://www.portagefilelist.de/site/query/listPackageVersions/?category={{ P.PackageId.CategoryId.Category }}&package={{ P.PackageId.Package }}&do#result" class="list-group-item" target="_blank">
- <span class="fa fa-fw fa-files-o"></span>
- Installed files <small>(via PFL<span class="fa fa-fw fa-external-link-square"></span>)</small>
- </a>
- </div>
-</div>
-
- </div>
-</div>
-
-<script src="https://packages.gentoo.org/assets/packages/show-c78475ea4f81a974351958c07ed5c4892c04b77054506dec44f177cd8cb9271d.js"></script>
-
- </div>
- </div>
-</div>
-
-{% endblock %}
diff --git a/python/templates/pages/home/index.html b/python/templates/pages/home/index.html
deleted file mode 100644
index 2d91149..0000000
--- a/python/templates/pages/home/index.html
+++ /dev/null
@@ -1,70 +0,0 @@
-{% extends "layout/base.html" %}
-{% block content %}
-<div class="jumbotron">
- <h2 class="site-welcome stick-top">Welcome to the Home of <span class="text-primary">19,363</span> Gentoo Packages</h2>
- <form action="/packages/search" method="get">
- <div class="typeahead-container">
- <div class="typeahead-field">
- <span class="typeahead-query">
- <input id="q" name="q" type="search" autocomplete="off" placeholder="Find Packages" aria-label="Find Packages" autofocus>
- </span>
- <span class="typeahead-button">
- <button type="submit" title="Find" aria-label="Find">
- <span class="typeahead-search-icon"></span><span class="sr-only">Find</span>
- </button>
- </span>
- </div>
- </div>
- </form>
-</div>
-<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- <span class="fa fa-fw fa-history"></span>
- <a href="/packages/added">Added Packages</a>
- </h3>
- </div>
- <div class="table-responsive">
- <table class="table table-striped">
- {% include "includes/frontpage/new_packages" %}
- </table>
- </div>
-</div>
-<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- <span class="fa fa-fw fa-asterisk"></span>
- <a href="/packages/updated">Updated Packages</a>
- </h3>
- </div>
- <ul class="list-group">
- {% include "includes/frontpage/updated_packages" %}
- </ul>
-</div>
-<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- <span class="fa fa-fw fa-history"></span>
- <a href="/packages/added">New Build Requst On Packages</a>
- </h3>
- </div>
- <div class="table-responsive">
- <table class="table table-striped">
- {% include "includes/frontpage/new_build_req" %}
- </table>
- </div>
-</div>
-<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- <span class="fa fa-fw fa-history"></span>
- <a href="/packages/added">New Build Logs On Packages</a>
- </h3>
- </div>
- <div class="table-responsive">
- <table class="table table-striped">
- {% include "includes/frontpage/new_logs" %}
- </table>
- </div>
-</div>
-{% endblock %}
diff --git a/python/templates/pages/logs/all/build/index.html b/python/templates/pages/logs/all/build/index.html
deleted file mode 100644
index efac3b3..0000000
--- a/python/templates/pages/logs/all/build/index.html
+++ /dev/null
@@ -1,103 +0,0 @@
-{% extends "layout/base.html" %}
-{% block content %}
-<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- <span class="fa fa-fw fa-history"></span>
- Build Logs On Packages
- </h3>
- {% if BL_tmp.has_other_pages %}
- <ul class="pagination">
- {% if BL_tmp.has_previous %}
- <li><a href="?page={{ BL_tmp.previous_page_number }}">&laquo;</a></li>
- {% else %}
- <li class="disabled"><span>&laquo;</span></li>
- {% endif %}
- {% for i in BL_tmp.paginator.page_range %}
- {% if BL_tmp.number == i %}
- <li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
- {% else %}
- <li><a href="?page={{ i }}">{{ i }}</a></li>
- {% endif %}
- {% endfor %}
- {% if BL_tmp.has_next %}
- <li><a href="?page={{ BL_tmp.next_page_number }}">&raquo;</a></li>
- {% else %}
- <li class="disabled"><span>&raquo;</span></li>
- {% endif %}
- </ul>
-{% endif %}
- </div>
- <div class="table-responsive">
- <table class="table table-striped">
- {% for BL in BL_tmp %}
-<tr>
- <td>
- <a href="/logs/build/{{ BL.BuildLogId }}/">
- <span class="text-muted">{{ BL.C }}/</span>/<strong>{{ BL.P }}-{{ BL.V }}::{{ BL.R }}</strong>
- </a>
- </td>
- <td>
- <p title="{{ BL.SummeryText }}">{{ BL.SummeryText|truncatewords:5 }}</p>
- {% if BL.Fail %}
- {% if BL.FI.others %}
- <span class="label label-info">Others</span>
- {% else %}
- {% if BL.FI.qa %}
- <span class="label label-warning">
- {% else %}
- <span class="label label-success">
- {% endif %}
- Qa</span>
- {% if BL.FI.repoman %}
- <span class="label label-warning">
- {% else %}
- <span class="label label-success">
- {% endif %}
- Repoman</span>
- {% if BL.FI.TestRun %}
- {% if BL.FI.test %}
- <span class="label label-danger">
- {% else %}
- <span class="label label-success">
- {% endif %}
- Test</span>
- {% endif %}
- {% if BL.FI.build %}
- <span class="label label-danger">{{ BL.FI.builderror }}
- {% else %}
- <span class="label label-success">Build
- {% endif %}
- </span>
- {% endif %}
- {% else %}
- <span class="label label-success">Ok</span>
- {% endif %}
- </td>
-</tr>
-{% endfor %}
- </table>
- </div>
-</div>
-{% if BL_tmp.has_other_pages %}
- <ul class="pagination">
- {% if BL_tmp.has_previous %}
- <li><a href="?page={{ BL_tmp.previous_page_number }}">&laquo;</a></li>
- {% else %}
- <li class="disabled"><span>&laquo;</span></li>
- {% endif %}
- {% for i in BL_tmp.paginator.page_range %}
- {% if BL_tmp.number == i %}
- <li class="active"><span>{{ i }} <span class="sr-only">(current)</span></span></li>
- {% else %}
- <li><a href="?page={{ i }}">{{ i }}</a></li>
- {% endif %}
- {% endfor %}
- {% if BL_tmp.has_next %}
- <li><a href="?page={{ BL_tmp.next_page_number }}">&raquo;</a></li>
- {% else %}
- <li class="disabled"><span>&raquo;</span></li>
- {% endif %}
- </ul>
-{% endif %}
-{% endblock %}
diff --git a/python/templates/pages/logs/build/index.html b/python/templates/pages/logs/build/index.html
deleted file mode 100644
index 0bbc96b..0000000
--- a/python/templates/pages/logs/build/index.html
+++ /dev/null
@@ -1,114 +0,0 @@
-{% extends "layout/base.html" %}
-{% block content %}
-<div class="row">
- <h2>{{ BLI.C }}/{{ BLI.P }}-{{ BLI.V }}::{{ BLI.R }}
- {% if FI.others %}
- <span class="label label-info">Others</span>
- {% else %}
- {% if FI.qa %}
- <span class="label label-warning">
- {% else %}
- <span class="label label-success">
- {% endif %}
- Qa</span>
- {% if FI.repoman %}
- <span class="label label-warning">
- {% else %}
- <span class="label label-success">
- {% endif %}
- Repoman</span>
- {% if FI.TestRun %}
- {% if FI.test %}
- <span class="label label-danger">
- {% else %}
- <span class="label label-success">
- {% endif %}
- Test</span>
- {% endif %}
- {% if FI.build %}
- <span class="label label-danger">{{ FI.builderror }}
- {% else %}
- <span class="label label-success">Build
- {% endif %}
- </span>
- {% endif %}
- </h2>
- {% if BLI.BugId %}
- <span class="label label-info">
- <a href="https://bugs.gentoo.org/show_bug.cgi?id={{ BLI.BugId}}" target=_blank>Bug Gentoo {{ BLI.BugId }}</a>
- </span>
- {% endif %}
-</div>
-<div class="row-fluid">
- <div class=span3>
- <p class="lead">Host information</p>
- Host: {{ BLI.hostname }}<br />
- Config: {{BLI.config }}<br />
- Profile: {{BLI.profile }}<br/>
- Emerge options :
- </div>
- {% if BLI.use_enable %}
- <div class="span3 ">
- <p class="lead">Enabled useflags</p>
- {% for use in BLI.use_enable %}
- {{ use }}
- {% endfor %}
- </div>
- {% endif %}
- {% if BLI.use_disable %}
- <div class=span3>
- <p class="lead">Disabled useflags</p>
- {% for use in BLI.use_disable %}
- {{ use }}
- {% endfor %}
- </div>
-{% endif %}
- </div>
- <div class="row-fluid">
- <div class=span12>
- {% if BLI.Summery_text %}
- <p class="lead">Summery: </p>
- {{ BLI.Summery_text|linebreaks }}
- {% endif %}
- </div>
- </div>
- <div class="row-fluid">
- <div class=span12>
- {% if BLI.Repoman %}
- <p class="lead">Repoman Summery: </p>
- {{ BLI.Repoman|linebreaks }}
- {% endif %}
- </div>
- </div>
- <div class="row-fluid">
- <div class=span12>
- {% if BLI.QA %}
- <p class="lead">QA Summery: </p>
- {{ BLI.QA|linebreaks }}
- {% endif %}
- </div>
- </div>
- <div class="row-fluid">
- <div class=span12>
- <p class="lead">Emerge Info: </p>
- {{ BLI.emerge_info_text|linebreaks }}
- </div>
- </div>
- <div class="row-fluid">
- <div class="span12">
- {% if BLI.logname %}
- <br />
- Log file name:{{ BLI.logname }}<br />
- <a href="{{ STATIC_URL }}/logs/{{BLI.hostname}}/{{BLI.config}}/{{ BLI.logname }}">Raw log<a/><br />
- {% if user.is_authenticated %}
- {% if bugzillalogin %}
- <a href="/logs/build/submitlog/{{BLI.BuildLogId}}/">
- {% else %}
- <a href="/user/bugzillalogin/">
- {% endif %}
- Summit log to Gentoo's bugzilla</a>
- {% endif %}
- {% endif %}
- </div>
- </div>
-{% endblock %}
diff --git a/python/templates/pages/logs/build/submitbug/index.html b/python/templates/pages/logs/build/submitbug/index.html
deleted file mode 100644
index 4f1458f..0000000
--- a/python/templates/pages/logs/build/submitbug/index.html
+++ /dev/null
@@ -1,8 +0,0 @@
-{% extends "layout/base.html" %}
-{% block content %}
-<form action="/logs/build/submitlog/{{B.BuildLogId}}/" method="post">
-{% csrf_token %}
-{{ form.as_p }}
-<input type="submit" value="Submit" />
-</form>
-{% endblock %}
diff --git a/python/templates/pages/logs/index.html b/python/templates/pages/logs/index.html
deleted file mode 100644
index ff5f354..0000000
--- a/python/templates/pages/logs/index.html
+++ /dev/null
@@ -1,42 +0,0 @@
-{% extends "layout/base.html" %}
-{% block content %}
-<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- <span class="fa fa-fw fa-history"></span>
- <a href="/packages/added">New Build Logs On Packages</a>
- </h3>
- </div>
- <div class="table-responsive">
- <table class="table table-striped">
- {% include "includes/frontpage/new_logs" %}
- </table>
- </div>
-</div>
-<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- <span class="fa fa-fw fa-history"></span>
- <a href="/packages/added">New Repoman Logs On Packages</a>
- </h3>
- </div>
- <div class="table-responsive">
- <table class="table table-striped">
- {% include "includes/frontpage/new_repoman" %}
- </table>
- </div>
-</div>
-<div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">
- <span class="fa fa-fw fa-history"></span>
- <a href="/packages/added">New Qa Logs On Packages</a>
- </h3>
- </div>
- <div class="table-responsive">
- <table class="table table-striped">
- {% include "includes/frontpage/new_qa" %}
- </table>
- </div>
-</div>
-{% endblock %}
diff --git a/python/templates/registration/bugzillauser.html b/python/templates/registration/bugzillauser.html
deleted file mode 100644
index d05d6ad..0000000
--- a/python/templates/registration/bugzillauser.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{% extends 'layout/base.html' %}
-{% block title %}Bugzilla accounts{% endblock %}
-{% block content %}
- <h2>Bugzilla accounts</h2>
- <form method="post">
- {% csrf_token %}
- {{ form }}
- <button type="submit">Submit</button>
- </form>
-{% endblock %}
diff --git a/python/templates/registration/logged_out.html b/python/templates/registration/logged_out.html
deleted file mode 100644
index 94c6a0d..0000000
--- a/python/templates/registration/logged_out.html
+++ /dev/null
@@ -1,5 +0,0 @@
-{% extends "layout/base.html" %}
-{% block body_block %}
-<h1>Logged Out</h1>
- <p>You are now logged out.</p>
-{% endblock %}
diff --git a/python/templates/registration/login.html b/python/templates/registration/login.html
deleted file mode 100644
index 9503420..0000000
--- a/python/templates/registration/login.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{% extends 'layout/base.html' %}
-
-{% block title %}Login{% endblock %}
-
-{% block content %}
- <h2>Login</h2>
- <form method="post">
- {% csrf_token %}
- {{ form.as_p }}
- <button type="submit">Login</button>
- </form>
-{% endblock %}
diff --git a/sql/gentoo-www.sql b/sql/gentoo-www.sql
deleted file mode 100644
index 9c1d758..0000000
--- a/sql/gentoo-www.sql
+++ /dev/null
@@ -1,244 +0,0 @@
--- phpMyAdmin SQL Dump
--- version 4.2.13
--- http://www.phpmyadmin.net
---
--- Host: localhost
--- Generation Time: Jul 14, 2015 at 04:57 PM
--- Server version: 10.0.15-MariaDB-log
--- PHP Version: 5.6.10-pl0-gentoo
-
-SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
-SET time_zone = "+00:00";
-
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-
---
--- Database: `gentoo-www`
---
-
--- --------------------------------------------------------
-
---
--- Table structure for table `layout`
---
-
-CREATE TABLE IF NOT EXISTS `layout` (
-`layout_id` int(11) NOT NULL,
- `layout` varchar(20) NOT NULL,
- `layout_file` varchar(20) NOT NULL
-) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `pages`
---
-
-CREATE TABLE IF NOT EXISTS `pages` (
-`page_id` int(11) NOT NULL,
- `nav_title` varchar(200) NOT NULL,
- `title` varchar(200) NOT NULL,
- `description` varchar(200) NOT NULL,
- `nav1` varchar(100) NOT NULL,
- `nav1_show` tinyint(1) NOT NULL,
- `nav1_weight` int(11) NOT NULL,
- `meta` varchar(200) NOT NULL,
- `url` varchar(200) NOT NULL,
- `inlinejs` varchar(200) NOT NULL,
- `body_class` varchar(20) NOT NULL,
- `layout_id` int(11) NOT NULL,
- `sub_menu` tinyint(1) NOT NULL
-) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `posts`
---
-
-CREATE TABLE IF NOT EXISTS `posts` (
-`post_id` int(11) NOT NULL,
- `title` varchar(200) NOT NULL,
- `url` varchar(200) NOT NULL,
- `text` text NOT NULL,
- `time_stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
-) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `site_settings`
---
-
-CREATE TABLE IF NOT EXISTS `site_settings` (
-`site_id` int(11) NOT NULL,
- `site` varchar(20) NOT NULL,
- `title` varchar(50) NOT NULL,
- `email` varchar(50) NOT NULL,
- `description` varchar(100) NOT NULL,
- `url` varchar(50) NOT NULL,
- `contact` varchar(50) NOT NULL,
- `cdnurl` varchar(100) NOT NULL,
- `layout_path` varchar(11) NOT NULL,
- `download_url` varchar(100) NOT NULL
-) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `sponsors`
---
-
-CREATE TABLE IF NOT EXISTS `sponsors` (
-`sponsors_id` int(11) NOT NULL,
- `name` varchar(200) NOT NULL,
- `ads_name` varchar(100) NOT NULL,
- `img` varchar(100) NOT NULL,
- `ads_img` varchar(100) NOT NULL,
- `link` varchar(100) NOT NULL,
- `ads_link` varchar(100) NOT NULL,
- `blurb` text NOT NULL,
- `ads_blure` varchar(200) NOT NULL,
- `ads_alt_name` varchar(200) NOT NULL,
- `weight` int(11) NOT NULL,
- `active` tinyint(1) NOT NULL,
- `ads_active` tinyint(1) NOT NULL
-) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `subsub_pages`
---
-
-CREATE TABLE IF NOT EXISTS `subsub_pages` (
-`subsub_page_id` int(11) NOT NULL,
- `nav_title` varchar(200) NOT NULL,
- `title` varchar(200) NOT NULL,
- `description` varchar(200) NOT NULL,
- `sub_page_id` int(11) NOT NULL,
- `nav3` varchar(100) NOT NULL,
- `nav3_show` tinyint(1) NOT NULL,
- `nav3_weight` int(11) NOT NULL,
- `meta` varchar(200) NOT NULL,
- `url` varchar(200) NOT NULL,
- `inlinejs` varchar(200) NOT NULL,
- `layout_id` varchar(100) NOT NULL,
- `body_class` varchar(20) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `sub_pages`
---
-
-CREATE TABLE IF NOT EXISTS `sub_pages` (
-`sub_page_id` int(11) NOT NULL,
- `nav_title` varchar(200) NOT NULL,
- `title` varchar(200) NOT NULL,
- `description` varchar(200) NOT NULL,
- `page_id` int(11) NOT NULL,
- `nav2` varchar(100) NOT NULL,
- `nav2_show` tinyint(1) NOT NULL,
- `nav2_weight` int(11) NOT NULL,
- `meta` varchar(200) NOT NULL,
- `url` varchar(200) NOT NULL,
- `inlinejs` varchar(200) NOT NULL,
- `layout_id` int(11) NOT NULL,
- `body_class` varchar(20) NOT NULL,
- `sub_menu` tinyint(1) NOT NULL
-) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;
-
---
--- Indexes for dumped tables
---
-
---
--- Indexes for table `layout`
---
-ALTER TABLE `layout`
- ADD PRIMARY KEY (`layout_id`);
-
---
--- Indexes for table `pages`
---
-ALTER TABLE `pages`
- ADD PRIMARY KEY (`page_id`);
-
---
--- Indexes for table `posts`
---
-ALTER TABLE `posts`
- ADD PRIMARY KEY (`post_id`);
-
---
--- Indexes for table `site_settings`
---
-ALTER TABLE `site_settings`
- ADD PRIMARY KEY (`site_id`);
-
---
--- Indexes for table `sponsors`
---
-ALTER TABLE `sponsors`
- ADD PRIMARY KEY (`sponsors_id`);
-
---
--- Indexes for table `subsub_pages`
---
-ALTER TABLE `subsub_pages`
- ADD PRIMARY KEY (`subsub_page_id`);
-
---
--- Indexes for table `sub_pages`
---
-ALTER TABLE `sub_pages`
- ADD PRIMARY KEY (`sub_page_id`);
-
---
--- AUTO_INCREMENT for dumped tables
---
-
---
--- AUTO_INCREMENT for table `layout`
---
-ALTER TABLE `layout`
-MODIFY `layout_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=8;
---
--- AUTO_INCREMENT for table `pages`
---
-ALTER TABLE `pages`
-MODIFY `page_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=9;
---
--- AUTO_INCREMENT for table `posts`
---
-ALTER TABLE `posts`
-MODIFY `post_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
---
--- AUTO_INCREMENT for table `site_settings`
---
-ALTER TABLE `site_settings`
-MODIFY `site_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2;
---
--- AUTO_INCREMENT for table `sponsors`
---
-ALTER TABLE `sponsors`
-MODIFY `sponsors_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=7;
---
--- AUTO_INCREMENT for table `subsub_pages`
---
-ALTER TABLE `subsub_pages`
-MODIFY `subsub_page_id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `sub_pages`
---
-ALTER TABLE `sub_pages`
-MODIFY `sub_page_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=25;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
diff --git a/sql/gentoo-www_data.sql b/sql/gentoo-www_data.sql
deleted file mode 100644
index 29cf9cd..0000000
--- a/sql/gentoo-www_data.sql
+++ /dev/null
@@ -1,106 +0,0 @@
--- phpMyAdmin SQL Dump
--- version 4.2.13
--- http://www.phpmyadmin.net
---
--- Host: localhost
--- Generation Time: Jul 14, 2015 at 04:59 PM
--- Server version: 10.0.15-MariaDB-log
--- PHP Version: 5.6.10-pl0-gentoo
-
-SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
-SET time_zone = "+00:00";
-
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-
---
--- Database: `gentoo-www`
---
-
---
--- Dumping data for table `layout`
---
-
-INSERT INTO `layout` (`layout_id`, `layout`, `layout_file`) VALUES
-(1, 'tyrian', 'tyrian.html'),
-(2, 'page', 'page.html'),
-(3, 'box', 'box.html'),
-(4, 'post', 'post.html'),
-(5, 'page-pre', 'page-pre.html'),
-(6, 'page-nav3', 'page-nav3.html');
-
---
--- Dumping data for table `pages`
---
-
-INSERT INTO `pages` (`page_id`, `nav_title`, `title`, `description`, `nav1`, `nav1_show`, `nav1_weight`, `meta`, `url`, `inlinejs`, `body_class`, `layout_id`, `sub_menu`) VALUES
-(1, 'Home', 'Home', 'The website of Gentoo, a flexible Linux or BSD distribution.', 'home', 1, 1, '<link rel="alternate" type="application/atom+xml" title="Gentoo Linux News" href="/feeds/news.xml">', 'home', '', '', 1, 0),
-(2, 'Downloads', 'Downloads', '', 'downloads', 1, 9, '', 'downloads', '$(function() { $(''#other-arches a:first'').tab(''show''); });', '', 1, 1),
-(3, 'Get Started', 'Getting Started with Gentoo Linux', '', 'get-started', 1, 5, '', 'get-started', '', '', 1, 1),
-(4, 'Inside Gentoo', 'Inside Gentoo', '', 'inside-gentoo', 1, 10, '', 'inside-gentoo', '', '', 1, 1),
-(5, 'Support', 'Support', '', 'support', 1, 20, '', 'support', '', '', 1, 1),
-(6, 'Get Involved', 'Get Involved', '', 'get-involved', 1, 30, '', 'get-involved', '', '', 1, 1),
-(7, '', 'Donate', '', 'donate', 1, 0, '', 'donate', '', '', 1, 0);
-
---
--- Dumping data for table `posts`
---
-
-INSERT INTO `posts` (`post_id`, `title`, `url`, `text`, `time_stamp`) VALUES
-(1, 'Git changes & impact to Overlays hostnames', '/news/2015/04/25/anongit-overlays.html', '<p>As previously announced\r\n<a href="https://archives.gentoo.org/gentoo-dev-announce/message/0c0e1e88bf133a070edf7f833a83f8be">[1]</a>\r\n<a href="https://archives.gentoo.org/gentoo-announce/message/51cd96db6456fe7e540abc4c6dcac2bd">[2]</a>,\r\nand previously in the discussion of merging Overlays with Gentoo’s primary SCM\r\nhosting (CVS+Git):\r\nThe old overlays hostnames (<code>git.overlays.gentoo.org</code> and\r\n<code>overlays.gentoo.org</code>) have now been disabled, as well as non-SSH traffic to\r\n<code>git.gentoo.org</code>. This was a deliberate move to seperate anonymous versus\r\nauthenticated Git traffic, and ensure that anonymous Git traffic can continued\r\nto be scaled when we go ahead with switching away from CVS. Anonymous and\r\nauthenticated Git is now served by seperate systems, and no anonymous Git\r\ntraffic is permitted to the authenticated Git server.</p>\r\n\r\n<p>If you have anonymous Git checkouts from any of the affected hostnames, you\r\nshould switch them to using one of these new URLs:</p>\r\n\r\n<ul>\r\n <li><code>https://anongit.gentoo.org/git/$REPO</code></li>\r\n <li><code>http://anongit.gentoo.org/git/$REPO</code></li>\r\n <li><code>git://anongit.gentoo.org/$REPO</code></li>\r\n</ul>\r\n\r\n<p>If you have authenticated Git checkouts from the same hosts, you should switch\r\nthem to this new URL:</p>\r\n\r\n<ul>\r\n <li><code>git+ssh://git@git.gentoo.org/$REPO</code></li>\r\n</ul>\r\n\r\n<p>In either case, you can trivially update any existing checkout with:<br />\r\n<code>git remote set-url origin git+ssh://git@git.gentoo.org/$REPO</code><br />\r\n(be sure to adjust the path of the repository and the name of the remote as\r\nneeded).</p>', '2015-06-29 20:15:49'),
-(2, 'Gentoo announces total website makeover (not an April Fool''s)', '/news/2015/03/31/website-update.html', '<p><strong>Thank you for participating in Gentoo’s 2015 April Fools’ joke!</strong></p>\r\n\r\n<p>Now that April 1 has passed, we shed a tear as we say goodbye CGA Web™ but also to our website.\r\nOur previous website, that is, that has been with us for more than a decade.\r\nUntil all contents are migrated, you can find the previous version on <a href="https://wwwold.gentoo.org/">wwwold.gentoo.org</a>,\r\nplease note that the contents found there are not maintained any longer.</p>\r\n\r\n<p>As this is indeed a major change, we’re still working out some rough edges\r\nand would appreciate your feedback via email to <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#119;&#119;&#119;&#064;&#103;&#101;&#110;&#116;&#111;&#111;&#046;&#111;&#114;&#103;">&#119;&#119;&#119;&#064;&#103;&#101;&#110;&#116;&#111;&#111;&#046;&#111;&#114;&#103;</a>\r\nor on IRC in <a href="/get-involved/irc-channels/all-channels.html">#gentoo-www</a>.</p>\r\n\r\n<p>We hope you appreciate the new look and had a great time finding out how terrible you are at Pong and are looking forward\r\nto seeing your reactions once again when we celebrate the launch of the new Gentoo Disk™ set.</p>\r\n\r\n<p>As for <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#097;&#051;&#108;&#105;&#064;&#103;&#101;&#110;&#116;&#111;&#111;&#046;&#111;&#114;&#103;">Alex</a>, <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#114;&#111;&#098;&#098;&#097;&#116;&#050;&#064;&#103;&#101;&#110;&#116;&#111;&#111;&#046;&#111;&#114;&#103;">Robin</a>, and all co-conspirators, thank you again for your participation!</p>\r\n\r\n<p><small>The original April 1 news item is still available on the single news display page.</small></p>', '2015-06-26 20:59:58');
-
---
--- Dumping data for table `site_settings`
---
-
-INSERT INTO `site_settings` (`site_id`, `site`, `title`, `email`, `description`, `url`, `contact`, `cdnurl`, `layout_path`, `download_url`) VALUES
-(1, 'www.gentoo.org', 'Gentoo Linux', 'www@gentoo.org', 'News and information from Gentoo Linux', 'https://www.gentoo.org', '/inside-gentoo/contact/', 'https://1b9a50f4f9de4348cd9f-e703bc50ba0aa66772a874f8c7698be7.ssl.cf5.rackcdn.com', '', 'http://distfiles.gentoo.org/releases/');
-
---
--- Dumping data for table `sponsors`
---
-
-INSERT INTO `sponsors` (`sponsors_id`, `name`, `ads_name`, `img`, `ads_img`, `link`, `ads_link`, `blurb`, `ads_blure`, `ads_alt_name`, `weight`, `active`, `ads_active`) VALUES
-(1, 'Oregon State University: Open Source Lab (OSUOSL)', 'OSL', 'osuosl2.png', 'osuosl.png', 'http://osuosl.org', 'http://osuosl.org/contribute', 'Located at [Oregon State University](http://oregonstate.edu) in beautiful Corvallis, Oregon,\r\n the [Open Source Lab](http://osuosl.org) is a focal point of development,\r\n hosting and other assorted services for the Open Source community.\r\n \r\n OSU provides several services to the Gentoo project.\r\n In addition to serving as the primary source mirror for Gentoo, they also provide colocation space for several Gentoo servers.', '', 'OSL', 25, 1, 1),
-(2, 'Bytemark Hosting', 'Bytemark', 'bytemark.png', 'bytemark.png', 'http://www.bytemark.co.uk/r/gentoo-sponsors', 'http://www.bytemark.co.uk/r/gentoo-home', 'Bytemark Hosting provide Gentoo Linux with servers and services which drive our network of global mirrors.\r\n They are a leading Internet Service Provider (ISP) in the United Kingdom and provide scalable,\r\n powerful and affordable hosting with lots of "geek friendly" extras as standard.\r\n They''ve deployed Gentoo Linux within their network to provide a flexible solution to difficult problems,\r\n such as providing a network rescue environment for all dedicated hosts.', '', 'Bytemark', 20, 1, 1),
-(3, '7L Networks', 'SevenL', 'sevenl.png', 'sevenl.png', 'http://www.7l.com/', 'https://www.sevenl.net/?utm_source=gentoo-org&utm_medium=sponsored-banner&utm_campaign=gentoo-dedica', '[7L](http://www.7l.com/) Networks is a leader in [Cloud Hosting](http://www.7l.com/) services, dedicated servers,\r\n and is a leading [Toronto server colocation provider](http://www.7l.com/business-hosting-solutions/Toronto-Colocation-Hosting-Provider.html).\r\n 7L has been proudly donating server hosting services to Gentoo Linux since 2004.\r\n In addition, they donate dedicated servers to CentOS, Linux Mint, Arch Linux and a number of other open source communities that rely on sponsorship to succeed.', '', 'SevenL', 10, 1, 0),
-(4, 'LeaseWeb', 'LeaseWeb', 'leaseweb.png', 'leaseweb.png', 'http://www.leaseweb.com/', 'http://www.leaseweb.com/', '[LeaseWeb](http://www.leaseweb.com/) is a leading Infrastructure as a Service (IaaS) provider serving a worldwide portfolio of over 15,000 customers ranging from SMBs to Enterprises.\r\n Services include Public Cloud, Private Cloud, Hybrid Hosting, Colocation, CDN, and Dedicated Hosting supported by exceptional customer service and technical support.\r\n With more than 60,000 servers under management, LeaseWeb provides infrastructure since 1997.\r\n The company operates 6 data centers in the U.S. and Europe, all of which are backed by a superior worldwide network with a total capacity of more than 3.5 Tbps.', '', 'LeaseWeb', 10, 1, 1),
-(6, 'Numberly', 'Numberly', 'numberly.png', 'numberly.png', 'http://www.numberly.com/', 'http://www.numberly.com/', '[Numberly](http://www.numberly.com/) is a 1000mercis Group brand, a pioneer in interactive advertising and marketing, providing innovative solutions\r\n for companies willing to optimise their customer acquisition and retention through interactive media (Internet, mobile phones and tablets).\r\n Numberly helps its clients to design, develop, implement, and maximise the ROI of their interactive marketing and advertising campaigns.\r\n\r\n Numberly proudly provides 3 powerful physical servers dedicated to the Gentoo project with ipv6 support.', '', 'Numberly', 25, 1, 1);
-
---
--- Dumping data for table `sub_pages`
---
-
-INSERT INTO `sub_pages` (`sub_page_id`, `nav_title`, `title`, `description`, `page_id`, `nav2`, `nav2_show`, `nav2_weight`, `meta`, `url`, `inlinejs`, `layout_id`, `body_class`, `sub_menu`) VALUES
-(1, '', 'About Gentoo', '', 3, 'about', 1, 10, '', 'about', '', 1, '', 0),
-(2, '', 'FAQ', '', 3, 'faq', 1, 40, '', 'https://wiki.gentoo.org/wiki/FAQ', '', 1, '', 0),
-(3, 'Philosophy', 'The Philosophy of Gentoo', '', 3, 'philosophy', 1, 20, '', 'philosophy', '', 1, '', 0),
-(4, 'Screenshots', 'Gentoo Screenshots', '', 3, 'screenshots', 1, 30, '', 'screenshots', '', 1, '', 0),
-(5, 'Mirrors', 'Gentoo Source Mirrors', '', 2, 'mirrors', 1, 0, '', 'mirrors', '', 1, '', 0),
-(6, 'Signatures', 'Release Media Signatures', '', 2, 'signatures', 1, 0, '', 'signatures', '', 1, '', 0),
-(7, 'Developers', 'Current Gentoo Developers', '', 4, 'developers', 1, 10, '', 'developers', '', 1, '', 0),
-(8, '', 'Projects', '', 4, 'projects', 1, 20, '', 'https://wiki.gentoo.org/wiki/Project:Gentoo', '', 1, '', 0),
-(9, 'Artwork', 'Gentoo Artwork', '', 4, 'artwork', 1, 25, '', 'artwork', '', 1, '', 0),
-(10, 'Gentoo Foundation', 'Gentoo Foundation', '', 4, 'foundation', 1, 30, '', 'foundation', '', 6, 'nav-align-h2', 0),
-(11, '', 'Sponsors', '', 4, 'sponsors', 1, 40, '', 'sponsors', '', 1, '', 0),
-(12, 'Stores', 'Stores offering Gentoo products', '', 4, 'stores', 1, 50, '', 'stores', '', 1, '', 0),
-(13, '', 'Contact', '', 4, 'contact', 1, 99, '', 'contact', '', 1, '', 0),
-(14, '', 'Documentation', '', 5, 'documentation', 1, 0, '', 'documentation', '', 1, '', 0),
-(15, 'News Items', 'Repository News Items', '', 5, 'news-items', 1, 0, '', 'news-items', '', 1, '', 0),
-(16, '', 'Package Database', '', 5, 'package-database', 1, 0, '', 'http://packages.gentoo.org/', '', 1, '', 0),
-(17, 'Security', 'Gentoo Security', '', 5, 'security', 1, 0, '', 'security', '', 6, 'nav-align-h2', 0),
-(18, 'rsync Mirrors', 'Gentoo rsync Mirrors', '', 5, 'mirrors', 1, 0, '', 'mirrors', '', 1, '', 0),
-(19, '', 'IRC Channels', '', 6, 'irc', 1, 10, '', 'irc', '', 1, '', 0),
-(20, 'Forums', 'Discussion Forums', '', 6, 'forums', 1, 20, '', 'https://forums.gentoo.org/', '', 1, '', 0),
-(21, '', 'Mailing Lists', '', 6, 'ml', 1, 30, '', 'mailings-lists', '', 1, '', 0),
-(22, 'Contribute', 'Contribute to Gentoo', '', 6, 'contribute', 1, 40, '', 'contribute', '', 1, '', 0),
-(23, '', 'Become a Developer', '', 6, 'become-dev', 1, 50, '', 'become-developer', '', 1, '', 0),
-(24, 'News', 'News', '', 1, 'news', 1, 0, '<link rel="alternate" type="application/atom+xml" title="Gentoo Linux News" href="/feeds/news.xml">', 'news', '', 1, '', 0);
-
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
diff --git a/sql/gentoo-www_full.sql b/sql/gentoo-www_full.sql
deleted file mode 100644
index b8f7ae0..0000000
--- a/sql/gentoo-www_full.sql
+++ /dev/null
@@ -1,651 +0,0 @@
--- phpMyAdmin SQL Dump
--- version 4.2.13
--- http://www.phpmyadmin.net
---
--- Host: localhost
--- Generation Time: Feb 15, 2016 at 03:53 PM
--- Server version: 10.0.22-MariaDB-log
--- PHP Version: 5.6.16-pl0-gentoo
-
-SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
-SET time_zone = "+00:00";
-
-
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-
---
--- Database: `gentoo-www`
---
-
--- --------------------------------------------------------
-
---
--- Table structure for table `auth_group`
---
-
-CREATE TABLE IF NOT EXISTS `auth_group` (
-`id` int(11) NOT NULL,
- `name` varchar(80) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `auth_group_permissions`
---
-
-CREATE TABLE IF NOT EXISTS `auth_group_permissions` (
-`id` int(11) NOT NULL,
- `group_id` int(11) NOT NULL,
- `permission_id` int(11) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `auth_permission`
---
-
-CREATE TABLE IF NOT EXISTS `auth_permission` (
-`id` int(11) NOT NULL,
- `name` varchar(255) NOT NULL,
- `content_type_id` int(11) NOT NULL,
- `codename` varchar(100) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `auth_permission`
---
-
-INSERT INTO `auth_permission` (`id`, `name`, `content_type_id`, `codename`) VALUES
-(1, 'Can add permission', 1, 'add_permission'),
-(2, 'Can change permission', 1, 'change_permission'),
-(3, 'Can delete permission', 1, 'delete_permission'),
-(4, 'Can add group', 2, 'add_group'),
-(5, 'Can change group', 2, 'change_group'),
-(6, 'Can delete group', 2, 'delete_group'),
-(7, 'Can add user', 3, 'add_user'),
-(8, 'Can change user', 3, 'change_user'),
-(9, 'Can delete user', 3, 'delete_user'),
-(10, 'Can add content type', 4, 'add_contenttype'),
-(11, 'Can change content type', 4, 'change_contenttype'),
-(12, 'Can delete content type', 4, 'delete_contenttype'),
-(13, 'Can add session', 5, 'add_session'),
-(14, 'Can change session', 5, 'change_session'),
-(15, 'Can delete session', 5, 'delete_session'),
-(16, 'Can add site', 6, 'add_site'),
-(17, 'Can change site', 6, 'change_site'),
-(18, 'Can delete site', 6, 'delete_site');
-
--- --------------------------------------------------------
-
---
--- Table structure for table `auth_user`
---
-
-CREATE TABLE IF NOT EXISTS `auth_user` (
-`id` int(11) NOT NULL,
- `password` varchar(128) NOT NULL,
- `last_login` datetime DEFAULT NULL,
- `is_superuser` tinyint(1) NOT NULL,
- `username` varchar(30) NOT NULL,
- `first_name` varchar(30) NOT NULL,
- `last_name` varchar(30) NOT NULL,
- `email` varchar(254) NOT NULL,
- `is_staff` tinyint(1) NOT NULL,
- `is_active` tinyint(1) NOT NULL,
- `date_joined` datetime NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `auth_user_groups`
---
-
-CREATE TABLE IF NOT EXISTS `auth_user_groups` (
-`id` int(11) NOT NULL,
- `user_id` int(11) NOT NULL,
- `group_id` int(11) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `auth_user_user_permissions`
---
-
-CREATE TABLE IF NOT EXISTS `auth_user_user_permissions` (
-`id` int(11) NOT NULL,
- `user_id` int(11) NOT NULL,
- `permission_id` int(11) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `django_content_type`
---
-
-CREATE TABLE IF NOT EXISTS `django_content_type` (
-`id` int(11) NOT NULL,
- `app_label` varchar(100) NOT NULL,
- `model` varchar(100) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `django_content_type`
---
-
-INSERT INTO `django_content_type` (`id`, `app_label`, `model`) VALUES
-(2, 'auth', 'group'),
-(1, 'auth', 'permission'),
-(3, 'auth', 'user'),
-(4, 'contenttypes', 'contenttype'),
-(5, 'sessions', 'session'),
-(6, 'sites', 'site');
-
--- --------------------------------------------------------
-
---
--- Table structure for table `django_migrations`
---
-
-CREATE TABLE IF NOT EXISTS `django_migrations` (
-`id` int(11) NOT NULL,
- `app` varchar(255) NOT NULL,
- `name` varchar(255) NOT NULL,
- `applied` datetime NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `django_migrations`
---
-
-INSERT INTO `django_migrations` (`id`, `app`, `name`, `applied`) VALUES
-(1, 'contenttypes', '0001_initial', '2015-06-20 14:35:54'),
-(2, 'contenttypes', '0002_remove_content_type_name', '2015-06-20 14:35:54'),
-(3, 'auth', '0001_initial', '2015-06-20 14:35:54'),
-(4, 'auth', '0002_alter_permission_name_max_length', '2015-06-20 14:35:54'),
-(5, 'auth', '0003_alter_user_email_max_length', '2015-06-20 14:35:54'),
-(6, 'auth', '0004_alter_user_username_opts', '2015-06-20 14:35:54'),
-(7, 'auth', '0005_alter_user_last_login_null', '2015-06-20 14:35:54'),
-(8, 'auth', '0006_require_contenttypes_0002', '2015-06-20 14:35:54'),
-(9, 'sessions', '0001_initial', '2015-06-20 14:35:54'),
-(10, 'sites', '0001_initial', '2015-06-20 14:35:54');
-
--- --------------------------------------------------------
-
---
--- Table structure for table `django_session`
---
-
-CREATE TABLE IF NOT EXISTS `django_session` (
- `session_key` varchar(40) NOT NULL,
- `session_data` longtext NOT NULL,
- `expire_date` datetime NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `django_site`
---
-
-CREATE TABLE IF NOT EXISTS `django_site` (
-`id` int(11) NOT NULL,
- `domain` varchar(100) NOT NULL,
- `name` varchar(50) NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `django_site`
---
-
-INSERT INTO `django_site` (`id`, `domain`, `name`) VALUES
-(1, 'example.com', 'example.com');
-
--- --------------------------------------------------------
-
---
--- Table structure for table `layout`
---
-
-CREATE TABLE IF NOT EXISTS `layout` (
-`layout_id` int(11) NOT NULL,
- `layout` varchar(20) NOT NULL,
- `layout_file` varchar(20) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `layout`
---
-
-INSERT INTO `layout` (`layout_id`, `layout`, `layout_file`) VALUES
-(1, 'tyrian', 'tyrian.html'),
-(2, 'page', 'page.html'),
-(3, 'box', 'box.html'),
-(4, 'post', 'post.html'),
-(5, 'page-pre', 'page-pre.html'),
-(6, 'page-nav3', 'page-nav3.html');
-
--- --------------------------------------------------------
-
---
--- Table structure for table `pages`
---
-
-CREATE TABLE IF NOT EXISTS `pages` (
-`page_id` int(11) NOT NULL,
- `nav_title` varchar(200) NOT NULL,
- `title` varchar(200) NOT NULL,
- `description` varchar(200) NOT NULL,
- `nav1` varchar(100) NOT NULL,
- `nav1_show` tinyint(1) NOT NULL,
- `nav1_weight` int(11) NOT NULL,
- `meta` varchar(200) NOT NULL,
- `url` varchar(200) NOT NULL,
- `inlinejs` varchar(200) NOT NULL,
- `body_class` varchar(20) NOT NULL,
- `layout_id` int(11) NOT NULL,
- `sub_menu` tinyint(1) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `pages`
---
-
-INSERT INTO `pages` (`page_id`, `nav_title`, `title`, `description`, `nav1`, `nav1_show`, `nav1_weight`, `meta`, `url`, `inlinejs`, `body_class`, `layout_id`, `sub_menu`) VALUES
-(1, 'Home', 'Home', 'Welcome to tinderbox cluster that build and test Gentoo packages', 'home', 1, 1, '', 'home', '', '', 1, 0),
-(2, 'Packages', 'Packages', '', 'packages', 1, 5, '', 'packages', '', '', 1, 1),
-(3, 'New', 'New', '', 'new', 1, 9, '', 'new', '', '', 1, 1),
-(4, 'Inside Gentoo', 'Inside Gentoo', '', 'inside-gentoo', 1, 10, '', 'inside-gentoo', '', '', 1, 1),
-(5, 'Support', 'Support', '', 'support', 1, 20, '', 'support', '', '', 1, 1),
-(6, 'Get Involved', 'Get Involved', '', 'get-involved', 1, 30, '', 'get-involved', '', '', 1, 1),
-(7, '', 'Donate', '', 'donate', 1, 0, '', 'donate', '', '', 1, 0);
-
--- --------------------------------------------------------
-
---
--- Table structure for table `posts`
---
-
-CREATE TABLE IF NOT EXISTS `posts` (
-`post_id` int(11) NOT NULL,
- `title` varchar(200) NOT NULL,
- `url` varchar(200) NOT NULL,
- `text` text NOT NULL,
- `time_stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `posts`
---
-
-INSERT INTO `posts` (`post_id`, `title`, `url`, `text`, `time_stamp`) VALUES
-(1, 'Git changes & impact to Overlays hostnames', '/news/2015/04/25/anongit-overlays.html', '<p>As previously announced\r\n<a href="https://archives.gentoo.org/gentoo-dev-announce/message/0c0e1e88bf133a070edf7f833a83f8be">[1]</a>\r\n<a href="https://archives.gentoo.org/gentoo-announce/message/51cd96db6456fe7e540abc4c6dcac2bd">[2]</a>,\r\nand previously in the discussion of merging Overlays with Gentoo’s primary SCM\r\nhosting (CVS+Git):\r\nThe old overlays hostnames (<code>git.overlays.gentoo.org</code> and\r\n<code>overlays.gentoo.org</code>) have now been disabled, as well as non-SSH traffic to\r\n<code>git.gentoo.org</code>. This was a deliberate move to seperate anonymous versus\r\nauthenticated Git traffic, and ensure that anonymous Git traffic can continued\r\nto be scaled when we go ahead with switching away from CVS. Anonymous and\r\nauthenticated Git is now served by seperate systems, and no anonymous Git\r\ntraffic is permitted to the authenticated Git server.</p>\r\n\r\n<p>If you have anonymous
-Git checkouts from any of the affected hostnames, you\r\nshould switch them to using one of these new URLs:</p>\r\n\r\n<ul>\r\n <li><code>https://anongit.gentoo.org/git/$REPO</code></li>\r\n <li><code>http://anongit.gentoo.org/git/$REPO</code></li>\r\n <li><code>git://anongit.gentoo.org/$REPO</code></li>\r\n</ul>\r\n\r\n<p>If you have authenticated Git checkouts from the same hosts, you should switch\r\nthem to this new URL:</p>\r\n\r\n<ul>\r\n <li><code>git+ssh://git@git.gentoo.org/$REPO</code></li>\r\n</ul>\r\n\r\n<p>In either case, you can trivially update any existing checkout with:<br />\r\n<code>git remote set-url origin git+ssh://git@git.gentoo.org/$REPO</code><br />\r\n(be sure to adjust the path of the repository and the name of the remote as\r\nneeded).</p>', '2015-06-29 20:15:49'),
-(2, 'Gentoo announces total website makeover (not an April Fool''s)', '/news/2015/03/31/website-update.html', '<p><strong>Thank you for participating in Gentoo’s 2015 April Fools’ joke!</strong></p>\r\n\r\n<p>Now that April 1 has passed, we shed a tear as we say goodbye CGA Web™ but also to our website.\r\nOur previous website, that is, that has been with us for more than a decade.\r\nUntil all contents are migrated, you can find the previous version on <a href="https://wwwold.gentoo.org/">wwwold.gentoo.org</a>,\r\nplease note that the contents found there are not maintained any longer.</p>\r\n\r\n<p>As this is indeed a major change, we’re still working out some rough edges\r\nand would appreciate your feedback via email to <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#119;&#119;&#119;&#064;&#103;&#101;&#110;&#116;&#111;&#111;&#046;&#111;&#114;&#103;">&#119;&#119;&#119;&#064;&#103;&#101;&#110;&#116;&#111;&#111;&#046;&#111;&#114;&#103;</a>\r\nor on IRC in <a href="/get-involved/irc-channels/all-channels.
-html">#gentoo-www</a>.</p>\r\n\r\n<p>We hope you appreciate the new look and had a great time finding out how terrible you are at Pong and are looking forward\r\nto seeing your reactions once again when we celebrate the launch of the new Gentoo Disk™ set.</p>\r\n\r\n<p>As for <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#097;&#051;&#108;&#105;&#064;&#103;&#101;&#110;&#116;&#111;&#111;&#046;&#111;&#114;&#103;">Alex</a>, <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#114;&#111;&#098;&#098;&#097;&#116;&#050;&#064;&#103;&#101;&#110;&#116;&#111;&#111;&#046;&#111;&#114;&#103;">Robin</a>, and all co-conspirators, thank you again for your participation!</p>\r\n\r\n<p><small>The original April 1 news item is still available on the single news display page.</small></p>', '2015-06-26 20:59:58');
-
--- --------------------------------------------------------
-
---
--- Table structure for table `site_settings`
---
-
-CREATE TABLE IF NOT EXISTS `site_settings` (
-`site_id` int(11) NOT NULL,
- `site` varchar(20) NOT NULL,
- `title` varchar(50) NOT NULL,
- `email` varchar(50) NOT NULL,
- `description` varchar(100) NOT NULL,
- `url` varchar(50) NOT NULL,
- `contact` varchar(50) NOT NULL,
- `cdnurl` varchar(100) NOT NULL,
- `layout_path` varchar(11) NOT NULL,
- `download_url` varchar(100) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `site_settings`
---
-
-INSERT INTO `site_settings` (`site_id`, `site`, `title`, `email`, `description`, `url`, `contact`, `cdnurl`, `layout_path`, `download_url`) VALUES
-(1, 'www.gentoo.org', 'Gentoo Linux', 'www@gentoo.org', 'News and information from Gentoo Linux', 'https://www.gentoo.org', '/inside-gentoo/contact/', 'https://1b9a50f4f9de4348cd9f-e703bc50ba0aa66772a874f8c7698be7.ssl.cf5.rackcdn.com', '', 'http://distfiles.gentoo.org/releases/');
-
--- --------------------------------------------------------
-
---
--- Table structure for table `sponsors`
---
-
-CREATE TABLE IF NOT EXISTS `sponsors` (
-`sponsors_id` int(11) NOT NULL,
- `name` varchar(200) NOT NULL,
- `ads_name` varchar(100) NOT NULL,
- `img` varchar(100) NOT NULL,
- `ads_img` varchar(100) NOT NULL,
- `link` varchar(100) NOT NULL,
- `ads_link` varchar(100) NOT NULL,
- `blurb` text NOT NULL,
- `ads_blure` varchar(200) NOT NULL,
- `ads_alt_name` varchar(200) NOT NULL,
- `weight` int(11) NOT NULL,
- `active` tinyint(1) NOT NULL,
- `ads_active` tinyint(1) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `sponsors`
---
-
-INSERT INTO `sponsors` (`sponsors_id`, `name`, `ads_name`, `img`, `ads_img`, `link`, `ads_link`, `blurb`, `ads_blure`, `ads_alt_name`, `weight`, `active`, `ads_active`) VALUES
-(1, 'Oregon State University: Open Source Lab (OSUOSL)', 'OSL', 'osuosl2.png', 'osuosl.png', 'http://osuosl.org', 'http://osuosl.org/contribute', 'Located at [Oregon State University](http://oregonstate.edu) in beautiful Corvallis, Oregon,\r\n the [Open Source Lab](http://osuosl.org) is a focal point of development,\r\n hosting and other assorted services for the Open Source community.\r\n \r\n OSU provides several services to the Gentoo project.\r\n In addition to serving as the primary source mirror for Gentoo, they also provide colocation space for several Gentoo servers.', '', 'OSL', 25, 1, 1),
-(2, 'Bytemark Hosting', 'Bytemark', 'bytemark.png', 'bytemark.png', 'http://www.bytemark.co.uk/r/gentoo-sponsors', 'http://www.bytemark.co.uk/r/gentoo-home', 'Bytemark Hosting provide Gentoo Linux with servers and services which drive our network of global mirrors.\r\n They are a leading Internet Service Provider (ISP) in the United Kingdom and provide scalable,\r\n powerful and affordable hosting with lots of "geek friendly" extras as standard.\r\n They''ve deployed Gentoo Linux within their network to provide a flexible solution to difficult problems,\r\n such as providing a network rescue environment for all dedicated hosts.', '', 'Bytemark', 20, 1, 1),
-(3, '7L Networks', 'SevenL', 'sevenl.png', 'sevenl.png', 'http://www.7l.com/', 'https://www.sevenl.net/?utm_source=gentoo-org&utm_medium=sponsored-banner&utm_campaign=gentoo-dedica', '[7L](http://www.7l.com/) Networks is a leader in [Cloud Hosting](http://www.7l.com/) services, dedicated servers,\r\n and is a leading [Toronto server colocation provider](http://www.7l.com/business-hosting-solutions/Toronto-Colocation-Hosting-Provider.html).\r\n 7L has been proudly donating server hosting services to Gentoo Linux since 2004.\r\n In addition, they donate dedicated servers to CentOS, Linux Mint, Arch Linux and a number of other open source communities that rely on sponsorship to succeed.', '', 'SevenL', 10, 1, 0),
-(4, 'LeaseWeb', 'LeaseWeb', 'leaseweb.png', 'leaseweb.png', 'http://www.leaseweb.com/', 'http://www.leaseweb.com/', '[LeaseWeb](http://www.leaseweb.com/) is a leading Infrastructure as a Service (IaaS) provider serving a worldwide portfolio of over 15,000 customers ranging from SMBs to Enterprises.\r\n Services include Public Cloud, Private Cloud, Hybrid Hosting, Colocation, CDN, and Dedicated Hosting supported by exceptional customer service and technical support.\r\n With more than 60,000 servers under management, LeaseWeb provides infrastructure since 1997.\r\n The company operates 6 data centers in the U.S. and Europe, all of which are backed by a superior worldwide network with a total capacity of more than 3.5 Tbps.', '', 'LeaseWeb', 10, 1, 1),
-(6, 'Numberly', 'Numberly', 'numberly.png', 'numberly.png', 'http://www.numberly.com/', 'http://www.numberly.com/', '[Numberly](http://www.numberly.com/) is a 1000mercis Group brand, a pioneer in interactive advertising and marketing, providing innovative solutions\r\n for companies willing to optimise their customer acquisition and retention through interactive media (Internet, mobile phones and tablets).\r\n Numberly helps its clients to design, develop, implement, and maximise the ROI of their interactive marketing and advertising campaigns.\r\n\r\n Numberly proudly provides 3 powerful physical servers dedicated to the Gentoo project with ipv6 support.', '', 'Numberly', 25, 1, 1);
-
--- --------------------------------------------------------
-
---
--- Table structure for table `subsub_pages`
---
-
-CREATE TABLE IF NOT EXISTS `subsub_pages` (
-`subsub_page_id` int(11) NOT NULL,
- `nav_title` varchar(200) NOT NULL,
- `title` varchar(200) NOT NULL,
- `description` varchar(200) NOT NULL,
- `sub_page_id` int(11) NOT NULL,
- `nav3` varchar(100) NOT NULL,
- `nav3_show` tinyint(1) NOT NULL,
- `nav3_weight` int(11) NOT NULL,
- `meta` varchar(200) NOT NULL,
- `url` varchar(200) NOT NULL,
- `inlinejs` varchar(200) NOT NULL,
- `layout_id` varchar(100) NOT NULL,
- `body_class` varchar(20) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `sub_pages`
---
-
-CREATE TABLE IF NOT EXISTS `sub_pages` (
-`sub_page_id` int(11) NOT NULL,
- `nav_title` varchar(200) NOT NULL,
- `title` varchar(200) NOT NULL,
- `description` varchar(200) NOT NULL,
- `page_id` int(11) NOT NULL,
- `nav2` varchar(100) NOT NULL,
- `nav2_show` tinyint(1) NOT NULL,
- `nav2_weight` int(11) NOT NULL,
- `meta` varchar(200) NOT NULL,
- `url` varchar(200) NOT NULL,
- `inlinejs` varchar(200) NOT NULL,
- `layout_id` int(11) NOT NULL,
- `body_class` varchar(20) NOT NULL,
- `sub_menu` tinyint(1) NOT NULL
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `sub_pages`
---
-
-INSERT INTO `sub_pages` (`sub_page_id`, `nav_title`, `title`, `description`, `page_id`, `nav2`, `nav2_show`, `nav2_weight`, `meta`, `url`, `inlinejs`, `layout_id`, `body_class`, `sub_menu`) VALUES
-(1, '', 'About Gentoo', '', 3, 'about', 1, 10, '', 'about', '', 1, '', 0),
-(2, '', 'FAQ', '', 3, 'faq', 1, 40, '', 'https://wiki.gentoo.org/wiki/FAQ', '', 1, '', 0),
-(3, 'Philosophy', 'The Philosophy of Gentoo', '', 3, 'philosophy', 1, 20, '', 'philosophy', '', 1, '', 0),
-(4, 'Screenshots', 'Gentoo Screenshots', '', 3, 'screenshots', 1, 30, '', 'screenshots', '', 1, '', 0),
-(5, 'Mirrors', 'Gentoo Source Mirrors', '', 2, 'mirrors', 1, 0, '', 'mirrors', '', 1, '', 0),
-(6, 'Signatures', 'Release Media Signatures', '', 2, 'signatures', 1, 0, '', 'signatures', '', 1, '', 0),
-(7, 'Developers', 'Current Gentoo Developers', '', 4, 'developers', 1, 10, '', 'developers', '', 1, '', 0),
-(8, '', 'Projects', '', 4, 'projects', 1, 20, '', 'https://wiki.gentoo.org/wiki/Project:Gentoo', '', 1, '', 0),
-(9, 'Artwork', 'Gentoo Artwork', '', 4, 'artwork', 1, 25, '', 'artwork', '', 1, '', 0),
-(10, 'Gentoo Foundation', 'Gentoo Foundation', '', 4, 'foundation', 1, 30, '', 'foundation', '', 6, 'nav-align-h2', 0),
-(11, '', 'Sponsors', '', 4, 'sponsors', 1, 40, '', 'sponsors', '', 1, '', 0),
-(12, 'Stores', 'Stores offering Gentoo products', '', 4, 'stores', 1, 50, '', 'stores', '', 1, '', 0),
-(13, '', 'Contact', '', 4, 'contact', 1, 99, '', 'contact', '', 1, '', 0),
-(14, '', 'Documentation', '', 5, 'documentation', 1, 0, '', 'documentation', '', 1, '', 0),
-(15, 'News Items', 'Repository News Items', '', 5, 'news-items', 1, 0, '', 'news-items', '', 1, '', 0),
-(16, '', 'Package Database', '', 5, 'package-database', 1, 0, '', 'http://packages.gentoo.org/', '', 1, '', 0),
-(17, 'Security', 'Gentoo Security', '', 5, 'security', 1, 0, '', 'security', '', 6, 'nav-align-h2', 0),
-(18, 'rsync Mirrors', 'Gentoo rsync Mirrors', '', 5, 'mirrors', 1, 0, '', 'mirrors', '', 1, '', 0),
-(19, '', 'IRC Channels', '', 6, 'irc', 1, 10, '', 'irc', '', 1, '', 0),
-(20, 'Forums', 'Discussion Forums', '', 6, 'forums', 1, 20, '', 'https://forums.gentoo.org/', '', 1, '', 0),
-(21, '', 'Mailing Lists', '', 6, 'ml', 1, 30, '', 'mailings-lists', '', 1, '', 0),
-(22, 'Contribute', 'Contribute to Gentoo', '', 6, 'contribute', 1, 40, '', 'contribute', '', 1, '', 0),
-(23, '', 'Become a Developer', '', 6, 'become-dev', 1, 50, '', 'become-developer', '', 1, '', 0),
-(24, 'News', 'News', '', 1, 'news', 1, 0, '<link rel="alternate" type="application/atom+xml" title="Gentoo Linux News" href="/feeds/news.xml">', 'news', '', 1, '', 0);
-
---
--- Indexes for dumped tables
---
-
---
--- Indexes for table `auth_group`
---
-ALTER TABLE `auth_group`
- ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `name` (`name`);
-
---
--- Indexes for table `auth_group_permissions`
---
-ALTER TABLE `auth_group_permissions`
- ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `group_id` (`group_id`,`permission_id`), ADD KEY `auth_group__permission_id_132567775465881a_fk_auth_permission_id` (`permission_id`);
-
---
--- Indexes for table `auth_permission`
---
-ALTER TABLE `auth_permission`
- ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `content_type_id` (`content_type_id`,`codename`);
-
---
--- Indexes for table `auth_user`
---
-ALTER TABLE `auth_user`
- ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `username` (`username`);
-
---
--- Indexes for table `auth_user_groups`
---
-ALTER TABLE `auth_user_groups`
- ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `user_id` (`user_id`,`group_id`), ADD KEY `auth_user_groups_group_id_85d6be0cf42bb39_fk_auth_group_id` (`group_id`);
-
---
--- Indexes for table `auth_user_user_permissions`
---
-ALTER TABLE `auth_user_user_permissions`
- ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `user_id` (`user_id`,`permission_id`), ADD KEY `auth_user_u_permission_id_7a6c48a75a04bbaa_fk_auth_permission_id` (`permission_id`);
-
---
--- Indexes for table `django_content_type`
---
-ALTER TABLE `django_content_type`
- ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `django_content_type_app_label_210e0d78ac54972_uniq` (`app_label`,`model`);
-
---
--- Indexes for table `django_migrations`
---
-ALTER TABLE `django_migrations`
- ADD PRIMARY KEY (`id`);
-
---
--- Indexes for table `django_session`
---
-ALTER TABLE `django_session`
- ADD PRIMARY KEY (`session_key`), ADD KEY `django_session_de54fa62` (`expire_date`);
-
---
--- Indexes for table `django_site`
---
-ALTER TABLE `django_site`
- ADD PRIMARY KEY (`id`);
-
---
--- Indexes for table `layout`
---
-ALTER TABLE `layout`
- ADD PRIMARY KEY (`layout_id`);
-
---
--- Indexes for table `pages`
---
-ALTER TABLE `pages`
- ADD PRIMARY KEY (`page_id`);
-
---
--- Indexes for table `posts`
---
-ALTER TABLE `posts`
- ADD PRIMARY KEY (`post_id`);
-
---
--- Indexes for table `site_settings`
---
-ALTER TABLE `site_settings`
- ADD PRIMARY KEY (`site_id`);
-
---
--- Indexes for table `sponsors`
---
-ALTER TABLE `sponsors`
- ADD PRIMARY KEY (`sponsors_id`);
-
---
--- Indexes for table `subsub_pages`
---
-ALTER TABLE `subsub_pages`
- ADD PRIMARY KEY (`subsub_page_id`);
-
---
--- Indexes for table `sub_pages`
---
-ALTER TABLE `sub_pages`
- ADD PRIMARY KEY (`sub_page_id`);
-
---
--- AUTO_INCREMENT for dumped tables
---
-
---
--- AUTO_INCREMENT for table `auth_group`
---
-ALTER TABLE `auth_group`
-MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `auth_group_permissions`
---
-ALTER TABLE `auth_group_permissions`
-MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `auth_permission`
---
-ALTER TABLE `auth_permission`
-MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `auth_user`
---
-ALTER TABLE `auth_user`
-MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `auth_user_groups`
---
-ALTER TABLE `auth_user_groups`
-MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `auth_user_user_permissions`
---
-ALTER TABLE `auth_user_user_permissions`
-MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `django_content_type`
---
-ALTER TABLE `django_content_type`
-MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `django_migrations`
---
-ALTER TABLE `django_migrations`
-MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `django_site`
---
-ALTER TABLE `django_site`
-MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `layout`
---
-ALTER TABLE `layout`
-MODIFY `layout_id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `pages`
---
-ALTER TABLE `pages`
-MODIFY `page_id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `posts`
---
-ALTER TABLE `posts`
-MODIFY `post_id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `site_settings`
---
-ALTER TABLE `site_settings`
-MODIFY `site_id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `sponsors`
---
-ALTER TABLE `sponsors`
-MODIFY `sponsors_id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `subsub_pages`
---
-ALTER TABLE `subsub_pages`
-MODIFY `subsub_page_id` int(11) NOT NULL AUTO_INCREMENT;
---
--- AUTO_INCREMENT for table `sub_pages`
---
-ALTER TABLE `sub_pages`
-MODIFY `sub_page_id` int(11) NOT NULL AUTO_INCREMENT;
---
--- Constraints for dumped tables
---
-
---
--- Constraints for table `auth_group_permissions`
---
-ALTER TABLE `auth_group_permissions`
-ADD CONSTRAINT `auth_group__permission_id_132567775465881a_fk_auth_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`),
-ADD CONSTRAINT `auth_group_permission_group_id_2bfa217cea5bf405_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`);
-
---
--- Constraints for table `auth_permission`
---
-ALTER TABLE `auth_permission`
-ADD CONSTRAINT `auth_p_content_type_id_a9611576c345651_fk_django_content_type_id` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`);
-
---
--- Constraints for table `auth_user_groups`
---
-ALTER TABLE `auth_user_groups`
-ADD CONSTRAINT `auth_user_groups_group_id_85d6be0cf42bb39_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`),
-ADD CONSTRAINT `auth_user_groups_user_id_546a8fbd2abda362_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`);
-
---
--- Constraints for table `auth_user_user_permissions`
---
-ALTER TABLE `auth_user_user_permissions`
-ADD CONSTRAINT `auth_user_u_permission_id_7a6c48a75a04bbaa_fk_auth_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`),
-ADD CONSTRAINT `auth_user_user_permissio_user_id_6cb016c6baca028_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`);
-
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;