summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--__init__.py0
-rwxr-xr-xmanage.py11
-rw-r--r--patchtracker/models.py63
-rw-r--r--patchtracker/tests.py23
-rw-r--r--patchtracker/views.py1
-rw-r--r--settings.py87
-rw-r--r--urls.py19
8 files changed, 205 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index f58475c..45b9ab4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@ templates/*.py.bak
.*.swp
*.db
/localconfig.py
+/localsettings.py
/cache/
pts-index.json.gz
profile.out
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/__init__.py
diff --git a/manage.py b/manage.py
new file mode 100755
index 0000000..bcdd55e
--- /dev/null
+++ b/manage.py
@@ -0,0 +1,11 @@
+#!/usr/bin/python
+from django.core.management import execute_manager
+try:
+ import settings # Assumed to be in the same directory.
+except ImportError:
+ import sys
+ sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
+ sys.exit(1)
+
+if __name__ == "__main__":
+ execute_manager(settings)
diff --git a/patchtracker/models.py b/patchtracker/models.py
new file mode 100644
index 0000000..12bd76a
--- /dev/null
+++ b/patchtracker/models.py
@@ -0,0 +1,63 @@
+from django.db import models
+from django.contrib import admin
+
+class SourcePackage (models.Model):
+ name = models.CharField(max_length=1024)
+ version = models.CharField(max_length=1024)
+ format = models.CharField(max_length=64)
+ loc = models.CharField(max_length=4096)
+ diffgz_name = models.CharField(max_length=4096, null=True, blank=True)
+ diffgz_size = models.IntegerField(null=True, blank=True)
+ diffgz_md5sum = models.CharField(max_length=32, null=True, blank=True)
+ debtar_name = models.CharField(max_length=4096, null=True, blank=True)
+ debtar_size = models.IntegerField(null=True, blank=True)
+ debtar_md5sum = models.CharField(max_length=32, null=True, blank=True)
+ maintainer = models.CharField(max_length=1024)
+ uploaders = models.CharField(max_length=4096, null=True, blank=True)
+
+ def __unicode__( self ):
+ return "%s (%s)"%(self.name, self.version)
+
+ class Meta:
+ managed = False
+ db_table = 'packages'
+ unique_together = (('name','version'),)
+
+class RepositorySuite (models.Model):
+ name = models.CharField(max_length=1024, unique=True)
+
+ def __unicode__( self ):
+ return unicode(self.name)
+
+ class Meta:
+ managed = False
+ db_table = 'suites'
+
+class RepositoryComponent (models.Model):
+ name = models.CharField(max_length=1024, unique=True)
+
+ def __unicode__( self ):
+ return unicode(self.name)
+
+ class Meta:
+ managed = False
+ db_table = 'components'
+
+class SourcePackageMapping (models.Model):
+ rowid = models.AutoField(primary_key=True)
+ package = models.ForeignKey(SourcePackage)
+ suite = models.ForeignKey(RepositorySuite)
+ component = models.ForeignKey(RepositoryComponent)
+
+ def __unicode__( self ):
+ return "%s / %s / %s"%(unicode(self.package),unicode(self.suite),unicode(self.component))
+
+ class Meta:
+ managed = False
+ db_table = 'package_rel_map'
+ unique_together = (('package','suite','component'),)
+
+admin.site.register(SourcePackage)
+admin.site.register(RepositorySuite)
+admin.site.register(RepositoryComponent)
+admin.site.register(SourcePackageMapping)
diff --git a/patchtracker/tests.py b/patchtracker/tests.py
new file mode 100644
index 0000000..2247054
--- /dev/null
+++ b/patchtracker/tests.py
@@ -0,0 +1,23 @@
+"""
+This file demonstrates two different styles of tests (one doctest and one
+unittest). These will both pass when you run "manage.py test".
+
+Replace these with more appropriate tests for your application.
+"""
+
+from django.test import TestCase
+
+class SimpleTest(TestCase):
+ def test_basic_addition(self):
+ """
+ Tests that 1 + 1 always equals 2.
+ """
+ self.failUnlessEqual(1 + 1, 2)
+
+__test__ = {"doctest": """
+Another way to test that 1 + 1 is equal to 2.
+
+>>> 1 + 1 == 2
+True
+"""}
+
diff --git a/patchtracker/views.py b/patchtracker/views.py
new file mode 100644
index 0000000..60f00ef
--- /dev/null
+++ b/patchtracker/views.py
@@ -0,0 +1 @@
+# Create your views here.
diff --git a/settings.py b/settings.py
new file mode 100644
index 0000000..65cbea0
--- /dev/null
+++ b/settings.py
@@ -0,0 +1,87 @@
+# Django settings for debianpatchtracker project.
+
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+ # ('Your Name', 'your_email@domain.com'),
+)
+
+MANAGERS = ADMINS
+
+DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+DATABASE_NAME = 'pt.db' # Or path to database file if using sqlite3.
+DATABASE_USER = '' # Not used with sqlite3.
+DATABASE_PASSWORD = '' # Not used with sqlite3.
+DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
+DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
+
+# 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.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'America/Chicago'
+
+# 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
+
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = ''
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash if there is a path component (optional in other cases).
+# Examples: "http://media.lawrence.com", "http://example.com/media/"
+MEDIA_URL = ''
+
+# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
+# trailing slash.
+# Examples: "http://foo.com/media/", "/media/".
+ADMIN_MEDIA_PREFIX = '/media/'
+
+# Make this unique, and don't share it with anybody.
+# set in non-versioned localsettings.py
+#SECRET_KEY = ''
+
+# List of callables that know how to import templates from various sources.
+TEMPLATE_LOADERS = (
+ 'django.template.loaders.filesystem.load_template_source',
+ 'django.template.loaders.app_directories.load_template_source',
+# 'django.template.loaders.eggs.load_template_source',
+)
+
+MIDDLEWARE_CLASSES = (
+ 'django.middleware.common.CommonMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+)
+
+ROOT_URLCONF = 'urls'
+
+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.
+)
+
+INSTALLED_APPS = (
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.sites',
+ 'django.contrib.admin',
+ 'patchtracker'
+)
+
+try:
+ from localsettings import *
+except ImportError:
+ pass
diff --git a/urls.py b/urls.py
new file mode 100644
index 0000000..7ee9c67
--- /dev/null
+++ b/urls.py
@@ -0,0 +1,19 @@
+from django.conf.urls.defaults import *
+from django.contrib import admin
+admin.autodiscover()
+
+# Uncomment the next two lines to enable the admin:
+# from django.contrib import admin
+# admin.autodiscover()
+
+urlpatterns = patterns('',
+ # Example:
+ # (r'^debianpatchtracker/', include('debianpatchtracker.foo.urls')),
+
+ # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
+ # to INSTALLED_APPS to enable admin documentation:
+ # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
+
+ # Uncomment the next line to enable the admin:
+ (r'^admin/', include(admin.site.urls)),
+)