diff options
195 files changed, 2944 insertions, 24516 deletions
@@ -37,7 +37,6 @@ packages, you will probably want the following: - django - python2-psycopg2 - python2-markdown -- python2-south - python2-memcached # Testing Installation diff --git a/__init__.py b/__init__.py deleted file mode 100644 index e69de29b..00000000 --- a/__init__.py +++ /dev/null diff --git a/archweb.wsgi b/archweb.wsgi index f8de2b49..a0d969e7 100644 --- a/archweb.wsgi +++ b/archweb.wsgi @@ -30,8 +30,8 @@ try: except ImportError: pass -import django.core.handlers.wsgi -application = django.core.handlers.wsgi.WSGIHandler() +from django.core.wsgi import get_wsgi_application +application = get_wsgi_application() if using_newrelic: application = newrelic.agent.wsgi_application()(application) diff --git a/devel/fields.py b/devel/fields.py index 606ca63c..dd22a92e 100644 --- a/devel/fields.py +++ b/devel/fields.py @@ -3,8 +3,6 @@ from django.core.validators import RegexValidator class PGPKeyField(models.CharField): - _south_introspects = True - def __init__(self, *args, **kwargs): super(PGPKeyField, self).__init__(*args, **kwargs) self.validators.append(RegexValidator(r'^[0-9A-F]{40}$', diff --git a/devel/forms.py b/devel/forms.py index 7f7c281e..d953c614 100644 --- a/devel/forms.py +++ b/devel/forms.py @@ -1,4 +1,5 @@ import random +from collections import OrderedDict from string import ascii_letters, digits from django import forms @@ -52,13 +53,16 @@ class NewUserForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(NewUserForm, self).__init__(*args, **kwargs) - # Hack ourself so certain fields appear first. self.fields is a - # SortedDict object where we can manipulate the keyOrder list. - order = self.fields.keyOrder - keys = ('username', 'private_email', 'first_name', 'last_name') - for key in reversed(keys): - order.remove(key) - order.insert(0, key) + # Hack ourself so certain fields appear first + old = self.fields + self.fields = OrderedDict() + keys = ('username', 'private_email', 'first_name', 'last_name', + 'alias', 'public_email') + for key in keys: + self.fields[key] = old[key] + for key, val in old.items(): + if key not in keys: + self.fields[key] = old[key] def clean_username(self): username = self.cleaned_data['username'] diff --git a/devel/migrations/0001_initial.py b/devel/migrations/0001_initial.py index c28fc20f..3dd3582b 100644 --- a/devel/migrations/0001_initial.py +++ b/devel/migrations/0001_initial.py @@ -1,18 +1,101 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models +# -*- coding: utf-8 -*- +from __future__ import unicode_literals +import pytz -class Migration(SchemaMigration): +from django.db import models, migrations +import django_countries.fields +import django.db.models.deletion +from django.conf import settings +import devel.fields - def forwards(self, orm): - pass +class Migration(migrations.Migration): - def backwards(self, orm): - pass + dependencies = [ + ('main', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] - - models = {} - - complete_apps = ['devel'] + operations = [ + migrations.CreateModel( + name='DeveloperKey', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('key', devel.fields.PGPKeyField(unique=True, max_length=40, verbose_name=b'PGP key fingerprint')), + ('created', models.DateTimeField()), + ('expires', models.DateTimeField(null=True, blank=True)), + ('revoked', models.DateTimeField(null=True, blank=True)), + ('owner', models.ForeignKey(related_name=b'all_keys', to=settings.AUTH_USER_MODEL, help_text=b'The developer this key belongs to', null=True)), + ('parent', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, to='devel.DeveloperKey', null=True)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='MasterKey', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('pgp_key', devel.fields.PGPKeyField(help_text=b'consists of 40 hex digits; use `gpg --fingerprint`', max_length=40, verbose_name=b'PGP key fingerprint')), + ('created', models.DateField()), + ('revoked', models.DateField(null=True, blank=True)), + ('owner', models.ForeignKey(related_name=b'masterkey_owner', to=settings.AUTH_USER_MODEL, help_text=b'The developer holding this master key')), + ('revoker', models.ForeignKey(related_name=b'masterkey_revoker', to=settings.AUTH_USER_MODEL, help_text=b'The developer holding the revocation certificate')), + ], + options={ + 'ordering': ('created',), + 'get_latest_by': 'created', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='PGPSignature', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('signer', devel.fields.PGPKeyField(max_length=40, verbose_name=b'Signer key fingerprint', db_index=True)), + ('signee', devel.fields.PGPKeyField(max_length=40, verbose_name=b'Signee key fingerprint', db_index=True)), + ('created', models.DateField()), + ('expires', models.DateField(null=True, blank=True)), + ('revoked', models.DateField(null=True, blank=True)), + ], + options={ + 'ordering': ('signer', 'signee'), + 'get_latest_by': 'created', + 'verbose_name': 'PGP signature', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='UserProfile', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('notify', models.BooleanField(default=True, help_text=b"When enabled, send user 'flag out-of-date' notifications", verbose_name=b'Send notifications')), + ('time_zone', models.CharField(default=b'UTC', help_text=b'Used for developer clock page', max_length=100, choices=[(z, z) for z in pytz.common_timezones])), + ('alias', models.CharField(help_text=b'Required field', max_length=50)), + ('public_email', models.CharField(help_text=b'Required field', max_length=50)), + ('other_contact', models.CharField(max_length=100, null=True, blank=True)), + ('pgp_key', devel.fields.PGPKeyField(help_text=b'consists of 40 hex digits; use `gpg --fingerprint`', max_length=40, null=True, verbose_name=b'PGP key fingerprint', blank=True)), + ('website', models.CharField(max_length=200, null=True, blank=True)), + ('yob', models.IntegerField(null=True, verbose_name=b'Year of birth', blank=True)), + ('country', django_countries.fields.CountryField(blank=True, max_length=2)), + ('location', models.CharField(max_length=50, null=True, blank=True)), + ('languages', models.CharField(max_length=50, null=True, blank=True)), + ('interests', models.CharField(max_length=255, null=True, blank=True)), + ('occupation', models.CharField(max_length=50, null=True, blank=True)), + ('roles', models.CharField(max_length=255, null=True, blank=True)), + ('favorite_distros', models.CharField(max_length=255, null=True, blank=True)), + ('picture', models.FileField(default=b'devs/silhouette.png', help_text=b'Ideally 125px by 125px', upload_to=b'devs')), + ('latin_name', models.CharField(help_text=b'Latin-form name; used only for non-Latin full names', max_length=255, null=True, blank=True)), + ('last_modified', models.DateTimeField(editable=False)), + ('allowed_repos', models.ManyToManyField(to='main.Repo', blank=True)), + ('user', models.OneToOneField(related_name=b'userprofile', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'get_latest_by': 'last_modified', + 'verbose_name': 'additional profile data', + 'verbose_name_plural': 'additional profile data', + 'db_table': 'user_profiles', + }, + bases=(models.Model,), + ), + ] diff --git a/devel/migrations/0002_auto__add_masterkey.py b/devel/migrations/0002_auto__add_masterkey.py deleted file mode 100644 index ba9a3e5f..00000000 --- a/devel/migrations/0002_auto__add_masterkey.py +++ /dev/null @@ -1,76 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - depends_on = ( - ("main", "0051_auto__chg_field_userprofile_pgp_key"), - ) - - def forwards(self, orm): - # Adding model 'MasterKey' - db.create_table('devel_masterkey', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='masterkey_owner', to=orm['auth.User'])), - ('revoker', self.gf('django.db.models.fields.related.ForeignKey')(related_name='masterkey_revoker', to=orm['auth.User'])), - ('pgp_key', self.gf('devel.fields.PGPKeyField')(max_length=40)), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('revoked', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), - )) - db.send_create_signal('devel', ['MasterKey']) - - def backwards(self, orm): - db.delete_table('devel_masterkey') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'devel.masterkey': { - 'Meta': {'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': "orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': "orm['auth.User']"}) - } - } - - complete_apps = ['devel'] diff --git a/devel/migrations/0003_auto__add_pgpsignature.py b/devel/migrations/0003_auto__add_pgpsignature.py deleted file mode 100644 index e16de1ca..00000000 --- a/devel/migrations/0003_auto__add_pgpsignature.py +++ /dev/null @@ -1,81 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_table('devel_pgpsignature', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('signer', self.gf('devel.fields.PGPKeyField')(max_length=40)), - ('signee', self.gf('devel.fields.PGPKeyField')(max_length=40)), - ('created', self.gf('django.db.models.fields.DateField')()), - ('expires', self.gf('django.db.models.fields.DateField')(null=True)), - ('valid', self.gf('django.db.models.fields.BooleanField')(default=True)), - )) - db.send_create_signal('devel', ['PGPSignature']) - - - def backwards(self, orm): - db.delete_table('devel_pgpsignature') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'devel.masterkey': { - 'Meta': {'ordering': "('created',)", 'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': "orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': "orm['auth.User']"}) - }, - 'devel.pgpsignature': { - 'Meta': {'object_name': 'PGPSignature'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'expires': ('django.db.models.fields.DateField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'signee': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'signer': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - } - } - - complete_apps = ['devel'] diff --git a/devel/migrations/0004_masterkey_dates.py b/devel/migrations/0004_masterkey_dates.py deleted file mode 100644 index f2020dd7..00000000 --- a/devel/migrations/0004_masterkey_dates.py +++ /dev/null @@ -1,74 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('devel_masterkey', 'revoked', self.gf('django.db.models.fields.DateField')(null=True)) - db.alter_column('devel_masterkey', 'created', self.gf('django.db.models.fields.DateField')()) - - def backwards(self, orm): - db.alter_column('devel_masterkey', 'revoked', self.gf('django.db.models.fields.DateTimeField')(null=True)) - db.alter_column('devel_masterkey', 'created', self.gf('django.db.models.fields.DateTimeField')()) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'devel.masterkey': { - 'Meta': {'ordering': "('created',)", 'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': "orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': "orm['auth.User']"}) - }, - 'devel.pgpsignature': { - 'Meta': {'object_name': 'PGPSignature'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'expires': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'signee': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'signer': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - } - } - - complete_apps = ['devel'] diff --git a/devel/migrations/0005_auto__add_userprofile.py b/devel/migrations/0005_auto__add_userprofile.py deleted file mode 100644 index ff6f9785..00000000 --- a/devel/migrations/0005_auto__add_userprofile.py +++ /dev/null @@ -1,113 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - depends_on = ( - ('main', '0059_auto__del_userprofile'), - ) - - def forwards(self, orm): - if not db.dry_run: - db.send_create_signal('devel', ['UserProfile']) - orm['contenttypes.ContentType'].objects.filter( - app_label='main', model='userprofile').update( - app_label='devel') - - def backwards(self, orm): - pass - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'devel.masterkey': { - 'Meta': {'ordering': "('created',)", 'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': "orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': "orm['auth.User']"}) - }, - 'devel.pgpsignature': { - 'Meta': {'object_name': 'PGPSignature'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'expires': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'signee': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'signer': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'devel.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'latin_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['devel'] diff --git a/devel/migrations/0006_auto__add_field_userprofile_country.py b/devel/migrations/0006_auto__add_field_userprofile_country.py deleted file mode 100644 index 1b3b182c..00000000 --- a/devel/migrations/0006_auto__add_field_userprofile_country.py +++ /dev/null @@ -1,107 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('user_profiles', 'country', - self.gf('django_countries.fields.CountryField')(default='', max_length=2, blank=True), - keep_default=True) - - def backwards(self, orm): - db.delete_column('user_profiles', 'country') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'devel.masterkey': { - 'Meta': {'ordering': "('created',)", 'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': "orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': "orm['auth.User']"}) - }, - 'devel.pgpsignature': { - 'Meta': {'object_name': 'PGPSignature'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'expires': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'signee': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'signer': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'devel.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'latin_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['devel'] diff --git a/devel/migrations/0007_auto_assign_countries.py b/devel/migrations/0007_auto_assign_countries.py deleted file mode 100644 index 2bad95a2..00000000 --- a/devel/migrations/0007_auto_assign_countries.py +++ /dev/null @@ -1,157 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - # This is by no means an exhaustive list, but covered most of the time - # zones selected by existing developers at the time I wrote this - # migration. - tz_map = { - 'America/Argentina/Buenos_Aires': 'AR', - 'America/Chicago': 'US', - 'America/Los_Angeles': 'US', - 'America/Maceio': 'BR', - 'America/Montreal': 'CA', - 'America/New_York': 'US', - 'America/Puerto_Rico': 'PR', - 'America/Sao_Paulo': 'BR', - 'America/Toronto': 'CA', - 'America/Vancouver': 'CA', - 'Asia/Kolkata': 'IN', - 'Asia/Singapore': 'SG', - 'Australia/Brisbane': 'AU', - 'Australia/Melbourne': 'AU', - 'Australia/Sydney': 'AU', - 'Canada/Central': 'CA', - 'Canada/Eastern': 'CA', - 'Europe/Amsterdam': 'NL', - 'Europe/Athens': 'GR', - 'Europe/Berlin': 'DE', - 'Europe/Brussels': 'BE', - 'Europe/Bucharest': 'RO', - 'Europe/Budapest': 'HU', - 'Europe/Copenhagen': 'DK', - 'Europe/Dublin': 'IE', - 'Europe/Helsinki': 'FI', - 'Europe/Kiev': 'UA', - 'Europe/London': 'GB', - 'Europe/Madrid': 'ES', - 'Europe/Moscow': 'RU', - 'Europe/Oslo': 'NO', - 'Europe/Paris': 'FR', - 'Europe/Prague': 'CZ', - 'Europe/Rome': 'IT', - 'Europe/Vienna': 'AT', - 'Europe/Warsaw': 'PL', - 'Europe/Zurich': 'CH', - 'Pacific/Auckland': 'NZ', - 'US/Central': 'US', - 'US/Eastern': 'US', - 'US/Mountain': 'US', - 'US/Pacific': 'US', - } - empty_loc = models.Q(location__isnull=True) | models.Q(location='') - for tz, code in tz_map.items(): - orm.UserProfile.objects.filter(time_zone=tz, country='').exclude( - empty_loc).update(country=code) - - - def backwards(self, orm): - pass - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'devel.masterkey': { - 'Meta': {'ordering': "('created',)", 'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': "orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': "orm['auth.User']"}) - }, - 'devel.pgpsignature': { - 'Meta': {'object_name': 'PGPSignature'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'expires': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'signee': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'signer': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'devel.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'latin_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['devel'] - symmetrical = True diff --git a/devel/migrations/0008_auto__add_field_userprofile_last_modified.py b/devel/migrations/0008_auto__add_field_userprofile_last_modified.py deleted file mode 100644 index 08972e1b..00000000 --- a/devel/migrations/0008_auto__add_field_userprofile_last_modified.py +++ /dev/null @@ -1,110 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models -from pytz import utc - - -class Migration(SchemaMigration): - def forwards(self, orm): - default = datetime.datetime(2000, 1, 1, 0, 0).replace(tzinfo=utc) - db.add_column('user_profiles', 'last_modified', - self.gf('django.db.models.fields.DateTimeField')(default=default), - keep_default=False) - - def backwards(self, orm): - db.delete_column('user_profiles', 'last_modified') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'devel.masterkey': { - 'Meta': {'ordering': "('created',)", 'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': "orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': "orm['auth.User']"}) - }, - 'devel.pgpsignature': { - 'Meta': {'object_name': 'PGPSignature'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'expires': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'signee': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'signer': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'devel.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'latin_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['devel'] diff --git a/devel/migrations/0009_auto__add_developerkey.py b/devel/migrations/0009_auto__add_developerkey.py deleted file mode 100644 index 60d3f7b8..00000000 --- a/devel/migrations/0009_auto__add_developerkey.py +++ /dev/null @@ -1,126 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_table('devel_developerkey', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('owner', self.gf('django.db.models.fields.related.ForeignKey')(related_name='all_keys', null=True, to=orm['auth.User'])), - ('key', self.gf('devel.fields.PGPKeyField')(unique=True, max_length=40)), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('expires', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), - ('revoked', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), - ('parent', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['devel.DeveloperKey'], null=True, on_delete=models.SET_NULL)), - )) - db.send_create_signal('devel', ['DeveloperKey']) - - def backwards(self, orm): - db.delete_table('devel_developerkey') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'devel.developerkey': { - 'Meta': {'object_name': 'DeveloperKey'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'key': ('devel.fields.PGPKeyField', [], {'unique': 'True', 'max_length': '40'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_keys'", 'null': 'True', 'to': "orm['auth.User']"}), - 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['devel.DeveloperKey']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}) - }, - 'devel.masterkey': { - 'Meta': {'ordering': "('created',)", 'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': "orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': "orm['auth.User']"}) - }, - 'devel.pgpsignature': { - 'Meta': {'ordering': "('signer', 'signee')", 'object_name': 'PGPSignature'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'expires': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'signee': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'signer': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'devel.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'latin_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['devel'] diff --git a/devel/migrations/0010_auto__add_index_pgpsignature_signee__add_index_pgpsignature_signer.py b/devel/migrations/0010_auto__add_index_pgpsignature_signee__add_index_pgpsignature_signer.py deleted file mode 100644 index 55f8c800..00000000 --- a/devel/migrations/0010_auto__add_index_pgpsignature_signee__add_index_pgpsignature_signer.py +++ /dev/null @@ -1,119 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_index(u'devel_pgpsignature', ['signee']) - db.create_index(u'devel_pgpsignature', ['signer']) - - def backwards(self, orm): - db.delete_index(u'devel_pgpsignature', ['signer']) - db.delete_index(u'devel_pgpsignature', ['signee']) - - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - u'devel.developerkey': { - 'Meta': {'object_name': 'DeveloperKey'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'key': ('devel.fields.PGPKeyField', [], {'unique': 'True', 'max_length': '40'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_keys'", 'null': 'True', 'to': u"orm['auth.User']"}), - 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['devel.DeveloperKey']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}) - }, - u'devel.masterkey': { - 'Meta': {'ordering': "('created',)", 'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': u"orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': u"orm['auth.User']"}) - }, - u'devel.pgpsignature': { - 'Meta': {'ordering': "('signer', 'signee')", 'object_name': 'PGPSignature'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'expires': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'signee': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'db_index': 'True'}), - 'signer': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'db_index': 'True'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - u'devel.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'latin_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': u"orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - }, - u'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['devel'] diff --git a/devel/migrations/0011_auto__del_field_pgpsignature_valid__add_field_pgpsignature_revoked.py b/devel/migrations/0011_auto__del_field_pgpsignature_valid__add_field_pgpsignature_revoked.py deleted file mode 100644 index a2df917f..00000000 --- a/devel/migrations/0011_auto__del_field_pgpsignature_valid__add_field_pgpsignature_revoked.py +++ /dev/null @@ -1,125 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.delete_column(u'devel_pgpsignature', 'valid') - db.add_column(u'devel_pgpsignature', 'revoked', - self.gf('django.db.models.fields.DateField')(null=True, blank=True), - keep_default=False) - - - def backwards(self, orm): - db.add_column(u'devel_pgpsignature', 'valid', - self.gf('django.db.models.fields.BooleanField')(default=True), - keep_default=True) - db.delete_column(u'devel_pgpsignature', 'revoked') - - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - u'devel.developerkey': { - 'Meta': {'object_name': 'DeveloperKey'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'expires': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'key': ('devel.fields.PGPKeyField', [], {'unique': 'True', 'max_length': '40'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_keys'", 'null': 'True', 'to': u"orm['auth.User']"}), - 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['devel.DeveloperKey']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}) - }, - u'devel.masterkey': { - 'Meta': {'ordering': "('created',)", 'object_name': 'MasterKey'}, - 'created': ('django.db.models.fields.DateField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_owner'", 'to': u"orm['auth.User']"}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40'}), - 'revoked': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'revoker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'masterkey_revoker'", 'to': u"orm['auth.User']"}) - }, - u'devel.pgpsignature': { - 'Meta': {'ordering': "('signer', 'signee')", 'object_name': 'PGPSignature'}, - 'created': ('django.db.models.fields.DateField', [], {}), - 'expires': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'revoked': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), - 'signee': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'db_index': 'True'}), - 'signer': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'db_index': 'True'}) - }, - u'devel.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'latin_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': u"orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - }, - u'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['devel'] diff --git a/devel/views.py b/devel/views.py index 972d0abb..92cb098e 100644 --- a/devel/views.py +++ b/devel/views.py @@ -5,6 +5,7 @@ import time from django.http import HttpResponseRedirect from django.contrib.auth.decorators import \ login_required, permission_required, user_passes_test +from django.contrib import admin from django.contrib.admin.models import LogEntry, ADDITION from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType @@ -259,6 +260,7 @@ def admin_log(request, username=None): 'title': "Admin Action Log", 'log_user': user, } + context.update(admin.site.each_context()) return render(request, 'devel/admin_log.html', context) # vim: set ts=4 sw=4 et: diff --git a/main/fields.py b/main/fields.py index 2d5703ef..53494772 100644 --- a/main/fields.py +++ b/main/fields.py @@ -2,8 +2,6 @@ from django.db import models class PositiveBigIntegerField(models.BigIntegerField): - _south_introspects = True - def get_internal_type(self): return "BigIntegerField" diff --git a/main/migrations/0001_initial.py b/main/migrations/0001_initial.py index bc8bb492..8349d4b9 100644 --- a/main/migrations/0001_initial.py +++ b/main/migrations/0001_initial.py @@ -1,440 +1,119 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models +# -*- coding: utf-8 -*- +from __future__ import unicode_literals -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding model 'PackageDepend' - db.create_table('package_depends', ( - ('id', orm['main.PackageDepend:id']), - ('pkg', orm['main.PackageDepend:pkg']), - ('depname', orm['main.PackageDepend:depname']), - ('depvcmp', orm['main.PackageDepend:depvcmp']), - )) - db.send_create_signal('main', ['PackageDepend']) - - # Adding model 'Press' - db.create_table('press', ( - ('id', orm['main.Press:id']), - ('name', orm['main.Press:name']), - ('url', orm['main.Press:url']), - )) - db.send_create_signal('main', ['Press']) - - # Adding model 'MirrorUrl' - db.create_table('main_mirrorurl', ( - ('id', orm['main.MirrorUrl:id']), - ('url', orm['main.MirrorUrl:url']), - ('protocol', orm['main.MirrorUrl:protocol']), - ('mirror', orm['main.MirrorUrl:mirror']), - )) - db.send_create_signal('main', ['MirrorUrl']) - - # Adding model 'MirrorRsync' - db.create_table('main_mirrorrsync', ( - ('id', orm['main.MirrorRsync:id']), - ('hostname', orm['main.MirrorRsync:hostname']), - ('ip', orm['main.MirrorRsync:ip']), - ('mirror', orm['main.MirrorRsync:mirror']), - )) - db.send_create_signal('main', ['MirrorRsync']) - - # Adding model 'AltForum' - db.create_table('alt_forums', ( - ('id', orm['main.AltForum:id']), - ('language', orm['main.AltForum:language']), - ('url', orm['main.AltForum:url']), - ('name', orm['main.AltForum:name']), - )) - db.send_create_signal('main', ['AltForum']) - - # Adding model 'Signoff' - db.create_table('main_signoff', ( - ('id', orm['main.Signoff:id']), - ('pkg', orm['main.Signoff:pkg']), - ('pkgver', orm['main.Signoff:pkgver']), - ('pkgrel', orm['main.Signoff:pkgrel']), - ('packager', orm['main.Signoff:packager']), - )) - db.send_create_signal('main', ['Signoff']) - - # Adding model 'UserProfile' - db.create_table('user_profiles', ( - ('id', orm['main.UserProfile:id']), - ('notify', orm['main.UserProfile:notify']), - ('alias', orm['main.UserProfile:alias']), - ('public_email', orm['main.UserProfile:public_email']), - ('other_contact', orm['main.UserProfile:other_contact']), - ('website', orm['main.UserProfile:website']), - ('yob', orm['main.UserProfile:yob']), - ('location', orm['main.UserProfile:location']), - ('languages', orm['main.UserProfile:languages']), - ('interests', orm['main.UserProfile:interests']), - ('occupation', orm['main.UserProfile:occupation']), - ('roles', orm['main.UserProfile:roles']), - ('favorite_distros', orm['main.UserProfile:favorite_distros']), - ('picture', orm['main.UserProfile:picture']), - ('user', orm['main.UserProfile:user']), - )) - db.send_create_signal('main', ['UserProfile']) - - # Adding model 'Arch' - db.create_table('arches', ( - ('id', orm['main.Arch:id']), - ('name', orm['main.Arch:name']), - )) - db.send_create_signal('main', ['Arch']) - - # Adding model 'PackageFile' - db.create_table('package_files', ( - ('id', orm['main.PackageFile:id']), - ('pkg', orm['main.PackageFile:pkg']), - ('path', orm['main.PackageFile:path']), - )) - db.send_create_signal('main', ['PackageFile']) - - # Adding model 'Todolist' - db.create_table('todolists', ( - ('id', orm['main.Todolist:id']), - ('creator', orm['main.Todolist:creator']), - ('name', orm['main.Todolist:name']), - ('description', orm['main.Todolist:description']), - ('date_added', orm['main.Todolist:date_added']), - )) - db.send_create_signal('main', ['Todolist']) - - # Adding model 'TodolistPkg' - db.create_table('todolist_pkgs', ( - ('id', orm['main.TodolistPkg:id']), - ('list', orm['main.TodolistPkg:list']), - ('pkg', orm['main.TodolistPkg:pkg']), - ('complete', orm['main.TodolistPkg:complete']), - )) - db.send_create_signal('main', ['TodolistPkg']) - - # Adding model 'Donor' - db.create_table('donors', ( - ('id', orm['main.Donor:id']), - ('name', orm['main.Donor:name']), - )) - db.send_create_signal('main', ['Donor']) - - # Adding model 'Package' - db.create_table('packages', ( - ('id', orm['main.Package:id']), - ('repo', orm['main.Package:repo']), - ('arch', orm['main.Package:arch']), - ('maintainer', orm['main.Package:maintainer']), - ('needupdate', orm['main.Package:needupdate']), - ('pkgname', orm['main.Package:pkgname']), - ('pkgbase', orm['main.Package:pkgbase']), - ('pkgver', orm['main.Package:pkgver']), - ('pkgrel', orm['main.Package:pkgrel']), - ('pkgdesc', orm['main.Package:pkgdesc']), - ('url', orm['main.Package:url']), - ('last_update', orm['main.Package:last_update']), - ('license', orm['main.Package:license']), - )) - db.send_create_signal('main', ['Package']) - - # Adding model 'Repo' - db.create_table('repos', ( - ('id', orm['main.Repo:id']), - ('name', orm['main.Repo:name']), - )) - db.send_create_signal('main', ['Repo']) - - # Adding model 'Mirror' - db.create_table('main_mirror', ( - ('id', orm['main.Mirror:id']), - ('name', orm['main.Mirror:name']), - ('country', orm['main.Mirror:country']), - ('admin_email', orm['main.Mirror:admin_email']), - ('notes', orm['main.Mirror:notes']), - ('public', orm['main.Mirror:public']), - ('active', orm['main.Mirror:active']), - ('isos', orm['main.Mirror:isos']), - )) - db.send_create_signal('main', ['Mirror']) - - # Adding model 'MirrorProtocol' - db.create_table('main_mirrorprotocol', ( - ('id', orm['main.MirrorProtocol:id']), - ('protocol', orm['main.MirrorProtocol:protocol']), - )) - db.send_create_signal('main', ['MirrorProtocol']) - - # Adding model 'ExternalProject' - db.create_table('main_externalproject', ( - ('id', orm['main.ExternalProject:id']), - ('url', orm['main.ExternalProject:url']), - ('name', orm['main.ExternalProject:name']), - ('description', orm['main.ExternalProject:description']), - )) - db.send_create_signal('main', ['ExternalProject']) - - # Adding model 'News' - db.create_table('news', ( - ('id', orm['main.News:id']), - ('author', orm['main.News:author']), - ('postdate', orm['main.News:postdate']), - ('title', orm['main.News:title']), - ('content', orm['main.News:content']), - )) - db.send_create_signal('main', ['News']) - - # Adding ManyToManyField 'UserProfile.allowed_repos' - db.create_table('user_profiles_allowed_repos', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('userprofile', models.ForeignKey(orm.UserProfile, null=False)), - ('repo', models.ForeignKey(orm.Repo, null=False)) - )) - - # Creating unique_together for [list, pkg] on TodolistPkg. - db.create_unique('todolist_pkgs', ['list_id', 'pkg_id']) - - - - def backwards(self, orm): - - # Deleting unique_together for [list, pkg] on TodolistPkg. - db.delete_unique('todolist_pkgs', ['list_id', 'pkg_id']) - - # Deleting model 'PackageDepend' - db.delete_table('package_depends') - - # Deleting model 'Press' - db.delete_table('press') - - # Deleting model 'MirrorUrl' - db.delete_table('main_mirrorurl') - - # Deleting model 'MirrorRsync' - db.delete_table('main_mirrorrsync') - - # Deleting model 'AltForum' - db.delete_table('alt_forums') - - # Deleting model 'Signoff' - db.delete_table('main_signoff') - - # Deleting model 'UserProfile' - db.delete_table('user_profiles') - - # Deleting model 'Arch' - db.delete_table('arches') - - # Deleting model 'PackageFile' - db.delete_table('package_files') - - # Deleting model 'Todolist' - db.delete_table('todolists') - - # Deleting model 'TodolistPkg' - db.delete_table('todolist_pkgs') - - # Deleting model 'Donor' - db.delete_table('donors') - - # Deleting model 'Package' - db.delete_table('packages') - - # Deleting model 'Repo' - db.delete_table('repos') - - # Deleting model 'Mirror' - db.delete_table('main_mirror') - - # Deleting model 'MirrorProtocol' - db.delete_table('main_mirrorprotocol') - - # Deleting model 'ExternalProject' - db.delete_table('main_externalproject') - - # Deleting model 'News' - db.delete_table('news') - - # Dropping ManyToManyField 'UserProfile.allowed_repos' - db.delete_table('user_profiles_allowed_repos') - - - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'maintained_packages'", 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] +from django.db import models, migrations +import main.fields +import django.db.models.deletion +from django.conf import settings + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Arch', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=255)), + ('agnostic', models.BooleanField(default=False, help_text=b'Is this architecture non-platform specific?')), + ('required_signoffs', models.PositiveIntegerField(default=2, help_text=b'Number of signoffs required for packages of this architecture')), + ], + options={ + 'ordering': ('name',), + 'db_table': 'arches', + 'verbose_name_plural': 'arches', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Donor', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=255)), + ('visible', models.BooleanField(default=True, help_text=b'Should we show this donor on the public page?')), + ('created', models.DateTimeField()), + ], + options={ + 'ordering': ('name',), + 'db_table': 'donors', + 'get_latest_by': 'created', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Package', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('pkgname', models.CharField(max_length=255)), + ('pkgbase', models.CharField(max_length=255, db_index=True)), + ('pkgver', models.CharField(max_length=255)), + ('pkgrel', models.CharField(max_length=255)), + ('epoch', models.PositiveIntegerField(default=0)), + ('pkgdesc', models.TextField(null=True, verbose_name=b'description')), + ('url', models.CharField(max_length=255, null=True, verbose_name=b'URL')), + ('filename', models.CharField(max_length=255)), + ('compressed_size', main.fields.PositiveBigIntegerField()), + ('installed_size', main.fields.PositiveBigIntegerField()), + ('build_date', models.DateTimeField(null=True)), + ('last_update', models.DateTimeField(db_index=True)), + ('files_last_update', models.DateTimeField(null=True, blank=True)), + ('created', models.DateTimeField()), + ('packager_str', models.CharField(max_length=255, verbose_name=b'packager string')), + ('signature_bytes', models.BinaryField(verbose_name=b'PGP signature', null=True)), + ('flag_date', models.DateTimeField(null=True, blank=True)), + ('arch', models.ForeignKey(related_name=b'packages', on_delete=django.db.models.deletion.PROTECT, to='main.Arch')), + ('packager', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, blank=True, to=settings.AUTH_USER_MODEL, null=True)), + ], + options={ + 'ordering': ('pkgname',), + 'db_table': 'packages', + 'get_latest_by': 'last_update', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='PackageFile', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('is_directory', models.BooleanField(default=False)), + ('directory', models.CharField(max_length=1024)), + ('filename', models.CharField(max_length=1024, null=True, blank=True)), + ('pkg', models.ForeignKey(to='main.Package')), + ], + options={ + 'db_table': 'package_files', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Repo', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=255)), + ('testing', models.BooleanField(default=False, help_text=b'Is this repo meant for package testing?')), + ('staging', models.BooleanField(default=False, help_text=b'Is this repo meant for package staging?')), + ('bugs_project', models.SmallIntegerField(default=1, help_text=b'Flyspray project ID for this repository.')), + ('bugs_category', models.SmallIntegerField(default=2, help_text=b'Flyspray category ID for this repository.')), + ('svn_root', models.CharField(help_text=b'SVN root (e.g. path) for this repository.', max_length=64)), + ], + options={ + 'ordering': ('name',), + 'db_table': 'repos', + }, + bases=(models.Model,), + ), + migrations.AddField( + model_name='package', + name='repo', + field=models.ForeignKey(related_name=b'packages', on_delete=django.db.models.deletion.PROTECT, to='main.Repo'), + preserve_default=True, + ), + migrations.AlterUniqueTogether( + name='package', + unique_together=set([('pkgname', 'repo', 'arch')]), + ), + ] diff --git a/main/migrations/0002_make_maintainer_nullable.py b/main/migrations/0002_make_maintainer_nullable.py deleted file mode 100644 index 675635df..00000000 --- a/main/migrations/0002_make_maintainer_nullable.py +++ /dev/null @@ -1,190 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('packages', 'maintainer_id', orm['main.package:maintainer']) - - def backwards(self, orm): - db.alter_column('packages', 'maintainer_id', orm['main.package:maintainer']) - - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0003_migrate_maintainer.py b/main/migrations/0003_migrate_maintainer.py deleted file mode 100644 index 4169a5c9..00000000 --- a/main/migrations/0003_migrate_maintainer.py +++ /dev/null @@ -1,193 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - orm.Package.objects.filter(maintainer=0).update(maintainer=None) - - - def backwards(self, orm): - # This will fail if foreign keys are in effect. Let's hope we'll - # never have to go backwards. :P - orm.Package.objects.filter(maintainer=None).update(maintainer=0) - - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0004_add_pkgname_index.py b/main/migrations/0004_add_pkgname_index.py deleted file mode 100644 index 6e23adac..00000000 --- a/main/migrations/0004_add_pkgname_index.py +++ /dev/null @@ -1,193 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('packages', 'maintainer_id', orm['main.package:maintainer']) - db.create_index('packages', ['pkgname']) - - - def backwards(self, orm): - db.alter_column('packages', 'maintainer_id', orm['main.package:maintainer']) - db.delete_index('packages', ['pkgname']) - - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0005_fix_empty_url_pkgdesc.py b/main/migrations/0005_fix_empty_url_pkgdesc.py deleted file mode 100644 index 54658c17..00000000 --- a/main/migrations/0005_fix_empty_url_pkgdesc.py +++ /dev/null @@ -1,207 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - for p in orm.Package.objects.filter(pkgdesc=''): - p.pkgdesc = None - p.save() - for p in orm.Package.objects.filter(pkgdesc='None'): - p.pkgdesc = None - p.save() - for p in orm.Package.objects.filter(url=''): - p.url = None - p.save() - for p in orm.Package.objects.filter(url='None'): - p.url= None - p.save() - - - def backwards(self, orm): - for p in orm.Package.objects.filter(pkgdesc=None): - p.pkgdesc = '' - p.save() - for p in orm.Package.objects.filter(url=None): - p.url = '' - p.save() - - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0006_add_more_info_to_packages.py b/main/migrations/0006_add_more_info_to_packages.py deleted file mode 100644 index 5a2a1cd0..00000000 --- a/main/migrations/0006_add_more_info_to_packages.py +++ /dev/null @@ -1,201 +0,0 @@ -from south.db import db -from django.db import models -from main.models import * - -class Migration: - - def forwards(self, orm): - # Adding field 'Package.compressed_size' - db.add_column('packages', 'compressed_size', orm['main.package:compressed_size']) - # Adding field 'Package.installed_size' - db.add_column('packages', 'installed_size', orm['main.package:installed_size']) - # Adding field 'Package.build_date' - db.add_column('packages', 'build_date', orm['main.package:build_date']) - - def backwards(self, orm): - # Deleting field 'Package.compressed_size' - db.delete_column('packages', 'compressed_size') - # Deleting field 'Package.installed_size' - db.delete_column('packages', 'installed_size') - # Deleting field 'Package.build_date' - db.delete_column('packages', 'build_date') - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0007_add_files_last_update.py b/main/migrations/0007_add_files_last_update.py deleted file mode 100644 index 36f99c26..00000000 --- a/main/migrations/0007_add_files_last_update.py +++ /dev/null @@ -1,193 +0,0 @@ -from south.db import db -from django.db import models -from main.models import * - -class Migration: - def forwards(self, orm): - # Adding field 'Package.files_last_update' - db.add_column('packages', 'files_last_update', orm['main.package:files_last_update']) - - def backwards(self, orm): - # Deleting field 'Package.files_last_update' - db.delete_column('packages', 'files_last_update') - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0008_mirror_tiering.py b/main/migrations/0008_mirror_tiering.py deleted file mode 100644 index 3993289e..00000000 --- a/main/migrations/0008_mirror_tiering.py +++ /dev/null @@ -1,199 +0,0 @@ -from south.db import db -from django.db import models -from main.models import * - -class Migration: - def forwards(self, orm): - # Adding field 'Mirror.tier' - db.add_column('main_mirror', 'tier', orm['main.mirror:tier']) - # Adding field 'Mirror.upstream' - db.add_column('main_mirror', 'upstream', orm['main.mirror:upstream']) - - def backwards(self, orm): - # Deleting field 'Mirror.tier' - db.delete_column('main_mirror', 'tier') - # Deleting field 'Mirror.upstream' - db.delete_column('main_mirror', 'upstream_id') - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0009_mirror_rsync_credentials.py b/main/migrations/0009_mirror_rsync_credentials.py deleted file mode 100644 index bbfc9d61..00000000 --- a/main/migrations/0009_mirror_rsync_credentials.py +++ /dev/null @@ -1,201 +0,0 @@ -from south.db import db -from django.db import models -from main.models import * - -class Migration: - def forwards(self, orm): - # Adding field 'Mirror.rsync_user' - db.add_column('main_mirror', 'rsync_user', orm['main.mirror:rsync_user']) - # Adding field 'Mirror.rsync_password' - db.add_column('main_mirror', 'rsync_password', orm['main.mirror:rsync_password']) - - def backwards(self, orm): - # Deleting field 'Mirror.rsync_user' - db.delete_column('main_mirror', 'rsync_user') - # Deleting field 'Mirror.rsync_password' - db.delete_column('main_mirror', 'rsync_password') - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0010_kill_rsync_ip_hostname.py b/main/migrations/0010_kill_rsync_ip_hostname.py deleted file mode 100644 index 105fcede..00000000 --- a/main/migrations/0010_kill_rsync_ip_hostname.py +++ /dev/null @@ -1,196 +0,0 @@ -from south.db import db -from django.db import models -from main.models import * - -class Migration: - def forwards(self, orm): - # Deleting field 'MirrorRsync.hostname' - db.delete_column('main_mirrorrsync', 'hostname') - - def backwards(self, orm): - # Adding field 'MirrorRsync.hostname' - db.add_column('main_mirrorrsync', 'hostname', orm['main.mirrorrsync:hostname']) - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0011_mirror_notes_text_field.py b/main/migrations/0011_mirror_notes_text_field.py deleted file mode 100644 index cb6347de..00000000 --- a/main/migrations/0011_mirror_notes_text_field.py +++ /dev/null @@ -1,198 +0,0 @@ -from south.db import db -from django.db import models -from main.models import * - -class Migration: - def forwards(self, orm): - # Changing field 'Mirror.notes' - # (to signature: django.db.models.fields.TextField(blank=True)) - db.alter_column('main_mirror', 'notes', orm['main.mirror:notes']) - - def backwards(self, orm): - # Changing field 'Mirror.notes' - # (to signature: django.db.models.fields.CharField(max_length=255, blank=True)) - db.alter_column('main_mirror', 'notes', orm['main.mirror:notes']) - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0012_is_repo_testing.py b/main/migrations/0012_is_repo_testing.py deleted file mode 100644 index b7a98b4a..00000000 --- a/main/migrations/0012_is_repo_testing.py +++ /dev/null @@ -1,194 +0,0 @@ -from south.db import db -from django.db import models -from main.models import * - -class Migration: - def forwards(self, orm): - # Adding field 'Repo.testing' - db.add_column('repos', 'testing', orm['main.repo:testing']) - - def backwards(self, orm): - # Deleting field 'Repo.testing' - db.delete_column('repos', 'testing') - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0013_mark_repos_testing.py b/main/migrations/0013_mark_repos_testing.py deleted file mode 100644 index e50010b2..00000000 --- a/main/migrations/0013_mark_repos_testing.py +++ /dev/null @@ -1,194 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - orm.Repo.objects.filter(name__endswith="Testing").update(testing=True) - - def backwards(self, orm): - pass - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0014_mirror_notes_rsync_optional.py b/main/migrations/0014_mirror_notes_rsync_optional.py deleted file mode 100644 index 21d13627..00000000 --- a/main/migrations/0014_mirror_notes_rsync_optional.py +++ /dev/null @@ -1,201 +0,0 @@ -from south.db import db -from django.db import models -from main.models import * - -class Migration: - def forwards(self, orm): - # Changing field field 'Mirror.rsync_user' - db.alter_column('main_mirror', 'rsync_user', orm['main.mirror:rsync_user']) - # Changing field 'Mirror.rsync_password' - db.alter_column('main_mirror', 'rsync_password', orm['main.mirror:rsync_password']) - - def backwards(self, orm): - # Changing field field 'Mirror.rsync_user' - db.alter_column('main_mirror', 'rsync_user', orm['main.mirror:rsync_user']) - # Changing field 'Mirror.rsync_password' - db.alter_column('main_mirror', 'rsync_password', orm['main.mirror:rsync_password']) - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0015_auto__del_field_package_maintainer.py b/main/migrations/0015_auto__del_field_package_maintainer.py deleted file mode 100644 index 48aa9244..00000000 --- a/main/migrations/0015_auto__del_field_package_maintainer.py +++ /dev/null @@ -1,211 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - depends_on = ( - ("packages", "0002_populate_package_relation"), - ) - - def forwards(self, orm): - # Deleting field 'package.maintainer' - db.delete_column('packages', 'maintainer_id') - - def backwards(self, orm): - # Adding field 'package.maintainer' - db.add_column('packages', 'maintainer', self.gf('django.db.models.fields.related.ForeignKey')(related_name='maintained_packages', null=True, to=orm['auth.User'], blank=True), keep_default=False) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'object_name': 'AltForum', 'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'Meta': {'object_name': 'ExternalProject'}, - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'object_name': 'Press', 'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0016_always_fill_pkgbase.py b/main/migrations/0016_always_fill_pkgbase.py deleted file mode 100644 index 8f556593..00000000 --- a/main/migrations/0016_always_fill_pkgbase.py +++ /dev/null @@ -1,206 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - orm.Package.objects.filter(pkgbase=None).update(pkgbase=models.F('pkgname')) - - def backwards(self, orm): - if not db.dry_run: - orm.Package.objects.filter(pkgbase=models.F('pkgname')).update(pkgbase=None) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'object_name': 'AltForum', 'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'Meta': {'object_name': 'ExternalProject'}, - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'object_name': 'Press', 'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0017_auto__chg_field_package_pkgbase.py b/main/migrations/0017_auto__chg_field_package_pkgbase.py deleted file mode 100644 index 1dccce40..00000000 --- a/main/migrations/0017_auto__chg_field_package_pkgbase.py +++ /dev/null @@ -1,211 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Changing field 'Package.pkgbase' - db.alter_column('packages', 'pkgbase', self.gf('django.db.models.fields.CharField')(max_length=255)) - # Adding index on 'Package', fields ['pkgbase'] - db.create_index('packages', ['pkgbase']) - - def backwards(self, orm): - # Removing index on 'Package', fields ['pkgbase'] - db.delete_index('packages', ['pkgbase']) - # Changing field 'Package.pkgbase' - db.alter_column('packages', 'pkgbase', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'object_name': 'AltForum', 'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'Meta': {'object_name': 'ExternalProject'}, - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'object_name': 'Press', 'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0018_auto__del_press.py b/main/migrations/0018_auto__del_press.py deleted file mode 100644 index 6cb7a7b0..00000000 --- a/main/migrations/0018_auto__del_press.py +++ /dev/null @@ -1,210 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Deleting model 'Press' - db.delete_table('press') - - - def backwards(self, orm): - - # Adding model 'Press' - db.create_table('press', ( - ('url', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), - )) - db.send_create_signal('main', ['Press']) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'object_name': 'AltForum', 'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'Meta': {'object_name': 'ExternalProject'}, - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0019_auto__del_altforum.py b/main/migrations/0019_auto__del_altforum.py deleted file mode 100644 index 52a090a9..00000000 --- a/main/migrations/0019_auto__del_altforum.py +++ /dev/null @@ -1,204 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Deleting model 'AltForum' - db.delete_table('alt_forums') - - - def backwards(self, orm): - - # Adding model 'AltForum' - db.create_table('alt_forums', ( - ('url', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('language', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), - )) - db.send_create_signal('main', ['AltForum']) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'Meta': {'object_name': 'ExternalProject'}, - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0020_auto__del_externalproject.py b/main/migrations/0020_auto__del_externalproject.py deleted file mode 100644 index 90fa0b16..00000000 --- a/main/migrations/0020_auto__del_externalproject.py +++ /dev/null @@ -1,197 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Deleting model 'ExternalProject' - db.delete_table('main_externalproject') - - - def backwards(self, orm): - - # Adding model 'ExternalProject' - db.create_table('main_externalproject', ( - ('url', self.gf('django.db.models.fields.URLField')(max_length=200)), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('description', self.gf('django.db.models.fields.CharField')(max_length=128)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=64)), - )) - db.send_create_signal('main', ['ExternalProject']) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0021_mark_package_fields_nullable.py b/main/migrations/0021_mark_package_fields_nullable.py deleted file mode 100644 index 4258b54c..00000000 --- a/main/migrations/0021_mark_package_fields_nullable.py +++ /dev/null @@ -1,203 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Changing field 'Package.license' - db.alter_column('packages', 'license', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)) - - # Changing field 'Package.pkgdesc' - db.alter_column('packages', 'pkgdesc', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)) - - # Changing field 'Package.url' - db.alter_column('packages', 'url', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)) - - - def backwards(self, orm): - - # Changing field 'Package.license' - db.alter_column('packages', 'license', self.gf('django.db.models.fields.CharField')(max_length=255)) - - # Changing field 'Package.pkgdesc' - db.alter_column('packages', 'pkgdesc', self.gf('django.db.models.fields.CharField')(max_length=255)) - - # Changing field 'Package.url' - db.alter_column('packages', 'url', self.gf('django.db.models.fields.CharField')(max_length=255)) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0022_auto__add_field_package_filename.py b/main/migrations/0022_auto__add_field_package_filename.py deleted file mode 100644 index 16440170..00000000 --- a/main/migrations/0022_auto__add_field_package_filename.py +++ /dev/null @@ -1,192 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding field 'Package.filename' - db.add_column('packages', 'filename', self.gf('django.db.models.fields.CharField')(default='package.pkg.tar.gz', max_length=255), keep_default=False) - - - def backwards(self, orm): - - # Deleting field 'Package.filename' - db.delete_column('packages', 'filename') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0023_auto__add_field_package_flag_date.py b/main/migrations/0023_auto__add_field_package_flag_date.py deleted file mode 100644 index dcc10606..00000000 --- a/main/migrations/0023_auto__add_field_package_flag_date.py +++ /dev/null @@ -1,193 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding field 'Package.flag_date' - db.add_column('packages', 'flag_date', self.gf('django.db.models.fields.DateTimeField')(null=True), keep_default=False) - - - def backwards(self, orm): - - # Deleting field 'Package.flag_date' - db.delete_column('packages', 'flag_date') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0024_set_initial_flag_date.py b/main/migrations/0024_set_initial_flag_date.py deleted file mode 100644 index bd008792..00000000 --- a/main/migrations/0024_set_initial_flag_date.py +++ /dev/null @@ -1,190 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import DataMigration -from django.db import models -from django.utils.timezone import now - -class Migration(DataMigration): - - def forwards(self, orm): - orm.Package.objects.filter(needupdate=False).update(flag_date=None) - orm.Package.objects.filter(needupdate=True).update(flag_date=now()) - - def backwards(self, orm): - orm.Package.objects.filter(flag_date__isnull=True).update(needupdate=False) - orm.Package.objects.filter(flag_date__isnull=False).update(needupdate=True) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0025_auto__del_field_package_needupdate.py b/main/migrations/0025_auto__del_field_package_needupdate.py deleted file mode 100644 index 3cf0cf3c..00000000 --- a/main/migrations/0025_auto__del_field_package_needupdate.py +++ /dev/null @@ -1,192 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Deleting field 'Package.needupdate' - db.delete_column('packages', 'needupdate') - - - def backwards(self, orm): - - # Adding field 'Package.needupdate' - db.add_column('packages', 'needupdate', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0026_auto__add_field_package_packager_str__add_field_package_packager.py b/main/migrations/0026_auto__add_field_package_packager_str__add_field_package_packager.py deleted file mode 100644 index 21b66842..00000000 --- a/main/migrations/0026_auto__add_field_package_packager_str__add_field_package_packager.py +++ /dev/null @@ -1,200 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding field 'Package.packager_str' - db.add_column('packages', 'packager_str', self.gf('django.db.models.fields.CharField')(default='', max_length=255), keep_default=False) - - # Adding field 'Package.packager' - db.add_column('packages', 'packager', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True), keep_default=False) - - - def backwards(self, orm): - - # Deleting field 'Package.packager_str' - db.delete_column('packages', 'packager_str') - - # Deleting field 'Package.packager' - db.delete_column('packages', 'packager_id') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0027_auto__chg_field_package_compressed_size__chg_field_package_installed_s.py b/main/migrations/0027_auto__chg_field_package_compressed_size__chg_field_package_installed_s.py deleted file mode 100644 index 9368e148..00000000 --- a/main/migrations/0027_auto__chg_field_package_compressed_size__chg_field_package_installed_s.py +++ /dev/null @@ -1,198 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Changing field 'Package.compressed_size' - db.alter_column('packages', 'compressed_size', self.gf('django.db.models.fields.BigIntegerField')(null=True)) - - # Changing field 'Package.installed_size' - db.alter_column('packages', 'installed_size', self.gf('django.db.models.fields.BigIntegerField')(null=True)) - - - def backwards(self, orm): - # Changing field 'Package.compressed_size' - db.alter_column('packages', 'compressed_size', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)) - - # Changing field 'Package.installed_size' - db.alter_column('packages', 'installed_size', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'ordering': "['-postdate', '-id']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0028_auto__add_field_repo_bugs_project__add_field_repo_svn_root.py b/main/migrations/0028_auto__add_field_repo_bugs_project__add_field_repo_svn_root.py deleted file mode 100644 index 92e8499d..00000000 --- a/main/migrations/0028_auto__add_field_repo_bugs_project__add_field_repo_svn_root.py +++ /dev/null @@ -1,200 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'Repo.bugs_project' - db.add_column('repos', 'bugs_project', self.gf('django.db.models.fields.SmallIntegerField')(default=1), keep_default=False) - - # Adding field 'Repo.svn_root' - db.add_column('repos', 'svn_root', self.gf('django.db.models.fields.CharField')(default='packages', max_length=64), keep_default=False) - - - def backwards(self, orm): - # Deleting field 'Repo.bugs_project' - db.delete_column('repos', 'bugs_project') - - # Deleting field 'Repo.svn_root' - db.delete_column('repos', 'svn_root') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'ordering': "['-postdate', '-id']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0029_fill_in_repo_data.py b/main/migrations/0029_fill_in_repo_data.py deleted file mode 100644 index 7da6b1c4..00000000 --- a/main/migrations/0029_fill_in_repo_data.py +++ /dev/null @@ -1,193 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - orm.Repo.objects.filter(name__istartswith='community').update(bugs_project=5, svn_root='community') - orm.Repo.objects.filter(name__iexact='multilib').update(bugs_project=5, svn_root='community') - - - def backwards(self, orm): - pass - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'ordering': "['-postdate', '-id']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0030_move_mirror_models.py b/main/migrations/0030_move_mirror_models.py deleted file mode 100644 index 1fe0c7e9..00000000 --- a/main/migrations/0030_move_mirror_models.py +++ /dev/null @@ -1,157 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - pass - - def backwards(self, orm): - pass - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'ordering': "['-postdate', '-id']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0031_move_news_out.py b/main/migrations/0031_move_news_out.py deleted file mode 100644 index 28f4b750..00000000 --- a/main/migrations/0031_move_news_out.py +++ /dev/null @@ -1,149 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - pass - - def backwards(self, orm): - pass - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0032_auto__add_field_arch_agnostic.py b/main/migrations/0032_auto__add_field_arch_agnostic.py deleted file mode 100644 index 9ccf059d..00000000 --- a/main/migrations/0032_auto__add_field_arch_agnostic.py +++ /dev/null @@ -1,152 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'Arch.agnostic' - db.add_column('arches', 'agnostic', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=True) - - def backwards(self, orm): - # Deleting field 'Arch.agnostic' - db.delete_column('arches', 'agnostic') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0033_mark_any_agnostic.py b/main/migrations/0033_mark_any_agnostic.py deleted file mode 100644 index 4f429a2b..00000000 --- a/main/migrations/0033_mark_any_agnostic.py +++ /dev/null @@ -1,150 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - orm.Arch.objects.filter(name='any').update(agnostic=True) - - def backwards(self, orm): - pass - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0034_update_content_type.py b/main/migrations/0034_update_content_type.py deleted file mode 100644 index 59c6f6ad..00000000 --- a/main/migrations/0034_update_content_type.py +++ /dev/null @@ -1,153 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - '''This is a defunct migration now, things have been moved to their proper - places, but removing it would cause all existing setups migrated past this - to complain.''' - - def forwards(self, orm): - pass - - def backwards(self, orm): - pass - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0035_auto__add_field_donor_visible.py b/main/migrations/0035_auto__add_field_donor_visible.py deleted file mode 100644 index 1f1c82e5..00000000 --- a/main/migrations/0035_auto__add_field_donor_visible.py +++ /dev/null @@ -1,151 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('donors', 'visible', self.gf('django.db.models.fields.BooleanField')(default=True), keep_default=True) - - def backwards(self, orm): - db.delete_column('donors', 'visible') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0036_auto__chg_field_userprofile_user.py b/main/migrations/0036_auto__chg_field_userprofile_user.py deleted file mode 100644 index 0c4e9a48..00000000 --- a/main/migrations/0036_auto__chg_field_userprofile_user.py +++ /dev/null @@ -1,151 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('user_profiles', 'user_id', self.gf('django.db.models.fields.related.OneToOneField')(unique=True, to=orm['auth.User'])) - - def backwards(self, orm): - db.alter_column('user_profiles', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(unique=True, to=orm['auth.User'])) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0037_auto__add_field_userprofile_time_zone.py b/main/migrations/0037_auto__add_field_userprofile_time_zone.py deleted file mode 100644 index 3a65eacc..00000000 --- a/main/migrations/0037_auto__add_field_userprofile_time_zone.py +++ /dev/null @@ -1,154 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'UserProfile.time_zone' - db.add_column('user_profiles', 'time_zone', self.gf('django.db.models.fields.CharField')(default='UTC', max_length=100), keep_default=True) - - def backwards(self, orm): - # Deleting field 'UserProfile.time_zone' - db.delete_column('user_profiles', 'time_zone') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0038_add_depends_optional_description.py b/main/migrations/0038_add_depends_optional_description.py deleted file mode 100644 index ab3b3381..00000000 --- a/main/migrations/0038_add_depends_optional_description.py +++ /dev/null @@ -1,156 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('package_depends', 'optional', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False) - db.add_column('package_depends', 'description', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) - - def backwards(self, orm): - db.delete_column('package_depends', 'optional') - db.delete_column('package_depends', 'description') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0039_auto__del_field_package_license.py b/main/migrations/0039_auto__del_field_package_license.py deleted file mode 100644 index 2860bc47..00000000 --- a/main/migrations/0039_auto__del_field_package_license.py +++ /dev/null @@ -1,157 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - depends_on = ( - ('packages', '0005_move_license_data'), - ) - - def forwards(self, orm): - db.delete_column('packages', 'license') - - def backwards(self, orm): - db.add_column('packages', 'license', self.gf('django.db.models.fields.CharField')(max_length=255, null=True), keep_default=False) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0040_split_package_files.py b/main/migrations/0040_split_package_files.py deleted file mode 100644 index 42e96d01..00000000 --- a/main/migrations/0040_split_package_files.py +++ /dev/null @@ -1,166 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'PackageFile.is_directory' - db.add_column('package_files', 'is_directory', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=True) - # Adding field 'PackageFile.directory' - db.add_column('package_files', 'directory', self.gf('django.db.models.fields.CharField')(default='', max_length=255), keep_default=False) - # Adding field 'PackageFile.filename' - db.add_column('package_files', 'filename', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), keep_default=False) - - def backwards(self, orm): - # Deleting field 'PackageFile.is_directory' - db.delete_column('package_files', 'is_directory') - # Deleting field 'PackageFile.directory' - db.delete_column('package_files', 'directory') - # Deleting field 'PackageFile.filename' - db.delete_column('package_files', 'filename') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0041_move_package_files_data.py b/main/migrations/0041_move_package_files_data.py deleted file mode 100644 index 31eecaa5..00000000 --- a/main/migrations/0041_move_package_files_data.py +++ /dev/null @@ -1,186 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import DataMigration -from django.db import models -from django.db.models import F - -class Migration(DataMigration): - - def forwards(self, orm): - # Handle the paths that are directories first - orm.PackageFile.objects.filter(path__endswith='/').update( - is_directory=True, directory=F('path')) - - if db.backend_name == 'mysql': - db.execute("UPDATE package_files " - "SET filename = SUBSTRING_INDEX(path, '/', -1), " - "directory = SUBSTRING(path, 1, LENGTH(path) - INSTR(REVERSE(path), '/') + 1) " - "WHERE is_directory = 0") - elif db.backend_name == 'postgresql': - db.execute("UPDATE package_files " - "SET filename = substring(filename, '.*/(.*?)$'), " - "directory = substring(filename, '.*/') " - "WHERE is_directory = 0") - else: - # Sucks that we can't always do this in one query at the DB level... - files = orm.PackageFile.objects.filter(is_directory=False) - for f in files: - parts = f.path.rsplit('/', 1) - db.execute("UPDATE package_files " - "SET filename = %s, " - "directory = %s " - "WHERE id = %s", - (parts[1], parts[0] + '/', f.id)) - # We could do this, but then Django takes forever to generate - # basically the same query for every row. - #f.filename = parts[1] - #f.directory = parts[0] + '/' - #f.save() - - def backwards(self, orm): - orm.PackageFile.objects.all().update(is_directory=False, - directory='', filename=None) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0042_auto__del_field_packagefile_path.py b/main/migrations/0042_auto__del_field_packagefile_path.py deleted file mode 100644 index 837a6a7f..00000000 --- a/main/migrations/0042_auto__del_field_packagefile_path.py +++ /dev/null @@ -1,158 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Deleting field 'PackageFile.path' - db.delete_column('package_files', 'path') - - def backwards(self, orm): - # Adding field 'PackageFile.path' - db.add_column('package_files', 'path', self.gf('django.db.models.fields.CharField')(default='', max_length=255), keep_default=False) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0043_auto__add_field_package_epoch.py b/main/migrations/0043_auto__add_field_package_epoch.py deleted file mode 100644 index 1c6ae9db..00000000 --- a/main/migrations/0043_auto__add_field_package_epoch.py +++ /dev/null @@ -1,162 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding field 'Package.epoch' - db.add_column('packages', 'epoch', self.gf('django.db.models.fields.PositiveIntegerField')(default=0), keep_default=True) - - - def backwards(self, orm): - - # Deleting field 'Package.epoch' - db.delete_column('packages', 'epoch') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0044_auto__chg_field_todolist_date_added.py b/main/migrations/0044_auto__chg_field_todolist_date_added.py deleted file mode 100644 index d4099891..00000000 --- a/main/migrations/0044_auto__chg_field_todolist_date_added.py +++ /dev/null @@ -1,156 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('todolists', 'date_added', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True)) - - def backwards(self, orm): - db.alter_column('todolists', 'date_added', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0045_add_todolist_date_added_index.py b/main/migrations/0045_add_todolist_date_added_index.py deleted file mode 100644 index 985f1c2d..00000000 --- a/main/migrations/0045_add_todolist_date_added_index.py +++ /dev/null @@ -1,156 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_index('todolists', ['date_added']) - - def backwards(self, orm): - db.delete_index('todolists', ['date_added']) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0046_auto__add_field_repo_staging.py b/main/migrations/0046_auto__add_field_repo_staging.py deleted file mode 100644 index 0daaf69b..00000000 --- a/main/migrations/0046_auto__add_field_repo_staging.py +++ /dev/null @@ -1,157 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('repos', 'staging', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=True) - - def backwards(self, orm): - db.delete_column('repos', 'staging') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0047_utc_datetimes.py b/main/migrations/0047_utc_datetimes.py deleted file mode 100644 index 83153b78..00000000 --- a/main/migrations/0047_utc_datetimes.py +++ /dev/null @@ -1,180 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models -from django.utils.tzinfo import LocalTimezone - -def new_date(old_date, reverse=False): - if old_date is None: - return None - tz = LocalTimezone(old_date) - offset = tz.utcoffset(old_date) - if reverse: - offset = -offset - return old_date - offset - -class Migration(DataMigration): - - def forwards(self, orm): - all_pkgs = orm.Package.objects.all() - for package in all_pkgs: - # prevents full object updates - orm.Package.objects.filter(pk=package.pk).update( - last_update=new_date(package.last_update), - files_last_update=new_date(package.files_last_update), - flag_date=new_date(package.flag_date)) - # We could do todolists, but they just don't matter that much. - - def backwards(self, orm): - all_pkgs = orm.Package.objects.all() - for package in all_pkgs: - # prevents full object updates - orm.Package.objects.filter(pk=package.pk).update( - last_update=new_date(package.last_update, True), - files_last_update=new_date(package.files_last_update, True), - flag_date=new_date(package.flag_date, True)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0048_auto__add_field_repo_bugs_category.py b/main/migrations/0048_auto__add_field_repo_bugs_category.py deleted file mode 100644 index 3e61f7ed..00000000 --- a/main/migrations/0048_auto__add_field_repo_bugs_category.py +++ /dev/null @@ -1,158 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('repos', 'bugs_category', self.gf('django.db.models.fields.SmallIntegerField')(default=2), keep_default=False) - - def backwards(self, orm): - db.delete_column('repos', 'bugs_category') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0049_auto__add_field_userprofile_pgp_key.py b/main/migrations/0049_auto__add_field_userprofile_pgp_key.py deleted file mode 100644 index 10fb9390..00000000 --- a/main/migrations/0049_auto__add_field_userprofile_pgp_key.py +++ /dev/null @@ -1,160 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('user_profiles', 'pgp_key', self.gf('django.db.models.fields.CharField')(max_length=40, null=True, blank=True), keep_default=False) - - def backwards(self, orm): - db.delete_column('user_profiles', 'pgp_key') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0050_auto__chg_field_package_compressed_size__chg_field_package_installed_s.py b/main/migrations/0050_auto__chg_field_package_compressed_size__chg_field_package_installed_s.py deleted file mode 100644 index 8368ae2e..00000000 --- a/main/migrations/0050_auto__chg_field_package_compressed_size__chg_field_package_installed_s.py +++ /dev/null @@ -1,166 +0,0 @@ -# encoding: utf-8 -import datetime -from pytz import utc -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('packages', 'compressed_size', self.gf('main.models.PositiveBigIntegerField')(default=0)) - db.alter_column('packages', 'installed_size', self.gf('main.models.PositiveBigIntegerField')(default=0)) - old_date = datetime.datetime(2000, 1, 1) - old_date = old_date.replace(tzinfo=utc) - db.alter_column('packages', 'last_update', self.gf('django.db.models.fields.DateTimeField')(default=old_date)) - - def backwards(self, orm): - db.alter_column('packages', 'compressed_size', self.gf('django.db.models.fields.BigIntegerField')(null=True)) - db.alter_column('packages', 'installed_size', self.gf('django.db.models.fields.BigIntegerField')(null=True)) - db.alter_column('packages', 'last_update', self.gf('django.db.models.fields.DateTimeField')(null=True)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0051_auto__chg_field_userprofile_pgp_key.py b/main/migrations/0051_auto__chg_field_userprofile_pgp_key.py deleted file mode 100644 index 4905eb80..00000000 --- a/main/migrations/0051_auto__chg_field_userprofile_pgp_key.py +++ /dev/null @@ -1,160 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('user_profiles', 'pgp_key', self.gf('devel.fields.PGPKeyField')(max_length=40, null=True)) - - - def backwards(self, orm): - db.alter_column('user_profiles', 'pgp_key', self.gf('django.db.models.fields.CharField')(max_length=40, null=True)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0052_auto__del_signoff.py b/main/migrations/0052_auto__del_signoff.py deleted file mode 100644 index a9ee633e..00000000 --- a/main/migrations/0052_auto__del_signoff.py +++ /dev/null @@ -1,166 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - depends_on = ( - ('packages', '0008_add_signoff_model'), - ) - - def forwards(self, orm): - # Deleting model 'Signoff' - db.delete_table('main_signoff') - - - def backwards(self, orm): - # Adding model 'Signoff' - db.create_table('main_signoff', ( - ('pkgrel', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('packager', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Package'])), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pkgver', self.gf('django.db.models.fields.CharField')(max_length=255)), - )) - db.send_create_signal('main', ['Signoff']) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0053_auto__add_field_package_pgp_signature.py b/main/migrations/0053_auto__add_field_package_pgp_signature.py deleted file mode 100644 index a3df5266..00000000 --- a/main/migrations/0053_auto__add_field_package_pgp_signature.py +++ /dev/null @@ -1,152 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('packages', 'pgp_signature', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) - - def backwards(self, orm): - db.delete_column('packages', 'pgp_signature') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "['name']", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0054_auto__add_field_donor_created.py b/main/migrations/0054_auto__add_field_donor_created.py deleted file mode 100644 index 81946c36..00000000 --- a/main/migrations/0054_auto__add_field_donor_created.py +++ /dev/null @@ -1,160 +0,0 @@ -# encoding: utf-8 -import datetime -from pytz import utc -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'Donor.created' - old_date = datetime.datetime(2000, 1, 1) - old_date = old_date.replace(tzinfo=utc) - db.add_column('donors', 'created', self.gf('django.db.models.fields.DateTimeField')(default=old_date), keep_default=False) - - - def backwards(self, orm): - # Deleting field 'Donor.created' - db.delete_column('donors', 'created') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0055_unique_package_in_repo.py b/main/migrations/0055_unique_package_in_repo.py deleted file mode 100644 index 9ae33719..00000000 --- a/main/migrations/0055_unique_package_in_repo.py +++ /dev/null @@ -1,160 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models -from django.db.utils import DatabaseError - -class Migration(SchemaMigration): - - def forwards(self, orm): - try: - db.delete_index('packages', ['pkgname']) - except DatabaseError as e: - if not 'no such index' in str(e): - raise e - db.create_unique('packages', ['pkgname', 'repo_id', 'arch_id']) - - def backwards(self, orm): - db.delete_unique('packages', ['pkgname', 'repo_id', 'arch_id']) - db.create_index('packages', ['pkgname']) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0056_auto__chg_field_package_pkgdesc.py b/main/migrations/0056_auto__chg_field_package_pkgdesc.py deleted file mode 100644 index 90856fab..00000000 --- a/main/migrations/0056_auto__chg_field_package_pkgdesc.py +++ /dev/null @@ -1,153 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('packages', 'pkgdesc', self.gf('django.db.models.fields.TextField')(null=True)) - - def backwards(self, orm): - db.alter_column('packages', 'pkgdesc', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0057_auto__add_field_userprofile_latin_name.py b/main/migrations/0057_auto__add_field_userprofile_latin_name.py deleted file mode 100644 index b9328af0..00000000 --- a/main/migrations/0057_auto__add_field_userprofile_latin_name.py +++ /dev/null @@ -1,153 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('user_profiles', 'latin_name', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), keep_default=False) - - def backwards(self, orm): - db.delete_column('user_profiles', 'latin_name') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'latin_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0058_auto__add_on_delete_attributes.py b/main/migrations/0058_auto__add_on_delete_attributes.py deleted file mode 100644 index e66e4da2..00000000 --- a/main/migrations/0058_auto__add_on_delete_attributes.py +++ /dev/null @@ -1,160 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('todolists', 'creator_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], on_delete=models.PROTECT)) - db.alter_column('packages', 'repo_id', self.gf('django.db.models.fields.related.ForeignKey')(on_delete=models.PROTECT, to=orm['main.Repo'])) - db.alter_column('packages', 'packager_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, on_delete=models.SET_NULL)) - db.alter_column('packages', 'arch_id', self.gf('django.db.models.fields.related.ForeignKey')(on_delete=models.PROTECT, to=orm['main.Arch'])) - - def backwards(self, orm): - db.alter_column('todolists', 'creator_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])) - db.alter_column('packages', 'repo_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Repo'])) - db.alter_column('packages', 'packager_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True)) - db.alter_column('packages', 'arch_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Arch'])) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'on_delete': 'models.PROTECT'}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'symmetrical': 'False', 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'latin_name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'pgp_key': ('devel.fields.PGPKeyField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'time_zone': ('django.db.models.fields.CharField', [], {'default': "'UTC'", 'max_length': '100'}), - 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'userprofile'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0059_auto__del_userprofile.py b/main/migrations/0059_auto__del_userprofile.py deleted file mode 100644 index 2db87eeb..00000000 --- a/main/migrations/0059_auto__del_userprofile.py +++ /dev/null @@ -1,137 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - pass - - def backwards(self, orm): - if not db.dry_run: - db.send_create_signal('main', ['UserProfile']) - orm['contenttypes.ContentType'].objects.filter( - app_label='devel', model='userprofile').update( - app_label='main') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'on_delete': 'models.PROTECT'}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0060_add_packages_last_update_index.py b/main/migrations/0060_add_packages_last_update_index.py deleted file mode 100644 index 8e3bb892..00000000 --- a/main/migrations/0060_add_packages_last_update_index.py +++ /dev/null @@ -1,131 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - def forwards(self, orm): - db.create_index('packages', ['last_update']) - - def backwards(self, orm): - db.delete_index('packages', ['last_update']) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'on_delete': 'models.PROTECT'}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0061_auto__del_packagedepend.py b/main/migrations/0061_auto__del_packagedepend.py deleted file mode 100644 index 6cb1f68f..00000000 --- a/main/migrations/0061_auto__del_packagedepend.py +++ /dev/null @@ -1,135 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - depends_on = ( - ('packages', '0016_copy_depends_data.py'), - ) - - def forwards(self, orm): - db.delete_table('package_depends') - - def backwards(self, orm): - db.create_table('package_depends', ( - ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - ('depvcmp', self.gf('django.db.models.fields.CharField')(default='', max_length=255)), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(related_name='depends', to=orm['main.Package'])), - ('depname', self.gf('django.db.models.fields.CharField')(max_length=255, db_index=True)), - ('optional', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - )) - db.send_create_signal('main', ['PackageDepend']) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'on_delete': 'models.PROTECT'}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0062_remove_old_todolist_models.py b/main/migrations/0062_remove_old_todolist_models.py deleted file mode 100644 index 46b2a4fc..00000000 --- a/main/migrations/0062_remove_old_todolist_models.py +++ /dev/null @@ -1,133 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - depends_on = ( - ('todolists', '0003_migrate_todolist_data'), - ) - - def forwards(self, orm): - db.delete_unique('todolist_pkgs', ['list_id', 'pkg_id']) - db.delete_table('todolists') - db.delete_table('todolist_pkgs') - - - def backwards(self, orm): - db.create_table('todolists', ( - ('description', self.gf('django.db.models.fields.TextField')()), - ('creator', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], on_delete=models.PROTECT)), - ('date_added', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), - )) - db.send_create_signal('main', ['Todolist']) - - db.create_table('todolist_pkgs', ( - ('list', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Todolist'])), - ('complete', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Package'])), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - )) - db.send_create_signal('main', ['TodolistPkg']) - - db.create_unique('todolist_pkgs', ['list_id', 'pkg_id']) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0063_auto__add_field_package_created.py b/main/migrations/0063_auto__add_field_package_created.py deleted file mode 100644 index e5a990c3..00000000 --- a/main/migrations/0063_auto__add_field_package_created.py +++ /dev/null @@ -1,116 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from pytz import utc -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - old_date = datetime.datetime(2000, 1, 1) - old_date = old_date.replace(tzinfo=utc) - db.add_column('packages', 'created', - self.gf('django.db.models.fields.DateTimeField')(default=old_date), keep_default=False) - - - def backwards(self, orm): - db.delete_column('packages', 'created') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0064_auto__add_field_arch_required_signoffs.py b/main/migrations/0064_auto__add_field_arch_required_signoffs.py deleted file mode 100644 index 1846378f..00000000 --- a/main/migrations/0064_auto__add_field_arch_required_signoffs.py +++ /dev/null @@ -1,112 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('arches', 'required_signoffs', - self.gf('django.db.models.fields.PositiveIntegerField')(default=2), - keep_default=True) - - def backwards(self, orm): - db.delete_column('arches', 'required_signoffs') - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - u'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'required_signoffs': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}) - }, - u'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - u'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - u'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['main.Package']"}) - }, - u'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0065_auto__add_field_package_signature_bytes.py b/main/migrations/0065_auto__add_field_package_signature_bytes.py deleted file mode 100644 index a954166e..00000000 --- a/main/migrations/0065_auto__add_field_package_signature_bytes.py +++ /dev/null @@ -1,114 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('packages', 'signature_bytes', - self.gf('django.db.models.fields.BinaryField')(null=True), - keep_default=True) - - def backwards(self, orm): - db.delete_column('packages', 'signature_bytes') - - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - u'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'required_signoffs': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}) - }, - u'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - u'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Repo']"}), - 'signature_bytes': ('django.db.models.fields.BinaryField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - u'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['main.Package']"}) - }, - u'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0066_move_signature_data.py b/main/migrations/0066_move_signature_data.py deleted file mode 100644 index 75fcfa92..00000000 --- a/main/migrations/0066_move_signature_data.py +++ /dev/null @@ -1,125 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import DataMigration -from django.db import models -from base64 import b64decode, b64encode - -class Migration(DataMigration): - - def forwards(self, orm): - pkgs = orm.Package.objects.only( - 'id', 'pgp_signature', 'signature_bytes').all() - for pkg in pkgs: - if not pkg.pgp_signature: - continue - pkg.signature_bytes = b64decode(pkg.pgp_signature.encode('utf-8')) - pkg.save() - - def backwards(self, orm): - pkgs = orm.Package.objects.only( - 'id', 'pgp_signature', 'signature_bytes').all() - for pkg in pkgs: - if not pkg.signature_bytes: - continue - pkg.pgp_signature = b64encode(pkg.signature_bytes).decode('utf-8') - pkg.save() - - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - u'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'required_signoffs': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}) - }, - u'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - u'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Repo']"}), - 'signature_bytes': ('django.db.models.fields.BinaryField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - u'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['main.Package']"}) - }, - u'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['main'] - symmetrical = True diff --git a/main/migrations/0067_auto__del_field_package_pgp_signature.py b/main/migrations/0067_auto__del_field_package_pgp_signature.py deleted file mode 100644 index 8c1d9b7a..00000000 --- a/main/migrations/0067_auto__del_field_package_pgp_signature.py +++ /dev/null @@ -1,113 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.delete_column('packages', 'pgp_signature') - - def backwards(self, orm): - db.add_column('packages', 'pgp_signature', - self.gf('django.db.models.fields.TextField')(null=True, blank=True), - keep_default=True) - - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - u'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'required_signoffs': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}) - }, - u'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - u'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Repo']"}), - 'signature_bytes': ('django.db.models.fields.BinaryField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - u'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['main.Package']"}) - }, - u'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['main'] diff --git a/main/migrations/0068_auto__chg_field_packagefile_directory__chg_field_packagefile_filename.py b/main/migrations/0068_auto__chg_field_packagefile_directory__chg_field_packagefile_filename.py deleted file mode 100644 index 5e359806..00000000 --- a/main/migrations/0068_auto__chg_field_packagefile_directory__chg_field_packagefile_filename.py +++ /dev/null @@ -1,112 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('package_files', 'directory', self.gf('django.db.models.fields.CharField')(max_length=1024)) - db.alter_column('package_files', 'filename', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True)) - - def backwards(self, orm): - db.alter_column('package_files', 'directory', self.gf('django.db.models.fields.CharField')(max_length=255)) - db.alter_column('package_files', 'filename', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)) - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - u'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - u'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'required_signoffs': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}) - }, - u'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - u'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': u"orm['main.Repo']"}), - 'signature_bytes': ('django.db.models.fields.BinaryField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - u'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['main.Package']"}) - }, - u'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - } - } - - complete_apps = ['main'] diff --git a/mirrors/admin.py b/mirrors/admin.py index 17365486..d5c89c2a 100644 --- a/mirrors/admin.py +++ b/mirrors/admin.py @@ -1,3 +1,4 @@ +from datetime import datetime from urlparse import urlparse, urlunsplit from django import forms @@ -67,12 +68,19 @@ class MirrorAdmin(admin.ModelAdmin): 'isos', 'admin_email', 'alternate_email') list_filter = ('tier', 'active', 'public') search_fields = ('name', 'admin_email', 'alternate_email') - readonly_fields = ('created',) + readonly_fields = ('created', 'last_modified') inlines = [ MirrorUrlInlineAdmin, MirrorRsyncInlineAdmin, ] + def save_model(self, request, obj, form, change): + if '~~~' in obj.notes: + date = datetime.utcnow().strftime('%Y-%m-%d') + usertext = request.user.get_full_name() + obj.notes = obj.notes.replace('~~~', '%s (%s)' % (date, usertext)) + obj.save() + class MirrorProtocolAdmin(admin.ModelAdmin): list_display = ('protocol', 'is_download', 'default') diff --git a/mirrors/fields.py b/mirrors/fields.py index 206c9d7d..e8963edf 100644 --- a/mirrors/fields.py +++ b/mirrors/fields.py @@ -4,7 +4,6 @@ from django import forms from django.core import validators from django.core.exceptions import ValidationError from django.db import models -from south.modelsinspector import add_introspection_rules class IPNetworkFormField(forms.Field): @@ -44,6 +43,3 @@ class IPNetworkField(models.Field): defaults = {'form_class': IPNetworkFormField} defaults.update(kwargs) return super(IPNetworkField, self).formfield(**defaults) - - -add_introspection_rules([], ["^mirrors\.fields\.IPNetworkField"]) diff --git a/mirrors/management/commands/mirrorcheck.py b/mirrors/management/commands/mirrorcheck.py index e48aa42e..d2a27bee 100644 --- a/mirrors/management/commands/mirrorcheck.py +++ b/mirrors/management/commands/mirrorcheck.py @@ -139,7 +139,7 @@ def check_mirror_url(mirror_url, location, timeout): if isinstance(e.reason, socket.timeout): log.error = "Connection timed out." elif isinstance(e.reason, socket.error): - log.error = e.reason.args[1] + log.error = e.reason.args[-1] logger.debug("failed: %s, %s", url, log.error) except HTTPException: # e.g., BadStatusLine diff --git a/mirrors/migrations/0001_initial.py b/mirrors/migrations/0001_initial.py index 4a3173c5..6f36c9eb 100644 --- a/mirrors/migrations/0001_initial.py +++ b/mirrors/migrations/0001_initial.py @@ -1,17 +1,123 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models +# -*- coding: utf-8 -*- +from __future__ import unicode_literals -class Migration(SchemaMigration): +from django.db import models, migrations +import django_countries.fields +import django.db.models.deletion +import mirrors.fields - def forwards(self, orm): - pass - def backwards(self, orm): - pass +class Migration(migrations.Migration): - models = {} + dependencies = [ + ] - complete_apps = ['mirrors'] + operations = [ + migrations.CreateModel( + name='CheckLocation', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('hostname', models.CharField(max_length=255)), + ('source_ip', models.GenericIPAddressField(unique=True, verbose_name=b'source IP', unpack_ipv4=True)), + ('country', django_countries.fields.CountryField(max_length=2)), + ('created', models.DateTimeField(editable=False)), + ], + options={ + 'ordering': ('hostname', 'source_ip'), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Mirror', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(unique=True, max_length=255)), + ('tier', models.SmallIntegerField(default=2, choices=[(0, b'Tier 0'), (1, b'Tier 1'), (2, b'Tier 2'), (-1, b'Untiered')])), + ('admin_email', models.EmailField(max_length=255, blank=True)), + ('alternate_email', models.EmailField(max_length=255, blank=True)), + ('public', models.BooleanField(default=True)), + ('active', models.BooleanField(default=True)), + ('isos', models.BooleanField(default=True, verbose_name=b'ISOs')), + ('rsync_user', models.CharField(default=b'', max_length=50, blank=True)), + ('rsync_password', models.CharField(default=b'', max_length=50, blank=True)), + ('bug', models.PositiveIntegerField(null=True, verbose_name=b'Flyspray bug', blank=True)), + ('notes', models.TextField(blank=True)), + ('created', models.DateTimeField(editable=False)), + ('last_modified', models.DateTimeField(editable=False)), + ('upstream', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, to='mirrors.Mirror', null=True)), + ], + options={ + 'ordering': ('name',), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='MirrorLog', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('check_time', models.DateTimeField(db_index=True)), + ('last_sync', models.DateTimeField(null=True)), + ('duration', models.FloatField(null=True)), + ('is_success', models.BooleanField(default=True)), + ('error', models.TextField(default=b'', blank=True)), + ('location', models.ForeignKey(related_name=b'logs', to='mirrors.CheckLocation', null=True)), + ], + options={ + 'get_latest_by': 'check_time', + 'verbose_name': 'mirror check log', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='MirrorProtocol', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('protocol', models.CharField(unique=True, max_length=10)), + ('is_download', models.BooleanField(default=True, help_text=b'Is protocol useful for end-users, e.g. HTTP')), + ('default', models.BooleanField(default=True, help_text=b'Included by default when building mirror list?')), + ('created', models.DateTimeField(editable=False)), + ], + options={ + 'ordering': ('protocol',), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='MirrorRsync', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('ip', mirrors.fields.IPNetworkField(max_length=44, verbose_name=b'IP')), + ('created', models.DateTimeField(editable=False)), + ('mirror', models.ForeignKey(related_name=b'rsync_ips', to='mirrors.Mirror')), + ], + options={ + 'ordering': ('ip',), + 'verbose_name': 'mirror rsync IP', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='MirrorUrl', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('url', models.CharField(unique=True, max_length=255, verbose_name=b'URL')), + ('country', django_countries.fields.CountryField(blank=True, max_length=2, db_index=True)), + ('has_ipv4', models.BooleanField(default=True, verbose_name=b'IPv4 capable', editable=False)), + ('has_ipv6', models.BooleanField(default=False, verbose_name=b'IPv6 capable', editable=False)), + ('created', models.DateTimeField(editable=False)), + ('active', models.BooleanField(default=True)), + ('mirror', models.ForeignKey(related_name=b'urls', to='mirrors.Mirror')), + ('protocol', models.ForeignKey(related_name=b'urls', on_delete=django.db.models.deletion.PROTECT, editable=False, to='mirrors.MirrorProtocol')), + ], + options={ + 'verbose_name': 'mirror URL', + }, + bases=(models.Model,), + ), + migrations.AddField( + model_name='mirrorlog', + name='url', + field=models.ForeignKey(related_name=b'logs', to='mirrors.MirrorUrl'), + preserve_default=True, + ), + ] diff --git a/mirrors/migrations/0002_rename_model_tables.py b/mirrors/migrations/0002_rename_model_tables.py deleted file mode 100644 index 087edd68..00000000 --- a/mirrors/migrations/0002_rename_model_tables.py +++ /dev/null @@ -1,80 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - depends_on = ( - ('main', '0030_move_mirror_models'), - ) - - mirror_apps = [ 'mirror', 'mirrorprotocol', 'mirrorurl', 'mirrorrsync' ] - - def forwards(self, orm): - db.rename_table('main_mirror', 'mirrors_mirror') - db.rename_table('main_mirrorurl', 'mirrors_mirrorurl') - db.rename_table('main_mirrorrsync', 'mirrors_mirrorrsync') - db.rename_table('main_mirrorprotocol', 'mirrors_mirrorprotocol') - - if not db.dry_run: - ct = orm['contenttypes.ContentType'].objects - ct.filter(app_label='main', model__in=self.mirror_apps).update( - app_label='mirrors') - - def backwards(self, orm): - db.rename_table('mirrors_mirror', 'main_mirror') - db.rename_table('mirrors_mirrorurl', 'main_mirrorurl') - db.rename_table('mirrors_mirrorrsync', 'main_mirrorrsync') - db.rename_table('mirrors_mirrorprotocol', 'main_mirrorprotocol') - - if not db.dry_run: - ct = orm['contenttypes.ContentType'].objects - ct.filter(app_label='mirrors', model__in=self.mirror_apps).update( - app_label='main') - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0003_auto__add_mirrorlog.py b/mirrors/migrations/0003_auto__add_mirrorlog.py deleted file mode 100644 index 5b4c225b..00000000 --- a/mirrors/migrations/0003_auto__add_mirrorlog.py +++ /dev/null @@ -1,72 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'MirrorLog' - db.create_table('mirrors_mirrorlog', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('url', self.gf('django.db.models.fields.related.ForeignKey')(related_name='logs', to=orm['mirrors.MirrorUrl'])), - ('check_time', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - ('last_sync', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('duration', self.gf('django.db.models.fields.FloatField')(null=True)), - ('is_success', self.gf('django.db.models.fields.BooleanField')(default=True)), - ('error', self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True)), - )) - db.send_create_signal('mirrors', ['MirrorLog']) - - def backwards(self, orm): - # Deleting model 'MirrorLog' - db.delete_table('mirrors_mirrorlog') - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0004_auto__add_field_mirrorprotocol_is_download.py b/mirrors/migrations/0004_auto__add_field_mirrorprotocol_is_download.py deleted file mode 100644 index 0506e2cd..00000000 --- a/mirrors/migrations/0004_auto__add_field_mirrorprotocol_is_download.py +++ /dev/null @@ -1,62 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('mirrors_mirrorprotocol', 'is_download', self.gf('django.db.models.fields.BooleanField')(default=True), keep_default=True) - - def backwards(self, orm): - db.delete_column('mirrors_mirrorprotocol', 'is_download') - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0005_populate_protocol_is_download.py b/mirrors/migrations/0005_populate_protocol_is_download.py deleted file mode 100644 index 6d488388..00000000 --- a/mirrors/migrations/0005_populate_protocol_is_download.py +++ /dev/null @@ -1,64 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - orm.MirrorProtocol.objects.filter(protocol__iexact='ftp').update(is_download=True) - orm.MirrorProtocol.objects.filter(protocol__iexact='http').update(is_download=True) - orm.MirrorProtocol.objects.filter(protocol__iexact='rsync').update(is_download=False) - - def backwards(self, orm): - pass - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0006_auto__add_field_mirrorurl_has_ipv4__add_field_mirrorurl_has_ipv6.py b/mirrors/migrations/0006_auto__add_field_mirrorurl_has_ipv4__add_field_mirrorurl_has_ipv6.py deleted file mode 100644 index 5a40207d..00000000 --- a/mirrors/migrations/0006_auto__add_field_mirrorurl_has_ipv4__add_field_mirrorurl_has_ipv6.py +++ /dev/null @@ -1,66 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('mirrors_mirrorurl', 'has_ipv4', self.gf('django.db.models.fields.BooleanField')(default=True), keep_default=True) - db.add_column('mirrors_mirrorurl', 'has_ipv6', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=True) - - def backwards(self, orm): - db.delete_column('mirrors_mirrorurl', 'has_ipv4') - db.delete_column('mirrors_mirrorurl', 'has_ipv6') - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0007_unique_names_urls.py b/mirrors/migrations/0007_unique_names_urls.py deleted file mode 100644 index 49c0fbb7..00000000 --- a/mirrors/migrations/0007_unique_names_urls.py +++ /dev/null @@ -1,66 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_unique('mirrors_mirror', ['name']) - db.create_unique('mirrors_mirrorurl', ['url']) - - def backwards(self, orm): - db.delete_unique('mirrors_mirrorurl', ['url']) - db.delete_unique('mirrors_mirror', ['name']) - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0008_auto__add_field_mirrorurl_country.py b/mirrors/migrations/0008_auto__add_field_mirrorurl_country.py deleted file mode 100644 index 660ac080..00000000 --- a/mirrors/migrations/0008_auto__add_field_mirrorurl_country.py +++ /dev/null @@ -1,67 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'MirrorUrl.country' - db.add_column('mirrors_mirrorurl', 'country', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=255, null=True, blank=True), keep_default=False) - - def backwards(self, orm): - # Deleting field 'MirrorUrl.country' - db.delete_column('mirrors_mirrorurl', 'country') - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0009_auto__chg_field_mirrorurl_country.py b/mirrors/migrations/0009_auto__chg_field_mirrorurl_country.py deleted file mode 100644 index bca6b6fb..00000000 --- a/mirrors/migrations/0009_auto__chg_field_mirrorurl_country.py +++ /dev/null @@ -1,66 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - pass - - - def backwards(self, orm): - pass - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0010_auto__add_field_mirrorprotocol_default.py b/mirrors/migrations/0010_auto__add_field_mirrorprotocol_default.py deleted file mode 100644 index 66e60090..00000000 --- a/mirrors/migrations/0010_auto__add_field_mirrorprotocol_default.py +++ /dev/null @@ -1,66 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('mirrors_mirrorprotocol', 'default', self.gf('django.db.models.fields.BooleanField')(default=True), keep_default=True) - - def backwards(self, orm): - db.delete_column('mirrors_mirrorprotocol', 'default') - - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0011_adjust_protocol_defaults.py b/mirrors/migrations/0011_adjust_protocol_defaults.py deleted file mode 100644 index a5ffafb4..00000000 --- a/mirrors/migrations/0011_adjust_protocol_defaults.py +++ /dev/null @@ -1,67 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - orm.MirrorProtocol.objects.all().update(default=False) - orm.MirrorProtocol.objects.filter(protocol='http').update(default=True) - - def backwards(self, orm): - pass - - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0012_auto__add_on_delete_attribute.py b/mirrors/migrations/0012_auto__add_on_delete_attribute.py deleted file mode 100644 index f81fe0ae..00000000 --- a/mirrors/migrations/0012_auto__add_on_delete_attribute.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('mirrors_mirror', 'upstream_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['mirrors.Mirror'], null=True, on_delete=models.SET_NULL)) - db.alter_column('mirrors_mirrorurl', 'protocol_id', self.gf('django.db.models.fields.related.ForeignKey')(on_delete=models.PROTECT, to=orm['mirrors.MirrorProtocol'])) - - def backwards(self, orm): - db.alter_column('mirrors_mirror', 'upstream_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['mirrors.Mirror'], null=True)) - db.alter_column('mirrors_mirrorurl', 'protocol_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['mirrors.MirrorProtocol'])) - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0013_rename_country_fields.py b/mirrors/migrations/0013_rename_country_fields.py deleted file mode 100644 index 8a9bc34a..00000000 --- a/mirrors/migrations/0013_rename_country_fields.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.rename_column('mirrors_mirror', 'country', 'country_old') - db.rename_column('mirrors_mirrorurl', 'country', 'country_old') - - def backwards(self, orm): - db.rename_column('mirrors_mirror', 'country_old', 'country') - db.rename_column('mirrors_mirrorurl', 'country_old', 'country') - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country_old', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country_old': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country_old': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0014_add_country_code_fields.py b/mirrors/migrations/0014_add_country_code_fields.py deleted file mode 100644 index 010194d7..00000000 --- a/mirrors/migrations/0014_add_country_code_fields.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('mirrors_mirror', 'country', - self.gf('django_countries.fields.CountryField')(default='', max_length=2, blank=True), - keep_default=False) - db.add_column('mirrors_mirrorurl', 'country', - self.gf('django_countries.fields.CountryField')(default='', max_length=2, blank=True), - keep_default=False) - - def backwards(self, orm): - db.delete_column('mirrors_mirror', 'country') - db.delete_column('mirrors_mirrorurl', 'country') - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'country_old': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'country_old': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0015_assign_country_codes.py b/mirrors/migrations/0015_assign_country_codes.py deleted file mode 100644 index 5d83e02c..00000000 --- a/mirrors/migrations/0015_assign_country_codes.py +++ /dev/null @@ -1,93 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -from django_countries.data import COUNTRIES - -class Migration(DataMigration): - - def forwards(self, orm): - reverse_map = dict((v.upper(), k) for k, v in COUNTRIES.items()) - # add a few special cases to the list that we know might exist - reverse_map['GREAT BRITAIN'] = 'GB' - reverse_map['KOREA'] = 'KR' - reverse_map['MACEDONIA'] = 'MK' - reverse_map['RUSSIA'] = 'RU' - reverse_map['SOUTH KOREA'] = 'KR' - reverse_map['TAIWAN'] = 'TW' - reverse_map['VIETNAM'] = 'VN' - - for country_name in orm.Mirror.objects.values_list( - 'country_old', flat=True).order_by().distinct(): - code = reverse_map.get(country_name.upper(), '') - orm.Mirror.objects.filter( - country_old=country_name).update(country=code) - - for country_name in orm.MirrorUrl.objects.filter( - country_old__isnull=False).values_list( - 'country_old', flat=True).order_by().distinct(): - code = reverse_map.get(country_name.upper(), '') - orm.MirrorUrl.objects.filter( - country_old=country_name).update(country=code) - - def backwards(self, orm): - orm.MirrorUrl.objects.all().update(country='') - orm.Mirror.objects.all().update(country='') - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'country_old': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2', 'blank': 'True'}), - 'country_old': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] - symmetrical = True diff --git a/mirrors/migrations/0016_auto__del_field_mirror_country_old__del_field_mirrorurl_country_old.py b/mirrors/migrations/0016_auto__del_field_mirror_country_old__del_field_mirrorurl_country_old.py deleted file mode 100644 index b296d7ae..00000000 --- a/mirrors/migrations/0016_auto__del_field_mirror_country_old__del_field_mirrorurl_country_old.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.delete_column('mirrors_mirror', 'country_old') - db.delete_column('mirrors_mirrorurl', 'country_old') - db.create_index('mirrors_mirror', ['country']) - db.create_index('mirrors_mirrorurl', ['country']) - - def backwards(self, orm): - db.delete_index('mirrors_mirrorurl', ['country']) - db.delete_index('mirrors_mirror', ['country']) - db.add_column('mirrors_mirror', 'country_old', - self.gf('django.db.models.fields.CharField')(default='Any', max_length=255, db_index=True), - keep_default=False) - db.add_column('mirrors_mirrorurl', 'country_old', - self.gf('django.db.models.fields.CharField')(blank=True, max_length=255, null=True, db_index=True), - keep_default=False) - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0017_auto__chg_field_mirrorlog_error.py b/mirrors/migrations/0017_auto__chg_field_mirrorlog_error.py deleted file mode 100644 index 60c4ec26..00000000 --- a/mirrors/migrations/0017_auto__chg_field_mirrorlog_error.py +++ /dev/null @@ -1,66 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('mirrors_mirrorlog', 'error', self.gf('django.db.models.fields.TextField')(default='')) - - def backwards(self, orm): - db.alter_column('mirrors_mirrorlog', 'error', self.gf('django.db.models.fields.CharField')(max_length=255)) - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0018_auto__add_field_mirror_alternate_email.py b/mirrors/migrations/0018_auto__add_field_mirror_alternate_email.py deleted file mode 100644 index a08699e8..00000000 --- a/mirrors/migrations/0018_auto__add_field_mirror_alternate_email.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - def forwards(self, orm): - db.add_column('mirrors_mirror', 'alternate_email', - self.gf('django.db.models.fields.EmailField')(default='', max_length=255, blank=True), - keep_default=False) - - def backwards(self, orm): - db.delete_column('mirrors_mirror', 'alternate_email') - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0019_move_country_data_to_url.py b/mirrors/migrations/0019_move_country_data_to_url.py deleted file mode 100644 index 81b7bb3e..00000000 --- a/mirrors/migrations/0019_move_country_data_to_url.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - for url in orm.MirrorUrl.objects.select_related('mirror').all(): - # set the country field on the URL if we have one, - # and it isn't already set to anything. - if url.country or not url.mirror.country: - continue - orm.MirrorUrl.objects.filter(pk=url.pk).update( - country=url.mirror.country) - - def backwards(self, orm): - pass - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('country', 'name')", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] - symmetrical = True diff --git a/mirrors/migrations/0020_auto__del_field_mirror_country.py b/mirrors/migrations/0020_auto__del_field_mirror_country.py deleted file mode 100644 index c2220a50..00000000 --- a/mirrors/migrations/0020_auto__del_field_mirror_country.py +++ /dev/null @@ -1,70 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.delete_column('mirrors_mirror', 'country') - - - def backwards(self, orm): - db.add_column('mirrors_mirror', 'country', - self.gf('django_countries.fields.CountryField')(blank=True, default='', max_length=2, db_index=True), - keep_default=False) - - - models = { - 'mirrors.mirror': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - 'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': "orm['mirrors.MirrorUrl']"}) - }, - 'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['mirrors.Mirror']"}) - }, - 'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': "orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0021_auto__chg_field_mirrorrsync_ip.py b/mirrors/migrations/0021_auto__chg_field_mirrorrsync_ip.py deleted file mode 100644 index bbf14bb0..00000000 --- a/mirrors/migrations/0021_auto__chg_field_mirrorrsync_ip.py +++ /dev/null @@ -1,66 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column(u'mirrors_mirrorrsync', 'ip', self.gf('django.db.models.fields.CharField')(max_length=44)) - - def backwards(self, orm): - db.alter_column(u'mirrors_mirrorrsync', 'ip', self.gf('django.db.models.fields.CharField')(max_length=24)) - - models = { - u'mirrors.mirror': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - u'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': u"orm['mirrors.MirrorUrl']"}) - }, - u'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - u'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '44'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': u"orm['mirrors.Mirror']"}) - }, - u'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': u"orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': u"orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0022_auto__add_checklocation.py b/mirrors/migrations/0022_auto__add_checklocation.py deleted file mode 100644 index 896b2dab..00000000 --- a/mirrors/migrations/0022_auto__add_checklocation.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_table(u'mirrors_checklocation', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('hostname', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('source_ip', self.gf('django.db.models.fields.GenericIPAddressField')(unique=True, max_length=39)), - ('country', self.gf('django_countries.fields.CountryField')(max_length=2)), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - )) - db.send_create_signal(u'mirrors', ['CheckLocation']) - - - def backwards(self, orm): - db.delete_table(u'mirrors_checklocation') - - - models = { - u'mirrors.checklocation': { - 'Meta': {'ordering': "('hostname', 'source_ip')", 'object_name': 'CheckLocation'}, - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'source_ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}) - }, - u'mirrors.mirror': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - u'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': u"orm['mirrors.MirrorUrl']"}) - }, - u'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - u'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '44'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': u"orm['mirrors.Mirror']"}) - }, - u'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': u"orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': u"orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0023_auto__add_field_mirrorurl_created__add_field_mirrorrsync_created__add_.py b/mirrors/migrations/0023_auto__add_field_mirrorurl_created__add_field_mirrorrsync_created__add_.py deleted file mode 100644 index 1a1f48a0..00000000 --- a/mirrors/migrations/0023_auto__add_field_mirrorurl_created__add_field_mirrorrsync_created__add_.py +++ /dev/null @@ -1,97 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models -from pytz import utc - - -class Migration(SchemaMigration): - - def forwards(self, orm): - default = datetime.datetime(2000, 1, 1, 0, 0).replace(tzinfo=utc) - db.add_column(u'mirrors_mirrorurl', 'created', - self.gf('django.db.models.fields.DateTimeField')(default=default), - keep_default=False) - db.add_column(u'mirrors_mirrorrsync', 'created', - self.gf('django.db.models.fields.DateTimeField')(default=default), - keep_default=False) - db.add_column(u'mirrors_mirrorprotocol', 'created', - self.gf('django.db.models.fields.DateTimeField')(default=default), - keep_default=False) - db.add_column(u'mirrors_mirror', 'created', - self.gf('django.db.models.fields.DateTimeField')(default=default), - keep_default=False) - - - def backwards(self, orm): - db.delete_column(u'mirrors_mirrorurl', 'created') - db.delete_column(u'mirrors_mirrorrsync', 'created') - db.delete_column(u'mirrors_mirrorprotocol', 'created') - db.delete_column(u'mirrors_mirror', 'created') - - - models = { - u'mirrors.checklocation': { - 'Meta': {'ordering': "('hostname', 'source_ip')", 'object_name': 'CheckLocation'}, - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'source_ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}) - }, - u'mirrors.mirror': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - u'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': u"orm['mirrors.MirrorUrl']"}) - }, - u'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - u'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '44'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': u"orm['mirrors.Mirror']"}) - }, - u'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': u"orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': u"orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0024_auto__add_field_mirrorlog_location.py b/mirrors/migrations/0024_auto__add_field_mirrorlog_location.py deleted file mode 100644 index acf8df17..00000000 --- a/mirrors/migrations/0024_auto__add_field_mirrorlog_location.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column(u'mirrors_mirrorlog', 'location', - self.gf('django.db.models.fields.related.ForeignKey')(related_name='logs', null=True, to=orm['mirrors.CheckLocation']), - keep_default=False) - - - def backwards(self, orm): - db.delete_column(u'mirrors_mirrorlog', 'location_id') - - - models = { - u'mirrors.checklocation': { - 'Meta': {'ordering': "('hostname', 'source_ip')", 'object_name': 'CheckLocation'}, - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'source_ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}) - }, - u'mirrors.mirror': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - u'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'null': 'True', 'to': u"orm['mirrors.CheckLocation']"}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': u"orm['mirrors.MirrorUrl']"}) - }, - u'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - u'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '44'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': u"orm['mirrors.Mirror']"}) - }, - u'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': u"orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': u"orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0025_auto__chg_field_mirrorrsync_ip.py b/mirrors/migrations/0025_auto__chg_field_mirrorrsync_ip.py deleted file mode 100644 index b359b637..00000000 --- a/mirrors/migrations/0025_auto__chg_field_mirrorrsync_ip.py +++ /dev/null @@ -1,85 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - if db.backend_name == 'postgres': - # For PostgreSQL, because it uses the 'inet' type and not a varchar - # column, we need to add an explict 'USING' cast to the SQL - # statement. We then execute the alter_column as well to ensure any - # of the other side-effects happen. - db.execute('ALTER TABLE "mirrors_mirrorrsync" ALTER COLUMN "ip" TYPE inet USING "ip"::inet') - db.alter_column(u'mirrors_mirrorrsync', 'ip', self.gf('mirrors.fields.IPNetworkField')(max_length=44)) - - def backwards(self, orm): - db.alter_column(u'mirrors_mirrorrsync', 'ip', self.gf('django.db.models.fields.CharField')(max_length=44)) - - models = { - u'mirrors.checklocation': { - 'Meta': {'ordering': "('hostname', 'source_ip')", 'object_name': 'CheckLocation'}, - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'source_ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}) - }, - u'mirrors.mirror': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - u'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'null': 'True', 'to': u"orm['mirrors.CheckLocation']"}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': u"orm['mirrors.MirrorUrl']"}) - }, - u'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - u'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('mirrors.fields.IPNetworkField', [], {'max_length': '44'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': u"orm['mirrors.Mirror']"}) - }, - u'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': u"orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': u"orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0026_auto__add_field_mirrorurl_active.py b/mirrors/migrations/0026_auto__add_field_mirrorurl_active.py deleted file mode 100644 index f989435f..00000000 --- a/mirrors/migrations/0026_auto__add_field_mirrorurl_active.py +++ /dev/null @@ -1,83 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column(u'mirrors_mirrorurl', 'active', - self.gf('django.db.models.fields.BooleanField')(default=True), - keep_default=True) - - def backwards(self, orm): - db.delete_column(u'mirrors_mirrorurl', 'active') - - - models = { - u'mirrors.checklocation': { - 'Meta': {'ordering': "('hostname', 'source_ip')", 'object_name': 'CheckLocation'}, - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'source_ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}) - }, - u'mirrors.mirror': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - u'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'null': 'True', 'to': u"orm['mirrors.CheckLocation']"}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': u"orm['mirrors.MirrorUrl']"}) - }, - u'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - u'mirrors.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('mirrors.fields.IPNetworkField', [], {'max_length': '44'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': u"orm['mirrors.Mirror']"}) - }, - u'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': u"orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': u"orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/migrations/0027_auto__add_field_mirror_bug.py b/mirrors/migrations/0027_auto__add_field_mirror_bug.py deleted file mode 100644 index f7304ba8..00000000 --- a/mirrors/migrations/0027_auto__add_field_mirror_bug.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - def forwards(self, orm): - db.add_column(u'mirrors_mirror', 'bug', - self.gf('django.db.models.fields.PositiveIntegerField')(null=True), - keep_default=False) - # UPDATE mirrors_mirror m - # SET bug = ( - # SELECT extracted::int FROM ( - # SELECT id, substring(notes from 'FS#([\d]+)') AS extracted FROM mirrors_mirror - # ) a - # WHERE extracted IS NOT NULL AND a.id = m.id - # ) - # WHERE notes LIKE '%FS#%'; - - def backwards(self, orm): - db.delete_column(u'mirrors_mirror', 'bug') - - - models = { - u'mirrors.checklocation': { - 'Meta': {'ordering': "('hostname', 'source_ip')", 'object_name': 'CheckLocation'}, - 'country': ('django_countries.fields.CountryField', [], {'max_length': '2'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'source_ip': ('django.db.models.fields.GenericIPAddressField', [], {'unique': 'True', 'max_length': '39'}) - }, - u'mirrors.mirror': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'alternate_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'bug': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['mirrors.Mirror']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - }, - u'mirrors.mirrorlog': { - 'Meta': {'object_name': 'MirrorLog'}, - 'check_time': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'duration': ('django.db.models.fields.FloatField', [], {'null': 'True'}), - 'error': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_success': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'last_sync': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'null': 'True', 'to': u"orm['mirrors.CheckLocation']"}), - 'url': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'logs'", 'to': u"orm['mirrors.MirrorUrl']"}) - }, - u'mirrors.mirrorprotocol': { - 'Meta': {'ordering': "('protocol',)", 'object_name': 'MirrorProtocol'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_download': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - u'mirrors.mirrorrsync': { - 'Meta': {'ordering': "('ip',)", 'object_name': 'MirrorRsync'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('mirrors.fields.IPNetworkField', [], {'max_length': '44'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': u"orm['mirrors.Mirror']"}) - }, - u'mirrors.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'country': ('django_countries.fields.CountryField', [], {'db_index': 'True', 'max_length': '2', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'has_ipv4': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'has_ipv6': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': u"orm['mirrors.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'on_delete': 'models.PROTECT', 'to': u"orm['mirrors.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - } - } - - complete_apps = ['mirrors'] diff --git a/mirrors/models.py b/mirrors/models.py index 0b053043..641a6b97 100644 --- a/mirrors/models.py +++ b/mirrors/models.py @@ -32,6 +32,7 @@ class Mirror(models.Model): bug = models.PositiveIntegerField("Flyspray bug", null=True, blank=True) notes = models.TextField(blank=True) created = models.DateTimeField(editable=False) + last_modified = models.DateTimeField(editable=False) class Meta: ordering = ('name',) @@ -74,6 +75,12 @@ class MirrorUrl(models.Model): created = models.DateTimeField(editable=False) active = models.BooleanField(default=True) + class Meta: + verbose_name = 'mirror URL' + + def __unicode__(self): + return self.url + def address_families(self): hostname = urlparse(self.url).hostname info = socket.getaddrinfo(hostname, None, 0, socket.SOCK_STREAM) @@ -100,11 +107,8 @@ class MirrorUrl(models.Model): self.has_ipv4 = False self.has_ipv6 = False - def __unicode__(self): - return self.url - - class Meta: - verbose_name = 'mirror URL' + def get_absolute_url(self): + return '/mirrors/%s/%d/' % (self.mirror.name, self.pk) class MirrorRsync(models.Model): @@ -114,7 +118,7 @@ class MirrorRsync(models.Model): created = models.DateTimeField(editable=False) def __unicode__(self): - return self.ip + return unicode(self.ip) class Meta: verbose_name = 'mirror rsync IP' @@ -123,7 +127,7 @@ class MirrorRsync(models.Model): class CheckLocation(models.Model): hostname = models.CharField(max_length=255) - source_ip = models.GenericIPAddressField(verbose_name='source IP', + source_ip = models.GenericIPAddressField('source IP', unpack_ipv4=True, unique=True) country = CountryField() created = models.DateTimeField(editable=False) diff --git a/news/migrations/0001_initial.py b/news/migrations/0001_initial.py index e30bf5c9..fc6b6cfb 100644 --- a/news/migrations/0001_initial.py +++ b/news/migrations/0001_initial.py @@ -1,21 +1,37 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models +# -*- coding: utf-8 -*- +from __future__ import unicode_literals -class Migration(SchemaMigration): +from django.db import models, migrations +import django.db.models.deletion +from django.conf import settings - def forwards(self, orm): - pass +class Migration(migrations.Migration): - def backwards(self, orm): - pass + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] - - models = { - - } - - complete_apps = ['news'] + operations = [ + migrations.CreateModel( + name='News', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('slug', models.SlugField(unique=True, max_length=255)), + ('postdate', models.DateTimeField(verbose_name=b'post date', db_index=True)), + ('last_modified', models.DateTimeField(editable=False, db_index=True)), + ('title', models.CharField(max_length=255)), + ('guid', models.CharField(max_length=255, editable=False)), + ('content', models.TextField()), + ('safe_mode', models.BooleanField(default=True)), + ('author', models.ForeignKey(related_name=b'news_author', on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'ordering': ('-postdate',), + 'db_table': 'news', + 'verbose_name_plural': 'news', + 'get_latest_by': 'postdate', + }, + bases=(models.Model,), + ), + ] diff --git a/news/migrations/0002_move_news_in.py b/news/migrations/0002_move_news_in.py deleted file mode 100644 index 43d68df4..00000000 --- a/news/migrations/0002_move_news_in.py +++ /dev/null @@ -1,71 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - depends_on = ( - ('main', '0031_move_news_out'), - ) - - def forwards(self, orm): - db.send_create_signal('news', ['News']) - if not db.dry_run: - ct = orm['contenttypes.ContentType'].objects - ct.filter(app_label='main', model='news').update(app_label='news') - - def backwards(self, orm): - if not db.dry_run: - ct = orm['contenttypes.ContentType'].objects - ct.filter(app_label='news', model='news').update(app_label='main') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "['-postdate', '-id']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] diff --git a/news/migrations/0003_new_date_columns_precision.py b/news/migrations/0003_new_date_columns_precision.py deleted file mode 100644 index 1c97f488..00000000 --- a/news/migrations/0003_new_date_columns_precision.py +++ /dev/null @@ -1,73 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models -from django.utils.timezone import now - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'News.last_modified' - db.add_column('news', 'last_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, default=now(), db_index=True, blank=True), keep_default=False) - # Changing field 'News.postdate' - db.alter_column('news', 'postdate', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True)) - # Adding index on 'News', fields ['postdate'] - db.create_index('news', ['postdate']) - - def backwards(self, orm): - # Removing index on 'News', fields ['postdate'] - db.delete_index('news', ['postdate']) - # Deleting field 'News.last_modified' - db.delete_column('news', 'last_modified') - # Changing field 'News.postdate' - db.alter_column('news', 'postdate', self.gf('django.db.models.fields.DateField')(auto_now_add=True)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "['-postdate', '-id']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] diff --git a/news/migrations/0004_auto__add_field_news_slug.py b/news/migrations/0004_auto__add_field_news_slug.py deleted file mode 100644 index 7e5dcb79..00000000 --- a/news/migrations/0004_auto__add_field_news_slug.py +++ /dev/null @@ -1,66 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'News.slug' - db.add_column('news', 'slug', self.gf('django.db.models.fields.SlugField')(max_length=255, unique=True, null=True, db_index=True), keep_default=False) - - def backwards(self, orm): - # Deleting field 'News.slug' - db.delete_column('news', 'slug') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "['-postdate']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'db_index': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] diff --git a/news/migrations/0005_add_slugs.py b/news/migrations/0005_add_slugs.py deleted file mode 100644 index 96bd5213..00000000 --- a/news/migrations/0005_add_slugs.py +++ /dev/null @@ -1,78 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -from django.template.defaultfilters import slugify - -class Migration(DataMigration): - - def forwards(self, orm): - existing = list(orm.News.objects.values_list( - 'slug', flat=True).distinct()) - for item in orm.News.objects.defer('content').filter(slug=None): - suffixed = slug = slugify(item.title) - suffix = 1 - while suffixed in existing: - suffix += 1 - suffixed = "%s-%d" % (slug, suffix) - - item.slug = suffixed - existing.append(suffixed) - - item.save() - - def backwards(self, orm): - orm.News.objects.all.update(slug=None) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "['-postdate']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'db_index': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] diff --git a/news/migrations/0006_auto__chg_field_news_slug.py b/news/migrations/0006_auto__chg_field_news_slug.py deleted file mode 100644 index c6c61e84..00000000 --- a/news/migrations/0006_auto__chg_field_news_slug.py +++ /dev/null @@ -1,66 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Changing field 'News.slug' - db.alter_column('news', 'slug', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=255)) - - def backwards(self, orm): - # Changing field 'News.slug' - db.alter_column('news', 'slug', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=255, null=True)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "['-postdate']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] diff --git a/news/migrations/0007_add_guid.py b/news/migrations/0007_add_guid.py deleted file mode 100644 index 5fa8193e..00000000 --- a/news/migrations/0007_add_guid.py +++ /dev/null @@ -1,65 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('news', 'guid', self.gf('django.db.models.fields.CharField')(default='', max_length=255), keep_default=False) - - def backwards(self, orm): - db.delete_column('news', 'guid') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "['-postdate']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'guid': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] diff --git a/news/migrations/0008_set_prior_guids.py b/news/migrations/0008_set_prior_guids.py deleted file mode 100644 index 704b11c9..00000000 --- a/news/migrations/0008_set_prior_guids.py +++ /dev/null @@ -1,83 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.conf import settings -from django.db import models - -class Migration(DataMigration): - '''The point of this migration is to not mark every news item as 'new' in - people's feed readers, and store the GUID perminantly with the news item. - All previously published news items will get their former auto-assigned - GUID; new ones will get a generated tag: URI and this won't apply to - them.''' - - def forwards(self, orm): - all_news = orm.News.objects.all().defer('content') - site = orm['sites.site'].objects.get(pk=settings.SITE_ID).domain - for news in all_news: - new_guid = 'http://%s/news/%s/' % (site, news.slug) - # looks totally silly, but prevents full updates of all fields, - # including content and last_modified which we want to leave alone - orm.News.objects.filter(pk=news.pk).update(guid=new_guid) - - def backwards(self, orm): - pass - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "['-postdate']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'guid': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'sites.site': { - 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"}, - 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - } - } - - complete_apps = ['sites', 'news'] diff --git a/news/migrations/0009_utc_datetimes.py b/news/migrations/0009_utc_datetimes.py deleted file mode 100644 index 6cddf783..00000000 --- a/news/migrations/0009_utc_datetimes.py +++ /dev/null @@ -1,85 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models -from django.utils.tzinfo import LocalTimezone - -def new_date(old_date, reverse=False): - if old_date is None: - return None - tz = LocalTimezone(old_date) - offset = tz.utcoffset(old_date) - if reverse: - offset = -offset - return old_date - offset - -class Migration(DataMigration): - - def forwards(self, orm): - all_news = orm.News.objects.all().defer('content') - for news in all_news: - # prevents full object updates - orm.News.objects.filter(pk=news.pk).update( - postdate=new_date(news.postdate), - last_modified=new_date(news.last_modified)) - - def backwards(self, orm): - all_news = orm.News.objects.all().defer('content') - for news in all_news: - # prevents full object updates - orm.News.objects.filter(pk=news.pk).update( - postdate=new_date(news.postdate, True), - last_modified=new_date(news.last_modified, True)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "['-postdate']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'guid': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] diff --git a/news/migrations/0010_auto__chg_field_news_author.py b/news/migrations/0010_auto__chg_field_news_author.py deleted file mode 100644 index 64fdc580..00000000 --- a/news/migrations/0010_auto__chg_field_news_author.py +++ /dev/null @@ -1,65 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('news', 'author_id', self.gf('django.db.models.fields.related.ForeignKey')(on_delete=models.PROTECT, to=orm['auth.User'])) - - def backwards(self, orm): - db.alter_column('news', 'author_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "['-postdate']", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'guid': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] diff --git a/news/migrations/0011_auto__add_field_news_safe_mode.py b/news/migrations/0011_auto__add_field_news_safe_mode.py deleted file mode 100644 index 565c7adb..00000000 --- a/news/migrations/0011_auto__add_field_news_safe_mode.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('news', 'safe_mode', - self.gf('django.db.models.fields.BooleanField')(default=True), - keep_default=True) - - def backwards(self, orm): - db.delete_column('news', 'safe_mode') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "('-postdate',)", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'guid': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'safe_mode': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] diff --git a/news/migrations/0012_mark_old_news_safe_exempt.py b/news/migrations/0012_mark_old_news_safe_exempt.py deleted file mode 100644 index b2661cd8..00000000 --- a/news/migrations/0012_mark_old_news_safe_exempt.py +++ /dev/null @@ -1,73 +0,0 @@ -# -*- coding: utf-8 -*- -import markdown - -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - md = markdown.Markdown(safe_mode=True, enable_attributes=False) - magic = md.html_replacement_text - items = orm.News.objects.all() - has_html = [item.pk for item in items if magic in md.convert(item.content)] - for pk in has_html: - orm.News.objects.filter(pk=pk).update(safe_mode=False) - - def backwards(self, orm): - orm.News.objects.all().update(safe_mode=True) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'news.news': { - 'Meta': {'ordering': "('-postdate',)", 'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'news_author'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'guid': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'postdate': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'safe_mode': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - } - } - - complete_apps = ['news'] - symmetrical = True diff --git a/packages/migrations/0001_initial.py b/packages/migrations/0001_initial.py index 76e97340..5ecac84a 100644 --- a/packages/migrations/0001_initial.py +++ b/packages/migrations/0001_initial.py @@ -1,72 +1,205 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models +# -*- coding: utf-8 -*- +from __future__ import unicode_literals -class Migration(SchemaMigration): - def forwards(self, orm): - # Adding model 'PackageRelation' - db.create_table('packages_packagerelation', ( - ('pkgbase', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('type', self.gf('django.db.models.fields.PositiveIntegerField')(default=1)), - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='package_relations', to=orm['auth.User'])), - )) - db.send_create_signal('packages', ['PackageRelation']) - # Adding unique constraint on 'PackageRelation', fields ['pkgbase', 'user', 'type'] - db.create_unique('packages_packagerelation', ['pkgbase', 'user_id', 'type']) +from django.db import models, migrations +import django.db.models.deletion +from django.conf import settings - def backwards(self, orm): - # Deleting model 'PackageRelation' - db.delete_table('packages_packagerelation') - # Removing unique constraint on 'PackageRelation', fields ['pkgbase', 'user', 'type'] - db.delete_unique('packages_packagerelation', ['pkgbase', 'user_id', 'type']) - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - } - } +class Migration(migrations.Migration): - complete_apps = ['packages'] + dependencies = [ + ('main', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Conflict', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255, db_index=True)), + ('version', models.CharField(default=b'', max_length=255)), + ('comparison', models.CharField(default=b'', max_length=255)), + ('pkg', models.ForeignKey(related_name=b'conflicts', to='main.Package')), + ], + options={ + 'ordering': ('name',), + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Depend', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255, db_index=True)), + ('version', models.CharField(default=b'', max_length=255)), + ('comparison', models.CharField(default=b'', max_length=255)), + ('description', models.TextField(null=True, blank=True)), + ('deptype', models.CharField(default=b'D', max_length=1, choices=[(b'D', b'Depend'), (b'O', b'Optional Depend'), (b'M', b'Make Depend'), (b'C', b'Check Depend')])), + ('pkg', models.ForeignKey(related_name=b'depends', to='main.Package')), + ], + options={ + 'ordering': ('name',), + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='FlagRequest', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('user_email', models.EmailField(max_length=75, verbose_name=b'email address')), + ('created', models.DateTimeField(editable=False, db_index=True)), + ('ip_address', models.GenericIPAddressField(verbose_name=b'IP address', unpack_ipv4=True)), + ('pkgbase', models.CharField(max_length=255, db_index=True)), + ('pkgver', models.CharField(max_length=255)), + ('pkgrel', models.CharField(max_length=255)), + ('epoch', models.PositiveIntegerField(default=0)), + ('num_packages', models.PositiveIntegerField(default=1, verbose_name=b'number of packages')), + ('message', models.TextField(verbose_name=b'message to developer', blank=True)), + ('is_spam', models.BooleanField(default=False, help_text=b'Is this comment from a real person?')), + ('is_legitimate', models.BooleanField(default=True, help_text=b'Is this actually an out-of-date flag request?')), + ('repo', models.ForeignKey(to='main.Repo')), + ('user', models.ForeignKey(blank=True, to=settings.AUTH_USER_MODEL, null=True)), + ], + options={ + 'get_latest_by': 'created', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='License', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255)), + ('pkg', models.ForeignKey(related_name=b'licenses', to='main.Package')), + ], + options={ + 'ordering': ('name',), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='PackageGroup', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255, db_index=True)), + ('pkg', models.ForeignKey(related_name=b'groups', to='main.Package')), + ], + options={ + 'ordering': ('name',), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='PackageRelation', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('pkgbase', models.CharField(max_length=255)), + ('type', models.PositiveIntegerField(default=1, choices=[(1, b'Maintainer'), (2, b'Watcher')])), + ('created', models.DateTimeField(editable=False)), + ('user', models.ForeignKey(related_name=b'package_relations', to=settings.AUTH_USER_MODEL)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Provision', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255, db_index=True)), + ('version', models.CharField(default=b'', max_length=255)), + ('pkg', models.ForeignKey(related_name=b'provides', to='main.Package')), + ], + options={ + 'ordering': ('name',), + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Replacement', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255, db_index=True)), + ('version', models.CharField(default=b'', max_length=255)), + ('comparison', models.CharField(default=b'', max_length=255)), + ('pkg', models.ForeignKey(related_name=b'replaces', to='main.Package')), + ], + options={ + 'ordering': ('name',), + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Signoff', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('pkgbase', models.CharField(max_length=255, db_index=True)), + ('pkgver', models.CharField(max_length=255)), + ('pkgrel', models.CharField(max_length=255)), + ('epoch', models.PositiveIntegerField(default=0)), + ('created', models.DateTimeField(editable=False, db_index=True)), + ('revoked', models.DateTimeField(null=True)), + ('comments', models.TextField(null=True, blank=True)), + ('arch', models.ForeignKey(to='main.Arch')), + ('repo', models.ForeignKey(to='main.Repo')), + ('user', models.ForeignKey(related_name=b'package_signoffs', to=settings.AUTH_USER_MODEL)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='SignoffSpecification', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('pkgbase', models.CharField(max_length=255, db_index=True)), + ('pkgver', models.CharField(max_length=255)), + ('pkgrel', models.CharField(max_length=255)), + ('epoch', models.PositiveIntegerField(default=0)), + ('created', models.DateTimeField(editable=False)), + ('required', models.PositiveIntegerField(default=2, help_text=b'How many signoffs are required for this package?')), + ('enabled', models.BooleanField(default=True, help_text=b'Is this package eligible for signoffs?')), + ('known_bad', models.BooleanField(default=False, help_text=b'Is package is known to be broken in some way?')), + ('comments', models.TextField(null=True, blank=True)), + ('arch', models.ForeignKey(to='main.Arch')), + ('repo', models.ForeignKey(to='main.Repo')), + ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, null=True)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Update', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('pkgname', models.CharField(max_length=255, db_index=True)), + ('pkgbase', models.CharField(max_length=255)), + ('action_flag', models.PositiveSmallIntegerField(verbose_name=b'action flag', choices=[(1, b'Addition'), (2, b'Change'), (3, b'Deletion')])), + ('created', models.DateTimeField(editable=False, db_index=True)), + ('old_pkgver', models.CharField(max_length=255, null=True)), + ('old_pkgrel', models.CharField(max_length=255, null=True)), + ('old_epoch', models.PositiveIntegerField(null=True)), + ('new_pkgver', models.CharField(max_length=255, null=True)), + ('new_pkgrel', models.CharField(max_length=255, null=True)), + ('new_epoch', models.PositiveIntegerField(null=True)), + ('arch', models.ForeignKey(related_name=b'updates', to='main.Arch')), + ('package', models.ForeignKey(related_name=b'updates', on_delete=django.db.models.deletion.SET_NULL, to='main.Package', null=True)), + ('repo', models.ForeignKey(related_name=b'updates', to='main.Repo')), + ], + options={ + 'get_latest_by': 'created', + }, + bases=(models.Model,), + ), + migrations.AlterUniqueTogether( + name='packagerelation', + unique_together=set([('pkgbase', 'user', 'type')]), + ), + ] diff --git a/packages/migrations/0002_populate_package_relation.py b/packages/migrations/0002_populate_package_relation.py deleted file mode 100644 index b0d32c7a..00000000 --- a/packages/migrations/0002_populate_package_relation.py +++ /dev/null @@ -1,233 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - depends_on = ( - ("main", "0003_migrate_maintainer"), - ) - - def forwards(self, orm): - # search by pkgbase first and insert those records - qs = orm['main.Package'].objects.exclude(maintainer=None).exclude( - pkgbase=None).distinct().values('pkgbase', 'maintainer_id') - for row in qs: - pr, created = orm.PackageRelation.objects.get_or_create( - pkgbase=row['pkgbase'], user__id=row['maintainer_id'], - defaults={'user_id': row['maintainer_id']}) - - # next search by pkgname first and insert those records - qs = orm['main.Package'].objects.exclude(maintainer=None).filter( - pkgbase=None).distinct().values('pkgname', 'maintainer_id') - for row in qs: - pr, created = orm.PackageRelation.objects.get_or_create( - pkgbase=row['pkgname'], user__id=row['maintainer_id'], - defaults={'user_id': row['maintainer_id']}) - - def backwards(self, orm): - if not db.dry_run: - orm.PackageRelation.objects.all().delete() - pass - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.altforum': { - 'Meta': {'object_name': 'AltForum', 'db_table': "'alt_forums'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'object_name': 'Donor', 'db_table': "'donors'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.externalproject': { - 'Meta': {'object_name': 'ExternalProject'}, - 'description': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}) - }, - 'main.mirror': { - 'Meta': {'object_name': 'Mirror'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'admin_email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'blank': 'True'}), - 'country': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'isos': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'notes': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'rsync_password': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'rsync_user': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '50', 'blank': 'True'}), - 'tier': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'upstream': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Mirror']", 'null': 'True'}) - }, - 'main.mirrorprotocol': { - 'Meta': {'object_name': 'MirrorProtocol'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'protocol': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}) - }, - 'main.mirrorrsync': { - 'Meta': {'object_name': 'MirrorRsync'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip': ('django.db.models.fields.CharField', [], {'max_length': '24'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rsync_ips'", 'to': "orm['main.Mirror']"}) - }, - 'main.mirrorurl': { - 'Meta': {'object_name': 'MirrorUrl'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mirror': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.Mirror']"}), - 'protocol': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'urls'", 'to': "orm['main.MirrorProtocol']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.news': { - 'Meta': {'object_name': 'News', 'db_table': "'news'"}, - 'author': ('django.db.models.fields.related.ForeignKey', [], {'default': 'None', 'related_name': "'news_author'", 'to': "orm['auth.User']"}), - 'content': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'postdate': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'maintained_packages'", 'null': 'True', 'to': "orm['auth.User']"}), - 'needupdate': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'path': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.press': { - 'Meta': {'object_name': 'Press', 'db_table': "'press'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'main.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), - 'date_added': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.userprofile': { - 'Meta': {'object_name': 'UserProfile', 'db_table': "'user_profiles'"}, - 'alias': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'allowed_repos': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['main.Repo']", 'blank': 'True'}), - 'favorite_distros': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'interests': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'languages': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'location': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'notify': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), - 'other_contact': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), - 'picture': ('django.db.models.fields.files.FileField', [], {'default': "'devs/silhouette.png'", 'max_length': '100'}), - 'public_email': ('django.db.models.fields.CharField', [], {'max_length': '50'}), - 'roles': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'userprofile_user'", 'unique': 'True', 'to': "orm['auth.User']"}), - 'website': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), - 'yob': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - } - } - - complete_apps = ['main', 'packages'] diff --git a/packages/migrations/0003_auto__add_packagegroup.py b/packages/migrations/0003_auto__add_packagegroup.py deleted file mode 100644 index c40b6429..00000000 --- a/packages/migrations/0003_auto__add_packagegroup.py +++ /dev/null @@ -1,109 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding model 'PackageGroup' - db.create_table('packages_packagegroup', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Package'])), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), - )) - db.send_create_signal('packages', ['PackageGroup']) - - - def backwards(self, orm): - - # Deleting model 'PackageGroup' - db.delete_table('packages_packagegroup') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'object_name': 'Arch', 'db_table': "'arches'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'object_name': 'Repo', 'db_table': "'repos'"}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0004_auto__add_license.py b/packages/migrations/0004_auto__add_license.py deleted file mode 100644 index 001440fe..00000000 --- a/packages/migrations/0004_auto__add_license.py +++ /dev/null @@ -1,118 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'License' - db.create_table('packages_license', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(related_name='licenses', to=orm['main.Package'])), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), - )) - db.send_create_signal('packages', ['License']) - - - def backwards(self, orm): - # Deleting model 'License' - db.delete_table('packages_license') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.license': { - 'Meta': {'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0005_move_license_data.py b/packages/migrations/0005_move_license_data.py deleted file mode 100644 index 1c1e689a..00000000 --- a/packages/migrations/0005_move_license_data.py +++ /dev/null @@ -1,120 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - depends_on = ( - # the last structural change to the package model - ('main', '0026_auto__add_field_package_packager_str__add_field_package_packager'), - ) - - def forwards(self, orm): - "Migrate the flat license text to a seperate relation." - for pkg in orm['main.Package'].objects.all(): - licenses = pkg.license.split(u', ') - for license in licenses: - pkg.licenses.create(name=license) - - def backwards(self, orm): - for pkg in orm['main.Package'].objects.all(): - pkg.license = u', '.join([l.name for l in pkg.licenses.all()]) - pkg.save() - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'license': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.license': { - 'Meta': {'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0006_auto__add_provision__add_conflict__add_replacement.py b/packages/migrations/0006_auto__add_provision__add_conflict__add_replacement.py deleted file mode 100644 index c764ce77..00000000 --- a/packages/migrations/0006_auto__add_provision__add_conflict__add_replacement.py +++ /dev/null @@ -1,167 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'Provision' - db.create_table('packages_provision', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(related_name='provides', to=orm['main.Package'])), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255, db_index=True)), - ('version', self.gf('django.db.models.fields.CharField')(default='', max_length=255)), - )) - db.send_create_signal('packages', ['Provision']) - - # Adding model 'Conflict' - db.create_table('packages_conflict', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(related_name='conflicts', to=orm['main.Package'])), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255, db_index=True)), - ('comparison', self.gf('django.db.models.fields.CharField')(default='', max_length=255)), - ('version', self.gf('django.db.models.fields.CharField')(default='', max_length=255)), - )) - db.send_create_signal('packages', ['Conflict']) - - # Adding model 'Replacement' - db.create_table('packages_replacement', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(related_name='replaces', to=orm['main.Package'])), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255, db_index=True)), - ('comparison', self.gf('django.db.models.fields.CharField')(default='', max_length=255)), - ('version', self.gf('django.db.models.fields.CharField')(default='', max_length=255)), - )) - db.send_create_signal('packages', ['Replacement']) - - - def backwards(self, orm): - # Deleting model 'Provision' - db.delete_table('packages_provision') - # Deleting model 'Conflict' - db.delete_table('packages_conflict') - # Deleting model 'Replacement' - db.delete_table('packages_replacement') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0007_auto__add_field_packagerelation_created.py b/packages/migrations/0007_auto__add_field_packagerelation_created.py deleted file mode 100644 index b030909e..00000000 --- a/packages/migrations/0007_auto__add_field_packagerelation_created.py +++ /dev/null @@ -1,138 +0,0 @@ -# encoding: utf-8 -import datetime -from pytz import utc -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - old_date = datetime.datetime(2000, 1, 1) - old_date = old_date.replace(tzinfo=utc) - db.add_column('packages_packagerelation', 'created', self.gf('django.db.models.fields.DateTimeField')(default=old_date), keep_default=False) - - def backwards(self, orm): - db.delete_column('packages_packagerelation', 'created') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0008_add_signoff_model.py b/packages/migrations/0008_add_signoff_model.py deleted file mode 100644 index 5feed909..00000000 --- a/packages/migrations/0008_add_signoff_model.py +++ /dev/null @@ -1,166 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'Signoff' - db.create_table('packages_signoff', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pkgbase', self.gf('django.db.models.fields.CharField')(max_length=255, db_index=True)), - ('pkgver', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('pkgrel', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('epoch', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)), - ('arch', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Arch'])), - ('repo', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Repo'])), - ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='package_signoffs', to=orm['auth.User'])), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('revoked', self.gf('django.db.models.fields.DateTimeField')(null=True)), - ('comments', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - )) - db.send_create_signal('packages', ['Signoff']) - - - def backwards(self, orm): - # Deleting model 'Signoff' - db.delete_table('packages_signoff') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0009_add_packagegroup_name_index.py b/packages/migrations/0009_add_packagegroup_name_index.py deleted file mode 100644 index f81e77fc..00000000 --- a/packages/migrations/0009_add_packagegroup_name_index.py +++ /dev/null @@ -1,149 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_index('packages_packagegroup', ['name']) - - def backwards(self, orm): - db.delete_index('packages_packagegroup', ['name']) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0010_auto__add_signoffspecification.py b/packages/migrations/0010_auto__add_signoffspecification.py deleted file mode 100644 index da24824e..00000000 --- a/packages/migrations/0010_auto__add_signoffspecification.py +++ /dev/null @@ -1,183 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_table('packages_signoffspecification', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('pkgbase', self.gf('django.db.models.fields.CharField')(max_length=255, db_index=True)), - ('pkgver', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('pkgrel', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('epoch', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)), - ('arch', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Arch'])), - ('repo', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Repo'])), - ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('required', self.gf('django.db.models.fields.PositiveIntegerField')(default=2)), - ('enabled', self.gf('django.db.models.fields.BooleanField')(default=True)), - ('known_bad', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('comments', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - )) - db.send_create_signal('packages', ['SignoffSpecification']) - - - def backwards(self, orm): - db.delete_table('packages_signoffspecification') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0011_auto__chg_field_signoffspecification_user.py b/packages/migrations/0011_auto__chg_field_signoffspecification_user.py deleted file mode 100644 index f6e3cdd9..00000000 --- a/packages/migrations/0011_auto__chg_field_signoffspecification_user.py +++ /dev/null @@ -1,165 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('packages_signoffspecification', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True)) - - def backwards(self, orm): - db.alter_column('packages_signoffspecification', 'user_id', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['auth.User'])) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.models.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0012_auto__add_flagrequest.py b/packages/migrations/0012_auto__add_flagrequest.py deleted file mode 100644 index a501daff..00000000 --- a/packages/migrations/0012_auto__add_flagrequest.py +++ /dev/null @@ -1,201 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding model 'FlagRequest' - db.create_table('packages_flagrequest', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, blank=True)), - ('user_email', self.gf('django.db.models.fields.EmailField')(max_length=75)), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('ip_address', self.gf('django.db.models.fields.IPAddressField')(max_length=15)), - ('pkgbase', self.gf('django.db.models.fields.CharField')(max_length=255, db_index=True)), - ('repo', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Repo'])), - ('num_packages', self.gf('django.db.models.fields.PositiveIntegerField')(default=1)), - ('message', self.gf('django.db.models.fields.TextField')(blank=True)), - ('is_spam', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('is_legitimate', self.gf('django.db.models.fields.BooleanField')(default=True)), - )) - db.send_create_signal('packages', ['FlagRequest']) - - if db.backend_name == 'mysql': - # stupid f#$%ing storage of IP address as a 15 character type - db.execute("ALTER TABLE packages_flagrequest " - "MODIFY ip_address char(39) NOT NULL") - - - def backwards(self, orm): - # Deleting model 'FlagRequest' - db.delete_table('packages_flagrequest') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0013_auto__add_field_flagrequest_version.py b/packages/migrations/0013_auto__add_field_flagrequest_version.py deleted file mode 100644 index ab33d5b3..00000000 --- a/packages/migrations/0013_auto__add_field_flagrequest_version.py +++ /dev/null @@ -1,180 +0,0 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('packages_flagrequest', 'version', self.gf('django.db.models.fields.CharField')(default='', max_length=255), keep_default=False) - - def backwards(self, orm): - db.delete_column('packages_flagrequest', 'version') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0014_auto__chg_field_flagrequest_ip_address.py b/packages/migrations/0014_auto__chg_field_flagrequest_ip_address.py deleted file mode 100644 index 351b9985..00000000 --- a/packages/migrations/0014_auto__chg_field_flagrequest_ip_address.py +++ /dev/null @@ -1,181 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('packages_flagrequest', 'ip_address', self.gf('django.db.models.fields.GenericIPAddressField')(max_length=39)) - - def backwards(self, orm): - db.alter_column('packages_flagrequest', 'ip_address', self.gf('django.db.models.fields.IPAddressField')(max_length=15)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0015_auto__add_depend.py b/packages/migrations/0015_auto__add_depend.py deleted file mode 100644 index c9685ecb..00000000 --- a/packages/migrations/0015_auto__add_depend.py +++ /dev/null @@ -1,199 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - def forwards(self, orm): - db.create_table('packages_depend', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255, db_index=True)), - ('version', self.gf('django.db.models.fields.CharField')(default='', max_length=255)), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(related_name='depends_new', to=orm['main.Package'])), - ('comparison', self.gf('django.db.models.fields.CharField')(default='', max_length=255)), - ('optional', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - )) - db.send_create_signal('packages', ['Depend']) - - def backwards(self, orm): - db.delete_table('packages_depend') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends_new'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0016_copy_depends_data.py b/packages/migrations/0016_copy_depends_data.py deleted file mode 100644 index a4b55d4e..00000000 --- a/packages/migrations/0016_copy_depends_data.py +++ /dev/null @@ -1,246 +0,0 @@ -# -*- coding: utf-8 -*- -import re -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - depends_on = ( - ('main', '0038_add_depends_optional_description.py'), - ) - - def forwards(self, orm): - Depend = orm['packages.Depend'] - vcmp_re = re.compile(r"^(>=|<=|=|>|<)(.*)$") - for old in orm['main.PackageDepend'].objects.all(): - comp = ver = '' - m = vcmp_re.match(old.depvcmp) - if m: - comp = m.group(1) - ver = m.group(2) - new_dep = Depend(pkg_id=old.pkg_id, name=old.depname, - comparison=comp, version=ver, optional=old.optional, - description=old.description) - new_dep.save(force_insert=True) - - def backwards(self, orm): - orm['packages.Depend'].objects.all().delete() - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagedepend': { - 'Meta': {'object_name': 'PackageDepend', 'db_table': "'package_depends'"}, - 'depname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'depvcmp': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'on_delete': 'models.PROTECT'}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends_new'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - } - } - - complete_apps = ['main', 'packages'] - symmetrical = True diff --git a/packages/migrations/0017_auto__add_update.py b/packages/migrations/0017_auto__add_update.py deleted file mode 100644 index c7c16d4e..00000000 --- a/packages/migrations/0017_auto__add_update.py +++ /dev/null @@ -1,226 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_table('packages_update', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('package', self.gf('django.db.models.fields.related.ForeignKey')(related_name='updates', null=True, on_delete=models.SET_NULL, to=orm['main.Package'])), - ('repo', self.gf('django.db.models.fields.related.ForeignKey')(related_name='updates', to=orm['main.Repo'])), - ('arch', self.gf('django.db.models.fields.related.ForeignKey')(related_name='updates', to=orm['main.Arch'])), - ('pkgname', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('pkgbase', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('action_flag', self.gf('django.db.models.fields.PositiveSmallIntegerField')()), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('old_pkgver', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)), - ('old_pkgrel', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)), - ('old_epoch', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)), - ('new_pkgver', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)), - ('new_pkgrel', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)), - ('new_epoch', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)), - )) - db.send_create_signal('packages', ['Update']) - - - def backwards(self, orm): - db.delete_table('packages_update') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - }, - 'packages.update': { - 'Meta': {'object_name': 'Update'}, - 'action_flag': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Arch']"}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'new_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'new_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'new_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'old_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Package']"}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Repo']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0018_create_created_indexes.py b/packages/migrations/0018_create_created_indexes.py deleted file mode 100644 index 678a04d4..00000000 --- a/packages/migrations/0018_create_created_indexes.py +++ /dev/null @@ -1,214 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_index('packages_flagrequest', ['created']) - db.create_index('packages_update', ['created']) - db.create_index('packages_signoff', ['created']) - - - def backwards(self, orm): - db.delete_index('packages_signoff', ['created']) - db.delete_index('packages_update', ['created']) - db.delete_index('packages_flagrequest', ['created']) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - }, - 'packages.update': { - 'Meta': {'object_name': 'Update'}, - 'action_flag': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Arch']"}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'new_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'new_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'new_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'old_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Package']"}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Repo']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0019_package_update_pkgname_index.py b/packages/migrations/0019_package_update_pkgname_index.py deleted file mode 100644 index 047f11ec..00000000 --- a/packages/migrations/0019_package_update_pkgname_index.py +++ /dev/null @@ -1,208 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_index('packages_update', ['pkgname']) - - def backwards(self, orm): - db.delete_index('packages_update', ['pkgname']) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - }, - 'packages.update': { - 'Meta': {'object_name': 'Update'}, - 'action_flag': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Arch']"}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'new_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'new_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'new_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'old_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Package']"}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Repo']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0020_auto__add_field_depend_deptype.py b/packages/migrations/0020_auto__add_field_depend_deptype.py deleted file mode 100644 index 4cc5bc17..00000000 --- a/packages/migrations/0020_auto__add_field_depend_deptype.py +++ /dev/null @@ -1,212 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('packages_depend', 'deptype', - self.gf('django.db.models.fields.CharField')(default='D', max_length=1), - keep_default=True) - - def backwards(self, orm): - db.delete_column('packages_depend', 'deptype') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'deptype': ('django.db.models.fields.CharField', [], {'default': "'D'", 'max_length': '1'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - }, - 'packages.update': { - 'Meta': {'object_name': 'Update'}, - 'action_flag': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Arch']"}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'new_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'new_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'new_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'old_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Package']"}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Repo']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0021_migrate_optional_deps.py b/packages/migrations/0021_migrate_optional_deps.py deleted file mode 100644 index f6652ce1..00000000 --- a/packages/migrations/0021_migrate_optional_deps.py +++ /dev/null @@ -1,210 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - orm['packages.Depend'].objects.filter(optional=False).update(deptype='D') - orm['packages.Depend'].objects.filter(optional=True).update(deptype='O') - - def backwards(self, orm): - orm['packages.Depend'].objects.all().update(deptype='D') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'deptype': ('django.db.models.fields.CharField', [], {'default': "'D'", 'max_length': '1'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - }, - 'packages.update': { - 'Meta': {'object_name': 'Update'}, - 'action_flag': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Arch']"}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'new_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'new_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'new_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'old_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Package']"}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Repo']"}) - } - } - - complete_apps = ['packages'] - symmetrical = True diff --git a/packages/migrations/0022_auto__del_field_depend_optional.py b/packages/migrations/0022_auto__del_field_depend_optional.py deleted file mode 100644 index 8e65ccb1..00000000 --- a/packages/migrations/0022_auto__del_field_depend_optional.py +++ /dev/null @@ -1,211 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.delete_column('packages_depend', 'optional') - - def backwards(self, orm): - db.add_column('packages_depend', 'optional', - self.gf('django.db.models.fields.BooleanField')(default=False), - keep_default=False) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'deptype': ('django.db.models.fields.CharField', [], {'default': "'D'", 'max_length': '1'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - }, - 'packages.update': { - 'Meta': {'object_name': 'Update'}, - 'action_flag': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Arch']"}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'new_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'new_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'new_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'old_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Package']"}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Repo']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0023_split_flag_req_version_field.py b/packages/migrations/0023_split_flag_req_version_field.py deleted file mode 100644 index b3d6c05c..00000000 --- a/packages/migrations/0023_split_flag_req_version_field.py +++ /dev/null @@ -1,222 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('packages_flagrequest', 'pkgver', - self.gf('django.db.models.fields.CharField')(default='', max_length=255), - keep_default=False) - db.add_column('packages_flagrequest', 'pkgrel', - self.gf('django.db.models.fields.CharField')(default='', max_length=255), - keep_default=False) - db.add_column('packages_flagrequest', 'epoch', - self.gf('django.db.models.fields.PositiveIntegerField')(default=0), - keep_default=True) - - def backwards(self, orm): - db.delete_column('packages_flagrequest', 'pkgver') - db.delete_column('packages_flagrequest', 'pkgrel') - db.delete_column('packages_flagrequest', 'epoch') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'deptype': ('django.db.models.fields.CharField', [], {'default': "'D'", 'max_length': '1'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - }, - 'packages.update': { - 'Meta': {'object_name': 'Update'}, - 'action_flag': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Arch']"}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'new_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'new_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'new_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'old_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Package']"}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Repo']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/migrations/0024_move_flag_req_version_info.py b/packages/migrations/0024_move_flag_req_version_info.py deleted file mode 100644 index 3be4654a..00000000 --- a/packages/migrations/0024_move_flag_req_version_info.py +++ /dev/null @@ -1,218 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import DataMigration -from django.db import models - -from packages.utils import parse_version - - -class Migration(DataMigration): - - def forwards(self, orm): - for pk, version in orm.FlagRequest.objects.exclude( - version='').values_list('pk', 'version'): - ver, rel, epoch = parse_version(version) - orm.FlagRequest.objects.filter(pk=pk).update( - pkgver=ver, pkgrel=rel, epoch=epoch) - - def backwards(self, orm): - orm.FlagRequest.objects.all().update(pkgver='', pkgrel='', epoch=0) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'deptype': ('django.db.models.fields.CharField', [], {'default': "'D'", 'max_length': '1'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'version': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - }, - 'packages.update': { - 'Meta': {'object_name': 'Update'}, - 'action_flag': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Arch']"}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'new_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'new_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'new_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'old_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Package']"}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Repo']"}) - } - } - - complete_apps = ['packages'] - symmetrical = True diff --git a/packages/migrations/0025_auto__del_field_flagrequest_version.py b/packages/migrations/0025_auto__del_field_flagrequest_version.py deleted file mode 100644 index 963b0b12..00000000 --- a/packages/migrations/0025_auto__del_field_flagrequest_version.py +++ /dev/null @@ -1,213 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.delete_column('packages_flagrequest', 'version') - - def backwards(self, orm): - db.add_column('packages_flagrequest', 'version', - self.gf('django.db.models.fields.CharField')(default='', max_length=255), - keep_default=False) - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "['name']", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "['name']", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'packages.conflict': { - 'Meta': {'ordering': "['name']", 'object_name': 'Conflict'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conflicts'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.depend': { - 'Meta': {'ordering': "['name']", 'object_name': 'Depend'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'deptype': ('django.db.models.fields.CharField', [], {'default': "'D'", 'max_length': '1'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'depends'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.flagrequest': { - 'Meta': {'object_name': 'FlagRequest'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'is_legitimate': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_spam': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'message': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'num_packages': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}) - }, - 'packages.license': { - 'Meta': {'ordering': "['name']", 'object_name': 'License'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'licenses'", 'to': "orm['main.Package']"}) - }, - 'packages.packagegroup': { - 'Meta': {'object_name': 'PackageGroup'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'groups'", 'to': "orm['main.Package']"}) - }, - 'packages.packagerelation': { - 'Meta': {'unique_together': "(('pkgbase', 'user', 'type'),)", 'object_name': 'PackageRelation'}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'type': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_relations'", 'to': "orm['auth.User']"}) - }, - 'packages.provision': { - 'Meta': {'ordering': "['name']", 'object_name': 'Provision'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'provides'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.replacement': { - 'Meta': {'ordering': "['name']", 'object_name': 'Replacement'}, - 'comparison': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'replaces'", 'to': "orm['main.Package']"}), - 'version': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255'}) - }, - 'packages.signoff': { - 'Meta': {'object_name': 'Signoff'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'revoked': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'package_signoffs'", 'to': "orm['auth.User']"}) - }, - 'packages.signoffspecification': { - 'Meta': {'object_name': 'SignoffSpecification'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'enabled': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'known_bad': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'required': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}) - }, - 'packages.update': { - 'Meta': {'object_name': 'Update'}, - 'action_flag': ('django.db.models.fields.PositiveSmallIntegerField', [], {}), - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Arch']"}), - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'new_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'new_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'new_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_epoch': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'}), - 'old_pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'old_pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}), - 'package': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['main.Package']"}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'updates'", 'to': "orm['main.Repo']"}) - } - } - - complete_apps = ['packages'] diff --git a/packages/models.py b/packages/models.py index da8adc56..dd69e7d3 100644 --- a/packages/models.py +++ b/packages/models.py @@ -181,9 +181,7 @@ class FlagRequest(models.Model): user = models.ForeignKey(User, blank=True, null=True) user_email = models.EmailField('email address') created = models.DateTimeField(editable=False, db_index=True) - # Great work, Django... https://code.djangoproject.com/ticket/18212 - ip_address = models.GenericIPAddressField(verbose_name='IP address', - unpack_ipv4=True) + ip_address = models.GenericIPAddressField('IP address', unpack_ipv4=True) pkgbase = models.CharField(max_length=255, db_index=True) pkgver = models.CharField(max_length=255) pkgrel = models.CharField(max_length=255) diff --git a/packages/views/__init__.py b/packages/views/__init__.py index b6e72d62..1f8a0169 100644 --- a/packages/views/__init__.py +++ b/packages/views/__init__.py @@ -27,10 +27,7 @@ from .signoff import signoffs, signoff_package, signoff_options, signoffs_json @require_safe @cache_control(public=True, max_age=86400) def opensearch(request): - if request.is_secure(): - domain = "https://%s" % request.META['HTTP_HOST'] - else: - domain = "http://%s" % request.META['HTTP_HOST'] + domain = "%s://%s" % (request.scheme, request.META['HTTP_HOST']) return render(request, 'packages/opensearch.xml', {'domain': domain}, diff --git a/public/models.py b/public/models.py deleted file mode 100644 index 3668574e..00000000 --- a/public/models.py +++ /dev/null @@ -1 +0,0 @@ -# Needed for django to recognize this as an app for testing diff --git a/releng/migrations/0001_initial.py b/releng/migrations/0001_initial.py index 91fab8b7..b56f389d 100644 --- a/releng/migrations/0001_initial.py +++ b/releng/migrations/0001_initial.py @@ -1,258 +1,185 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding model 'Iso' - db.create_table('releng_iso', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('active', self.gf('django.db.models.fields.BooleanField')(default=True)), - )) - db.send_create_signal('releng', ['Iso']) - - # Adding model 'Architecture' - db.create_table('releng_architecture', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['Architecture']) - - # Adding model 'IsoType' - db.create_table('releng_isotype', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['IsoType']) - - # Adding model 'BootType' - db.create_table('releng_boottype', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['BootType']) - - # Adding model 'HardwareType' - db.create_table('releng_hardwaretype', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['HardwareType']) - - # Adding model 'InstallType' - db.create_table('releng_installtype', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['InstallType']) - - # Adding model 'Source' - db.create_table('releng_source', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['Source']) - - # Adding model 'ClockChoice' - db.create_table('releng_clockchoice', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['ClockChoice']) - - # Adding model 'Filesystem' - db.create_table('releng_filesystem', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['Filesystem']) - - # Adding model 'Module' - db.create_table('releng_module', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['Module']) - - # Adding model 'Bootloader' - db.create_table('releng_bootloader', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=200)), - )) - db.send_create_signal('releng', ['Bootloader']) - - # Adding model 'Test' - db.create_table('releng_test', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('user_name', self.gf('django.db.models.fields.CharField')(max_length=500)), - ('user_email', self.gf('django.db.models.fields.EmailField')(max_length=75)), - ('ip_address', self.gf('django.db.models.fields.IPAddressField')(max_length=15)), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('iso', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.Iso'])), - ('architecture', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.Architecture'])), - ('iso_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.IsoType'])), - ('boot_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.BootType'])), - ('hardware_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.HardwareType'])), - ('install_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.InstallType'])), - ('source', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.Source'])), - ('clock_choice', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.ClockChoice'])), - ('filesystem', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.Filesystem'])), - ('bootloader', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['releng.Bootloader'])), - ('rollback_filesystem', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='rollback_test_set', null=True, to=orm['releng.Filesystem'])), - ('success', self.gf('django.db.models.fields.BooleanField')(default=False)), - ('comments', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - )) - db.send_create_signal('releng', ['Test']) - - # Adding M2M table for field modules on 'Test' - db.create_table('releng_test_modules', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('test', models.ForeignKey(orm['releng.test'], null=False)), - ('module', models.ForeignKey(orm['releng.module'], null=False)) - )) - db.create_unique('releng_test_modules', ['test_id', 'module_id']) - - # Adding M2M table for field rollback_modules on 'Test' - db.create_table('releng_test_rollback_modules', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('test', models.ForeignKey(orm['releng.test'], null=False)), - ('module', models.ForeignKey(orm['releng.module'], null=False)) - )) - db.create_unique('releng_test_rollback_modules', ['test_id', 'module_id']) - - - def backwards(self, orm): - - # Deleting model 'Iso' - db.delete_table('releng_iso') - - # Deleting model 'Architecture' - db.delete_table('releng_architecture') - - # Deleting model 'IsoType' - db.delete_table('releng_isotype') - - # Deleting model 'BootType' - db.delete_table('releng_boottype') - - # Deleting model 'HardwareType' - db.delete_table('releng_hardwaretype') - - # Deleting model 'InstallType' - db.delete_table('releng_installtype') - - # Deleting model 'Source' - db.delete_table('releng_source') - - # Deleting model 'ClockChoice' - db.delete_table('releng_clockchoice') - - # Deleting model 'Filesystem' - db.delete_table('releng_filesystem') - - # Deleting model 'Module' - db.delete_table('releng_module') - - # Deleting model 'Bootloader' - db.delete_table('releng_bootloader') - - # Deleting model 'Test' - db.delete_table('releng_test') - - # Removing M2M table for field modules on 'Test' - db.delete_table('releng_test_modules') - - # Removing M2M table for field rollback_modules on 'Test' - db.delete_table('releng_test_rollback_modules') - - - models = { - 'releng.architecture': { - 'Meta': {'object_name': 'Architecture'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.bootloader': { - 'Meta': {'object_name': 'Bootloader'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.boottype': { - 'Meta': {'object_name': 'BootType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.clockchoice': { - 'Meta': {'object_name': 'ClockChoice'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.filesystem': { - 'Meta': {'object_name': 'Filesystem'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.hardwaretype': { - 'Meta': {'object_name': 'HardwareType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.installtype': { - 'Meta': {'object_name': 'InstallType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.iso': { - 'Meta': {'object_name': 'Iso'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'releng.isotype': { - 'Meta': {'object_name': 'IsoType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.module': { - 'Meta': {'object_name': 'Module'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.source': { - 'Meta': {'object_name': 'Source'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.test': { - 'Meta': {'object_name': 'Test'}, - 'architecture': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Architecture']"}), - 'boot_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.BootType']"}), - 'bootloader': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Bootloader']"}), - 'clock_choice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.ClockChoice']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'filesystem': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Filesystem']"}), - 'hardware_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.HardwareType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'install_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.InstallType']"}), - 'ip_address': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}), - 'iso': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Iso']"}), - 'iso_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.IsoType']"}), - 'modules': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['releng.Module']", 'null': 'True', 'blank': 'True'}), - 'rollback_filesystem': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'to': "orm['releng.Filesystem']"}), - 'rollback_modules': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['releng.Module']"}), - 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Source']"}), - 'success': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'user_name': ('django.db.models.fields.CharField', [], {'max_length': '500'}) - } - } - - complete_apps = ['releng'] +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Architecture', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Bootloader', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='BootType', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='ClockChoice', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Filesystem', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='HardwareType', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='InstallType', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Iso', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255)), + ('created', models.DateTimeField(editable=False)), + ('removed', models.DateTimeField(default=None, null=True, blank=True)), + ('active', models.BooleanField(default=True)), + ], + options={ + 'verbose_name': 'ISO', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='IsoType', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'verbose_name': 'ISO type', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Module', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Release', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('release_date', models.DateField(db_index=True)), + ('version', models.CharField(unique=True, max_length=50)), + ('kernel_version', models.CharField(max_length=50, blank=True)), + ('md5_sum', models.CharField(max_length=32, verbose_name=b'MD5 digest', blank=True)), + ('sha1_sum', models.CharField(max_length=40, verbose_name=b'SHA1 digest', blank=True)), + ('created', models.DateTimeField(editable=False)), + ('available', models.BooleanField(default=True)), + ('info', models.TextField(verbose_name=b'Public information', blank=True)), + ('torrent_data', models.TextField(help_text=b'base64-encoded torrent file', blank=True)), + ], + options={ + 'ordering': ('-release_date', '-version'), + 'get_latest_by': 'release_date', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Source', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=200)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Test', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('user_name', models.CharField(max_length=500)), + ('user_email', models.EmailField(max_length=75, verbose_name=b'email address')), + ('ip_address', models.GenericIPAddressField(verbose_name=b'IP address', unpack_ipv4=True)), + ('created', models.DateTimeField(editable=False)), + ('success', models.BooleanField(default=True)), + ('comments', models.TextField(null=True, blank=True)), + ('architecture', models.ForeignKey(to='releng.Architecture')), + ('boot_type', models.ForeignKey(to='releng.BootType')), + ('bootloader', models.ForeignKey(to='releng.Bootloader')), + ('clock_choice', models.ForeignKey(to='releng.ClockChoice')), + ('filesystem', models.ForeignKey(to='releng.Filesystem')), + ('hardware_type', models.ForeignKey(to='releng.HardwareType')), + ('install_type', models.ForeignKey(to='releng.InstallType')), + ('iso', models.ForeignKey(to='releng.Iso')), + ('iso_type', models.ForeignKey(to='releng.IsoType')), + ('modules', models.ManyToManyField(to='releng.Module', null=True, blank=True)), + ('rollback_filesystem', models.ForeignKey(related_name=b'rollback_test_set', blank=True, to='releng.Filesystem', null=True)), + ('rollback_modules', models.ManyToManyField(related_name=b'rollback_test_set', null=True, to='releng.Module', blank=True)), + ('source', models.ForeignKey(to='releng.Source')), + ], + options={ + }, + bases=(models.Model,), + ), + ] diff --git a/releng/migrations/0002_auto__add_field_iso_removed.py b/releng/migrations/0002_auto__add_field_iso_removed.py deleted file mode 100644 index d5cd09c8..00000000 --- a/releng/migrations/0002_auto__add_field_iso_removed.py +++ /dev/null @@ -1,99 +0,0 @@ -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('releng_iso', 'removed', self.gf('django.db.models.fields.DateTimeField')(default=None, null=True, blank=True), keep_default=False) - - def backwards(self, orm): - db.delete_column('releng_iso', 'removed') - - models = { - 'releng.architecture': { - 'Meta': {'object_name': 'Architecture'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.bootloader': { - 'Meta': {'object_name': 'Bootloader'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.boottype': { - 'Meta': {'object_name': 'BootType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.clockchoice': { - 'Meta': {'object_name': 'ClockChoice'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.filesystem': { - 'Meta': {'object_name': 'Filesystem'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.hardwaretype': { - 'Meta': {'object_name': 'HardwareType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.installtype': { - 'Meta': {'object_name': 'InstallType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.iso': { - 'Meta': {'object_name': 'Iso'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}) - }, - 'releng.isotype': { - 'Meta': {'object_name': 'IsoType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.module': { - 'Meta': {'object_name': 'Module'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.source': { - 'Meta': {'object_name': 'Source'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.test': { - 'Meta': {'object_name': 'Test'}, - 'architecture': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Architecture']"}), - 'boot_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.BootType']"}), - 'bootloader': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Bootloader']"}), - 'clock_choice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.ClockChoice']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'filesystem': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Filesystem']"}), - 'hardware_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.HardwareType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'install_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.InstallType']"}), - 'ip_address': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}), - 'iso': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Iso']"}), - 'iso_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.IsoType']"}), - 'modules': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['releng.Module']", 'null': 'True', 'blank': 'True'}), - 'rollback_filesystem': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'to': "orm['releng.Filesystem']"}), - 'rollback_modules': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['releng.Module']"}), - 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Source']"}), - 'success': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'user_name': ('django.db.models.fields.CharField', [], {'max_length': '500'}) - } - } - - complete_apps = ['releng'] diff --git a/releng/migrations/0003_auto__chg_field_test_ip_address.py b/releng/migrations/0003_auto__chg_field_test_ip_address.py deleted file mode 100644 index 78297f14..00000000 --- a/releng/migrations/0003_auto__chg_field_test_ip_address.py +++ /dev/null @@ -1,99 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('releng_test', 'ip_address', self.gf('django.db.models.fields.GenericIPAddressField')(max_length=39)) - - def backwards(self, orm): - db.alter_column('releng_test', 'ip_address', self.gf('django.db.models.fields.IPAddressField')(max_length=15)) - - models = { - 'releng.architecture': { - 'Meta': {'object_name': 'Architecture'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.bootloader': { - 'Meta': {'object_name': 'Bootloader'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.boottype': { - 'Meta': {'object_name': 'BootType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.clockchoice': { - 'Meta': {'object_name': 'ClockChoice'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.filesystem': { - 'Meta': {'object_name': 'Filesystem'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.hardwaretype': { - 'Meta': {'object_name': 'HardwareType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.installtype': { - 'Meta': {'object_name': 'InstallType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.iso': { - 'Meta': {'object_name': 'Iso'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}) - }, - 'releng.isotype': { - 'Meta': {'object_name': 'IsoType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.module': { - 'Meta': {'object_name': 'Module'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.source': { - 'Meta': {'object_name': 'Source'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.test': { - 'Meta': {'object_name': 'Test'}, - 'architecture': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Architecture']"}), - 'boot_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.BootType']"}), - 'bootloader': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Bootloader']"}), - 'clock_choice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.ClockChoice']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'filesystem': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Filesystem']"}), - 'hardware_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.HardwareType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'install_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.InstallType']"}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'iso': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Iso']"}), - 'iso_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.IsoType']"}), - 'modules': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['releng.Module']", 'null': 'True', 'blank': 'True'}), - 'rollback_filesystem': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'to': "orm['releng.Filesystem']"}), - 'rollback_modules': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['releng.Module']"}), - 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Source']"}), - 'success': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'user_name': ('django.db.models.fields.CharField', [], {'max_length': '500'}) - } - } - - complete_apps = ['releng'] diff --git a/releng/migrations/0004_auto__add_release.py b/releng/migrations/0004_auto__add_release.py deleted file mode 100644 index fe4acea5..00000000 --- a/releng/migrations/0004_auto__add_release.py +++ /dev/null @@ -1,121 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.create_table('releng_release', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('release_date', self.gf('django.db.models.fields.DateField')(db_index=True)), - ('version', self.gf('django.db.models.fields.CharField')(max_length=50)), - ('kernel_version', self.gf('django.db.models.fields.CharField')(max_length=50, blank=True)), - ('torrent_infohash', self.gf('django.db.models.fields.CharField')(max_length=64, blank=True)), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('available', self.gf('django.db.models.fields.BooleanField')(default=True)), - ('info', self.gf('django.db.models.fields.TextField')(blank=True)), - )) - db.send_create_signal('releng', ['Release']) - - def backwards(self, orm): - db.delete_table('releng_release') - - - models = { - 'releng.architecture': { - 'Meta': {'object_name': 'Architecture'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.bootloader': { - 'Meta': {'object_name': 'Bootloader'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.boottype': { - 'Meta': {'object_name': 'BootType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.clockchoice': { - 'Meta': {'object_name': 'ClockChoice'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.filesystem': { - 'Meta': {'object_name': 'Filesystem'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.hardwaretype': { - 'Meta': {'object_name': 'HardwareType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.installtype': { - 'Meta': {'object_name': 'InstallType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.iso': { - 'Meta': {'object_name': 'Iso'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}) - }, - 'releng.isotype': { - 'Meta': {'object_name': 'IsoType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.module': { - 'Meta': {'object_name': 'Module'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.release': { - 'Meta': {'ordering': "('-release_date', '-version')", 'object_name': 'Release'}, - 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'info': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'kernel_version': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'release_date': ('django.db.models.fields.DateField', [], {'db_index': 'True'}), - 'torrent_infohash': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), - 'version': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'releng.source': { - 'Meta': {'object_name': 'Source'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.test': { - 'Meta': {'object_name': 'Test'}, - 'architecture': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Architecture']"}), - 'boot_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.BootType']"}), - 'bootloader': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Bootloader']"}), - 'clock_choice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.ClockChoice']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'filesystem': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Filesystem']"}), - 'hardware_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.HardwareType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'install_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.InstallType']"}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'iso': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Iso']"}), - 'iso_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.IsoType']"}), - 'modules': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['releng.Module']", 'null': 'True', 'blank': 'True'}), - 'rollback_filesystem': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'to': "orm['releng.Filesystem']"}), - 'rollback_modules': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['releng.Module']"}), - 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Source']"}), - 'success': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'user_name': ('django.db.models.fields.CharField', [], {'max_length': '500'}) - } - } - - complete_apps = ['releng'] diff --git a/releng/migrations/0005_auto__add_field_release_file_size__add_field_release_torrent_data.py b/releng/migrations/0005_auto__add_field_release_file_size__add_field_release_torrent_data.py deleted file mode 100644 index 96e0727c..00000000 --- a/releng/migrations/0005_auto__add_field_release_file_size__add_field_release_torrent_data.py +++ /dev/null @@ -1,127 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding field 'Release.file_size' - db.add_column('releng_release', 'file_size', - self.gf('main.fields.PositiveBigIntegerField')(null=True, blank=True), - keep_default=False) - - # Adding field 'Release.torrent_data' - db.add_column('releng_release', 'torrent_data', - self.gf('django.db.models.fields.TextField')(default='', blank=True), - keep_default=False) - - - def backwards(self, orm): - # Deleting field 'Release.file_size' - db.delete_column('releng_release', 'file_size') - - # Deleting field 'Release.torrent_data' - db.delete_column('releng_release', 'torrent_data') - - - models = { - 'releng.architecture': { - 'Meta': {'object_name': 'Architecture'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.bootloader': { - 'Meta': {'object_name': 'Bootloader'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.boottype': { - 'Meta': {'object_name': 'BootType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.clockchoice': { - 'Meta': {'object_name': 'ClockChoice'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.filesystem': { - 'Meta': {'object_name': 'Filesystem'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.hardwaretype': { - 'Meta': {'object_name': 'HardwareType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.installtype': { - 'Meta': {'object_name': 'InstallType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.iso': { - 'Meta': {'object_name': 'Iso'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}) - }, - 'releng.isotype': { - 'Meta': {'object_name': 'IsoType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.module': { - 'Meta': {'object_name': 'Module'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.release': { - 'Meta': {'ordering': "('-release_date', '-version')", 'object_name': 'Release'}, - 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'file_size': ('main.fields.PositiveBigIntegerField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'info': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'kernel_version': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'release_date': ('django.db.models.fields.DateField', [], {'db_index': 'True'}), - 'torrent_data': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'torrent_infohash': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), - 'version': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'releng.source': { - 'Meta': {'object_name': 'Source'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.test': { - 'Meta': {'object_name': 'Test'}, - 'architecture': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Architecture']"}), - 'boot_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.BootType']"}), - 'bootloader': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Bootloader']"}), - 'clock_choice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.ClockChoice']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'filesystem': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Filesystem']"}), - 'hardware_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.HardwareType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'install_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.InstallType']"}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'iso': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Iso']"}), - 'iso_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.IsoType']"}), - 'modules': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['releng.Module']", 'null': 'True', 'blank': 'True'}), - 'rollback_filesystem': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'to': "orm['releng.Filesystem']"}), - 'rollback_modules': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['releng.Module']"}), - 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Source']"}), - 'success': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'user_name': ('django.db.models.fields.CharField', [], {'max_length': '500'}) - } - } - - complete_apps = ['releng']
\ No newline at end of file diff --git a/releng/migrations/0006_auto__add_unique_release_version.py b/releng/migrations/0006_auto__add_unique_release_version.py deleted file mode 100644 index cb834870..00000000 --- a/releng/migrations/0006_auto__add_unique_release_version.py +++ /dev/null @@ -1,117 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding unique constraint on 'Release', fields ['version'] - db.create_unique('releng_release', ['version']) - - - def backwards(self, orm): - # Removing unique constraint on 'Release', fields ['version'] - db.delete_unique('releng_release', ['version']) - - - models = { - 'releng.architecture': { - 'Meta': {'object_name': 'Architecture'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.bootloader': { - 'Meta': {'object_name': 'Bootloader'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.boottype': { - 'Meta': {'object_name': 'BootType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.clockchoice': { - 'Meta': {'object_name': 'ClockChoice'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.filesystem': { - 'Meta': {'object_name': 'Filesystem'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.hardwaretype': { - 'Meta': {'object_name': 'HardwareType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.installtype': { - 'Meta': {'object_name': 'InstallType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.iso': { - 'Meta': {'object_name': 'Iso'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}) - }, - 'releng.isotype': { - 'Meta': {'object_name': 'IsoType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.module': { - 'Meta': {'object_name': 'Module'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.release': { - 'Meta': {'ordering': "('-release_date', '-version')", 'object_name': 'Release'}, - 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'file_size': ('main.fields.PositiveBigIntegerField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'info': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'kernel_version': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'release_date': ('django.db.models.fields.DateField', [], {'db_index': 'True'}), - 'torrent_data': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'torrent_infohash': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), - 'version': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}) - }, - 'releng.source': { - 'Meta': {'object_name': 'Source'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.test': { - 'Meta': {'object_name': 'Test'}, - 'architecture': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Architecture']"}), - 'boot_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.BootType']"}), - 'bootloader': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Bootloader']"}), - 'clock_choice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.ClockChoice']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'filesystem': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Filesystem']"}), - 'hardware_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.HardwareType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'install_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.InstallType']"}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'iso': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Iso']"}), - 'iso_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.IsoType']"}), - 'modules': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['releng.Module']", 'null': 'True', 'blank': 'True'}), - 'rollback_filesystem': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'to': "orm['releng.Filesystem']"}), - 'rollback_modules': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['releng.Module']"}), - 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Source']"}), - 'success': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'user_name': ('django.db.models.fields.CharField', [], {'max_length': '500'}) - } - } - - complete_apps = ['releng']
\ No newline at end of file diff --git a/releng/migrations/0007_auto__add_field_release_md5__add_field_release_sha1.py b/releng/migrations/0007_auto__add_field_release_md5__add_field_release_sha1.py deleted file mode 100644 index f76be3d7..00000000 --- a/releng/migrations/0007_auto__add_field_release_md5__add_field_release_sha1.py +++ /dev/null @@ -1,122 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('releng_release', 'md5_sum', - self.gf('django.db.models.fields.CharField')(default='', max_length=32, blank=True), - keep_default=False) - db.add_column('releng_release', 'sha1_sum', - self.gf('django.db.models.fields.CharField')(default='', max_length=40, blank=True), - keep_default=False) - db.alter_column('releng_release', 'torrent_infohash', self.gf('django.db.models.fields.CharField')(max_length=40)) - - def backwards(self, orm): - db.delete_column('releng_release', 'md5_sum') - db.delete_column('releng_release', 'sha1_sum') - db.alter_column('releng_release', 'torrent_infohash', self.gf('django.db.models.fields.CharField')(max_length=64)) - - models = { - 'releng.architecture': { - 'Meta': {'object_name': 'Architecture'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.bootloader': { - 'Meta': {'object_name': 'Bootloader'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.boottype': { - 'Meta': {'object_name': 'BootType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.clockchoice': { - 'Meta': {'object_name': 'ClockChoice'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.filesystem': { - 'Meta': {'object_name': 'Filesystem'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.hardwaretype': { - 'Meta': {'object_name': 'HardwareType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.installtype': { - 'Meta': {'object_name': 'InstallType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.iso': { - 'Meta': {'object_name': 'Iso'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}) - }, - 'releng.isotype': { - 'Meta': {'object_name': 'IsoType'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.module': { - 'Meta': {'object_name': 'Module'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.release': { - 'Meta': {'ordering': "('-release_date', '-version')", 'object_name': 'Release'}, - 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'file_size': ('main.fields.PositiveBigIntegerField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'info': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'kernel_version': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'md5_sum': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), - 'release_date': ('django.db.models.fields.DateField', [], {'db_index': 'True'}), - 'sha1_sum': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True'}), - 'torrent_data': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'torrent_infohash': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True'}), - 'version': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}) - }, - 'releng.source': { - 'Meta': {'object_name': 'Source'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - 'releng.test': { - 'Meta': {'object_name': 'Test'}, - 'architecture': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Architecture']"}), - 'boot_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.BootType']"}), - 'bootloader': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Bootloader']"}), - 'clock_choice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.ClockChoice']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'filesystem': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Filesystem']"}), - 'hardware_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.HardwareType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'install_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.InstallType']"}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'iso': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Iso']"}), - 'iso_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.IsoType']"}), - 'modules': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['releng.Module']", 'null': 'True', 'blank': 'True'}), - 'rollback_filesystem': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'to': "orm['releng.Filesystem']"}), - 'rollback_modules': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['releng.Module']"}), - 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['releng.Source']"}), - 'success': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'user_name': ('django.db.models.fields.CharField', [], {'max_length': '500'}) - } - } - - complete_apps = ['releng'] diff --git a/releng/migrations/0008_auto__del_field_release_torrent_infohash__del_field_release_file_size.py b/releng/migrations/0008_auto__del_field_release_torrent_infohash__del_field_release_file_size.py deleted file mode 100644 index 4a80fd8e..00000000 --- a/releng/migrations/0008_auto__del_field_release_torrent_infohash__del_field_release_file_size.py +++ /dev/null @@ -1,118 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.delete_column(u'releng_release', 'torrent_infohash') - db.delete_column(u'releng_release', 'file_size') - - def backwards(self, orm): - db.add_column(u'releng_release', 'torrent_infohash', - self.gf('django.db.models.fields.CharField')(default='', max_length=40, blank=True), - keep_default=False) - db.add_column(u'releng_release', 'file_size', - self.gf('main.fields.PositiveBigIntegerField')(null=True, blank=True), - keep_default=False) - - models = { - u'releng.architecture': { - 'Meta': {'object_name': 'Architecture'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.bootloader': { - 'Meta': {'object_name': 'Bootloader'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.boottype': { - 'Meta': {'object_name': 'BootType'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.clockchoice': { - 'Meta': {'object_name': 'ClockChoice'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.filesystem': { - 'Meta': {'object_name': 'Filesystem'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.hardwaretype': { - 'Meta': {'object_name': 'HardwareType'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.installtype': { - 'Meta': {'object_name': 'InstallType'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.iso': { - 'Meta': {'object_name': 'Iso'}, - 'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}) - }, - u'releng.isotype': { - 'Meta': {'object_name': 'IsoType'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.module': { - 'Meta': {'object_name': 'Module'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.release': { - 'Meta': {'ordering': "('-release_date', '-version')", 'object_name': 'Release'}, - 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'info': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'kernel_version': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'md5_sum': ('django.db.models.fields.CharField', [], {'max_length': '32', 'blank': 'True'}), - 'release_date': ('django.db.models.fields.DateField', [], {'db_index': 'True'}), - 'sha1_sum': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True'}), - 'torrent_data': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'version': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '50'}) - }, - u'releng.source': { - 'Meta': {'object_name': 'Source'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) - }, - u'releng.test': { - 'Meta': {'object_name': 'Test'}, - 'architecture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.Architecture']"}), - 'boot_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.BootType']"}), - 'bootloader': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.Bootloader']"}), - 'clock_choice': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.ClockChoice']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'filesystem': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.Filesystem']"}), - 'hardware_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.HardwareType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'install_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.InstallType']"}), - 'ip_address': ('django.db.models.fields.GenericIPAddressField', [], {'max_length': '39'}), - 'iso': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.Iso']"}), - 'iso_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.IsoType']"}), - 'modules': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['releng.Module']", 'null': 'True', 'blank': 'True'}), - 'rollback_filesystem': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'to': u"orm['releng.Filesystem']"}), - 'rollback_modules': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'rollback_test_set'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['releng.Module']"}), - 'source': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['releng.Source']"}), - 'success': ('django.db.models.fields.BooleanField', [], {}), - 'user_email': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), - 'user_name': ('django.db.models.fields.CharField', [], {'max_length': '500'}) - } - } - - complete_apps = ['releng'] diff --git a/releng/models.py b/releng/models.py index a3af54f9..66690e81 100644 --- a/releng/models.py +++ b/releng/models.py @@ -90,9 +90,7 @@ class Bootloader(IsoOption): class Test(models.Model): user_name = models.CharField(max_length=500) user_email = models.EmailField('email address') - # Great work, Django... https://code.djangoproject.com/ticket/18212 - ip_address = models.GenericIPAddressField(verbose_name='IP address', - unpack_ipv4=True) + ip_address = models.GenericIPAddressField('IP address', unpack_ipv4=True) created = models.DateTimeField(editable=False) iso = models.ForeignKey(Iso) @@ -111,7 +109,7 @@ class Test(models.Model): rollback_modules = models.ManyToManyField(Module, related_name="rollback_test_set", null=True, blank=True) - success = models.BooleanField() + success = models.BooleanField(default=True) comments = models.TextField(null=True, blank=True) diff --git a/requirements.txt b/requirements.txt index 81070449..eff75bad 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,9 @@ -e git+git://github.com/fredj/cssmin.git@master#egg=cssmin -Django==1.6.2 +-e git+git://github.com/SmileyChris/django-countries.git@a2c924074dbe2f0b9b3059bf70064aeadf5643ed#egg=django-countries +Django==1.7 IPy==0.81 -Markdown==2.4 -South==0.8.4 +Markdown==2.4.1 bencode==1.0 -django-countries==2.0 -jsmin==2.0.9 +jsmin==2.0.11 pgpdump==1.5 -pytz>=2013.8 +pytz>=2014.7 diff --git a/requirements_prod.txt b/requirements_prod.txt index 840e0396..c181c3af 100644 --- a/requirements_prod.txt +++ b/requirements_prod.txt @@ -1,13 +1,12 @@ -e git+git://github.com/fredj/cssmin.git@master#egg=cssmin -Django==1.6.2 +-e git+git://github.com/SmileyChris/django-countries.git@a2c924074dbe2f0b9b3059bf70064aeadf5643ed#egg=django-countries +Django==1.7 IPy==0.81 -Markdown==2.4 -South==0.8.4 +Markdown==2.4.1 bencode==1.0 -django-countries==2.0 -jsmin==2.0.9 +jsmin==2.0.11 pgpdump==1.5 -psycopg2==2.5.2 +psycopg2==2.5.4 pyinotify==0.9.4 python-memcached==1.53 -pytz>=2013.8 +pytz>=2014.7 diff --git a/retro/models.py b/retro/models.py deleted file mode 100644 index e69de29b..00000000 --- a/retro/models.py +++ /dev/null diff --git a/settings.py b/settings.py index a6be4610..b511d613 100644 --- a/settings.py +++ b/settings.py @@ -103,6 +103,9 @@ SESSION_COOKIE_HTTPONLY = True # Clickjacking protection X_FRAME_OPTIONS = 'DENY' +# Use new test runner +TEST_RUNNER = 'django.test.runner.DiscoverRunner' + INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', @@ -112,7 +115,6 @@ INSTALLED_APPS = ( 'django.contrib.sitemaps', 'django.contrib.admin', 'django.contrib.staticfiles', - 'south', 'django_countries', 'main', diff --git a/sitemaps.py b/sitemaps.py index 42b08922..d79b00b5 100644 --- a/sitemaps.py +++ b/sitemaps.py @@ -35,7 +35,7 @@ class PackagesSitemap(Sitemap): class PackageFilesSitemap(PackagesSitemap): changefreq = "weekly" - priority = "0.2" + priority = "0.1" def location(self, obj): return PackagesSitemap.location(self, obj) + 'files/' diff --git a/sitestatic/bootstrap-typeahead.min.js b/sitestatic/bootstrap-typeahead.min.js index a63aa3c6..3e0e833c 100644 --- a/sitestatic/bootstrap-typeahead.min.js +++ b/sitestatic/bootstrap-typeahead.min.js @@ -19,8 +19,8 @@ !function(b){var g=function(a,c){this.$element=b(a);this.options=b.extend({},b.fn.typeahead.defaults,c);this.matcher=this.options.matcher||this.matcher;this.sorter=this.options.sorter||this.sorter;this.highlighter=this.options.highlighter||this.highlighter;this.updater=this.options.updater||this.updater;this.$menu=b(this.options.menu).appendTo("body");this.source=this.options.source;this.shown=!1;this.listen()};g.prototype={constructor:g,select:function(){var a=this.$menu.find(".active").attr("data-value"); this.$element.val(this.updater(a)).change();return this.hide()},updater:function(a){return a},show:function(){var a=b.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});this.$menu.css({top:a.top+a.height,left:a.left});this.$menu.show();this.shown=!0;return this},hide:function(){this.$menu.hide();this.shown=!1;return this},lookup:function(a){this.query=this.$element.val();return!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(a=b.isFunction(this.source)? this.source(this.query,b.proxy(this.process,this)):this.source)?this.process(a):this},process:function(a){var c=this;a=b.grep(a,function(a){return c.matcher(a)});a=this.sorter(a);return a.length?this.render(a.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(a){return~a.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){for(var b=[],e=[],d=[],f;f=a.shift();)f.toLowerCase().indexOf(this.query.toLowerCase())?~f.indexOf(this.query)?e.push(f):d.push(f): -b.push(f);return b.concat(e,d)},highlighter:function(a){var b=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return a.replace(RegExp("("+b+")","ig"),function(a,b){return"<strong>"+b+"</strong>"})},render:function(a){var c=this;a=b(a).map(function(a,d){a=b(c.options.item).attr("data-value",d);a.find("a").html(c.highlighter(d));return a[0]});a.first().addClass("active");this.$menu.html(a);return this},next:function(a){a=this.$menu.find(".active").removeClass("active").next();a.length||(a= -b(this.$menu.find("li")[0]));a.addClass("active")},prev:function(a){a=this.$menu.find(".active").removeClass("active").prev();a.length||(a=this.$menu.find("li").last());a.addClass("active")},listen:function(){this.$element.on("blur",b.proxy(this.blur,this)).on("keypress",b.proxy(this.keypress,this)).on("keyup",b.proxy(this.keyup,this));if(b.browser.chrome||b.browser.webkit||b.browser.msie)this.$element.on("keydown",b.proxy(this.keydown,this));this.$menu.on("click",b.proxy(this.click,this)).on("mouseenter", +b.push(f);return b.concat(e,d)},highlighter:function(a){var b=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return a.replace(new RegExp("("+b+")","ig"),function(a,b){return"<strong>"+b+"</strong>"})},render:function(a){var c=this;a=b(a).map(function(a,d){a=b(c.options.item).attr("data-value",d);a.find("a").html(c.highlighter(d));return a[0]});a.first().addClass("active");this.$menu.html(a);return this},next:function(a){a=this.$menu.find(".active").removeClass("active").next();a.length|| +(a=b(this.$menu.find("li")[0]));a.addClass("active")},prev:function(a){a=this.$menu.find(".active").removeClass("active").prev();a.length||(a=this.$menu.find("li").last());a.addClass("active")},listen:function(){this.$element.on("blur",b.proxy(this.blur,this)).on("keypress",b.proxy(this.keypress,this)).on("keyup",b.proxy(this.keyup,this));if(b.browser.chrome||b.browser.webkit||b.browser.msie)this.$element.on("keydown",b.proxy(this.keydown,this));this.$menu.on("click",b.proxy(this.click,this)).on("mouseenter", "li",b.proxy(this.mouseenter,this))},move:function(a){if(this.shown){switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:a.preventDefault();this.prev();break;case 40:a.preventDefault(),this.next()}a.stopPropagation()}},keydown:function(a){this.suppressKeyPressRepeat=!~b.inArray(a.keyCode,[40,38,9,13,27]);this.move(a)},keypress:function(a){this.suppressKeyPressRepeat||this.move(a)},keyup:function(a){switch(a.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return; this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}a.stopPropagation();a.preventDefault()},blur:function(a){var b=this;setTimeout(function(){b.hide()},150)},click:function(a){a.stopPropagation();a.preventDefault();this.select()},mouseenter:function(a){this.$menu.find(".active").removeClass("active");b(a.currentTarget).addClass("active")}};b.fn.typeahead=function(a){return this.each(function(){var c=b(this),e=c.data("typeahead"),d="object"==typeof a&&a;e||c.data("typeahead", e=new g(this,d));if("string"==typeof a)e[a]()})};b.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1};b.fn.typeahead.Constructor=g;b(function(){b("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(a){var c=b(this);c.data("typeahead")||(a.preventDefault(),c.typeahead(c.data()))})})}(window.jQuery); diff --git a/sitestatic/jquery-1.8.3.js b/sitestatic/jquery-1.8.3.js index a86bf797..8c24ffc6 100644 --- a/sitestatic/jquery-1.8.3.js +++ b/sitestatic/jquery-1.8.3.js @@ -3660,1685 +3660,1685 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; } }); -/*!
- * Sizzle CSS Selector Engine
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license
- * http://sizzlejs.com/
- */
-(function( window, undefined ) {
-
-var cachedruns,
- assertGetIdNotName,
- Expr,
- getText,
- isXML,
- contains,
- compile,
- sortOrder,
- hasDuplicate,
- outermostContext,
-
- baseHasDuplicate = true,
- strundefined = "undefined",
-
- expando = ( "sizcache" + Math.random() ).replace( ".", "" ),
-
- Token = String,
- document = window.document,
- docElem = document.documentElement,
- dirruns = 0,
- done = 0,
- pop = [].pop,
- push = [].push,
- slice = [].slice,
- // Use a stripped-down indexOf if a native one is unavailable
- indexOf = [].indexOf || function( elem ) {
- var i = 0,
- len = this.length;
- for ( ; i < len; i++ ) {
- if ( this[i] === elem ) {
- return i;
- }
- }
- return -1;
- },
-
- // Augment a function for special use by Sizzle
- markFunction = function( fn, value ) {
- fn[ expando ] = value == null || value;
- return fn;
- },
-
- createCache = function() {
- var cache = {},
- keys = [];
-
- return markFunction(function( key, value ) {
- // Only keep the most recent entries
- if ( keys.push( key ) > Expr.cacheLength ) {
- delete cache[ keys.shift() ];
- }
-
- // Retrieve with (key + " ") to avoid collision with native Object.prototype properties (see Issue #157)
- return (cache[ key + " " ] = value);
- }, cache );
- },
-
- classCache = createCache(),
- tokenCache = createCache(),
- compilerCache = createCache(),
-
- // Regex
-
- // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
- whitespace = "[\\x20\\t\\r\\n\\f]",
- // http://www.w3.org/TR/css3-syntax/#characters
- characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",
-
- // Loosely modeled on CSS identifier characters
- // An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors)
- // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
- identifier = characterEncoding.replace( "w", "w#" ),
-
- // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
- operators = "([*^$|!~]?=)",
- attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
- "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
-
- // Prefer arguments not in parens/brackets,
- // then attribute selectors and non-pseudos (denoted by :),
- // then anything else
- // These preferences are here to reduce the number of selectors
- // needing tokenize in the PSEUDO preFilter
- pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + attributes + ")|[^:]|\\\\.)*|.*))\\)|)",
-
- // For matchExpr.POS and matchExpr.needsContext
- pos = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
- "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)",
-
- // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
- rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
-
- rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
- rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ),
- rpseudo = new RegExp( pseudos ),
-
- // Easily-parseable/retrievable ID or TAG or CLASS selectors
- rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,
-
- rnot = /^:not/,
- rsibling = /[\x20\t\r\n\f]*[+~]/,
- rendsWithNot = /:not\($/,
-
- rheader = /h\d/i,
- rinputs = /input|select|textarea|button/i,
-
- rbackslash = /\\(?!\\)/g,
-
- matchExpr = {
- "ID": new RegExp( "^#(" + characterEncoding + ")" ),
- "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
- "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ),
- "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
- "ATTR": new RegExp( "^" + attributes ),
- "PSEUDO": new RegExp( "^" + pseudos ),
- "POS": new RegExp( pos, "i" ),
- "CHILD": new RegExp( "^:(only|nth|first|last)-child(?:\\(" + whitespace +
- "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
- "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
- // For use in libraries implementing .is()
- "needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" )
- },
-
- // Support
-
- // Used for testing something on an element
- assert = function( fn ) {
- var div = document.createElement("div");
-
- try {
- return fn( div );
- } catch (e) {
- return false;
- } finally {
- // release memory in IE
- div = null;
- }
- },
-
- // Check if getElementsByTagName("*") returns only elements
- assertTagNameNoComments = assert(function( div ) {
- div.appendChild( document.createComment("") );
- return !div.getElementsByTagName("*").length;
- }),
-
- // Check if getAttribute returns normalized href attributes
- assertHrefNotNormalized = assert(function( div ) {
- div.innerHTML = "<a href='#'></a>";
- return div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&
- div.firstChild.getAttribute("href") === "#";
- }),
-
- // Check if attributes should be retrieved by attribute nodes
- assertAttributes = assert(function( div ) {
- div.innerHTML = "<select></select>";
- var type = typeof div.lastChild.getAttribute("multiple");
- // IE8 returns a string for some attributes even when not present
- return type !== "boolean" && type !== "string";
- }),
-
- // Check if getElementsByClassName can be trusted
- assertUsableClassName = assert(function( div ) {
- // Opera can't find a second classname (in 9.6)
- div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>";
- if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) {
- return false;
- }
-
- // Safari 3.2 caches class attributes and doesn't catch changes
- div.lastChild.className = "e";
- return div.getElementsByClassName("e").length === 2;
- }),
-
- // Check if getElementById returns elements by name
- // Check if getElementsByName privileges form controls or returns elements by ID
- assertUsableName = assert(function( div ) {
- // Inject content
- div.id = expando + 0;
- div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>";
- docElem.insertBefore( div, docElem.firstChild );
-
- // Test
- var pass = document.getElementsByName &&
- // buggy browsers will return fewer than the correct 2
- document.getElementsByName( expando ).length === 2 +
- // buggy browsers will return more than the correct 0
- document.getElementsByName( expando + 0 ).length;
- assertGetIdNotName = !document.getElementById( expando );
-
- // Cleanup
- docElem.removeChild( div );
-
- return pass;
- });
-
-// If slice is not available, provide a backup
-try {
- slice.call( docElem.childNodes, 0 )[0].nodeType;
-} catch ( e ) {
- slice = function( i ) {
- var elem,
- results = [];
- for ( ; (elem = this[i]); i++ ) {
- results.push( elem );
- }
- return results;
- };
-}
-
-function Sizzle( selector, context, results, seed ) {
- results = results || [];
- context = context || document;
- var match, elem, xml, m,
- nodeType = context.nodeType;
-
- if ( !selector || typeof selector !== "string" ) {
- return results;
- }
-
- if ( nodeType !== 1 && nodeType !== 9 ) {
- return [];
- }
-
- xml = isXML( context );
-
- if ( !xml && !seed ) {
- if ( (match = rquickExpr.exec( selector )) ) {
- // Speed-up: Sizzle("#ID")
- if ( (m = match[1]) ) {
- if ( nodeType === 9 ) {
- elem = context.getElementById( m );
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- if ( elem && elem.parentNode ) {
- // Handle the case where IE, Opera, and Webkit return items
- // by name instead of ID
- if ( elem.id === m ) {
- results.push( elem );
- return results;
- }
- } else {
- return results;
- }
- } else {
- // Context is not a document
- if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
- contains( context, elem ) && elem.id === m ) {
- results.push( elem );
- return results;
- }
- }
-
- // Speed-up: Sizzle("TAG")
- } else if ( match[2] ) {
- push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) );
- return results;
-
- // Speed-up: Sizzle(".CLASS")
- } else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) {
- push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );
- return results;
- }
- }
- }
-
- // All others
- return select( selector.replace( rtrim, "$1" ), context, results, seed, xml );
-}
-
-Sizzle.matches = function( expr, elements ) {
- return Sizzle( expr, null, null, elements );
-};
-
-Sizzle.matchesSelector = function( elem, expr ) {
- return Sizzle( expr, null, null, [ elem ] ).length > 0;
-};
-
-// Returns a function to use in pseudos for input types
-function createInputPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === type;
- };
-}
-
-// Returns a function to use in pseudos for buttons
-function createButtonPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return (name === "input" || name === "button") && elem.type === type;
- };
-}
-
-// Returns a function to use in pseudos for positionals
-function createPositionalPseudo( fn ) {
- return markFunction(function( argument ) {
- argument = +argument;
- return markFunction(function( seed, matches ) {
- var j,
- matchIndexes = fn( [], seed.length, argument ),
- i = matchIndexes.length;
-
- // Match elements found at the specified indexes
- while ( i-- ) {
- if ( seed[ (j = matchIndexes[i]) ] ) {
- seed[j] = !(matches[j] = seed[j]);
- }
- }
- });
- });
-}
-
-/**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-getText = Sizzle.getText = function( elem ) {
- var node,
- ret = "",
- i = 0,
- nodeType = elem.nodeType;
-
- if ( nodeType ) {
- if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
- // Use textContent for elements
- // innerText usage removed for consistency of new lines (see #11153)
- if ( typeof elem.textContent === "string" ) {
- return elem.textContent;
- } else {
- // Traverse its children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- ret += getText( elem );
- }
- }
- } else if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
- // Do not include comment or processing instruction nodes
- } else {
-
- // If no nodeType, this is expected to be an array
- for ( ; (node = elem[i]); i++ ) {
- // Do not traverse comment nodes
- ret += getText( node );
- }
- }
- return ret;
-};
-
-isXML = Sizzle.isXML = function( elem ) {
- // documentElement is verified for cases where it doesn't yet exist
- // (such as loading iframes in IE - #4833)
- var documentElement = elem && (elem.ownerDocument || elem).documentElement;
- return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-// Element contains another
-contains = Sizzle.contains = docElem.contains ?
- function( a, b ) {
- var adown = a.nodeType === 9 ? a.documentElement : a,
- bup = b && b.parentNode;
- return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) );
- } :
- docElem.compareDocumentPosition ?
- function( a, b ) {
- return b && !!( a.compareDocumentPosition( b ) & 16 );
- } :
- function( a, b ) {
- while ( (b = b.parentNode) ) {
- if ( b === a ) {
- return true;
- }
- }
- return false;
- };
-
-Sizzle.attr = function( elem, name ) {
- var val,
- xml = isXML( elem );
-
- if ( !xml ) {
- name = name.toLowerCase();
- }
- if ( (val = Expr.attrHandle[ name ]) ) {
- return val( elem );
- }
- if ( xml || assertAttributes ) {
- return elem.getAttribute( name );
- }
- val = elem.getAttributeNode( name );
- return val ?
- typeof elem[ name ] === "boolean" ?
- elem[ name ] ? name : null :
- val.specified ? val.value : null :
- null;
-};
-
-Expr = Sizzle.selectors = {
-
- // Can be adjusted by the user
- cacheLength: 50,
-
- createPseudo: markFunction,
-
- match: matchExpr,
-
- // IE6/7 return a modified href
- attrHandle: assertHrefNotNormalized ?
- {} :
- {
- "href": function( elem ) {
- return elem.getAttribute( "href", 2 );
- },
- "type": function( elem ) {
- return elem.getAttribute("type");
- }
- },
-
- find: {
- "ID": assertGetIdNotName ?
- function( id, context, xml ) {
- if ( typeof context.getElementById !== strundefined && !xml ) {
- var m = context.getElementById( id );
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- return m && m.parentNode ? [m] : [];
- }
- } :
- function( id, context, xml ) {
- if ( typeof context.getElementById !== strundefined && !xml ) {
- var m = context.getElementById( id );
-
- return m ?
- m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ?
- [m] :
- undefined :
- [];
- }
- },
-
- "TAG": assertTagNameNoComments ?
- function( tag, context ) {
- if ( typeof context.getElementsByTagName !== strundefined ) {
- return context.getElementsByTagName( tag );
- }
- } :
- function( tag, context ) {
- var results = context.getElementsByTagName( tag );
-
- // Filter out possible comments
- if ( tag === "*" ) {
- var elem,
- tmp = [],
- i = 0;
-
- for ( ; (elem = results[i]); i++ ) {
- if ( elem.nodeType === 1 ) {
- tmp.push( elem );
- }
- }
-
- return tmp;
- }
- return results;
- },
-
- "NAME": assertUsableName && function( tag, context ) {
- if ( typeof context.getElementsByName !== strundefined ) {
- return context.getElementsByName( name );
- }
- },
-
- "CLASS": assertUsableClassName && function( className, context, xml ) {
- if ( typeof context.getElementsByClassName !== strundefined && !xml ) {
- return context.getElementsByClassName( className );
- }
- }
- },
-
- relative: {
- ">": { dir: "parentNode", first: true },
- " ": { dir: "parentNode" },
- "+": { dir: "previousSibling", first: true },
- "~": { dir: "previousSibling" }
- },
-
- preFilter: {
- "ATTR": function( match ) {
- match[1] = match[1].replace( rbackslash, "" );
-
- // Move the given value to match[3] whether quoted or unquoted
- match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" );
-
- if ( match[2] === "~=" ) {
- match[3] = " " + match[3] + " ";
- }
-
- return match.slice( 0, 4 );
- },
-
- "CHILD": function( match ) {
- /* matches from matchExpr["CHILD"]
- 1 type (only|nth|...)
- 2 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
- 3 xn-component of xn+y argument ([+-]?\d*n|)
- 4 sign of xn-component
- 5 x of xn-component
- 6 sign of y-component
- 7 y of y-component
- */
- match[1] = match[1].toLowerCase();
-
- if ( match[1] === "nth" ) {
- // nth-child requires argument
- if ( !match[2] ) {
- Sizzle.error( match[0] );
- }
-
- // numeric x and y parameters for Expr.filter.CHILD
- // remember that false/true cast respectively to 0/1
- match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) );
- match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" );
-
- // other types prohibit arguments
- } else if ( match[2] ) {
- Sizzle.error( match[0] );
- }
-
- return match;
- },
-
- "PSEUDO": function( match ) {
- var unquoted, excess;
- if ( matchExpr["CHILD"].test( match[0] ) ) {
- return null;
- }
-
- if ( match[3] ) {
- match[2] = match[3];
- } else if ( (unquoted = match[4]) ) {
- // Only check arguments that contain a pseudo
- if ( rpseudo.test(unquoted) &&
- // Get excess from tokenize (recursively)
- (excess = tokenize( unquoted, true )) &&
- // advance to the next closing parenthesis
- (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
-
- // excess is a negative index
- unquoted = unquoted.slice( 0, excess );
- match[0] = match[0].slice( 0, excess );
- }
- match[2] = unquoted;
- }
-
- // Return only captures needed by the pseudo filter method (type and argument)
- return match.slice( 0, 3 );
- }
- },
-
- filter: {
- "ID": assertGetIdNotName ?
- function( id ) {
- id = id.replace( rbackslash, "" );
- return function( elem ) {
- return elem.getAttribute("id") === id;
- };
- } :
- function( id ) {
- id = id.replace( rbackslash, "" );
- return function( elem ) {
- var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
- return node && node.value === id;
- };
- },
-
- "TAG": function( nodeName ) {
- if ( nodeName === "*" ) {
- return function() { return true; };
- }
- nodeName = nodeName.replace( rbackslash, "" ).toLowerCase();
-
- return function( elem ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
- };
- },
-
- "CLASS": function( className ) {
- var pattern = classCache[ expando ][ className + " " ];
-
- return pattern ||
- (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
- classCache( className, function( elem ) {
- return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );
- });
- },
-
- "ATTR": function( name, operator, check ) {
- return function( elem, context ) {
- var result = Sizzle.attr( elem, name );
-
- if ( result == null ) {
- return operator === "!=";
- }
- if ( !operator ) {
- return true;
- }
-
- result += "";
-
- return operator === "=" ? result === check :
- operator === "!=" ? result !== check :
- operator === "^=" ? check && result.indexOf( check ) === 0 :
- operator === "*=" ? check && result.indexOf( check ) > -1 :
- operator === "$=" ? check && result.substr( result.length - check.length ) === check :
- operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
- operator === "|=" ? result === check || result.substr( 0, check.length + 1 ) === check + "-" :
- false;
- };
- },
-
- "CHILD": function( type, argument, first, last ) {
-
- if ( type === "nth" ) {
- return function( elem ) {
- var node, diff,
- parent = elem.parentNode;
-
- if ( first === 1 && last === 0 ) {
- return true;
- }
-
- if ( parent ) {
- diff = 0;
- for ( node = parent.firstChild; node; node = node.nextSibling ) {
- if ( node.nodeType === 1 ) {
- diff++;
- if ( elem === node ) {
- break;
- }
- }
- }
- }
-
- // Incorporate the offset (or cast to NaN), then check against cycle size
- diff -= last;
- return diff === first || ( diff % first === 0 && diff / first >= 0 );
- };
- }
-
- return function( elem ) {
- var node = elem;
-
- switch ( type ) {
- case "only":
- case "first":
- while ( (node = node.previousSibling) ) {
- if ( node.nodeType === 1 ) {
- return false;
- }
- }
-
- if ( type === "first" ) {
- return true;
- }
-
- node = elem;
-
- /* falls through */
- case "last":
- while ( (node = node.nextSibling) ) {
- if ( node.nodeType === 1 ) {
- return false;
- }
- }
-
- return true;
- }
- };
- },
-
- "PSEUDO": function( pseudo, argument ) {
- // pseudo-class names are case-insensitive
- // http://www.w3.org/TR/selectors/#pseudo-classes
- // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
- // Remember that setFilters inherits from pseudos
- var args,
- fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
- Sizzle.error( "unsupported pseudo: " + pseudo );
-
- // The user may use createPseudo to indicate that
- // arguments are needed to create the filter function
- // just as Sizzle does
- if ( fn[ expando ] ) {
- return fn( argument );
- }
-
- // But maintain support for old signatures
- if ( fn.length > 1 ) {
- args = [ pseudo, pseudo, "", argument ];
- return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
- markFunction(function( seed, matches ) {
- var idx,
- matched = fn( seed, argument ),
- i = matched.length;
- while ( i-- ) {
- idx = indexOf.call( seed, matched[i] );
- seed[ idx ] = !( matches[ idx ] = matched[i] );
- }
- }) :
- function( elem ) {
- return fn( elem, 0, args );
- };
- }
-
- return fn;
- }
- },
-
- pseudos: {
- "not": markFunction(function( selector ) {
- // Trim the selector passed to compile
- // to avoid treating leading and trailing
- // spaces as combinators
- var input = [],
- results = [],
- matcher = compile( selector.replace( rtrim, "$1" ) );
-
- return matcher[ expando ] ?
- markFunction(function( seed, matches, context, xml ) {
- var elem,
- unmatched = matcher( seed, null, xml, [] ),
- i = seed.length;
-
- // Match elements unmatched by `matcher`
- while ( i-- ) {
- if ( (elem = unmatched[i]) ) {
- seed[i] = !(matches[i] = elem);
- }
- }
- }) :
- function( elem, context, xml ) {
- input[0] = elem;
- matcher( input, null, xml, results );
- return !results.pop();
- };
- }),
-
- "has": markFunction(function( selector ) {
- return function( elem ) {
- return Sizzle( selector, elem ).length > 0;
- };
- }),
-
- "contains": markFunction(function( text ) {
- return function( elem ) {
- return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
- };
- }),
-
- "enabled": function( elem ) {
- return elem.disabled === false;
- },
-
- "disabled": function( elem ) {
- return elem.disabled === true;
- },
-
- "checked": function( elem ) {
- // In CSS3, :checked should return both checked and selected elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- var nodeName = elem.nodeName.toLowerCase();
- return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
- },
-
- "selected": function( elem ) {
- // Accessing this property makes selected-by-default
- // options in Safari work properly
- if ( elem.parentNode ) {
- elem.parentNode.selectedIndex;
- }
-
- return elem.selected === true;
- },
-
- "parent": function( elem ) {
- return !Expr.pseudos["empty"]( elem );
- },
-
- "empty": function( elem ) {
- // http://www.w3.org/TR/selectors/#empty-pseudo
- // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),
- // not comment, processing instructions, or others
- // Thanks to Diego Perini for the nodeName shortcut
- // Greater than "@" means alpha characters (specifically not starting with "#" or "?")
- var nodeType;
- elem = elem.firstChild;
- while ( elem ) {
- if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) {
- return false;
- }
- elem = elem.nextSibling;
- }
- return true;
- },
-
- "header": function( elem ) {
- return rheader.test( elem.nodeName );
- },
-
- "text": function( elem ) {
- var type, attr;
- // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
- // use getAttribute instead to test this case
- return elem.nodeName.toLowerCase() === "input" &&
- (type = elem.type) === "text" &&
- ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type );
- },
-
- // Input types
- "radio": createInputPseudo("radio"),
- "checkbox": createInputPseudo("checkbox"),
- "file": createInputPseudo("file"),
- "password": createInputPseudo("password"),
- "image": createInputPseudo("image"),
-
- "submit": createButtonPseudo("submit"),
- "reset": createButtonPseudo("reset"),
-
- "button": function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === "button" || name === "button";
- },
-
- "input": function( elem ) {
- return rinputs.test( elem.nodeName );
- },
-
- "focus": function( elem ) {
- var doc = elem.ownerDocument;
- return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
- },
-
- "active": function( elem ) {
- return elem === elem.ownerDocument.activeElement;
- },
-
- // Positional types
- "first": createPositionalPseudo(function() {
- return [ 0 ];
- }),
-
- "last": createPositionalPseudo(function( matchIndexes, length ) {
- return [ length - 1 ];
- }),
-
- "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
- return [ argument < 0 ? argument + length : argument ];
- }),
-
- "even": createPositionalPseudo(function( matchIndexes, length ) {
- for ( var i = 0; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "odd": createPositionalPseudo(function( matchIndexes, length ) {
- for ( var i = 1; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- for ( var i = argument < 0 ? argument + length : argument; --i >= 0; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- for ( var i = argument < 0 ? argument + length : argument; ++i < length; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- })
- }
-};
-
-function siblingCheck( a, b, ret ) {
- if ( a === b ) {
- return ret;
- }
-
- var cur = a.nextSibling;
-
- while ( cur ) {
- if ( cur === b ) {
- return -1;
- }
-
- cur = cur.nextSibling;
- }
-
- return 1;
-}
-
-sortOrder = docElem.compareDocumentPosition ?
- function( a, b ) {
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- return ( !a.compareDocumentPosition || !b.compareDocumentPosition ?
- a.compareDocumentPosition :
- a.compareDocumentPosition(b) & 4
- ) ? -1 : 1;
- } :
- function( a, b ) {
- // The nodes are identical, we can exit early
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
-
- // Fallback to using sourceIndex (in IE) if it's available on both nodes
- } else if ( a.sourceIndex && b.sourceIndex ) {
- return a.sourceIndex - b.sourceIndex;
- }
-
- var al, bl,
- ap = [],
- bp = [],
- aup = a.parentNode,
- bup = b.parentNode,
- cur = aup;
-
- // If the nodes are siblings (or identical) we can do a quick check
- if ( aup === bup ) {
- return siblingCheck( a, b );
-
- // If no parents were found then the nodes are disconnected
- } else if ( !aup ) {
- return -1;
-
- } else if ( !bup ) {
- return 1;
- }
-
- // Otherwise they're somewhere else in the tree so we need
- // to build up a full list of the parentNodes for comparison
- while ( cur ) {
- ap.unshift( cur );
- cur = cur.parentNode;
- }
-
- cur = bup;
-
- while ( cur ) {
- bp.unshift( cur );
- cur = cur.parentNode;
- }
-
- al = ap.length;
- bl = bp.length;
-
- // Start walking down the tree looking for a discrepancy
- for ( var i = 0; i < al && i < bl; i++ ) {
- if ( ap[i] !== bp[i] ) {
- return siblingCheck( ap[i], bp[i] );
- }
- }
-
- // We ended someplace up the tree so do a sibling check
- return i === al ?
- siblingCheck( a, bp[i], -1 ) :
- siblingCheck( ap[i], b, 1 );
- };
-
-// Always assume the presence of duplicates if sort doesn't
-// pass them to our comparison function (as in Google Chrome).
-[0, 0].sort( sortOrder );
-baseHasDuplicate = !hasDuplicate;
-
-// Document sorting and removing duplicates
-Sizzle.uniqueSort = function( results ) {
- var elem,
- duplicates = [],
- i = 1,
- j = 0;
-
- hasDuplicate = baseHasDuplicate;
- results.sort( sortOrder );
-
- if ( hasDuplicate ) {
- for ( ; (elem = results[i]); i++ ) {
- if ( elem === results[ i - 1 ] ) {
- j = duplicates.push( i );
- }
- }
- while ( j-- ) {
- results.splice( duplicates[ j ], 1 );
- }
- }
-
- return results;
-};
-
-Sizzle.error = function( msg ) {
- throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-function tokenize( selector, parseOnly ) {
- var matched, match, tokens, type,
- soFar, groups, preFilters,
- cached = tokenCache[ expando ][ selector + " " ];
-
- if ( cached ) {
- return parseOnly ? 0 : cached.slice( 0 );
- }
-
- soFar = selector;
- groups = [];
- preFilters = Expr.preFilter;
-
- while ( soFar ) {
-
- // Comma and first run
- if ( !matched || (match = rcomma.exec( soFar )) ) {
- if ( match ) {
- // Don't consume trailing commas as valid
- soFar = soFar.slice( match[0].length ) || soFar;
- }
- groups.push( tokens = [] );
- }
-
- matched = false;
-
- // Combinators
- if ( (match = rcombinators.exec( soFar )) ) {
- tokens.push( matched = new Token( match.shift() ) );
- soFar = soFar.slice( matched.length );
-
- // Cast descendant combinators to space
- matched.type = match[0].replace( rtrim, " " );
- }
-
- // Filters
- for ( type in Expr.filter ) {
- if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
- (match = preFilters[ type ]( match ))) ) {
-
- tokens.push( matched = new Token( match.shift() ) );
- soFar = soFar.slice( matched.length );
- matched.type = type;
- matched.matches = match;
- }
- }
-
- if ( !matched ) {
- break;
- }
- }
-
- // Return the length of the invalid excess
- // if we're just parsing
- // Otherwise, throw an error or return tokens
- return parseOnly ?
- soFar.length :
- soFar ?
- Sizzle.error( selector ) :
- // Cache the tokens
- tokenCache( selector, groups ).slice( 0 );
-}
-
-function addCombinator( matcher, combinator, base ) {
- var dir = combinator.dir,
- checkNonElements = base && combinator.dir === "parentNode",
- doneName = done++;
-
- return combinator.first ?
- // Check against closest ancestor/preceding element
- function( elem, context, xml ) {
- while ( (elem = elem[ dir ]) ) {
- if ( checkNonElements || elem.nodeType === 1 ) {
- return matcher( elem, context, xml );
- }
- }
- } :
-
- // Check against all ancestor/preceding elements
- function( elem, context, xml ) {
- // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
- if ( !xml ) {
- var cache,
- dirkey = dirruns + " " + doneName + " ",
- cachedkey = dirkey + cachedruns;
- while ( (elem = elem[ dir ]) ) {
- if ( checkNonElements || elem.nodeType === 1 ) {
- if ( (cache = elem[ expando ]) === cachedkey ) {
- return elem.sizset;
- } else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) {
- if ( elem.sizset ) {
- return elem;
- }
- } else {
- elem[ expando ] = cachedkey;
- if ( matcher( elem, context, xml ) ) {
- elem.sizset = true;
- return elem;
- }
- elem.sizset = false;
- }
- }
- }
- } else {
- while ( (elem = elem[ dir ]) ) {
- if ( checkNonElements || elem.nodeType === 1 ) {
- if ( matcher( elem, context, xml ) ) {
- return elem;
- }
- }
- }
- }
- };
-}
-
-function elementMatcher( matchers ) {
- return matchers.length > 1 ?
- function( elem, context, xml ) {
- var i = matchers.length;
- while ( i-- ) {
- if ( !matchers[i]( elem, context, xml ) ) {
- return false;
- }
- }
- return true;
- } :
- matchers[0];
-}
-
-function condense( unmatched, map, filter, context, xml ) {
- var elem,
- newUnmatched = [],
- i = 0,
- len = unmatched.length,
- mapped = map != null;
-
- for ( ; i < len; i++ ) {
- if ( (elem = unmatched[i]) ) {
- if ( !filter || filter( elem, context, xml ) ) {
- newUnmatched.push( elem );
- if ( mapped ) {
- map.push( i );
- }
- }
- }
- }
-
- return newUnmatched;
-}
-
-function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
- if ( postFilter && !postFilter[ expando ] ) {
- postFilter = setMatcher( postFilter );
- }
- if ( postFinder && !postFinder[ expando ] ) {
- postFinder = setMatcher( postFinder, postSelector );
- }
- return markFunction(function( seed, results, context, xml ) {
- var temp, i, elem,
- preMap = [],
- postMap = [],
- preexisting = results.length,
-
- // Get initial elements from seed or context
- elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
-
- // Prefilter to get matcher input, preserving a map for seed-results synchronization
- matcherIn = preFilter && ( seed || !selector ) ?
- condense( elems, preMap, preFilter, context, xml ) :
- elems,
-
- matcherOut = matcher ?
- // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
- postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
-
- // ...intermediate processing is necessary
- [] :
-
- // ...otherwise use results directly
- results :
- matcherIn;
-
- // Find primary matches
- if ( matcher ) {
- matcher( matcherIn, matcherOut, context, xml );
- }
-
- // Apply postFilter
- if ( postFilter ) {
- temp = condense( matcherOut, postMap );
- postFilter( temp, [], context, xml );
-
- // Un-match failing elements by moving them back to matcherIn
- i = temp.length;
- while ( i-- ) {
- if ( (elem = temp[i]) ) {
- matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
- }
- }
- }
-
- if ( seed ) {
- if ( postFinder || preFilter ) {
- if ( postFinder ) {
- // Get the final matcherOut by condensing this intermediate into postFinder contexts
- temp = [];
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) ) {
- // Restore matcherIn since elem is not yet a final match
- temp.push( (matcherIn[i] = elem) );
- }
- }
- postFinder( null, (matcherOut = []), temp, xml );
- }
-
- // Move matched elements from seed to results to keep them synchronized
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) &&
- (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
-
- seed[temp] = !(results[temp] = elem);
- }
- }
- }
-
- // Add elements to results, through postFinder if defined
- } else {
- matcherOut = condense(
- matcherOut === results ?
- matcherOut.splice( preexisting, matcherOut.length ) :
- matcherOut
- );
- if ( postFinder ) {
- postFinder( null, results, matcherOut, xml );
- } else {
- push.apply( results, matcherOut );
- }
- }
- });
-}
-
-function matcherFromTokens( tokens ) {
- var checkContext, matcher, j,
- len = tokens.length,
- leadingRelative = Expr.relative[ tokens[0].type ],
- implicitRelative = leadingRelative || Expr.relative[" "],
- i = leadingRelative ? 1 : 0,
-
- // The foundational matcher ensures that elements are reachable from top-level context(s)
- matchContext = addCombinator( function( elem ) {
- return elem === checkContext;
- }, implicitRelative, true ),
- matchAnyContext = addCombinator( function( elem ) {
- return indexOf.call( checkContext, elem ) > -1;
- }, implicitRelative, true ),
- matchers = [ function( elem, context, xml ) {
- return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
- (checkContext = context).nodeType ?
- matchContext( elem, context, xml ) :
- matchAnyContext( elem, context, xml ) );
- } ];
-
- for ( ; i < len; i++ ) {
- if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
- matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
- } else {
- matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
-
- // Return special upon seeing a positional matcher
- if ( matcher[ expando ] ) {
- // Find the next relative operator (if any) for proper handling
- j = ++i;
- for ( ; j < len; j++ ) {
- if ( Expr.relative[ tokens[j].type ] ) {
- break;
- }
- }
- return setMatcher(
- i > 1 && elementMatcher( matchers ),
- i > 1 && tokens.slice( 0, i - 1 ).join("").replace( rtrim, "$1" ),
- matcher,
- i < j && matcherFromTokens( tokens.slice( i, j ) ),
- j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
- j < len && tokens.join("")
- );
- }
- matchers.push( matcher );
- }
- }
-
- return elementMatcher( matchers );
-}
-
-function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
- var bySet = setMatchers.length > 0,
- byElement = elementMatchers.length > 0,
- superMatcher = function( seed, context, xml, results, expandContext ) {
- var elem, j, matcher,
- setMatched = [],
- matchedCount = 0,
- i = "0",
- unmatched = seed && [],
- outermost = expandContext != null,
- contextBackup = outermostContext,
- // We must always have either seed elements or context
- elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),
- // Nested matchers should use non-integer dirruns
- dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E);
-
- if ( outermost ) {
- outermostContext = context !== document && context;
- cachedruns = superMatcher.el;
- }
-
- // Add elements passing elementMatchers directly to results
- for ( ; (elem = elems[i]) != null; i++ ) {
- if ( byElement && elem ) {
- for ( j = 0; (matcher = elementMatchers[j]); j++ ) {
- if ( matcher( elem, context, xml ) ) {
- results.push( elem );
- break;
- }
- }
- if ( outermost ) {
- dirruns = dirrunsUnique;
- cachedruns = ++superMatcher.el;
- }
- }
-
- // Track unmatched elements for set filters
- if ( bySet ) {
- // They will have gone through all possible matchers
- if ( (elem = !matcher && elem) ) {
- matchedCount--;
- }
-
- // Lengthen the array for every element, matched or not
- if ( seed ) {
- unmatched.push( elem );
- }
- }
- }
-
- // Apply set filters to unmatched elements
- matchedCount += i;
- if ( bySet && i !== matchedCount ) {
- for ( j = 0; (matcher = setMatchers[j]); j++ ) {
- matcher( unmatched, setMatched, context, xml );
- }
-
- if ( seed ) {
- // Reintegrate element matches to eliminate the need for sorting
- if ( matchedCount > 0 ) {
- while ( i-- ) {
- if ( !(unmatched[i] || setMatched[i]) ) {
- setMatched[i] = pop.call( results );
- }
- }
- }
-
- // Discard index placeholder values to get only actual matches
- setMatched = condense( setMatched );
- }
-
- // Add matches to results
- push.apply( results, setMatched );
-
- // Seedless set matches succeeding multiple successful matchers stipulate sorting
- if ( outermost && !seed && setMatched.length > 0 &&
- ( matchedCount + setMatchers.length ) > 1 ) {
-
- Sizzle.uniqueSort( results );
- }
- }
-
- // Override manipulation of globals by nested matchers
- if ( outermost ) {
- dirruns = dirrunsUnique;
- outermostContext = contextBackup;
- }
-
- return unmatched;
- };
-
- superMatcher.el = 0;
- return bySet ?
- markFunction( superMatcher ) :
- superMatcher;
-}
-
-compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
- var i,
- setMatchers = [],
- elementMatchers = [],
- cached = compilerCache[ expando ][ selector + " " ];
-
- if ( !cached ) {
- // Generate a function of recursive functions that can be used to check each element
- if ( !group ) {
- group = tokenize( selector );
- }
- i = group.length;
- while ( i-- ) {
- cached = matcherFromTokens( group[i] );
- if ( cached[ expando ] ) {
- setMatchers.push( cached );
- } else {
- elementMatchers.push( cached );
- }
- }
-
- // Cache the compiled function
- cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
- }
- return cached;
-};
-
-function multipleContexts( selector, contexts, results ) {
- var i = 0,
- len = contexts.length;
- for ( ; i < len; i++ ) {
- Sizzle( selector, contexts[i], results );
- }
- return results;
-}
-
-function select( selector, context, results, seed, xml ) {
- var i, tokens, token, type, find,
- match = tokenize( selector ),
- j = match.length;
-
- if ( !seed ) {
- // Try to minimize operations if there is only one group
- if ( match.length === 1 ) {
-
- // Take a shortcut and set the context if the root selector is an ID
- tokens = match[0] = match[0].slice( 0 );
- if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
- context.nodeType === 9 && !xml &&
- Expr.relative[ tokens[1].type ] ) {
-
- context = Expr.find["ID"]( token.matches[0].replace( rbackslash, "" ), context, xml )[0];
- if ( !context ) {
- return results;
- }
-
- selector = selector.slice( tokens.shift().length );
- }
-
- // Fetch a seed set for right-to-left matching
- for ( i = matchExpr["POS"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) {
- token = tokens[i];
-
- // Abort if we hit a combinator
- if ( Expr.relative[ (type = token.type) ] ) {
- break;
- }
- if ( (find = Expr.find[ type ]) ) {
- // Search, expanding context for leading sibling combinators
- if ( (seed = find(
- token.matches[0].replace( rbackslash, "" ),
- rsibling.test( tokens[0].type ) && context.parentNode || context,
- xml
- )) ) {
-
- // If seed is empty or no tokens remain, we can return early
- tokens.splice( i, 1 );
- selector = seed.length && tokens.join("");
- if ( !selector ) {
- push.apply( results, slice.call( seed, 0 ) );
- return results;
- }
-
- break;
- }
- }
- }
- }
- }
-
- // Compile and execute a filtering function
- // Provide `match` to avoid retokenization if we modified the selector above
- compile( selector, match )(
- seed,
- context,
- xml,
- results,
- rsibling.test( selector )
- );
- return results;
-}
-
-if ( document.querySelectorAll ) {
- (function() {
- var disconnectedMatch,
- oldSelect = select,
- rescape = /'|\\/g,
- rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
-
- // qSa(:focus) reports false when true (Chrome 21), no need to also add to buggyMatches since matches checks buggyQSA
- // A support test would require too much code (would include document ready)
- rbuggyQSA = [ ":focus" ],
-
- // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
- // A support test would require too much code (would include document ready)
- // just skip matchesSelector for :active
- rbuggyMatches = [ ":active" ],
- matches = docElem.matchesSelector ||
- docElem.mozMatchesSelector ||
- docElem.webkitMatchesSelector ||
- docElem.oMatchesSelector ||
- docElem.msMatchesSelector;
-
- // Build QSA regex
- // Regex strategy adopted from Diego Perini
- assert(function( div ) {
- // Select is set to empty string on purpose
- // This is to test IE's treatment of not explictly
- // setting a boolean content attribute,
- // since its presence should be enough
- // http://bugs.jquery.com/ticket/12359
- div.innerHTML = "<select><option selected=''></option></select>";
-
- // IE8 - Some boolean attributes are not treated correctly
- if ( !div.querySelectorAll("[selected]").length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" );
- }
-
- // Webkit/Opera - :checked should return selected option elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- // IE8 throws error here (do not put tests after this one)
- if ( !div.querySelectorAll(":checked").length ) {
- rbuggyQSA.push(":checked");
- }
- });
-
- assert(function( div ) {
-
- // Opera 10-12/IE9 - ^= $= *= and empty values
- // Should not select anything
- div.innerHTML = "<p test=''></p>";
- if ( div.querySelectorAll("[test^='']").length ) {
- rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" );
- }
-
- // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
- // IE8 throws error here (do not put tests after this one)
- div.innerHTML = "<input type='hidden'/>";
- if ( !div.querySelectorAll(":enabled").length ) {
- rbuggyQSA.push(":enabled", ":disabled");
- }
- });
-
- // rbuggyQSA always contains :focus, so no need for a length check
- rbuggyQSA = /* rbuggyQSA.length && */ new RegExp( rbuggyQSA.join("|") );
-
- select = function( selector, context, results, seed, xml ) {
- // Only use querySelectorAll when not filtering,
- // when this is not xml,
- // and when no QSA bugs apply
- if ( !seed && !xml && !rbuggyQSA.test( selector ) ) {
- var groups, i,
- old = true,
- nid = expando,
- newContext = context,
- newSelector = context.nodeType === 9 && selector;
-
- // qSA works strangely on Element-rooted queries
- // We can work around this by specifying an extra ID on the root
- // and working up from there (Thanks to Andrew Dupont for the technique)
- // IE 8 doesn't work on object elements
- if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
- groups = tokenize( selector );
-
- if ( (old = context.getAttribute("id")) ) {
- nid = old.replace( rescape, "\\$&" );
- } else {
- context.setAttribute( "id", nid );
- }
- nid = "[id='" + nid + "'] ";
-
- i = groups.length;
- while ( i-- ) {
- groups[i] = nid + groups[i].join("");
- }
- newContext = rsibling.test( selector ) && context.parentNode || context;
- newSelector = groups.join(",");
- }
-
- if ( newSelector ) {
- try {
- push.apply( results, slice.call( newContext.querySelectorAll(
- newSelector
- ), 0 ) );
- return results;
- } catch(qsaError) {
- } finally {
- if ( !old ) {
- context.removeAttribute("id");
- }
- }
- }
- }
-
- return oldSelect( selector, context, results, seed, xml );
- };
-
- if ( matches ) {
- assert(function( div ) {
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node (IE 9)
- disconnectedMatch = matches.call( div, "div" );
-
- // This should fail with an exception
- // Gecko does not error, returns false instead
- try {
- matches.call( div, "[test!='']:sizzle" );
- rbuggyMatches.push( "!=", pseudos );
- } catch ( e ) {}
- });
-
- // rbuggyMatches always contains :active and :focus, so no need for a length check
- rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") );
-
- Sizzle.matchesSelector = function( elem, expr ) {
- // Make sure that attribute selectors are quoted
- expr = expr.replace( rattributeQuotes, "='$1']" );
-
- // rbuggyMatches always contains :active, so no need for an existence check
- if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && !rbuggyQSA.test( expr ) ) {
- try {
- var ret = matches.call( elem, expr );
-
- // IE 9's matchesSelector returns false on disconnected nodes
- if ( ret || disconnectedMatch ||
- // As well, disconnected nodes are said to be in a document
- // fragment in IE 9
- elem.document && elem.document.nodeType !== 11 ) {
- return ret;
- }
- } catch(e) {}
- }
-
- return Sizzle( expr, null, null, [ elem ] ).length > 0;
- };
- }
- })();
-}
-
-// Deprecated
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
-
-// Back-compat
-function setFilters() {}
-Expr.filters = setFilters.prototype = Expr.pseudos;
-Expr.setFilters = new setFilters();
-
+/*! + * Sizzle CSS Selector Engine + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ + */ +(function( window, undefined ) { + +var cachedruns, + assertGetIdNotName, + Expr, + getText, + isXML, + contains, + compile, + sortOrder, + hasDuplicate, + outermostContext, + + baseHasDuplicate = true, + strundefined = "undefined", + + expando = ( "sizcache" + Math.random() ).replace( ".", "" ), + + Token = String, + document = window.document, + docElem = document.documentElement, + dirruns = 0, + done = 0, + pop = [].pop, + push = [].push, + slice = [].slice, + // Use a stripped-down indexOf if a native one is unavailable + indexOf = [].indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + // Augment a function for special use by Sizzle + markFunction = function( fn, value ) { + fn[ expando ] = value == null || value; + return fn; + }, + + createCache = function() { + var cache = {}, + keys = []; + + return markFunction(function( key, value ) { + // Only keep the most recent entries + if ( keys.push( key ) > Expr.cacheLength ) { + delete cache[ keys.shift() ]; + } + + // Retrieve with (key + " ") to avoid collision with native Object.prototype properties (see Issue #157) + return (cache[ key + " " ] = value); + }, cache ); + }, + + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + + // Regex + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors) + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments not in parens/brackets, + // then attribute selectors and non-pseudos (denoted by :), + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + attributes + ")|[^:]|\\\\.)*|.*))\\)|)", + + // For matchExpr.POS and matchExpr.needsContext + pos = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, + + rnot = /^:not/, + rsibling = /[\x20\t\r\n\f]*[+~]/, + rendsWithNot = /:not\($/, + + rheader = /h\d/i, + rinputs = /input|select|textarea|button/i, + + rbackslash = /\\(?!\\)/g, + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "POS": new RegExp( pos, "i" ), + "CHILD": new RegExp( "^:(only|nth|first|last)-child(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" ) + }, + + // Support + + // Used for testing something on an element + assert = function( fn ) { + var div = document.createElement("div"); + + try { + return fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } + }, + + // Check if getElementsByTagName("*") returns only elements + assertTagNameNoComments = assert(function( div ) { + div.appendChild( document.createComment("") ); + return !div.getElementsByTagName("*").length; + }), + + // Check if getAttribute returns normalized href attributes + assertHrefNotNormalized = assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }), + + // Check if attributes should be retrieved by attribute nodes + assertAttributes = assert(function( div ) { + div.innerHTML = "<select></select>"; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }), + + // Check if getElementsByClassName can be trusted + assertUsableClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>"; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; + } + + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }), + + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by ID + assertUsableName = assert(function( div ) { + // Inject content + div.id = expando + 0; + div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>"; + docElem.insertBefore( div, docElem.firstChild ); + + // Test + var pass = document.getElementsByName && + // buggy browsers will return fewer than the correct 2 + document.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + document.getElementsByName( expando + 0 ).length; + assertGetIdNotName = !document.getElementById( expando ); + + // Cleanup + docElem.removeChild( div ); + + return pass; + }); + +// If slice is not available, provide a backup +try { + slice.call( docElem.childNodes, 0 )[0].nodeType; +} catch ( e ) { + slice = function( i ) { + var elem, + results = []; + for ( ; (elem = this[i]); i++ ) { + results.push( elem ); + } + return results; + }; +} + +function Sizzle( selector, context, results, seed ) { + results = results || []; + context = context || document; + var match, elem, xml, m, + nodeType = context.nodeType; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( nodeType !== 1 && nodeType !== 9 ) { + return []; + } + + xml = isXML( context ); + + if ( !xml && !seed ) { + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed, xml ); +} + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + return Sizzle( expr, null, null, [ elem ] ).length > 0; +}; + +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( nodeType ) { + if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + } else { + + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } + return ret; +}; + +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Element contains another +contains = Sizzle.contains = docElem.contains ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) ); + } : + docElem.compareDocumentPosition ? + function( a, b ) { + return b && !!( a.compareDocumentPosition( b ) & 16 ); + } : + function( a, b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + return false; + }; + +Sizzle.attr = function( elem, name ) { + var val, + xml = isXML( elem ); + + if ( !xml ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( xml || assertAttributes ) { + return elem.getAttribute( name ); + } + val = elem.getAttributeNode( name ); + return val ? + typeof elem[ name ] === "boolean" ? + elem[ name ] ? name : null : + val.specified ? val.value : null : + null; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + // IE6/7 return a modified href + attrHandle: assertHrefNotNormalized ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }, + + find: { + "ID": assertGetIdNotName ? + function( id, context, xml ) { + if ( typeof context.getElementById !== strundefined && !xml ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + } : + function( id, context, xml ) { + if ( typeof context.getElementById !== strundefined && !xml ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }, + + "TAG": assertTagNameNoComments ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + var elem, + tmp = [], + i = 0; + + for ( ; (elem = results[i]); i++ ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }, + + "NAME": assertUsableName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }, + + "CLASS": assertUsableClassName && function( className, context, xml ) { + if ( typeof context.getElementsByClassName !== strundefined && !xml ) { + return context.getElementsByClassName( className ); + } + } + }, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( rbackslash, "" ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 3 xn-component of xn+y argument ([+-]?\d*n|) + 4 sign of xn-component + 5 x of xn-component + 6 sign of y-component + 7 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1] === "nth" ) { + // nth-child requires argument + if ( !match[2] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) ); + match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" ); + + // other types prohibit arguments + } else if ( match[2] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var unquoted, excess; + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + if ( match[3] ) { + match[2] = match[3]; + } else if ( (unquoted = match[4]) ) { + // Only check arguments that contain a pseudo + if ( rpseudo.test(unquoted) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + unquoted = unquoted.slice( 0, excess ); + match[0] = match[0].slice( 0, excess ); + } + match[2] = unquoted; + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + "ID": assertGetIdNotName ? + function( id ) { + id = id.replace( rbackslash, "" ); + return function( elem ) { + return elem.getAttribute("id") === id; + }; + } : + function( id ) { + id = id.replace( rbackslash, "" ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === id; + }; + }, + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; + } + nodeName = nodeName.replace( rbackslash, "" ).toLowerCase(); + + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ expando ][ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem, context ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.substr( result.length - check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.substr( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, argument, first, last ) { + + if ( type === "nth" ) { + return function( elem ) { + var node, diff, + parent = elem.parentNode; + + if ( first === 1 && last === 0 ) { + return true; + } + + if ( parent ) { + diff = 0; + for ( node = parent.firstChild; node; node = node.nextSibling ) { + if ( node.nodeType === 1 ) { + diff++; + if ( elem === node ) { + break; + } + } + } + } + + // Incorporate the offset (or cast to NaN), then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + }; + } + + return function( elem ) { + var node = elem; + + switch ( type ) { + case "only": + case "first": + while ( (node = node.previousSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + if ( type === "first" ) { + return true; + } + + node = elem; + + /* falls through */ + case "last": + while ( (node = node.nextSibling) ) { + if ( node.nodeType === 1 ) { + return false; + } + } + + return true; + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + var nodeType; + elem = elem.firstChild; + while ( elem ) { + if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) { + return false; + } + elem = elem.nextSibling; + } + return true; + }, + + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "text": function( elem ) { + var type, attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + (type = elem.type) === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type ); + }, + + // Input types + "radio": createInputPseudo("radio"), + "checkbox": createInputPseudo("checkbox"), + "file": createInputPseudo("file"), + "password": createInputPseudo("password"), + "image": createInputPseudo("image"), + + "submit": createButtonPseudo("submit"), + "reset": createButtonPseudo("reset"), + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "focus": function( elem ) { + var doc = elem.ownerDocument; + return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + "active": function( elem ) { + return elem === elem.ownerDocument.activeElement; + }, + + // Positional types + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + for ( var i = 0; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + for ( var i = 1; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + for ( var i = argument < 0 ? argument + length : argument; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + for ( var i = argument < 0 ? argument + length : argument; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +function siblingCheck( a, b, ret ) { + if ( a === b ) { + return ret; + } + + var cur = a.nextSibling; + + while ( cur ) { + if ( cur === b ) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; +} + +sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + return ( !a.compareDocumentPosition || !b.compareDocumentPosition ? + a.compareDocumentPosition : + a.compareDocumentPosition(b) & 4 + ) ? -1 : 1; + } : + function( a, b ) { + // The nodes are identical, we can exit early + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Fallback to using sourceIndex (in IE) if it's available on both nodes + } else if ( a.sourceIndex && b.sourceIndex ) { + return a.sourceIndex - b.sourceIndex; + } + + var al, bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; + + // If the nodes are siblings (or identical) we can do a quick check + if ( aup === bup ) { + return siblingCheck( a, b ); + + // If no parents were found then the nodes are disconnected + } else if ( !aup ) { + return -1; + + } else if ( !bup ) { + return 1; + } + + // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + while ( cur ) { + ap.unshift( cur ); + cur = cur.parentNode; + } + + cur = bup; + + while ( cur ) { + bp.unshift( cur ); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; + + // Start walking down the tree looking for a discrepancy + for ( var i = 0; i < al && i < bl; i++ ) { + if ( ap[i] !== bp[i] ) { + return siblingCheck( ap[i], bp[i] ); + } + } + + // We ended someplace up the tree so do a sibling check + return i === al ? + siblingCheck( a, bp[i], -1 ) : + siblingCheck( ap[i], b, 1 ); + }; + +// Always assume the presence of duplicates if sort doesn't +// pass them to our comparison function (as in Google Chrome). +[0, 0].sort( sortOrder ); +baseHasDuplicate = !hasDuplicate; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + i = 1, + j = 0; + + hasDuplicate = baseHasDuplicate; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ expando ][ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + tokens.push( matched = new Token( match.shift() ) ); + soFar = soFar.slice( matched.length ); + + // Cast descendant combinators to space + matched.type = match[0].replace( rtrim, " " ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + + tokens.push( matched = new Token( match.shift() ) ); + soFar = soFar.slice( matched.length ); + matched.type = type; + matched.matches = match; + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && combinator.dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( checkNonElements || elem.nodeType === 1 ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( !xml ) { + var cache, + dirkey = dirruns + " " + doneName + " ", + cachedkey = dirkey + cachedruns; + while ( (elem = elem[ dir ]) ) { + if ( checkNonElements || elem.nodeType === 1 ) { + if ( (cache = elem[ expando ]) === cachedkey ) { + return elem.sizset; + } else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) { + if ( elem.sizset ) { + return elem; + } + } else { + elem[ expando ] = cachedkey; + if ( matcher( elem, context, xml ) ) { + elem.sizset = true; + return elem; + } + elem.sizset = false; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( checkNonElements || elem.nodeType === 1 ) { + if ( matcher( elem, context, xml ) ) { + return elem; + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && tokens.slice( 0, i - 1 ).join("").replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && tokens.join("") + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Nested matchers should use non-integer dirruns + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = superMatcher.el; + } + + // Add elements passing elementMatchers directly to results + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + for ( j = 0; (matcher = elementMatchers[j]); j++ ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++superMatcher.el; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + for ( j = 0; (matcher = setMatchers[j]); j++ ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + superMatcher.el = 0; + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ expando ][ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed, xml ) { + var i, tokens, token, type, find, + match = tokenize( selector ), + j = match.length; + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && !xml && + Expr.relative[ tokens[1].type ] ) { + + context = Expr.find["ID"]( token.matches[0].replace( rbackslash, "" ), context, xml )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().length ); + } + + // Fetch a seed set for right-to-left matching + for ( i = matchExpr["POS"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( rbackslash, "" ), + rsibling.test( tokens[0].type ) && context.parentNode || context, + xml + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && tokens.join(""); + if ( !selector ) { + push.apply( results, slice.call( seed, 0 ) ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + xml, + results, + rsibling.test( selector ) + ); + return results; +} + +if ( document.querySelectorAll ) { + (function() { + var disconnectedMatch, + oldSelect = select, + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + + // qSa(:focus) reports false when true (Chrome 21), no need to also add to buggyMatches since matches checks buggyQSA + // A support test would require too much code (would include document ready) + rbuggyQSA = [ ":focus" ], + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + // A support test would require too much code (would include document ready) + // just skip matchesSelector for :active + rbuggyMatches = [ ":active" ], + matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector; + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explictly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = "<select><option selected=''></option></select>"; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here (do not put tests after this one) + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE9 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = "<p test=''></p>"; + if ( div.querySelectorAll("[test^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here (do not put tests after this one) + div.innerHTML = "<input type='hidden'/>"; + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push(":enabled", ":disabled"); + } + }); + + // rbuggyQSA always contains :focus, so no need for a length check + rbuggyQSA = /* rbuggyQSA.length && */ new RegExp( rbuggyQSA.join("|") ); + + select = function( selector, context, results, seed, xml ) { + // Only use querySelectorAll when not filtering, + // when this is not xml, + // and when no QSA bugs apply + if ( !seed && !xml && !rbuggyQSA.test( selector ) ) { + var groups, i, + old = true, + nid = expando, + newContext = context, + newSelector = context.nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + groups[i].join(""); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, slice.call( newContext.querySelectorAll( + newSelector + ), 0 ) ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + + return oldSelect( selector, context, results, seed, xml ); + }; + + if ( matches ) { + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + try { + matches.call( div, "[test!='']:sizzle" ); + rbuggyMatches.push( "!=", pseudos ); + } catch ( e ) {} + }); + + // rbuggyMatches always contains :active and :focus, so no need for a length check + rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") ); + + Sizzle.matchesSelector = function( elem, expr ) { + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyMatches always contains :active, so no need for an existence check + if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && !rbuggyQSA.test( expr ) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, null, null, [ elem ] ).length > 0; + }; + } + })(); +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Back-compat +function setFilters() {} +Expr.filters = setFilters.prototype = Expr.pseudos; +Expr.setFilters = new setFilters(); + // Override sizzle attribute retrieval Sizzle.attr = jQuery.attr; jQuery.find = Sizzle; @@ -5348,9 +5348,9 @@ jQuery.unique = Sizzle.uniqueSort; jQuery.text = Sizzle.getText; jQuery.isXMLDoc = Sizzle.isXML; jQuery.contains = Sizzle.contains; -
-
-})( window );
+ + +})( window ); var runtil = /Until$/, rparentsprev = /^(?:parents|prev(?:Until|All))/, isSimple = /^.[^:#\[\.,]*$/, diff --git a/sitestatic/jquery-1.8.3.min.js b/sitestatic/jquery-1.8.3.min.js index cc9c014b..ca4155d4 100644 --- a/sitestatic/jquery-1.8.3.min.js +++ b/sitestatic/jquery-1.8.3.min.js @@ -74,9 +74,9 @@ b,d){""===b&&(b="false");x.set(a,b,d)}});c.support.hrefNormalized||c.each(["href a.parentNode.selectedIndex;return null}}));c.support.enctype||(c.propFix.enctype="encoding");c.support.checkOn||c.each(["radio","checkbox"],function(){c.valHooks[this]={get:function(a){return null===a.getAttribute("value")?"on":a.value}}});c.each(["radio","checkbox"],function(){c.valHooks[this]=c.extend(c.valHooks[this],{set:function(a,b){if(c.isArray(b))return a.checked=0<=c.inArray(c(a).val(),b)}})});var sa=/^(?:textarea|input|select)$/i,eb=/^([^\.]*|)(?:\.(.+)|)$/,bc=/(?:^|\s)hover(\.\S+|)\b/, cc=/^key/,dc=/^(?:mouse|contextmenu)|click/,fb=/^(?:focusinfocus|focusoutblur)$/,gb=function(a){return c.event.special.hover?a:a.replace(bc,"mouseenter$1 mouseleave$1")};c.event={add:function(a,b,d,e,f){var g,h,k,l,m,s,p,q,r;if(3!==a.nodeType&&8!==a.nodeType&&b&&d&&(g=c._data(a))){d.handler&&(p=d,d=p.handler,f=p.selector);d.guid||(d.guid=c.guid++);k=g.events;k||(g.events=k={});h=g.handle;h||(g.handle=h=function(a){return"undefined"===typeof c||a&&c.event.triggered===a.type?n:c.event.dispatch.apply(h.elem, arguments)},h.elem=a);b=c.trim(gb(b)).split(" ");for(g=0;g<b.length;g++)l=eb.exec(b[g])||[],m=l[1],s=(l[2]||"").split(".").sort(),r=c.event.special[m]||{},m=(f?r.delegateType:r.bindType)||m,r=c.event.special[m]||{},l=c.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:f,needsContext:f&&c.expr.match.needsContext.test(f),namespace:s.join(".")},p),q=k[m],q||(q=k[m]=[],q.delegateCount=0,r.setup&&!1!==r.setup.call(a,e,s,h)||(a.addEventListener?a.addEventListener(m,h,!1):a.attachEvent&& -a.attachEvent("on"+m,h))),r.add&&(r.add.call(a,l),l.handler.guid||(l.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,l):q.push(l),c.event.global[m]=!0;a=null}},global:{},remove:function(a,b,d,e,f){var g,h,k,l,m,s,p,n,q,r,v=c.hasData(a)&&c._data(a);if(v&&(p=v.events)){b=c.trim(gb(b||"")).split(" ");for(g=0;g<b.length;g++)if(h=eb.exec(b[g])||[],k=l=h[1],h=h[2],k){n=c.event.special[k]||{};k=(e?n.delegateType:n.bindType)||k;q=p[k]||[];m=q.length;h=h?RegExp("(^|\\.)"+h.split(".").sort().join("\\.(?:.*\\.|)")+ -"(\\.|$)"):null;for(s=0;s<q.length;s++)r=q[s],!f&&l!==r.origType||d&&d.guid!==r.guid||h&&!h.test(r.namespace)||e&&!(e===r.selector||"**"===e&&r.selector)||(q.splice(s--,1),r.selector&&q.delegateCount--,n.remove&&n.remove.call(a,r));0===q.length&&m!==q.length&&(n.teardown&&!1!==n.teardown.call(a,h,v.handle)||c.removeEvent(a,k,v.handle),delete p[k])}else for(k in p)c.event.remove(a,k+b[g],d,e,!0);c.isEmptyObject(p)&&(delete v.handle,c.removeData(a,"events",!0))}},customEvent:{getData:!0,setData:!0, -changeData:!0},trigger:function(a,b,d,e){if(!d||3!==d.nodeType&&8!==d.nodeType){var f,g,h,k,l,m,s=a.type||a;h=[];if(!fb.test(s+c.event.triggered)&&(0<=s.indexOf("!")&&(s=s.slice(0,-1),f=!0),0<=s.indexOf(".")&&(h=s.split("."),s=h.shift(),h.sort()),d&&!c.event.customEvent[s]||c.event.global[s]))if(a="object"===typeof a?a[c.expando]?a:new c.Event(s,a):new c.Event(s),a.type=s,a.isTrigger=!0,a.exclusive=f,a.namespace=h.join("."),a.namespace_re=a.namespace?RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"): +a.attachEvent("on"+m,h))),r.add&&(r.add.call(a,l),l.handler.guid||(l.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,l):q.push(l),c.event.global[m]=!0;a=null}},global:{},remove:function(a,b,d,e,f){var g,h,k,l,m,s,p,n,q,r,v=c.hasData(a)&&c._data(a);if(v&&(p=v.events)){b=c.trim(gb(b||"")).split(" ");for(g=0;g<b.length;g++)if(h=eb.exec(b[g])||[],k=l=h[1],h=h[2],k){n=c.event.special[k]||{};k=(e?n.delegateType:n.bindType)||k;q=p[k]||[];m=q.length;h=h?new RegExp("(^|\\.)"+h.split(".").sort().join("\\.(?:.*\\.|)")+ +"(\\.|$)"):null;for(s=0;s<q.length;s++)r=q[s],!f&&l!==r.origType||d&&d.guid!==r.guid||h&&!h.test(r.namespace)||e&&e!==r.selector&&("**"!==e||!r.selector)||(q.splice(s--,1),r.selector&&q.delegateCount--,n.remove&&n.remove.call(a,r));0===q.length&&m!==q.length&&(n.teardown&&!1!==n.teardown.call(a,h,v.handle)||c.removeEvent(a,k,v.handle),delete p[k])}else for(k in p)c.event.remove(a,k+b[g],d,e,!0);c.isEmptyObject(p)&&(delete v.handle,c.removeData(a,"events",!0))}},customEvent:{getData:!0,setData:!0, +changeData:!0},trigger:function(a,b,d,e){if(!d||3!==d.nodeType&&8!==d.nodeType){var f,g,h,k,l,m,s=a.type||a;h=[];if(!fb.test(s+c.event.triggered)&&(0<=s.indexOf("!")&&(s=s.slice(0,-1),f=!0),0<=s.indexOf(".")&&(h=s.split("."),s=h.shift(),h.sort()),d&&!c.event.customEvent[s]||c.event.global[s]))if(a="object"===typeof a?a[c.expando]?a:new c.Event(s,a):new c.Event(s),a.type=s,a.isTrigger=!0,a.exclusive=f,a.namespace=h.join("."),a.namespace_re=a.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"): null,h=0>s.indexOf(":")?"on"+s:"",d){if(a.result=n,a.target||(a.target=d),b=null!=b?c.makeArray(b):[],b.unshift(a),k=c.event.special[s]||{},!k.trigger||!1!==k.trigger.apply(d,b)){m=[[d,k.bindType||s]];if(!e&&!k.noBubble&&!c.isWindow(d)){l=k.delegateType||s;f=fb.test(l+s)?d:d.parentNode;for(g=d;f;f=f.parentNode)m.push([f,l]),g=f;g===(d.ownerDocument||q)&&m.push([g.defaultView||g.parentWindow||r,l])}for(g=0;g<m.length&&!a.isPropagationStopped();g++)f=m[g][0],a.type=m[g][1],(l=(c._data(f,"events")|| {})[a.type]&&c._data(f,"handle"))&&l.apply(f,b),(l=h&&f[h])&&c.acceptData(f)&&l.apply&&!1===l.apply(f,b)&&a.preventDefault();a.type=s;e||a.isDefaultPrevented()||k._default&&!1!==k._default.apply(d.ownerDocument,b)||"click"===s&&c.nodeName(d,"a")||!c.acceptData(d)||!h||!d[s]||("focus"===s||"blur"===s)&&0===a.target.offsetWidth||c.isWindow(d)||((g=d[h])&&(d[h]=null),c.event.triggered=s,d[s](),c.event.triggered=n,g&&(d[h]=g));return a.result}}else for(g in d=c.cache,d)d[g].events&&d[g].events[s]&&c.event.trigger(a, b,d[g].handle.elem,!0)}},dispatch:function(a){a=c.event.fix(a||r.event);var b,d,e,f,g,h,k=(c._data(this,"events")||{})[a.type]||[],l=k.delegateCount,m=w.call(arguments),s=!a.exclusive&&!a.namespace,p=c.event.special[a.type]||{},q=[];m[0]=a;a.delegateTarget=this;if(!p.preDispatch||!1!==p.preDispatch.call(this,a)){if(l&&(!a.button||"click"!==a.type))for(d=a.target;d!=this;d=d.parentNode||this)if(!0!==d.disabled||"click"!==a.type){f={};g=[];for(b=0;b<l;b++)e=k[b],h=e.selector,f[h]===n&&(f[h]=e.needsContext? @@ -105,8 +105,8 @@ a[g].matches);if(d[A]){for(c=++g;c<e&&!u.relative[a[c].type];c++);return p(1<g&& (ga=A,B=++f.el)}c&&((m=!n&&m)&&r--,g&&M.push(m))}r+=t;if(c&&t!==r){for(p=0;n=b[p];p++)n(M,q,h,k);if(g){if(0<r)for(;t--;)M[t]||q[t]||(q[t]=ec.call(l));q=s(q)}y.apply(l,q);T&&!g&&0<q.length&&1<r+b.length&&d.uniqueSort(l)}T&&(ga=A,ja=L);return M};f.el=0;return c?K(f):f}function r(a,b,d,c,e){var f,g,h,l,m=k(a);if(!c&&1===m.length){g=m[0]=m[0].slice(0);if(2<g.length&&"ID"===(h=g[0]).type&&9===b.nodeType&&!e&&u.relative[g[1].type]){b=u.find.ID(h.matches[0].replace($,""),b,e)[0];if(!b)return d;a=a.slice(g.shift().length)}for(f= R.POS.test(a)?-1:g.length-1;0<=f;f--){h=g[f];if(u.relative[l=h.type])break;if(l=u.find[l])if(c=l(h.matches[0].replace($,""),S.test(g[0].type)&&b.parentNode||b,e)){g.splice(f,1);a=c.length&&g.join("");if(!a)return y.apply(d,D.call(c,0)),d;break}}}x(a,m)(c,b,e,d,S.test(a));return d}function v(){}var B,z,u,J,w,t,x,G,M,ja,T=!0,A=("sizcache"+Math.random()).replace(".",""),jb=String,O=a.document,L=O.documentElement,ga=0,I=0,ec=[].pop,y=[].push,D=[].slice,C=[].indexOf||function(a){for(var b=0,d=this.length;b< d;b++)if(this[b]===a)return b;return-1},K=function(a,b){a[A]=null==b||b;return a},E=function(){var a={},b=[];return K(function(d,c){b.push(d)>u.cacheLength&&delete a[b.shift()];return a[d+" "]=c},a)},P=E(),H=E(),Q=E(),E="\\[[\\x20\\t\\r\\n\\f]*((?:\\\\.|[-\\w]|[^\\x00-\\xa0])+)[\\x20\\t\\r\\n\\f]*(?:([*^$|!~]?=)[\\x20\\t\\r\\n\\f]*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+"(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+".replace("w","w#")+")|)|)[\\x20\\t\\r\\n\\f]*\\]",N=":((?:\\\\.|[-\\w]|[^\\x00-\\xa0])+)(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+ -E+")|[^:]|\\\\.)*|.*))\\)|)",F=RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$","g"),U=/^[\x20\t\r\n\f]*,[\x20\t\r\n\f]*/,V=/^[\x20\t\r\n\f]*([\x20\t\r\n\f>+~])[\x20\t\r\n\f]*/,X=RegExp(N),Y=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,S=/[\x20\t\r\n\f]*[+~]/,aa=/h\d/i,ba=/input|select|textarea|button/i,$=/\\(?!\\)/g,R={ID:/^#((?:\\.|[-\w]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[-\w]|[^\x00-\xa0])+)/,NAME:/^\[name=['"]?((?:\\.|[-\w]|[^\x00-\xa0])+)['"]?\]/,TAG:RegExp("^("+"(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+".replace("w", -"w*")+")"),ATTR:RegExp("^"+E),PSEUDO:RegExp("^"+N),POS:/:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i,CHILD:RegExp("^:(only|nth|first|last)-child(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),needsContext:RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)", +E+")|[^:]|\\\\.)*|.*))\\)|)",F=RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$","g"),U=/^[\x20\t\r\n\f]*,[\x20\t\r\n\f]*/,V=/^[\x20\t\r\n\f]*([\x20\t\r\n\f>+~])[\x20\t\r\n\f]*/,X=new RegExp(N),Y=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,S=/[\x20\t\r\n\f]*[+~]/,aa=/h\d/i,ba=/input|select|textarea|button/i,$=/\\(?!\\)/g,R={ID:/^#((?:\\.|[-\w]|[^\x00-\xa0])+)/,CLASS:/^\.((?:\\.|[-\w]|[^\x00-\xa0])+)/,NAME:/^\[name=['"]?((?:\\.|[-\w]|[^\x00-\xa0])+)['"]?\]/,TAG:new RegExp("^("+ +"(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+".replace("w","w*")+")"),ATTR:new RegExp("^"+E),PSEUDO:new RegExp("^"+N),POS:/:(even|odd|eq|gt|lt|nth|first|last)(?:\([\x20\t\r\n\f]*((?:-\d)?\d*)[\x20\t\r\n\f]*\)|)(?=[^-]|$)/i,CHILD:RegExp("^:(only|nth|first|last)-child(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),needsContext:RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)", "i")},W=function(a){var b=O.createElement("div");try{return a(b)}catch(d){return!1}finally{}},E=W(function(a){a.appendChild(O.createComment(""));return!a.getElementsByTagName("*").length}),ca=W(function(a){a.innerHTML="<a href='#'></a>";return a.firstChild&&"undefined"!==typeof a.firstChild.getAttribute&&"#"===a.firstChild.getAttribute("href")}),da=W(function(a){a.innerHTML="<select></select>";a=typeof a.lastChild.getAttribute("multiple");return"boolean"!==a&&"string"!==a}),Z=W(function(a){a.innerHTML= "<div class='hidden e'></div><div class='hidden'></div>";if(!a.getElementsByClassName||!a.getElementsByClassName("e").length)return!1;a.lastChild.className="e";return 2===a.getElementsByClassName("e").length}),ea=W(function(a){a.id=A+0;a.innerHTML="<a name='"+A+"'></a><div name='"+A+"'></div>";L.insertBefore(a,L.firstChild);var b=O.getElementsByName&&O.getElementsByName(A).length===2+O.getElementsByName(A+0).length;z=!O.getElementById(A);L.removeChild(a);return b});try{D.call(L.childNodes,0)[0].nodeType}catch(fa){D= function(a){for(var b,d=[];b=this[a];a++)d.push(b);return d}}d.matches=function(a,b){return d(a,null,null,b)};d.matchesSelector=function(a,b){return 0<d(b,null,null,[a]).length};J=d.getText=function(a){var b,d="",c=0;if(b=a.nodeType)if(1===b||9===b||11===b){if("string"===typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)d+=J(a)}else{if(3===b||4===b)return a.nodeValue}else for(;b=a[c];c++)d+=J(b);return d};w=d.isXML=function(a){return(a=a&&(a.ownerDocument||a).documentElement)? @@ -115,8 +115,8 @@ b:null:d.specified?d.value:null:null};u=d.selectors={cacheLength:50,createPseudo a?[d]:b:[]},TAG:E?function(a,b){if("undefined"!==typeof b.getElementsByTagName)return b.getElementsByTagName(a)}:function(a,b){var d=b.getElementsByTagName(a);if("*"===a){for(var c,e=[],f=0;c=d[f];f++)1===c.nodeType&&e.push(c);return e}return d},NAME:ea&&function(a,b){if("undefined"!==typeof b.getElementsByName)return b.getElementsByName(name)},CLASS:Z&&function(a,b,d){if("undefined"!==typeof b.getElementsByClassName&&!d)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}, " ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){a[1]=a[1].replace($,"");a[3]=(a[4]||a[5]||"").replace($,"");"~="===a[2]&&(a[3]=" "+a[3]+" ");return a.slice(0,4)},CHILD:function(a){a[1]=a[1].toLowerCase();"nth"===a[1]?(a[2]||d.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*("even"===a[2]||"odd"===a[2])),a[4]=+(a[6]+a[7]||"odd"===a[2])):a[2]&&d.error(a[0]);return a},PSEUDO:function(a){var b,d;if(R.CHILD.test(a[0]))return null;if(a[3])a[2]= a[3];else if(b=a[4])X.test(b)&&(d=k(b,!0))&&(d=b.indexOf(")",b.length-d)-b.length)&&(b=b.slice(0,d),a[0]=a[0].slice(0,d)),a[2]=b;return a.slice(0,3)}},filter:{ID:z?function(a){a=a.replace($,"");return function(b){return b.getAttribute("id")===a}}:function(a){a=a.replace($,"");return function(b){return(b="undefined"!==typeof b.getAttributeNode&&b.getAttributeNode("id"))&&b.value===a}},TAG:function(a){if("*"===a)return function(){return!0};a=a.replace($,"").toLowerCase();return function(b){return b.nodeName&& -b.nodeName.toLowerCase()===a}},CLASS:function(a){var b=P[A][a+" "];return b||(b=RegExp("(^|[\\x20\\t\\r\\n\\f])"+a+"([\\x20\\t\\r\\n\\f]|$)"))&&P(a,function(a){return b.test(a.className||"undefined"!==typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(e,f){var g=d.attr(e,a);if(null==g)return"!="===b;if(!b)return!0;g+="";return"="===b?g===c:"!="===b?g!==c:"^="===b?c&&0===g.indexOf(c):"*="===b?c&&-1<g.indexOf(c):"$="===b?c&&g.substr(g.length-c.length)===c:"~="=== -b?-1<(" "+g+" ").indexOf(c):"|="===b?g===c||g.substr(0,c.length+1)===c+"-":!1}},CHILD:function(a,b,d,c){return"nth"===a?function(a){var b,e;b=a.parentNode;if(1===d&&0===c)return!0;if(b)for(e=0,b=b.firstChild;b&&(1!==b.nodeType||(e++,a!==b));b=b.nextSibling);e-=c;return e===d||0===e%d&&0<=e/d}:function(b){var d=b;switch(a){case "only":case "first":for(;d=d.previousSibling;)if(1===d.nodeType)return!1;if("first"===a)return!0;d=b;case "last":for(;d=d.nextSibling;)if(1===d.nodeType)return!1;return!0}}}, +b.nodeName.toLowerCase()===a}},CLASS:function(a){var b=P[A][a+" "];return b||(b=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+a+"([\\x20\\t\\r\\n\\f]|$)"))&&P(a,function(a){return b.test(a.className||"undefined"!==typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(e,f){var g=d.attr(e,a);if(null==g)return"!="===b;if(!b)return!0;g+="";return"="===b?g===c:"!="===b?g!==c:"^="===b?c&&0===g.indexOf(c):"*="===b?c&&-1<g.indexOf(c):"$="===b?c&&g.substr(g.length-c.length)=== +c:"~="===b?-1<(" "+g+" ").indexOf(c):"|="===b?g===c||g.substr(0,c.length+1)===c+"-":!1}},CHILD:function(a,b,d,c){return"nth"===a?function(a){var b,e;b=a.parentNode;if(1===d&&0===c)return!0;if(b)for(e=0,b=b.firstChild;b&&(1!==b.nodeType||(e++,a!==b));b=b.nextSibling);e-=c;return e===d||0===e%d&&0<=e/d}:function(b){var d=b;switch(a){case "only":case "first":for(;d=d.previousSibling;)if(1===d.nodeType)return!1;if("first"===a)return!0;d=b;case "last":for(;d=d.nextSibling;)if(1===d.nodeType)return!1;return!0}}}, PSEUDO:function(a,b){var c,e=u.pseudos[a]||u.setFilters[a.toLowerCase()]||d.error("unsupported pseudo: "+a);return e[A]?e(b):1<e.length?(c=[a,a,"",b],u.setFilters.hasOwnProperty(a.toLowerCase())?K(function(a,d){for(var c,f=e(a,b),g=f.length;g--;)c=C.call(a,f[g]),a[c]=!(d[c]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:K(function(a){var b=[],d=[],c=x(a.replace(F,"$1"));return c[A]?K(function(a,b,d,e){e=c(a,null,e,[]);for(var f=a.length;f--;)if(d=e[f])a[f]=!(b[f]=d)}):function(a,e,f){b[0]= a;c(b,null,f,d);return!d.pop()}}),has:K(function(a){return function(b){return 0<d(a,b).length}}),contains:K(function(a){return function(b){return-1<(b.textContent||b.innerText||J(b)).indexOf(a)}}),enabled:function(a){return!1===a.disabled},disabled:function(a){return!0===a.disabled},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return!0===a.selected},parent:function(a){return!u.pseudos.empty(a)}, empty:function(a){var b;for(a=a.firstChild;a;){if("@"<a.nodeName||3===(b=a.nodeType)||4===b)return!1;a=a.nextSibling}return!0},header:function(a){return aa.test(a.nodeName)},text:function(a){var b,d;return"input"===a.nodeName.toLowerCase()&&"text"===(b=a.type)&&(null==(d=a.getAttribute("type"))||d.toLowerCase()===b)},radio:e("radio"),checkbox:e("checkbox"),file:e("file"),password:e("password"),image:e("image"),submit:f("submit"),reset:f("reset"),button:function(a){var b=a.nodeName.toLowerCase();return"input"=== @@ -124,39 +124,39 @@ b&&"button"===a.type||"button"===b},input:function(a){return ba.test(a.nodeName) lt:g(function(a,b,d){for(b=0>d?d+b:d;0<=--b;)a.push(b);return a}),gt:g(function(a,b,d){for(d=0>d?d+b:d;++d<b;)a.push(d);return a})}};G=L.compareDocumentPosition?function(a,b){return a===b?(M=!0,0):(a.compareDocumentPosition&&b.compareDocumentPosition?a.compareDocumentPosition(b)&4:a.compareDocumentPosition)?-1:1}:function(a,b){if(a===b)return M=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var d,c,e=[],f=[];d=a.parentNode;c=b.parentNode;var g=d;if(d===c)return h(a,b);if(!d)return-1; if(!c)return 1;for(;g;)e.unshift(g),g=g.parentNode;for(g=c;g;)f.unshift(g),g=g.parentNode;d=e.length;c=f.length;for(g=0;g<d&&g<c;g++)if(e[g]!==f[g])return h(e[g],f[g]);return g===d?h(a,f[g],-1):h(e[g],b,1)};[0,0].sort(G);T=!M;d.uniqueSort=function(a){var b,d=[],c=1,e=0;M=T;a.sort(G);if(M){for(;b=a[c];c++)b===a[c-1]&&(e=d.push(c));for(;e--;)a.splice(d[e],1)}return a};d.error=function(a){throw Error("Syntax error, unrecognized expression: "+a);};x=d.compile=function(a,b){var d,c=[],e=[],f=Q[A][a+" "]; if(!f){b||(b=k(a));for(d=b.length;d--;)f=n(b[d]),f[A]?c.push(f):e.push(f);f=Q(a,q(e,c))}return f};O.querySelectorAll&&function(){var a,b=r,c=/'|\\/g,e=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,f=[":focus"],g=[":active"],h=L.matchesSelector||L.mozMatchesSelector||L.webkitMatchesSelector||L.oMatchesSelector||L.msMatchesSelector;W(function(a){a.innerHTML="<select><option selected=''></option></select>";a.querySelectorAll("[selected]").length||f.push("\\[[\\x20\\t\\r\\n\\f]*(?:checked|disabled|ismap|multiple|readonly|selected|value)"); -a.querySelectorAll(":checked").length||f.push(":checked")});W(function(a){a.innerHTML="<p test=''></p>";a.querySelectorAll("[test^='']").length&&f.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:\"\"|'')");a.innerHTML="<input type='hidden'/>";a.querySelectorAll(":enabled").length||f.push(":enabled",":disabled")});f=RegExp(f.join("|"));r=function(a,d,e,g,h){if(!g&&!h&&!f.test(a)){var l,m,p=!0,n=A;m=d;l=9===d.nodeType&&a;if(1===d.nodeType&&"object"!==d.nodeName.toLowerCase()){l=k(a);(p=d.getAttribute("id"))?n=p.replace(c, -"\\$&"):d.setAttribute("id",n);n="[id='"+n+"'] ";for(m=l.length;m--;)l[m]=n+l[m].join("");m=S.test(a)&&d.parentNode||d;l=l.join(",")}if(l)try{return y.apply(e,D.call(m.querySelectorAll(l),0)),e}catch(s){}finally{p||d.removeAttribute("id")}}return b(a,d,e,g,h)};h&&(W(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),g.push("!=",N)}catch(d){}}),g=RegExp(g.join("|")),d.matchesSelector=function(b,c){c=c.replace(e,"='$1']");if(!w(b)&&!g.test(c)&&!f.test(c))try{var k=h.call(b,c);if(k||a|| -b.document&&11!==b.document.nodeType)return k}catch(l){}return 0<d(c,null,null,[b]).length})}();u.pseudos.nth=u.pseudos.eq;u.filters=v.prototype=u.pseudos;u.setFilters=new v;d.attr=c.attr;c.find=d;c.expr=d.selectors;c.expr[":"]=c.expr.pseudos;c.unique=d.uniqueSort;c.text=d.getText;c.isXMLDoc=d.isXML;c.contains=d.contains})(r);var fc=/Until$/,gc=/^(?:parents|prev(?:Until|All))/,Cb=/^.[^:#\[\.,]*$/,kb=c.expr.match.needsContext,hc={children:!0,contents:!0,next:!0,prev:!0};c.fn.extend({find:function(a){var b, +a.querySelectorAll(":checked").length||f.push(":checked")});W(function(a){a.innerHTML="<p test=''></p>";a.querySelectorAll("[test^='']").length&&f.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:\"\"|'')");a.innerHTML="<input type='hidden'/>";a.querySelectorAll(":enabled").length||f.push(":enabled",":disabled")});f=new RegExp(f.join("|"));r=function(a,d,e,g,h){if(!g&&!h&&!f.test(a)){var l,m,p=!0,n=A;m=d;l=9===d.nodeType&&a;if(1===d.nodeType&&"object"!==d.nodeName.toLowerCase()){l=k(a);(p=d.getAttribute("id"))? +n=p.replace(c,"\\$&"):d.setAttribute("id",n);n="[id='"+n+"'] ";for(m=l.length;m--;)l[m]=n+l[m].join("");m=S.test(a)&&d.parentNode||d;l=l.join(",")}if(l)try{return y.apply(e,D.call(m.querySelectorAll(l),0)),e}catch(s){}finally{p||d.removeAttribute("id")}}return b(a,d,e,g,h)};h&&(W(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),g.push("!=",N)}catch(d){}}),g=new RegExp(g.join("|")),d.matchesSelector=function(b,c){c=c.replace(e,"='$1']");if(!w(b)&&!g.test(c)&&!f.test(c))try{var k=h.call(b, +c);if(k||a||b.document&&11!==b.document.nodeType)return k}catch(l){}return 0<d(c,null,null,[b]).length})}();u.pseudos.nth=u.pseudos.eq;u.filters=v.prototype=u.pseudos;u.setFilters=new v;d.attr=c.attr;c.find=d;c.expr=d.selectors;c.expr[":"]=c.expr.pseudos;c.unique=d.uniqueSort;c.text=d.getText;c.isXMLDoc=d.isXML;c.contains=d.contains})(r);var fc=/Until$/,gc=/^(?:parents|prev(?:Until|All))/,Cb=/^.[^:#\[\.,]*$/,kb=c.expr.match.needsContext,hc={children:!0,contents:!0,next:!0,prev:!0};c.fn.extend({find:function(a){var b, d,e,f,g,h,k=this;if("string"!==typeof a)return c(a).filter(function(){b=0;for(d=k.length;b<d;b++)if(c.contains(k[b],this))return!0});h=this.pushStack("","find",a);b=0;for(d=this.length;b<d;b++)if(e=h.length,c.find(a,this[b],h),0<b)for(f=e;f<h.length;f++)for(g=0;g<e;g++)if(h[g]===h[f]){h.splice(f--,1);break}return h},has:function(a){var b,d=c(a,this),e=d.length;return this.filter(function(){for(b=0;b<e;b++)if(c.contains(this,d[b]))return!0})},not:function(a){return this.pushStack(Ba(this,a,!1),"not", a)},filter:function(a){return this.pushStack(Ba(this,a,!0),"filter",a)},is:function(a){return!!a&&("string"===typeof a?kb.test(a)?0<=c(a,this.context).index(this[0]):0<c.filter(a,this).length:0<this.filter(a).length)},closest:function(a,b){for(var d,e=0,f=this.length,g=[],h=kb.test(a)||"string"!==typeof a?c(a,b||this.context):0;e<f;e++)for(d=this[e];d&&d.ownerDocument&&d!==b&&11!==d.nodeType;){if(h?-1<h.index(d):c.find.matchesSelector(d,a)){g.push(d);break}d=d.parentNode}g=1<g.length?c.unique(g): g;return this.pushStack(g,"closest",a)},index:function(a){return a?"string"===typeof a?c.inArray(this[0],c(a)):c.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var d="string"===typeof a?c(a,b):c.makeArray(a&&a.nodeType?[a]:a),e=c.merge(this.get(),d);return this.pushStack(Y(d[0])||Y(e[0])?e:c.unique(e))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});c.fn.andSelf=c.fn.addBack;c.each({parent:function(a){return(a= a.parentNode)&&11!==a.nodeType?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return Aa(a,"nextSibling")},prev:function(a){return Aa(a,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling((a.parentNode|| {}).firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.merge([],a.childNodes)}},function(a,b){c.fn[a]=function(d,e){var f=c.map(this,b,d);fc.test(a)||(e=d);e&&"string"===typeof e&&(f=c.filter(e,f));f=1<this.length&&!hc[a]?c.unique(f):f;1<this.length&&gc.test(a)&&(f=f.reverse());return this.pushStack(f,a,w.call(arguments).join(","))}});c.extend({filter:function(a,b,d){d&&(a=":not("+a+")"); return 1===b.length?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&9!==a.nodeType&&(d===n||1!==a.nodeType||!c(a).is(d));)1===a.nodeType&&e.push(a),a=a[b];return e},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&d.push(a);return d}});var Da="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ic=/ jQuery\d+="(?:null|\d+)"/g, -ta=/^\s+/,lb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,mb=/<([\w:]+)/,jc=/<tbody/i,kc=/<|&#?\w+;/,lc=/<(?:script|style|link)/i,mc=/<(?:script|object|embed|option|style)/i,ua=RegExp("<(?:"+Da+")[\\s/>]","i"),Ga=/^(?:checkbox|radio)$/,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,nc=/\/(java|ecma)script/i,oc=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,z={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"], +ta=/^\s+/,lb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,mb=/<([\w:]+)/,jc=/<tbody/i,kc=/<|&#?\w+;/,lc=/<(?:script|style|link)/i,mc=/<(?:script|object|embed|option|style)/i,ua=new RegExp("<(?:"+Da+")[\\s/>]","i"),Ga=/^(?:checkbox|radio)$/,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,nc=/\/(java|ecma)script/i,oc=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,z={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"], tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ob=Ca(q),va=ob.appendChild(q.createElement("div"));z.optgroup=z.option;z.tbody=z.tfoot=z.colgroup=z.caption=z.thead;z.th=z.td;c.support.htmlSerialize||(z._default=[1,"X<div>","</div>"]);c.fn.extend({text:function(a){return c.access(this,function(a){return a===n?c.text(this):this.empty().append((this[0]&& this[0].ownerDocument||q).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapAll(a.call(this,b))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var a=this;a.firstChild&&1===a.firstChild.nodeType;)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return c.isFunction(a)?this.each(function(b){c(this).wrapInner(a.call(this, b))}):this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){var b=c.isFunction(a);return this.each(function(d){c(this).wrapAll(b?a.call(this,d):a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){1!==this.nodeType&&11!==this.nodeType||this.appendChild(a)})},prepend:function(){return this.domManip(arguments, !0,function(a){1!==this.nodeType&&11!==this.nodeType||this.insertBefore(a,this.firstChild)})},before:function(){if(!Y(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=c.clean(arguments);return this.pushStack(c.merge(a,this),"before",this.selector)}},after:function(){if(!Y(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=c.clean(arguments);return this.pushStack(c.merge(this, a),"after",this.selector)}},remove:function(a,b){for(var d,e=0;null!=(d=this[e]);e++)if(!a||c.filter(a,[d]).length)b||1!==d.nodeType||(c.cleanData(d.getElementsByTagName("*")),c.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)for(1===a.nodeType&&c.cleanData(a.getElementsByTagName("*"));a.firstChild;)a.removeChild(a.firstChild);return this},clone:function(a,b){a=null==a?!1:a;b=null==b?a:b;return this.map(function(){return c.clone(this, -a,b)})},html:function(a){return c.access(this,function(a){var d=this[0]||{},e=0,f=this.length;if(a===n)return 1===d.nodeType?d.innerHTML.replace(ic,""):n;if("string"===typeof a&&!(lc.test(a)||!c.support.htmlSerialize&&ua.test(a)||!c.support.leadingWhitespace&&ta.test(a)||z[(mb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(lb,"<$1></$2>");try{for(;e<f;e++)d=this[e]||{},1===d.nodeType&&(c.cleanData(d.getElementsByTagName("*")),d.innerHTML=a);d=0}catch(g){}}d&&this.empty().append(a)},null,a,arguments.length)}, +a,b)})},html:function(a){return c.access(this,function(a){var d=this[0]||{},e=0,f=this.length;if(a===n)return 1===d.nodeType?d.innerHTML.replace(ic,""):n;if(!("string"!==typeof a||lc.test(a)||!c.support.htmlSerialize&&ua.test(a)||!c.support.leadingWhitespace&&ta.test(a)||z[(mb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(lb,"<$1></$2>");try{for(;e<f;e++)d=this[e]||{},1===d.nodeType&&(c.cleanData(d.getElementsByTagName("*")),d.innerHTML=a);d=0}catch(g){}}d&&this.empty().append(a)},null,a,arguments.length)}, replaceWith:function(a){if(!Y(this[0])){if(c.isFunction(a))return this.each(function(b){var d=c(this),e=d.html();d.replaceWith(a.call(this,b,e))});"string"!==typeof a&&(a=c(a).detach());return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}return this.length?this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,b,d){a=[].concat.apply([],a);var e,f,g,h=0,k=a[0], l=[],m=this.length;if(!c.support.checkClone&&1<m&&"string"===typeof k&&nb.test(k))return this.each(function(){c(this).domManip(a,b,d)});if(c.isFunction(k))return this.each(function(e){var f=c(this);a[0]=k.call(this,e,b?f.html():n);f.domManip(a,b,d)});if(this[0]){e=c.buildFragment(a,this,l);g=e.fragment;f=g.firstChild;1===g.childNodes.length&&(g=f);if(f)for(b=b&&c.nodeName(f,"tr"),e=e.cacheable||m-1;h<m;h++)d.call(b&&c.nodeName(this[h],"table")?Db(this[h],"tbody"):this[h],h===e?g:c.clone(g,!0,!0)); -g=f=null;l.length&&c.each(l,function(a,b){b.src?c.ajax?c.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):c.error("no ajax"):c.globalEval((b.text||b.textContent||b.innerHTML||"").replace(oc,""));b.parentNode&&b.parentNode.removeChild(b)})}return this}});c.buildFragment=function(a,b,d){var e,f,g,h=a[0];b=b||q;b=!b.nodeType&&b[0]||b;b=b.ownerDocument||b;1===a.length&&"string"===typeof h&&512>h.length&&b===q&&"<"===h.charAt(0)&&!(mc.test(h)||!c.support.checkClone&&nb.test(h)|| -!c.support.html5Clone&&ua.test(h))&&(f=!0,e=c.fragments[h],g=e!==n);e||(e=b.createDocumentFragment(),c.clean(a,b,e,d),f&&(c.fragments[h]=g&&e));return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e,f=0,g=[];d=c(d);var h=d.length;e=1===this.length&&this[0].parentNode;if((null==e||e&&11===e.nodeType&&1===e.childNodes.length)&&1===h)return d[b](this[0]),this; +g=f=null;l.length&&c.each(l,function(a,b){b.src?c.ajax?c.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):c.error("no ajax"):c.globalEval((b.text||b.textContent||b.innerHTML||"").replace(oc,""));b.parentNode&&b.parentNode.removeChild(b)})}return this}});c.buildFragment=function(a,b,d){var e,f,g,h=a[0];b=b||q;b=!b.nodeType&&b[0]||b;b=b.ownerDocument||b;!(1===a.length&&"string"===typeof h&&512>h.length&&b===q&&"<"===h.charAt(0))||mc.test(h)||!c.support.checkClone&&nb.test(h)|| +!c.support.html5Clone&&ua.test(h)||(f=!0,e=c.fragments[h],g=e!==n);e||(e=b.createDocumentFragment(),c.clean(a,b,e,d),f&&(c.fragments[h]=g&&e));return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e,f=0,g=[];d=c(d);var h=d.length;e=1===this.length&&this[0].parentNode;if((null==e||e&&11===e.nodeType&&1===e.childNodes.length)&&1===h)return d[b](this[0]),this; for(;f<h;f++)e=(0<f?this.clone(!0):this).get(),c(d[f])[b](e),g=g.concat(e);return this.pushStack(g,a,d.selector)}});c.extend({clone:function(a,b,d){var e,f,g,h;c.support.html5Clone||c.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?h=a.cloneNode(!0):(va.innerHTML=a.outerHTML,va.removeChild(h=va.firstChild));if(!(c.support.noCloneEvent&&c.support.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||c.isXMLDoc(a)))for(Fa(a,h),e=ba(a),f=ba(h),g=0;e[g];++g)f[g]&&Fa(e[g],f[g]);if(b&&(Ea(a,h),d))for(e=ba(a),f=ba(h), g=0;e[g];++g)Ea(e[g],f[g]);return h},clean:function(a,b,d,e){var f,g,h,k,l,m,n=b===q&&ob,p=[];b&&"undefined"!==typeof b.createDocumentFragment||(b=q);for(f=0;null!=(h=a[f]);f++)if("number"===typeof h&&(h+=""),h){if("string"===typeof h)if(kc.test(h)){n=n||Ca(b);m=b.createElement("div");n.appendChild(m);h=h.replace(lb,"<$1></$2>");g=(mb.exec(h)||["",""])[1].toLowerCase();k=z[g]||z._default;l=k[0];for(m.innerHTML=k[1]+h+k[2];l--;)m=m.lastChild;if(!c.support.tbody)for(l=jc.test(h),k="table"!==g||l?"<table>"!== k[1]||l?[]:m.childNodes:m.firstChild&&m.firstChild.childNodes,g=k.length-1;0<=g;--g)c.nodeName(k[g],"tbody")&&!k[g].childNodes.length&&k[g].parentNode.removeChild(k[g]);!c.support.leadingWhitespace&&ta.test(h)&&m.insertBefore(b.createTextNode(ta.exec(h)[0]),m.firstChild);h=m.childNodes;m.parentNode.removeChild(m)}else h=b.createTextNode(h);h.nodeType?p.push(h):c.merge(p,h)}m&&(h=m=n=null);if(!c.support.appendChecked)for(f=0;null!=(h=p[f]);f++)c.nodeName(h,"input")?Ha(h):"undefined"!==typeof h.getElementsByTagName&& c.grep(h.getElementsByTagName("input"),Ha);if(d)for(a=function(a){if(!a.type||nc.test(a.type))return e?e.push(a.parentNode?a.parentNode.removeChild(a):a):d.appendChild(a)},f=0;null!=(h=p[f]);f++)c.nodeName(h,"script")&&a(h)||(d.appendChild(h),"undefined"!==typeof h.getElementsByTagName&&(h=c.grep(c.merge([],h.getElementsByTagName("script")),a),p.splice.apply(p,[f+1,0].concat(h)),f+=h.length));return p},cleanData:function(a,b){for(var d,e,f,g,h=0,k=c.expando,l=c.cache,m=c.support.deleteExpando,n=c.event.special;null!= (f=a[h]);h++)if(b||c.acceptData(f))if(d=(e=f[k])&&l[e]){if(d.events)for(g in d.events)n[g]?c.event.remove(f,g):c.removeEvent(f,g,d.handle);l[e]&&(delete l[e],m?delete f[k]:f.removeAttribute?f.removeAttribute(k):f[k]=null,c.deletedIds.push(e))}}});(function(){var a,b;c.uaMatch=function(a){a=a.toLowerCase();a=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||0>a.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)|| [];return{browser:a[1]||"",version:a[2]||"0"}};a=c.uaMatch(Jb.userAgent);b={};a.browser&&(b[a.browser]=!0,b.version=a.version);b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0);c.browser=b;c.sub=function(){function a(b,c){return new a.fn.init(b,c)}c.extend(!0,a,this);a.superclass=this;a.fn=a.prototype=this();a.fn.constructor=a;a.sub=this.sub;a.fn.init=function(f,g){g&&g instanceof c&&!(g instanceof a)&&(g=a(g));return c.fn.init.call(this,f,g,b)};a.fn.init.prototype=a.fn;var b=a(q);return a}})();var v, -F,U,wa=/alpha\([^)]*\)/i,pc=/opacity=([^)]*)/,qc=/^(top|right|bottom|left)$/,rc=/^(none|table(?!-c[ea]).+)/,pb=/^margin/,Eb=RegExp("^("+ha+")(.*)$","i"),ca=RegExp("^("+ha+")(?!px)[a-z%]+$","i"),sc=RegExp("^([-+])=("+ha+")","i"),na={BODY:"block"},tc={position:"absolute",visibility:"hidden",display:"block"},qb={letterSpacing:0,fontWeight:400},C=["Top","Right","Bottom","Left"],Ja=["Webkit","O","Moz","ms"],uc=c.fn.toggle;c.fn.extend({css:function(a,b){return c.access(this,function(a,b,f){return f!==n? -c.style(a,b,f):c.css(a,b)},a,b,1<arguments.length)},show:function(){return Ka(this,!0)},hide:function(){return Ka(this)},toggle:function(a,b){var d="boolean"===typeof a;return c.isFunction(a)&&c.isFunction(b)?uc.apply(this,arguments):this.each(function(){(d?a:R(this))?c(this).show():c(this).hide()})}});c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=v(a,"opacity");return""===d?"1":d}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0}, +F,U,wa=/alpha\([^)]*\)/i,pc=/opacity=([^)]*)/,qc=/^(top|right|bottom|left)$/,rc=/^(none|table(?!-c[ea]).+)/,pb=/^margin/,Eb=new RegExp("^("+ha+")(.*)$","i"),ca=new RegExp("^("+ha+")(?!px)[a-z%]+$","i"),sc=new RegExp("^([-+])=("+ha+")","i"),na={BODY:"block"},tc={position:"absolute",visibility:"hidden",display:"block"},qb={letterSpacing:0,fontWeight:400},C=["Top","Right","Bottom","Left"],Ja=["Webkit","O","Moz","ms"],uc=c.fn.toggle;c.fn.extend({css:function(a,b){return c.access(this,function(a,b,f){return f!== +n?c.style(a,b,f):c.css(a,b)},a,b,1<arguments.length)},show:function(){return Ka(this,!0)},hide:function(){return Ka(this)},toggle:function(a,b){var d="boolean"===typeof a;return c.isFunction(a)&&c.isFunction(b)?uc.apply(this,arguments):this.each(function(){(d?a:R(this))?c(this).show():c(this).hide()})}});c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=v(a,"opacity");return""===d?"1":d}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0}, cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var f,g,h,k=c.camelCase(b),l=a.style;b=c.cssProps[k]||(c.cssProps[k]=Ia(l,k));h=c.cssHooks[b]||c.cssHooks[k];if(d!==n){if(g=typeof d,"string"===g&&(f=sc.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(c.css(a,b)),g="number"),!(null==d||"number"===g&&isNaN(d)||("number"!==g||c.cssNumber[k]||(d+="px"),h&&"set"in h&&(d=h.set(a,d,e))===n)))try{l[b]=d}catch(m){}}else return h&&"get"in h&&(f=h.get(a,!1,e))!==n?f:l[b]}},css:function(a,b,d,e){var f,g;g=c.camelCase(b);b=c.cssProps[g]||(c.cssProps[g]=Ia(a.style,g));(g=c.cssHooks[b]||c.cssHooks[g])&&"get"in g&&(f=g.get(a,!0,e));f===n&&(f=v(a,b));"normal"===f&&b in qb&&(f=qb[b]);return d||e!==n?(a=parseFloat(f),d||c.isNumeric(a)?a||0:f):f},swap:function(a,b,d){var c,f={};for(c in b)f[c]=a.style[c],a.style[c]=b[c];d=d.call(a);for(c in b)a.style[c]=f[c];return d}});r.getComputedStyle?v=function(a,b){var d,e,f,g,h=r.getComputedStyle(a,null), k=a.style;h&&(d=h.getPropertyValue(b)||h[b],""!==d||c.contains(a.ownerDocument,a)||(d=c.style(a,b)),ca.test(d)&&pb.test(b)&&(e=k.width,f=k.minWidth,g=k.maxWidth,k.minWidth=k.maxWidth=k.width=d,d=h.width,k.width=e,k.minWidth=f,k.maxWidth=g));return d}:q.documentElement.currentStyle&&(v=function(a,b){var d,c,f=a.currentStyle&&a.currentStyle[b],g=a.style;null==f&&g&&g[b]&&(f=g[b]);if(ca.test(f)&&!qc.test(b)){d=g.left;if(c=a.runtimeStyle&&a.runtimeStyle.left)a.runtimeStyle.left=a.currentStyle.left;g.left= "fontSize"===b?"1em":f;f=g.pixelLeft+"px";g.left=d;c&&(a.runtimeStyle.left=c)}return""===f?"auto":f});c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(a,e,f){if(e)return 0===a.offsetWidth&&rc.test(v(a,"display"))?c.swap(a,tc,function(){return Oa(a,b,f)}):Oa(a,b,f)},set:function(a,e,f){return Ma(a,e,f?Na(a,b,f,c.support.boxSizing&&"border-box"===c.css(a,"boxSizing")):0)}}});c.support.opacity||(c.cssHooks.opacity={get:function(a,b){return pc.test((b&&a.currentStyle?a.currentStyle.filter: -a.style.filter)||"")?0.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var d=a.style,e=a.currentStyle,f=c.isNumeric(b)?"alpha(opacity="+100*b+")":"",g=e&&e.filter||d.filter||"";d.zoom=1;if(1<=b&&""===c.trim(g.replace(wa,""))&&d.removeAttribute&&(d.removeAttribute("filter"),e&&!e.filter))return;d.filter=wa.test(g)?g.replace(wa,f):g+" "+f}});c(function(){c.support.reliableMarginRight||(c.cssHooks.marginRight={get:function(a,b){return c.swap(a,{display:"inline-block"},function(){if(b)return v(a, +a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var d=a.style,e=a.currentStyle,f=c.isNumeric(b)?"alpha(opacity="+100*b+")":"",g=e&&e.filter||d.filter||"";d.zoom=1;if(1<=b&&""===c.trim(g.replace(wa,""))&&d.removeAttribute&&(d.removeAttribute("filter"),e&&!e.filter))return;d.filter=wa.test(g)?g.replace(wa,f):g+" "+f}});c(function(){c.support.reliableMarginRight||(c.cssHooks.marginRight={get:function(a,b){return c.swap(a,{display:"inline-block"},function(){if(b)return v(a, "marginRight")})}});!c.support.pixelPosition&&c.fn.position&&c.each(["top","left"],function(a,b){c.cssHooks[b]={get:function(a,e){if(e){var f=v(a,b);return ca.test(f)?c(a).position()[b]+"px":f}}}})});c.expr&&c.expr.filters&&(c.expr.filters.hidden=function(a){return 0===a.offsetWidth&&0===a.offsetHeight||!c.support.reliableHiddenOffsets&&"none"===(a.style&&a.style.display||v(a,"display"))},c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)});c.each({margin:"",padding:"",border:"Width"}, function(a,b){c.cssHooks[a+b]={expand:function(c){var e="string"===typeof c?c.split(" "):[c],f={};for(c=0;4>c;c++)f[a+C[c]+b]=e[c]||e[c-2]||e[0];return f}};pb.test(a)||(c.cssHooks[a+b].set=Ma)});var vc=/%20/g,Fb=/\[\]$/,rb=/\r?\n/g,wc=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,xc=/^(?:select|textarea)/i;c.fn.extend({serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements? c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||xc.test(this.nodeName)||wc.test(this.type))}).map(function(a,b){var d=c(this).val();return null==d?null:c.isArray(d)?c.map(d,function(a,c){return{name:b.name,value:a.replace(rb,"\r\n")}}):{name:b.name,value:d.replace(rb,"\r\n")}}).get()}});c.param=function(a,b){var d,e=[],f=function(a,b){b=c.isFunction(b)?b():null==b?"":b;e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};b===n&&(b=c.ajaxSettings&& @@ -178,7 +178,7 @@ contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){ e){if(e||!b.readyState||/loaded|complete/.test(b.readyState))b.onload=b.onreadystatechange=null,c&&b.parentNode&&c.removeChild(b),b=n,e||f(200,"success")};c.insertBefore(b,c.firstChild)},abort:function(){if(b)b.onload(0,1)}}}});var X,xa=r.ActiveXObject?function(){for(var a in X)X[a](0,1)}:!1,Gc=0;c.ajaxSettings.xhr=r.ActiveXObject?function(){var a;if(!(a=!this.isLocal&&Ra()))a:{try{a=new r.ActiveXObject("Microsoft.XMLHTTP");break a}catch(b){}a=void 0}return a}:Ra;(function(a){c.extend(c.support,{ajax:!!a, cors:!!a&&"withCredentials"in a})})(c.ajaxSettings.xhr());c.support.ajax&&c.ajaxTransport(function(a){if(!a.crossDomain||c.support.cors){var b;return{send:function(d,e){var f,g,h=a.xhr();a.username?h.open(a.type,a.url,a.async,a.username,a.password):h.open(a.type,a.url,a.async);if(a.xhrFields)for(g in a.xhrFields)h[g]=a.xhrFields[g];a.mimeType&&h.overrideMimeType&&h.overrideMimeType(a.mimeType);a.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest");try{for(g in d)h.setRequestHeader(g, d[g])}catch(k){}h.send(a.hasContent&&a.data||null);b=function(d,g){var k,p,q,r,v;try{if(b&&(g||4===h.readyState))if(b=n,f&&(h.onreadystatechange=c.noop,xa&&delete X[f]),g)4!==h.readyState&&h.abort();else{k=h.status;q=h.getAllResponseHeaders();r={};(v=h.responseXML)&&v.documentElement&&(r.xml=v);try{r.text=h.responseText}catch(w){}try{p=h.statusText}catch(x){p=""}k||!a.isLocal||a.crossDomain?1223===k&&(k=204):k=r.text?200:404}}catch(z){g||e(-1,z)}r&&e(k,p,r,q)};a.async?4===h.readyState?setTimeout(b, -0):(f=++Gc,xa&&(X||(X={},c(r).unload(xa)),X[f]=b),h.onreadystatechange=b):b()},abort:function(){b&&b(0,1)}}}});var V,la,Hc=/^(?:toggle|show|hide)$/,Ic=RegExp("^(?:([-+])=|)("+ha+")([a-z%]*)$","i"),Jc=/queueHooks$/,Z=[function(a,b,d){var e,f,g,h,k,l,m=this,n=a.style,p={},q=[],r=a.nodeType&&R(a);d.queue||(k=c._queueHooks(a,"fx"),null==k.unqueued&&(k.unqueued=0,l=k.empty.fire,k.empty.fire=function(){k.unqueued||l()}),k.unqueued++,m.always(function(){m.always(function(){k.unqueued--;c.queue(a,"fx").length|| +0):(f=++Gc,xa&&(X||(X={},c(r).unload(xa)),X[f]=b),h.onreadystatechange=b):b()},abort:function(){b&&b(0,1)}}}});var V,la,Hc=/^(?:toggle|show|hide)$/,Ic=new RegExp("^(?:([-+])=|)("+ha+")([a-z%]*)$","i"),Jc=/queueHooks$/,Z=[function(a,b,d){var e,f,g,h,k,l,m=this,n=a.style,p={},q=[],r=a.nodeType&&R(a);d.queue||(k=c._queueHooks(a,"fx"),null==k.unqueued&&(k.unqueued=0,l=k.empty.fire,k.empty.fire=function(){k.unqueued||l()}),k.unqueued++,m.always(function(){m.always(function(){k.unqueued--;c.queue(a,"fx").length|| k.empty.fire()})}));1===a.nodeType&&("height"in b||"width"in b)&&(d.overflow=[n.overflow,n.overflowX,n.overflowY],"inline"===c.css(a,"display")&&"none"===c.css(a,"float")&&(c.support.inlineBlockNeedsLayout&&"inline"!==La(a.nodeName)?n.zoom=1:n.display="inline-block"));d.overflow&&(n.overflow="hidden",c.support.shrinkWrapBlocks||m.done(function(){n.overflow=d.overflow[0];n.overflowX=d.overflow[1];n.overflowY=d.overflow[2]}));for(e in b)g=b[e],Hc.exec(g)&&(delete b[e],f=f||"toggle"===g,g!==(r?"hide": "show")&&q.push(e));if(b=q.length)for(g=c._data(a,"fxshow")||c._data(a,"fxshow",{}),("hidden"in g)&&(r=g.hidden),f&&(g.hidden=!r),r?c(a).show():m.done(function(){c(a).hide()}),m.done(function(){var b;c.removeData(a,"fxshow",!0);for(b in p)c.style(a,b,p[b])}),e=0;e<b;e++)f=q[e],h=m.createTween(f,r?g[f]:0),p[f]=g[f]||c.style(a,f),f in g||(g[f]=h.start,r&&(h.end=h.start,h.start="width"===f||"height"===f?1:0))}],S={"*":[function(a,b){var d,e,f=this.createTween(a,b),g=Ic.exec(b),h=f.cur(),k=+h||0,l=1, m=20;if(g){d=+g[2];e=g[3]||(c.cssNumber[a]?"":"px");if("px"!==e&&k){k=c.css(f.elem,a,!0)||d||1;do l=l||".5",k/=l,c.style(f.elem,a,k+e);while(l!==(l=f.cur()/h)&&1!==l&&--m)}f.unit=e;f.start=k;f.end=g[1]?k+(g[1]+1)*d:d}return f}]};c.Animation=c.extend(Ta,{tweener:function(a,b){c.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var d,e=0,f=a.length;e<f;e++)d=a[e],S[d]=S[d]||[],S[d].unshift(b)},prefilter:function(a,b){b?Z.unshift(a):Z.push(a)}});c.Tween=B;B.prototype={constructor:B,init:function(a,b,d, @@ -187,7 +187,7 @@ this.now,this);d&&d.set?d.set(this):B.propHooks._default.set(this);return this}} B.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}};c.each(["toggle","show","hide"],function(a,b){var d=c.fn[b];c.fn[b]=function(e,f,g){return null==e||"boolean"===typeof e||!a&&c.isFunction(e)&&c.isFunction(f)?d.apply(this,arguments):this.animate(ea(b,!0),e,f,g)}});c.fn.extend({fadeTo:function(a,b,c,e){return this.filter(R).css("opacity",0).show().end().animate({opacity:b},a,c,e)},animate:function(a,b,d,e){var f=c.isEmptyObject(a),g=c.speed(b,d,e); b=function(){var b=Ta(this,c.extend({},a),g);f&&b.stop(!0)};return f||!1===g.queue?this.each(b):this.queue(g.queue,b)},stop:function(a,b,d){var e=function(a){var b=a.stop;delete a.stop;b(d)};"string"!==typeof a&&(d=b,b=a,a=n);b&&!1!==a&&this.queue(a||"fx",[]);return this.each(function(){var b=!0,g=null!=a&&a+"queueHooks",h=c.timers,k=c._data(this);if(g)k[g]&&k[g].stop&&e(k[g]);else for(g in k)k[g]&&k[g].stop&&Jc.test(g)&&e(k[g]);for(g=h.length;g--;)h[g].elem!==this||null!=a&&h[g].queue!==a||(h[g].anim.stop(d), b=!1,h.splice(g,1));!b&&d||c.dequeue(this,a)})}});c.each({slideDown:ea("show"),slideUp:ea("hide"),slideToggle:ea("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(a,c,f){return this.animate(b,a,c,f)}});c.speed=function(a,b,d){var e=a&&"object"===typeof a?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:"number"===typeof e.duration?e.duration:e.duration in -c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;if(null==e.queue||!0===e.queue)e.queue="fx";e.old=e.complete;e.complete=function(){c.isFunction(e.old)&&e.old.call(this);e.queue&&c.dequeue(this,e.queue)};return e};c.easing={linear:function(a){return a},swing:function(a){return 0.5-Math.cos(a*Math.PI)/2}};c.timers=[];c.fx=B.prototype.init;c.fx.tick=function(){var a,b=c.timers,d=0;for(V=c.now();d<b.length;d++)a=b[d],a()||b[d]!==a||b.splice(d--,1);b.length||c.fx.stop();V=n};c.fx.timer=function(a){a()&& +c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;if(null==e.queue||!0===e.queue)e.queue="fx";e.old=e.complete;e.complete=function(){c.isFunction(e.old)&&e.old.call(this);e.queue&&c.dequeue(this,e.queue)};return e};c.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}};c.timers=[];c.fx=B.prototype.init;c.fx.tick=function(){var a,b=c.timers,d=0;for(V=c.now();d<b.length;d++)a=b[d],a()||b[d]!==a||b.splice(d--,1);b.length||c.fx.stop();V=n};c.fx.timer=function(a){a()&& c.timers.push(a)&&!la&&(la=setInterval(c.fx.tick,c.fx.interval))};c.fx.interval=13;c.fx.stop=function(){clearInterval(la);la=null};c.fx.speeds={slow:600,fast:200,_default:400};c.fx.step={};c.expr&&c.expr.filters&&(c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length});var yb=/^(?:body|html)$/i;c.fn.offset=function(a){if(arguments.length)return a===n?this:this.each(function(b){c.offset.setOffset(this,a,b)});var b,d,e,f,g,h={top:0,left:0};if(e=(f=this[0])&& f.ownerDocument){if((d=e.body)===f)return c.offset.bodyOffset(f);b=e.documentElement;if(!c.contains(b,f))return h;"undefined"!==typeof f.getBoundingClientRect&&(h=f.getBoundingClientRect());e=Ua(e);f=b.clientTop||d.clientTop||0;d=b.clientLeft||d.clientLeft||0;g=e.pageYOffset||b.scrollTop;b=e.pageXOffset||b.scrollLeft;return{top:h.top+g-f,left:h.left+b-d}}};c.offset={bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(c.css(a,"marginTop"))|| 0,d+=parseFloat(c.css(a,"marginLeft"))||0);return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");"static"===e&&(a.style.position="relative");var f=c(a),g=f.offset(),h=c.css(a,"top"),k=c.css(a,"left"),l={},m={};("absolute"===e||"fixed"===e)&&-1<c.inArray("auto",[h,k])?(m=f.position(),e=m.top,k=m.left):(e=parseFloat(h)||0,k=parseFloat(k)||0);c.isFunction(b)&&(b=b.call(a,d,g));null!=b.top&&(l.top=b.top-g.top+e);null!=b.left&&(l.left=b.left-g.left+k);"using"in b?b.using.call(a,l): diff --git a/sitestatic/jquery.tablesorter-2.7.min.js b/sitestatic/jquery.tablesorter-2.7.min.js index eafca402..01956458 100644 --- a/sitestatic/jquery.tablesorter-2.7.min.js +++ b/sitestatic/jquery.tablesorter-2.7.min.js @@ -45,15 +45,15 @@ a,b,d);b=c.replace(h[0],"\\0$1\\0").replace(/\\0$/,"").replace(/^\\0/,"").split( 1:-1;typeof a!==typeof h&&(a+="",h+="");if(a<h)return-1;if(a>h)return 1}return 0};f.sortTextDesc=function(b,c,a,d){if(c===a)return 0;var e=b.config,m=e.string[e.empties[d]||e.emptyTo];return""===c&&0!==m?"boolean"===typeof m?m?-1:1:m||1:""===a&&0!==m?"boolean"===typeof m?m?1:-1:-m||-1:"function"===typeof e.textSorter?e.textSorter(a,c,b,d):f.sortText(b,a,c)};f.getTextValue=function(b,c,a){if(c){var d=b.length,e=c+a;for(c=0;c<d;c++)e+=b.charCodeAt(c);return a*e}return 0};f.sortNumeric=function(b,c, a,d,e,m){if(c===a)return 0;b=b.config;d=b.string[b.empties[d]||b.emptyTo];if(""===c&&0!==d)return"boolean"===typeof d?d?-1:1:-d||-1;if(""===a&&0!==d)return"boolean"===typeof d?d?1:-1:d||1;isNaN(c)&&(c=f.getTextValue(c,e,m));isNaN(a)&&(a=f.getTextValue(a,e,m));return c-a};f.sortNumericDesc=function(b,c,a,d,e,m){if(c===a)return 0;b=b.config;d=b.string[b.empties[d]||b.emptyTo];if(""===c&&0!==d)return"boolean"===typeof d?d?-1:1:d||1;if(""===a&&0!==d)return"boolean"===typeof d?d?1:-1:-d||-1;isNaN(c)&& (c=f.getTextValue(c,e,m));isNaN(a)&&(a=f.getTextValue(a,e,m));return a-c};f.characterEquivalents={a:"\u00e1\u00e0\u00e2\u00e3\u00e4\u0105\u00e5",A:"\u00c1\u00c0\u00c2\u00c3\u00c4\u0104\u00c5",c:"\u00e7\u0107\u010d",C:"\u00c7\u0106\u010c",e:"\u00e9\u00e8\u00ea\u00eb\u011b\u0119",E:"\u00c9\u00c8\u00ca\u00cb\u011a\u0118",i:"\u00ed\u00ec\u0130\u00ee\u00ef\u0131",I:"\u00cd\u00cc\u0130\u00ce\u00cf",o:"\u00f3\u00f2\u00f4\u00f5\u00f6",O:"\u00d3\u00d2\u00d4\u00d5\u00d6",ss:"\u00df",SS:"\u1e9e",u:"\u00fa\u00f9\u00fb\u00fc\u016f", -U:"\u00da\u00d9\u00db\u00dc\u016e"};f.replaceAccents=function(b){var c,a="[",d=f.characterEquivalents;if(!f.characterRegex){f.characterRegexArray={};for(c in d)"string"===typeof c&&(a+=d[c],f.characterRegexArray[c]=RegExp("["+d[c]+"]","g"));f.characterRegex=RegExp(a+"]")}if(f.characterRegex.test(b))for(c in d)"string"===typeof c&&(b=b.replace(f.characterRegexArray[c],c));return b};f.isValueInArray=function(b,c){var a,d=c.length;for(a=0;a<d;a++)if(c[a][0]===b)return!0;return!1};f.addParser=function(b){var c, -a=f.parsers.length,d=!0;for(c=0;c<a;c++)f.parsers[c].id.toLowerCase()===b.id.toLowerCase()&&(d=!1);d&&f.parsers.push(b)};f.getParserById=function(b){var c,a=f.parsers.length;for(c=0;c<a;c++)if(f.parsers[c].id.toLowerCase()===b.toString().toLowerCase())return f.parsers[c];return!1};f.addWidget=function(b){f.widgets.push(b)};f.getWidgetById=function(b){var c,a,d=f.widgets.length;for(c=0;c<d;c++)if((a=f.widgets[c])&&a.hasOwnProperty("id")&&a.id.toLowerCase()===b.toLowerCase())return a};f.applyWidget= -function(b,c){var a=b.config,d=a.widgetOptions,e=a.widgets.sort().reverse(),m,h,k,n=e.length;h=l.inArray("zebra",a.widgets);0<=h&&(a.widgets.splice(h,1),a.widgets.push("zebra"));a.debug&&(m=new Date);for(h=0;h<n;h++)(k=f.getWidgetById(e[h]))&&(!0===c&&k.hasOwnProperty("init")?k.init(b,k,a,d):!c&&k.hasOwnProperty("format")&&k.format(b,a,d));a.debug&&q("Completed "+(!0===c?"initializing":"applying")+" widgets",m)};f.refreshWidgets=function(b,c,a){var d,g=b.config,m=g.widgets,h=f.widgets,k=h.length; -for(d=0;d<k;d++)h[d]&&h[d].id&&(c||0>l.inArray(h[d].id,m))&&(g.debug&&e("Refeshing widgets: Removing "+h[d].id),h[d].hasOwnProperty("remove")&&h[d].remove(b,g,g.widgetOptions));!0!==a&&f.applyWidget(b,c)};f.getData=function(b,c,a){var d="";b=l(b);var e,f;if(!b.length)return"";e=l.metadata?b.metadata():!1;f=" "+(b.attr("class")||"");"undefined"!==typeof b.data(a)||"undefined"!==typeof b.data(a.toLowerCase())?d+=b.data(a)||b.data(a.toLowerCase()):e&&"undefined"!==typeof e[a]?d+=e[a]:c&&"undefined"!== -typeof c[a]?d+=c[a]:" "!==f&&f.match(" "+a+"-")&&(d=f.match(RegExp(" "+a+"-(\\w+)"))[1]||"");return l.trim(d)};f.formatFloat=function(b,c){if("string"!==typeof b||""===b)return b;var a;b=(c&&c.config?!1!==c.config.usNumberFormat:"undefined"!==typeof c?c:1)?b.replace(/,/g,""):b.replace(/[\s|\.]/g,"").replace(/,/g,".");/^\s*\([.\d]+\)/.test(b)&&(b=b.replace(/^\s*\(/,"-").replace(/\)/,""));a=parseFloat(b);return isNaN(a)?l.trim(b):a};f.isDigit=function(b){return isNaN(b)?/^[\-+(]?\d+[)]?$/.test(b.toString().replace(/[,.'"\s]/g, +U:"\u00da\u00d9\u00db\u00dc\u016e"};f.replaceAccents=function(b){var c,a="[",d=f.characterEquivalents;if(!f.characterRegex){f.characterRegexArray={};for(c in d)"string"===typeof c&&(a+=d[c],f.characterRegexArray[c]=new RegExp("["+d[c]+"]","g"));f.characterRegex=new RegExp(a+"]")}if(f.characterRegex.test(b))for(c in d)"string"===typeof c&&(b=b.replace(f.characterRegexArray[c],c));return b};f.isValueInArray=function(b,c){var a,d=c.length;for(a=0;a<d;a++)if(c[a][0]===b)return!0;return!1};f.addParser= +function(b){var c,a=f.parsers.length,d=!0;for(c=0;c<a;c++)f.parsers[c].id.toLowerCase()===b.id.toLowerCase()&&(d=!1);d&&f.parsers.push(b)};f.getParserById=function(b){var c,a=f.parsers.length;for(c=0;c<a;c++)if(f.parsers[c].id.toLowerCase()===b.toString().toLowerCase())return f.parsers[c];return!1};f.addWidget=function(b){f.widgets.push(b)};f.getWidgetById=function(b){var c,a,d=f.widgets.length;for(c=0;c<d;c++)if((a=f.widgets[c])&&a.hasOwnProperty("id")&&a.id.toLowerCase()===b.toLowerCase())return a}; +f.applyWidget=function(b,c){var a=b.config,d=a.widgetOptions,e=a.widgets.sort().reverse(),m,h,k,n=e.length;h=l.inArray("zebra",a.widgets);0<=h&&(a.widgets.splice(h,1),a.widgets.push("zebra"));a.debug&&(m=new Date);for(h=0;h<n;h++)(k=f.getWidgetById(e[h]))&&(!0===c&&k.hasOwnProperty("init")?k.init(b,k,a,d):!c&&k.hasOwnProperty("format")&&k.format(b,a,d));a.debug&&q("Completed "+(!0===c?"initializing":"applying")+" widgets",m)};f.refreshWidgets=function(b,c,a){var d,g=b.config,m=g.widgets,h=f.widgets, +k=h.length;for(d=0;d<k;d++)h[d]&&h[d].id&&(c||0>l.inArray(h[d].id,m))&&(g.debug&&e("Refeshing widgets: Removing "+h[d].id),h[d].hasOwnProperty("remove")&&h[d].remove(b,g,g.widgetOptions));!0!==a&&f.applyWidget(b,c)};f.getData=function(b,c,a){var d="";b=l(b);var e,f;if(!b.length)return"";e=l.metadata?b.metadata():!1;f=" "+(b.attr("class")||"");"undefined"!==typeof b.data(a)||"undefined"!==typeof b.data(a.toLowerCase())?d+=b.data(a)||b.data(a.toLowerCase()):e&&"undefined"!==typeof e[a]?d+=e[a]:c&&"undefined"!== +typeof c[a]?d+=c[a]:" "!==f&&f.match(" "+a+"-")&&(d=f.match(new RegExp(" "+a+"-(\\w+)"))[1]||"");return l.trim(d)};f.formatFloat=function(b,c){if("string"!==typeof b||""===b)return b;var a;b=(c&&c.config?!1!==c.config.usNumberFormat:"undefined"!==typeof c?c:1)?b.replace(/,/g,""):b.replace(/[\s|\.]/g,"").replace(/,/g,".");/^\s*\([.\d]+\)/.test(b)&&(b=b.replace(/^\s*\(/,"-").replace(/\)/,""));a=parseFloat(b);return isNaN(a)?l.trim(b):a};f.isDigit=function(b){return isNaN(b)?/^[\-+(]?\d+[)]?$/.test(b.toString().replace(/[,.'"\s]/g, "")):!0}}});var k=l.tablesorter;l.fn.extend({tablesorter:k.construct});k.addParser({id:"text",is:function(e,k,l){return!0},format:function(e,q,s,r){q=q.config;e=l.trim(q.ignoreCase?e.toLocaleLowerCase():e);return q.sortLocaleCompare?k.replaceAccents(e):e},type:"text"});k.addParser({id:"currency",is:function(e){return/^\(?\d+[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]|[\u00a3$\u20ac\u00a4\u00a5\u00a2?.]\d+\)?$/.test(e)},format:function(e,l){return k.formatFloat(e.replace(/[^\w,. \-()]/g,""),l)},type:"numeric"}); k.addParser({id:"ipAddress",is:function(e){return/^\d{1,3}[\.]\d{1,3}[\.]\d{1,3}[\.]\d{1,3}$/.test(e)},format:function(e,l){var s,r=e.split("."),x="",y=r.length;for(s=0;s<y;s++)x+=("00"+r[s]).slice(-3);return k.formatFloat(x,l)},type:"numeric"});k.addParser({id:"url",is:function(e){return/^(https?|ftp|file):\/\//.test(e)},format:function(e){return l.trim(e.replace(/(https?|ftp|file):\/\//,""))},type:"text"});k.addParser({id:"isoDate",is:function(e){return/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(e)}, format:function(e,l){return k.formatFloat(""!==e?(new Date(e.replace(/-/g,"/"))).getTime()||"":"",l)},type:"numeric"});k.addParser({id:"percent",is:function(e){return/(\d\s?%|%\s?\d)/.test(e)},format:function(e,l){return k.formatFloat(e.replace(/%/g,""),l)},type:"numeric"});k.addParser({id:"usLongDate",is:function(e){return/^[A-Z]{3,10}\.?\s+\d{1,2},?\s+(\d{4})(\s+\d{1,2}:\d{2}(:\d{2})?(\s+[AP]M)?)?$/i.test(e)},format:function(e,l){return k.formatFloat((new Date(e.replace(/(\S)([AP]M)$/i,"$1 $2"))).getTime()|| "",l)},type:"numeric"});k.addParser({id:"shortDate",is:function(e){return/^(\d{1,2}|\d{4})[\/\-\,\.\s+]\d{1,2}[\/\-\.\,\s+](\d{1,2}|\d{4})$/.test(e)},format:function(e,l,s,r){s=l.config;var x=s.headerList[r],y=x.shortDateFormat;"undefined"===typeof y&&(y=x.shortDateFormat=k.getData(x,s.headers[r],"dateFormat")||s.dateFormat);e=e.replace(/\s+/g," ").replace(/[\-|\.|\,]/g,"/");"mmddyyyy"===y?e=e.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/,"$3/$1/$2"):"ddmmyyyy"===y?e=e.replace(/(\d{1,2})[\/\s](\d{1,2})[\/\s](\d{4})/, "$3/$2/$1"):"yyyymmdd"===y&&(e=e.replace(/(\d{4})[\/\s](\d{1,2})[\/\s](\d{1,2})/,"$1/$2/$3"));return k.formatFloat((new Date(e)).getTime()||"",l)},type:"numeric"});k.addParser({id:"time",is:function(e){return/^(([0-2]?\d:[0-5]\d)|([0-1]?\d:[0-5]\d\s?([AP]M)))$/i.test(e)},format:function(e,l){return k.formatFloat((new Date("2000/01/01 "+e.replace(/(\S)([AP]M)$/i,"$1 $2"))).getTime()||"",l)},type:"numeric"});k.addParser({id:"digit",is:function(e){return k.isDigit(e)},format:function(e,l){return k.formatFloat(e.replace(/[^\w,. \-()]/g, -""),l)},type:"numeric"});k.addParser({id:"metadata",is:function(e){return!1},format:function(e,k,s){e=k.config;e=e.parserMetadataName?e.parserMetadataName:"sortValue";return l(s).metadata()[e]},type:"numeric"});k.addWidget({id:"zebra",format:function(e,q,s){var r,x,y,A,B,D,C=RegExp(q.cssChildRow,"i"),E=l(e).children("tbody:not(."+q.cssInfoBlock+")");q.debug&&(B=new Date);for(e=0;e<E.length;e++)r=l(E[e]),D=r.children("tr").length,1<D&&(y=0,r=r.children("tr:visible"),r.each(function(){x=l(this);C.test(this.className)|| -y++;A=0===y%2;x.removeClass(s.zebra[A?1:0]).addClass(s.zebra[A?0:1])}));q.debug&&k.benchmark("Applying Zebra widget",B)},remove:function(e,k,s){var r;s=l(e).children("tbody:not(."+k.cssInfoBlock+")");var x=(k.widgetOptions.zebra||["even","odd"]).join(" ");for(k=0;k<s.length;k++)r=l.tablesorter.processTbody(e,l(s[k]),!0),r.children().removeClass(x),l.tablesorter.processTbody(e,r,!1)}})}(jQuery); +""),l)},type:"numeric"});k.addParser({id:"metadata",is:function(e){return!1},format:function(e,k,s){e=k.config;e=e.parserMetadataName?e.parserMetadataName:"sortValue";return l(s).metadata()[e]},type:"numeric"});k.addWidget({id:"zebra",format:function(e,q,s){var r,x,y,A,B,D,C=new RegExp(q.cssChildRow,"i"),E=l(e).children("tbody:not(."+q.cssInfoBlock+")");q.debug&&(B=new Date);for(e=0;e<E.length;e++)r=l(E[e]),D=r.children("tr").length,1<D&&(y=0,r=r.children("tr:visible"),r.each(function(){x=l(this); +C.test(this.className)||y++;A=0===y%2;x.removeClass(s.zebra[A?1:0]).addClass(s.zebra[A?0:1])}));q.debug&&k.benchmark("Applying Zebra widget",B)},remove:function(e,k,s){var r;s=l(e).children("tbody:not(."+k.cssInfoBlock+")");var x=(k.widgetOptions.zebra||["even","odd"]).join(" ");for(k=0;k<s.length;k++)r=l.tablesorter.processTbody(e,l(s[k]),!0),r.children().removeClass(x),l.tablesorter.processTbody(e,r,!1)}})}(jQuery); diff --git a/sitestatic/konami.js b/sitestatic/konami.js index 88b494e0..15882b9f 100644 --- a/sitestatic/konami.js +++ b/sitestatic/konami.js @@ -1,101 +1,105 @@ /* - * Konami-JS ~ - * :: Now with support for touch events and multiple instances for - * :: those situations that call for multiple easter eggs! - * Code: http://konami-js.googlecode.com/ - * Examples: http://www.snaptortoise.com/konami-js - * Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com) - * Version: 1.4.1 (3/1//2013) - * Licensed under the GNU General Public License v3 - * http://www.gnu.org/copyleft/gpl.html - * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser -*/ + * Konami-JS ~ + * :: Now with support for touch events and multiple instances for + * :: those situations that call for multiple easter eggs! + * Code: http://konami-js.googlecode.com/ + * Examples: http://www.snaptortoise.com/konami-js + * Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com) + * Version: 1.4.2 (9/2/2013) + * Licensed under the MIT License (http://opensource.org/licenses/MIT) + * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser + */ -var Konami = function(callback) { - var konami= { - addEvent:function ( obj, type, fn, ref_obj ) - { - if (obj.addEventListener) - obj.addEventListener( type, fn, false ); - else if (obj.attachEvent) - { - // IE - obj["e"+type+fn] = fn; - obj[type+fn] = function() { obj["e"+type+fn]( window.event,ref_obj ); } - obj.attachEvent( "on"+type, obj[type+fn] ); +var Konami = function (callback) { + var konami = { + addEvent: function (obj, type, fn, ref_obj) { + if (obj.addEventListener) + obj.addEventListener(type, fn, false); + else if (obj.attachEvent) { + // IE + obj["e" + type + fn] = fn; + obj[type + fn] = function () { + obj["e" + type + fn](window.event, ref_obj); } + obj.attachEvent("on" + type, obj[type + fn]); + } + }, + input: "", + pattern: "38384040373937396665", + load: function (link) { + this.addEvent(document, "keydown", function (e, ref_obj) { + if (ref_obj) konami = ref_obj; // IE + konami.input += e ? e.keyCode : event.keyCode; + if (konami.input.length > konami.pattern.length) + konami.input = konami.input.substr((konami.input.length - konami.pattern.length)); + if (konami.input == konami.pattern) { + konami.code(link); + konami.input = ""; + e.preventDefault(); + return false; + } + }, this); + this.iphone.load(link); + }, + code: function (link) { + window.location = link + }, + iphone: { + start_x: 0, + start_y: 0, + stop_x: 0, + stop_y: 0, + tap: false, + capture: false, + orig_keys: "", + keys: ["UP", "UP", "DOWN", "DOWN", "LEFT", "RIGHT", "LEFT", "RIGHT", "TAP", "TAP"], + code: function (link) { + konami.code(link); }, - input:"", - pattern:"3838404037393739666513", - load: function(link) { - this.addEvent(document,"keydown", function(e,ref_obj) { - if (ref_obj) konami = ref_obj; // IE - konami.input+= e ? e.keyCode : event.keyCode; - if (konami.input.length > konami.pattern.length) konami.input = konami.input.substr((konami.input.length - konami.pattern.length)); - if (konami.input == konami.pattern) { - konami.code(link); - konami.input=""; - return; - } - },this); - this.iphone.load(link); - - }, - code: function(link) { window.location=link}, - iphone:{ - start_x:0, - start_y:0, - stop_x:0, - stop_y:0, - tap:false, - capture:false, - orig_keys:"", - keys:["UP","UP","DOWN","DOWN","LEFT","RIGHT","LEFT","RIGHT","TAP","TAP","TAP"], - code: function(link) { konami.code(link);}, - load: function(link){ - this.orig_keys = this.keys; - konami.addEvent(document,"touchmove",function(e){ - if(e.touches.length == 1 && konami.iphone.capture==true){ - var touch = e.touches[0]; - konami.iphone.stop_x = touch.pageX; - konami.iphone.stop_y = touch.pageY; - konami.iphone.tap = false; - konami.iphone.capture=false; - konami.iphone.check_direction(); - } - }); - konami.addEvent(document,"touchend",function(evt){ - if (konami.iphone.tap==true) konami.iphone.check_direction(link); - },false); - konami.addEvent(document,"touchstart", function(evt){ - konami.iphone.start_x = evt.changedTouches[0].pageX; - konami.iphone.start_y = evt.changedTouches[0].pageY; - konami.iphone.tap = true; - konami.iphone.capture = true; - }); - }, - check_direction: function(link){ - x_magnitude = Math.abs(this.start_x-this.stop_x); - y_magnitude = Math.abs(this.start_y-this.stop_y); - x = ((this.start_x-this.stop_x) < 0) ? "RIGHT" : "LEFT"; - y = ((this.start_y-this.stop_y) < 0) ? "DOWN" : "UP"; - result = (x_magnitude > y_magnitude) ? x : y; - result = (this.tap==true) ? "TAP" : result; + load: function (link) { + this.orig_keys = this.keys; + konami.addEvent(document, "touchmove", function (e) { + if (e.touches.length == 1 && konami.iphone.capture == true) { + var touch = e.touches[0]; + konami.iphone.stop_x = touch.pageX; + konami.iphone.stop_y = touch.pageY; + konami.iphone.tap = false; + konami.iphone.capture = false; + konami.iphone.check_direction(); + } + }); + konami.addEvent(document, "touchend", function (evt) { + if (konami.iphone.tap == true) konami.iphone.check_direction(link); + }, false); + konami.addEvent(document, "touchstart", function (evt) { + konami.iphone.start_x = evt.changedTouches[0].pageX; + konami.iphone.start_y = evt.changedTouches[0].pageY; + konami.iphone.tap = true; + konami.iphone.capture = true; + }); + }, + check_direction: function (link) { + x_magnitude = Math.abs(this.start_x - this.stop_x); + y_magnitude = Math.abs(this.start_y - this.stop_y); + x = ((this.start_x - this.stop_x) < 0) ? "RIGHT" : "LEFT"; + y = ((this.start_y - this.stop_y) < 0) ? "DOWN" : "UP"; + result = (x_magnitude > y_magnitude) ? x : y; + result = (this.tap == true) ? "TAP" : result; - if (result==this.keys[0]) this.keys = this.keys.slice(1,this.keys.length); - if (this.keys.length==0) { - this.keys=this.orig_keys; - this.code(link); - } - } - } + if (result == this.keys[0]) this.keys = this.keys.slice(1, this.keys.length); + if (this.keys.length == 0) { + this.keys = this.orig_keys; + this.code(link); + } + } + } } - + typeof callback === "string" && konami.load(callback); - if(typeof callback === "function") { + if (typeof callback === "function") { konami.code = callback; konami.load(); } return konami; -} +}; diff --git a/sitestatic/konami.min.js b/sitestatic/konami.min.js index 0d0c2e06..6090211c 100644 --- a/sitestatic/konami.min.js +++ b/sitestatic/konami.min.js @@ -1,16 +1,15 @@ /* - * Konami-JS ~ - * :: Now with support for touch events and multiple instances for - * :: those situations that call for multiple easter eggs! - * Code: http://konami-js.googlecode.com/ - * Examples: http://www.snaptortoise.com/konami-js - * Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com) - * Version: 1.4.1 (3/1//2013) - * Licensed under the GNU General Public License v3 - * http://www.gnu.org/copyleft/gpl.html - * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser -*/ -var Konami=function(d){var a={addEvent:function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&(a["e"+b+c]=c,a[b+c]=function(){a["e"+b+c](window.event,d)},a.attachEvent("on"+b,a[b+c]))},input:"",pattern:"3838404037393739666513",load:function(e){this.addEvent(document,"keydown",function(b,c){c&&(a=c);a.input+=b?b.keyCode:event.keyCode;a.input.length>a.pattern.length&&(a.input=a.input.substr(a.input.length-a.pattern.length));a.input==a.pattern&&(a.code(e),a.input="")},this);this.iphone.load(e)}, -code:function(a){window.location=a},iphone:{start_x:0,start_y:0,stop_x:0,stop_y:0,tap:!1,capture:!1,orig_keys:"",keys:"UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT TAP TAP TAP".split(" "),code:function(e){a.code(e)},load:function(e){this.orig_keys=this.keys;a.addEvent(document,"touchmove",function(b){1==b.touches.length&&!0==a.iphone.capture&&(b=b.touches[0],a.iphone.stop_x=b.pageX,a.iphone.stop_y=b.pageY,a.iphone.tap=!1,a.iphone.capture=!1,a.iphone.check_direction())});a.addEvent(document,"touchend",function(b){!0== -a.iphone.tap&&a.iphone.check_direction(e)},!1);a.addEvent(document,"touchstart",function(b){a.iphone.start_x=b.changedTouches[0].pageX;a.iphone.start_y=b.changedTouches[0].pageY;a.iphone.tap=!0;a.iphone.capture=!0})},check_direction:function(a){x_magnitude=Math.abs(this.start_x-this.stop_x);y_magnitude=Math.abs(this.start_y-this.stop_y);x=0>this.start_x-this.stop_x?"RIGHT":"LEFT";y=0>this.start_y-this.stop_y?"DOWN":"UP";result=x_magnitude>y_magnitude?x:y;result=!0==this.tap?"TAP":result;result==this.keys[0]&& -(this.keys=this.keys.slice(1,this.keys.length));0==this.keys.length&&(this.keys=this.orig_keys,this.code(a))}}};"string"===typeof d&&a.load(d);"function"===typeof d&&(a.code=d,a.load());return a}; + * Konami-JS ~ + * :: Now with support for touch events and multiple instances for + * :: those situations that call for multiple easter eggs! + * Code: http://konami-js.googlecode.com/ + * Examples: http://www.snaptortoise.com/konami-js + * Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com) + * Version: 1.4.2 (9/2/2013) + * Licensed under the MIT License (http://opensource.org/licenses/MIT) + * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser + */ +var Konami=function(d){var a={addEvent:function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&(a["e"+b+c]=c,a[b+c]=function(){a["e"+b+c](window.event,d)},a.attachEvent("on"+b,a[b+c]))},input:"",pattern:"38384040373937396665",load:function(e){this.addEvent(document,"keydown",function(b,c){c&&(a=c);a.input+=b?b.keyCode:event.keyCode;a.input.length>a.pattern.length&&(a.input=a.input.substr(a.input.length-a.pattern.length));if(a.input==a.pattern)return a.code(e),a.input="",b.preventDefault(), +!1},this);this.iphone.load(e)},code:function(a){window.location=a},iphone:{start_x:0,start_y:0,stop_x:0,stop_y:0,tap:!1,capture:!1,orig_keys:"",keys:"UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT TAP TAP".split(" "),code:function(e){a.code(e)},load:function(e){this.orig_keys=this.keys;a.addEvent(document,"touchmove",function(b){1==b.touches.length&&!0==a.iphone.capture&&(b=b.touches[0],a.iphone.stop_x=b.pageX,a.iphone.stop_y=b.pageY,a.iphone.tap=!1,a.iphone.capture=!1,a.iphone.check_direction())});a.addEvent(document, +"touchend",function(b){!0==a.iphone.tap&&a.iphone.check_direction(e)},!1);a.addEvent(document,"touchstart",function(b){a.iphone.start_x=b.changedTouches[0].pageX;a.iphone.start_y=b.changedTouches[0].pageY;a.iphone.tap=!0;a.iphone.capture=!0})},check_direction:function(a){x_magnitude=Math.abs(this.start_x-this.stop_x);y_magnitude=Math.abs(this.start_y-this.stop_y);x=0>this.start_x-this.stop_x?"RIGHT":"LEFT";y=0>this.start_y-this.stop_y?"DOWN":"UP";result=x_magnitude>y_magnitude?x:y;result=!0==this.tap? +"TAP":result;result==this.keys[0]&&(this.keys=this.keys.slice(1,this.keys.length));0==this.keys.length&&(this.keys=this.orig_keys,this.code(a))}}};"string"===typeof d&&a.load(d);"function"===typeof d&&(a.code=d,a.load());return a}; diff --git a/templates/admin/index.html b/templates/admin/index.html index fddd55e5..89ee1df1 100644 --- a/templates/admin/index.html +++ b/templates/admin/index.html @@ -5,7 +5,7 @@ {% block coltype %}colMS{% endblock %} -{% block bodyclass %}dashboard{% endblock %} +{% block bodyclass %}{{ block.super }} dashboard{% endblock %} {% block breadcrumbs %}{% endblock %} @@ -34,9 +34,7 @@ <div class="app-{{ app.app_label }} module"> <table> <caption> - <a href="{{ app.app_url }}" class="section" title="{% blocktrans with name=app.name %}Models in the {{ name }} application{% endblocktrans %}"> - {% blocktrans with name=app.name %}{{ name }}{% endblocktrans %} - </a> + <a href="{{ app.app_url }}" class="section" title="{% blocktrans with name=app.name %}Models in the {{ name }} application{% endblocktrans %}">{{ app.name }}</a> </caption> {% for model in app.models %} <tr class="model-{{ model.object_name|lower }}"> diff --git a/templates/mirrors/mirror_details.html b/templates/mirrors/mirror_details.html index 2ae89880..bd302d61 100644 --- a/templates/mirrors/mirror_details.html +++ b/templates/mirrors/mirror_details.html @@ -47,6 +47,10 @@ <td>{{ mirror.created }}</td> </tr> <tr> + <th>Last Modified:</th> + <td>{{ mirror.last_modified }}</td> + </tr> + <tr> <th>Rsync IPs:</th> <td class="wrap">{{mirror.rsync_ips.all|join:', '}}</td> </tr> @@ -102,8 +106,8 @@ <th>Last Sync</th> <th>Completion %</th> <th>μ Delay (hh:mm)</th> - <th>μ Duration (secs)</th> - <th>σ Duration (secs)</th> + <th>μ Duration (s)</th> + <th>σ Duration (s)</th> <th>Score</th> <th>Details</th> </tr> diff --git a/templates/mirrors/status.html b/templates/mirrors/status.html index 4d75cd8e..250d9bad 100644 --- a/templates/mirrors/status.html +++ b/templates/mirrors/status.html @@ -80,7 +80,9 @@ <script type="text/javascript" src="{% static "archweb.js" %}"></script> <script type="text/javascript"> $(document).ready(function() { - var headers = { 4: { sorter: 'duration' }, 5: { sorter: 'mostlydigit' }, 6: { sorter: 'mostlydigit' }, 7: { sorter: 'mostlydigit' } }; + var headers = { 4: { sorter: 'duration' }, 5: { sorter: 'mostlydigit' }, + 6: { sorter: 'mostlydigit' }, 7: { sorter: 'mostlydigit' }, + 8: { sorter: false } }; $("#outofsync_mirrors:has(tbody tr)").tablesorter( {widgets: ['zebra'], sortList: [[4,0]], headers: headers }); $("#successful_mirrors:has(tbody tr)").tablesorter( diff --git a/templates/mirrors/status_table.html b/templates/mirrors/status_table.html index 00b9c1df..83538303 100644 --- a/templates/mirrors/status_table.html +++ b/templates/mirrors/status_table.html @@ -8,9 +8,10 @@ <th>Country</th> <th>Completion %</th> <th>μ Delay (hh:mm)</th> - <th>μ Duration (secs)</th> - <th>σ Duration (secs)</th> + <th>μ Duration (s)</th> + <th>σ Duration (s)</th> <th>Mirror Score</th> + <th></th> </tr> </thead> <tbody> @@ -23,6 +24,7 @@ <td>{{ m_url.duration_avg|floatvalue:2 }}</td> <td>{{ m_url.duration_stddev|floatvalue:2 }}</td> <td>{{ m_url.score|floatvalue:1|default:'∞' }}</td> + <td><a href="{{ m_url.get_absolute_url }}">details</a></td> </tr>{% endfor %} </tbody> </table> diff --git a/templates/mirrors/url_details.html b/templates/mirrors/url_details.html index 54960a0d..557a1b79 100644 --- a/templates/mirrors/url_details.html +++ b/templates/mirrors/url_details.html @@ -18,6 +18,10 @@ <td>{% if url.protocol.is_download %}<a href="{{ url.url }}">{{ url.url }}</a>{% else %}{{ url.url }}{% endif %}</td> </tr> <tr> + <th>Mirror:</th> + <td><a href="../">{{ url.mirror.name }}</a></td> + </tr> + <tr> <th>Protocol:</th> <td>{{ url.protocol }}</td> </tr> @@ -63,7 +67,7 @@ <th>Check IP</th> <th>Last Sync</th> <th>Delay (hh:mm)</th> - <th>Duration (secs)</th> + <th>Duration (s)</th> <th>Success?</th> <th>Error Message</th> </tr> diff --git a/templates/public/index.html b/templates/public/index.html index b97c7909..6ef6b4bf 100644 --- a/templates/public/index.html +++ b/templates/public/index.html @@ -114,9 +114,9 @@ <ul> <li><a href="{% wiki_url %}" title="Community documentation">Wiki</a></li> - <li><a href="{% wiki_url 'Installation Guide' %}" + <li><a href="{% wiki_url 'Installation_guide' %}" title="Installation guide">Installation Guide</a></li> - <li><a href="{% wiki_url "Beginners'_Guide" %}" + <li><a href="{% wiki_url "Beginners'_guide" %}" title="A good place to start for beginners">Beginners' Guide</a></li> <li><a href="{% wiki_url 'Migration' %}" title="Free your Arch installation">Migration from Arch Linux</a></li> @@ -127,7 +127,7 @@ <ul> <li><a href="{{ MAILMAN_BASE_URL }}/mailman/listinfo/" title="Community and developer mailing lists">Mailing Lists</a></li> - <li><a href="{% wiki_url 'IRC_Channels' %}" + <li><a href="{% wiki_url 'IRC_channels' %}" title="Official and regional IRC communities">IRC Channels</a></li> <li><a href="https://identi.ca/group/parabola" title="Parabola at identi.ca">Identi.ca group</a></li> diff --git a/todolists/migrations/0001_initial.py b/todolists/migrations/0001_initial.py index 48d38aae..4ffbf838 100644 --- a/todolists/migrations/0001_initial.py +++ b/todolists/migrations/0001_initial.py @@ -1,19 +1,61 @@ # -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models +from __future__ import unicode_literals +from django.db import models, migrations +import django.db.models.deletion +from django.conf import settings -class Migration(SchemaMigration): - def forwards(self, orm): - pass +class Migration(migrations.Migration): - def backwards(self, orm): - pass + dependencies = [ + ('main', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] - models = { - - } - - complete_apps = ['todolists'] + operations = [ + migrations.CreateModel( + name='Todolist', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('slug', models.SlugField(unique=True, max_length=255)), + ('old_id', models.IntegerField(unique=True, null=True)), + ('name', models.CharField(max_length=255)), + ('description', models.TextField()), + ('created', models.DateTimeField(db_index=True)), + ('last_modified', models.DateTimeField(editable=False)), + ('raw', models.TextField(blank=True)), + ('creator', models.ForeignKey(related_name=b'created_todolists', on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'get_latest_by': 'created', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='TodolistPackage', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('pkgname', models.CharField(max_length=255)), + ('pkgbase', models.CharField(max_length=255)), + ('created', models.DateTimeField(editable=False)), + ('last_modified', models.DateTimeField(editable=False)), + ('removed', models.DateTimeField(null=True, blank=True)), + ('status', models.SmallIntegerField(default=0, choices=[(0, b'Incomplete'), (1, b'Complete'), (2, b'In-progress')])), + ('comments', models.TextField(null=True, blank=True)), + ('arch', models.ForeignKey(to='main.Arch')), + ('pkg', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, to='main.Package', null=True)), + ('repo', models.ForeignKey(to='main.Repo')), + ('todolist', models.ForeignKey(to='todolists.Todolist')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, null=True)), + ], + options={ + 'get_latest_by': 'created', + }, + bases=(models.Model,), + ), + migrations.AlterUniqueTogether( + name='todolistpackage', + unique_together=set([('todolist', 'pkgname', 'arch')]), + ), + ] diff --git a/todolists/migrations/0002_add_todolist_and_todolistpackage.py b/todolists/migrations/0002_add_todolist_and_todolistpackage.py deleted file mode 100644 index ba8f7ebe..00000000 --- a/todolists/migrations/0002_add_todolist_and_todolistpackage.py +++ /dev/null @@ -1,155 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - depends_on = ( - ('main', '0024_set_initial_flag_date'), - ) - - def forwards(self, orm): - db.create_table('todolists_todolist', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('old_id', self.gf('django.db.models.fields.IntegerField')(unique=True, null=True)), - ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('description', self.gf('django.db.models.fields.TextField')()), - ('creator', self.gf('django.db.models.fields.related.ForeignKey')(related_name='created_todolists', on_delete=models.PROTECT, to=orm['auth.User'])), - ('created', self.gf('django.db.models.fields.DateTimeField')(db_index=True)), - ('last_modified', self.gf('django.db.models.fields.DateTimeField')()), - ('raw', self.gf('django.db.models.fields.TextField')(blank=True)), - )) - db.send_create_signal('todolists', ['Todolist']) - - db.create_table('todolists_todolistpackage', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('todolist', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['todolists.Todolist'])), - ('pkg', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Package'], null=True, on_delete=models.SET_NULL)), - ('pkgname', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('pkgbase', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('arch', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Arch'])), - ('repo', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['main.Repo'])), - ('created', self.gf('django.db.models.fields.DateTimeField')()), - ('status', self.gf('django.db.models.fields.SmallIntegerField')(default=0)), - ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, on_delete=models.SET_NULL)), - ('comments', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - )) - db.send_create_signal('todolists', ['TodolistPackage']) - - db.create_unique('todolists_todolistpackage', ['todolist_id', 'pkgname', 'arch_id']) - - - def backwards(self, orm): - db.delete_unique('todolists_todolistpackage', ['todolist_id', 'pkgname', 'arch_id']) - - db.delete_table('todolists_todolist') - - db.delete_table('todolists_todolistpackage') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'todolists.todolist': { - 'Meta': {'object_name': 'Todolist'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_todolists'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'old_id': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True'}), - 'raw': ('django.db.models.fields.TextField', [], {'blank': 'True'}) - }, - 'todolists.todolistpackage': { - 'Meta': {'unique_together': "(('todolist', 'pkgname', 'arch'),)", 'object_name': 'TodolistPackage'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'todolist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['todolists.Todolist']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - } - } - - complete_apps = ['todolists'] diff --git a/todolists/migrations/0003_migrate_todolist_data.py b/todolists/migrations/0003_migrate_todolist_data.py deleted file mode 100644 index 8a317a67..00000000 --- a/todolists/migrations/0003_migrate_todolist_data.py +++ /dev/null @@ -1,184 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - depends_on = ( - ('main', '0045_add_todolist_date_added_index'), - ('main', '0053_auto__add_field_package_pgp_signature'), - ) - - def forwards(self, orm): - list_id_map = {} - list_added = {} - # start by converting the todo lists themselves - for old in orm['main.Todolist'].objects.all().order_by('id'): - new = orm.Todolist.objects.create(name=old.name, old_id=old.id, - description=old.description, created=old.date_added, - last_modified=old.date_added, creator_id=old.creator_id) - # set the 'raw' field to something useful - pkgnames = orm['main.Package'].objects.values_list('pkgname', - flat=True).distinct().order_by('pkgname').filter( - todolistpkg__list_id=old.id) - pkgname_text = '\n'.join(pkgnames) - orm.Todolist.objects.filter(id=new.id).update(raw=pkgname_text) - list_id_map[old.id] = new.id - list_added[old.id] = old.date_added - - # 1 and 0 come from TodolistPackage.COMPLETE, INCOMPLETE - get_status = lambda v: 1 if v is True else 0 - # next, loop each old todolist package, creating a new one - for old in orm['main.TodolistPkg'].objects.all().select_related( - 'pkg').order_by('id'): - pkg = old.pkg - new_list_id = list_id_map[old.list_id] - orm.TodolistPackage.objects.create(todolist_id=new_list_id, - pkg=pkg, pkgname=pkg.pkgname, pkgbase=pkg.pkgbase, - arch_id=pkg.arch_id, repo_id=pkg.repo_id, - status=get_status(old.complete), - created=list_added[old.list_id]) - - def backwards(self, orm): - #orm.Todolist.objects.all().delete() - #orm.TodolistPackage.objects.all().delete() - pass - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.donor': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Donor', 'db_table': "'donors'"}, - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.packagefile': { - 'Meta': {'object_name': 'PackageFile', 'db_table': "'package_files'"}, - 'directory': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_directory': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'main.todolist': { - 'Meta': {'object_name': 'Todolist', 'db_table': "'todolists'"}, - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'on_delete': 'models.PROTECT'}), - 'date_added': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'main.todolistpkg': { - 'Meta': {'unique_together': "(('list', 'pkg'),)", 'object_name': 'TodolistPkg', 'db_table': "'todolist_pkgs'"}, - 'complete': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Todolist']"}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']"}) - }, - 'todolists.todolist': { - 'Meta': {'object_name': 'Todolist'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_todolists'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'old_id': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True'}), - 'raw': ('django.db.models.fields.TextField', [], {'blank': 'True'}) - }, - 'todolists.todolistpackage': { - 'Meta': {'unique_together': "(('todolist', 'pkgname', 'arch'),)", 'object_name': 'TodolistPackage'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'todolist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['todolists.Todolist']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - } - } - - complete_apps = ['main', 'todolists'] - symmetrical = True diff --git a/todolists/migrations/0004_auto__add_field_todolist_slug.py b/todolists/migrations/0004_auto__add_field_todolist_slug.py deleted file mode 100644 index 18fd2f9a..00000000 --- a/todolists/migrations/0004_auto__add_field_todolist_slug.py +++ /dev/null @@ -1,123 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('todolists_todolist', 'slug', - self.gf('django.db.models.fields.SlugField')(max_length=255, unique=True, null=True), - keep_default=False) - - - def backwards(self, orm): - db.delete_column('todolists_todolist', 'slug') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'todolists.todolist': { - 'Meta': {'object_name': 'Todolist'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_todolists'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'old_id': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True'}), - 'raw': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'unique': 'True', 'null': 'True'}) - }, - 'todolists.todolistpackage': { - 'Meta': {'unique_together': "(('todolist', 'pkgname', 'arch'),)", 'object_name': 'TodolistPackage'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'todolist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['todolists.Todolist']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - } - } - - complete_apps = ['todolists'] diff --git a/todolists/migrations/0005_add_slugs.py b/todolists/migrations/0005_add_slugs.py deleted file mode 100644 index d7d67793..00000000 --- a/todolists/migrations/0005_add_slugs.py +++ /dev/null @@ -1,133 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import DataMigration -from django.db import models - -from django.template.defaultfilters import slugify - -class Migration(DataMigration): - - def forwards(self, orm): - existing = list(orm.Todolist.objects.values_list( - 'slug', flat=True).distinct()) - for item in orm.Todolist.objects.defer('raw').filter(slug=None): - suffixed = slug = slugify(item.name) - suffix = 1 - while suffixed in existing: - suffix += 1 - suffixed = "%s-%d" % (slug, suffix) - - item.slug = suffixed - existing.append(suffixed) - - item.save() - - def backwards(self, orm): - orm.Todolist.objects.all.update(slug=None) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'todolists.todolist': { - 'Meta': {'object_name': 'Todolist'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_todolists'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'old_id': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True'}), - 'raw': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'unique': 'True', 'null': 'True'}) - }, - 'todolists.todolistpackage': { - 'Meta': {'unique_together': "(('todolist', 'pkgname', 'arch'),)", 'object_name': 'TodolistPackage'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'todolist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['todolists.Todolist']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - } - } - - complete_apps = ['todolists'] - symmetrical = True diff --git a/todolists/migrations/0006_auto__chg_field_todolist_slug.py b/todolists/migrations/0006_auto__chg_field_todolist_slug.py deleted file mode 100644 index 3073120b..00000000 --- a/todolists/migrations/0006_auto__chg_field_todolist_slug.py +++ /dev/null @@ -1,119 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.alter_column('todolists_todolist', 'slug', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=255)) - - def backwards(self, orm): - db.alter_column('todolists_todolist', 'slug', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=255, null=True)) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'todolists.todolist': { - 'Meta': {'object_name': 'Todolist'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_todolists'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'old_id': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True'}), - 'raw': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'todolists.todolistpackage': { - 'Meta': {'unique_together': "(('todolist', 'pkgname', 'arch'),)", 'object_name': 'TodolistPackage'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'todolist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['todolists.Todolist']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - } - } - - complete_apps = ['todolists'] diff --git a/todolists/migrations/0007_auto__add_field_todolistpackage_removed.py b/todolists/migrations/0007_auto__add_field_todolistpackage_removed.py deleted file mode 100644 index 6d9c4fb2..00000000 --- a/todolists/migrations/0007_auto__add_field_todolistpackage_removed.py +++ /dev/null @@ -1,124 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import SchemaMigration -from django.db import models - - -class Migration(SchemaMigration): - - def forwards(self, orm): - db.add_column('todolists_todolistpackage', 'removed', - self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), - keep_default=False) - - - def backwards(self, orm): - db.delete_column('todolists_todolistpackage', 'removed') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'todolists.todolist': { - 'Meta': {'object_name': 'Todolist'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_todolists'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'old_id': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True'}), - 'raw': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'todolists.todolistpackage': { - 'Meta': {'unique_together': "(('todolist', 'pkgname', 'arch'),)", 'object_name': 'TodolistPackage'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'todolist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['todolists.Todolist']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - } - } - - complete_apps = ['todolists'] diff --git a/todolists/migrations/0008_auto__add_field_todolistpackage_last_modified.py b/todolists/migrations/0008_auto__add_field_todolistpackage_last_modified.py deleted file mode 100644 index ac3025b4..00000000 --- a/todolists/migrations/0008_auto__add_field_todolistpackage_last_modified.py +++ /dev/null @@ -1,129 +0,0 @@ -# -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models -from pytz import utc - - -class Migration(SchemaMigration): - - def forwards(self, orm): - default = datetime.datetime(2000, 1, 1, 0, 0).replace(tzinfo=utc) - db.add_column('todolists_todolistpackage', 'last_modified', - self.gf('django.db.models.fields.DateTimeField')(default=default), - keep_default=False) - - - def backwards(self, orm): - db.delete_column('todolists_todolistpackage', 'last_modified') - - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'todolists.todolist': { - 'Meta': {'object_name': 'Todolist'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_todolists'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'old_id': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True'}), - 'raw': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'todolists.todolistpackage': { - 'Meta': {'unique_together': "(('todolist', 'pkgname', 'arch'),)", 'object_name': 'TodolistPackage'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'todolist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['todolists.Todolist']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - } - } - - complete_apps = ['todolists'] diff --git a/todolists/migrations/0009_update_last_modified_todolist_package.py b/todolists/migrations/0009_update_last_modified_todolist_package.py deleted file mode 100644 index f7bf30ae..00000000 --- a/todolists/migrations/0009_update_last_modified_todolist_package.py +++ /dev/null @@ -1,122 +0,0 @@ -# -*- coding: utf-8 -*- -from south.db import db -from south.v2 import DataMigration -from django.db import models - -class Migration(DataMigration): - - def forwards(self, orm): - orm.TodolistPackage.objects.all().update(last_modified=models.F('created')) - - def backwards(self, orm): - pass - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'main.arch': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Arch', 'db_table': "'arches'"}, - 'agnostic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'main.package': { - 'Meta': {'ordering': "('pkgname',)", 'unique_together': "(('pkgname', 'repo', 'arch'),)", 'object_name': 'Package', 'db_table': "'packages'"}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Arch']"}), - 'build_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), - 'compressed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'epoch': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), - 'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'files_last_update': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'flag_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'installed_size': ('main.fields.PositiveBigIntegerField', [], {}), - 'last_update': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'packager': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), - 'packager_str': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pgp_signature': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), - 'pkgdesc': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgrel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgver': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'packages'", 'on_delete': 'models.PROTECT', 'to': "orm['main.Repo']"}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}) - }, - 'main.repo': { - 'Meta': {'ordering': "('name',)", 'object_name': 'Repo', 'db_table': "'repos'"}, - 'bugs_category': ('django.db.models.fields.SmallIntegerField', [], {'default': '2'}), - 'bugs_project': ('django.db.models.fields.SmallIntegerField', [], {'default': '1'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), - 'staging': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'svn_root': ('django.db.models.fields.CharField', [], {'max_length': '64'}), - 'testing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) - }, - 'todolists.todolist': { - 'Meta': {'object_name': 'Todolist'}, - 'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True'}), - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_todolists'", 'on_delete': 'models.PROTECT', 'to': "orm['auth.User']"}), - 'description': ('django.db.models.fields.TextField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'old_id': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True'}), - 'raw': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}) - }, - 'todolists.todolistpackage': { - 'Meta': {'unique_together': "(('todolist', 'pkgname', 'arch'),)", 'object_name': 'TodolistPackage'}, - 'arch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Arch']"}), - 'comments': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'created': ('django.db.models.fields.DateTimeField', [], {}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_modified': ('django.db.models.fields.DateTimeField', [], {}), - 'pkg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Package']", 'null': 'True', 'on_delete': 'models.SET_NULL'}), - 'pkgbase': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'pkgname': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'removed': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'repo': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['main.Repo']"}), - 'status': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}), - 'todolist': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['todolists.Todolist']"}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'on_delete': 'models.SET_NULL'}) - } - } - - complete_apps = ['todolists'] - symmetrical = True @@ -18,7 +18,6 @@ our_sitemaps = { 'releases': sitemaps.ReleasesSitemap, } -admin.autodiscover() urlpatterns = [] # Public pages @@ -105,7 +104,7 @@ legacy_urls = ( ('^todolists/$', '/todo/'), ('^docs/en/guide/install/arch-install-guide.html', - 'https://wiki.parabolagnulinux.org/Installation_Guide'), + 'https://wiki.parabolagnulinux.org/Installation_guide'), ('^docs/en/', 'https://wiki.parabolagnulinux.org/'), ('^docs/', diff --git a/visualize/models.py b/visualize/models.py deleted file mode 100644 index e69de29b..00000000 --- a/visualize/models.py +++ /dev/null diff --git a/visualize/static/d3-3.0.6.min.js b/visualize/static/d3-3.0.6.min.js index 01f88aa0..0a238da1 100644 --- a/visualize/static/d3-3.0.6.min.js +++ b/visualize/static/d3-3.0.6.min.js @@ -33,249 +33,248 @@ */ d3=function(){function rb(a){return a.target}function sb(a){return a.source}function Je(a){for(var b=-1,c=a.length,d=[];++b<c;)d.push(a[b]);return d}function ba(){}function V(a){return a}function za(){return!0}function F(a){return"function"===typeof a?a:function(){return a}}function Ke(a,b,c){return function(){var d=c.apply(b,arguments);return arguments.length?a:d}}function tb(a){return null!=a&&!isNaN(a)}function Le(a){return a.length}function Me(a){return 1===a.length?function(b,c){a(null==b?c: null)}:a}function Ne(a){return a.responseText}function Oe(a){return JSON.parse(a.responseText)}function Pe(a){var b=W.createRange();b.selectNode(W.body);return b.createContextualFragment(a.responseText)}function Qe(a){return a.responseXML}function ub(){}function zc(a){function b(){for(var b=c,d=-1,h=b.length,k;++d<h;)(k=b[d].on)&&k.apply(this,arguments);return a}var c=[],d=new ba;b.on=function(b,f){var h=d.get(b),k;if(2>arguments.length)return h&&h.on;h&&(h.on=null,c=c.slice(0,k=c.indexOf(h)).concat(c.slice(k+ -1)),d.remove(b));f&&c.push(d.set(b,{on:f}));return a};return b}function vb(a,b){return b-(a?Math.ceil(Math.log(a)/Math.LN10):1)}function Re(a){return a+""}function Se(a){return function(b){return 0>=b?0:1<=b?1:a(b)}}function Ac(a){return function(b){return 1-a(1-b)}}function Bc(a){return function(b){return 0.5*(0.5>b?a(2*b):2-a(2-2*b))}}function Te(a){return a*a}function Ue(a){return a*a*a}function Ve(a){return 1-Math.cos(a*u/2)}function We(a){return Math.pow(2,10*(a-1))}function Xe(a){return 1-Math.sqrt(1- -a*a)}function Ye(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+0.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+0.9375:7.5625*(a-=2.625/2.75)*a+0.984375}function X(){g.event.stopPropagation();g.event.preventDefault()}function Cc(){for(var a=g.event,b;b=a.sourceEvent;)a=b;return a}function wb(a){for(var b=new ub,c=0,d=arguments.length;++c<d;)b[arguments[c]]=zc(b);b.of=function(c,d){return function(h){try{var k=h.sourceEvent=g.event;h.target=a;g.event=h;b[h.type].apply(c,d)}finally{g.event=k}}}; +1)),d.remove(b));f&&c.push(d.set(b,{on:f}));return a};return b}function vb(a,b){return b-(a?Math.ceil(Math.log(a)/Math.LN10):1)}function Re(a){return a+""}function Se(a){return function(b){return 0>=b?0:1<=b?1:a(b)}}function Ac(a){return function(b){return 1-a(1-b)}}function Bc(a){return function(b){return.5*(.5>b?a(2*b):2-a(2-2*b))}}function Te(a){return a*a}function Ue(a){return a*a*a}function Ve(a){return 1-Math.cos(a*u/2)}function We(a){return Math.pow(2,10*(a-1))}function Xe(a){return 1-Math.sqrt(1- +a*a)}function Ye(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}function X(){g.event.stopPropagation();g.event.preventDefault()}function Cc(){for(var a=g.event,b;b=a.sourceEvent;)a=b;return a}function wb(a){for(var b=new ub,c=0,d=arguments.length;++c<d;)b[arguments[c]]=zc(b);b.of=function(c,d){return function(h){try{var k=h.sourceEvent=g.event;h.target=a;g.event=h;b[h.type].apply(c,d)}finally{g.event=k}}}; return b}function Dc(a){var b=[a.a,a.b],c=[a.c,a.d],d=Ec(b),e=b[0]*c[0]+b[1]*c[1],f=-e;c[0]+=f*b[0];c[1]+=f*b[1];f=Ec(c)||0;b[0]*c[1]<c[0]*b[1]&&(b[0]*=-1,b[1]*=-1,d*=-1,e*=-1);this.rotate=(d?Math.atan2(b[1],b[0]):Math.atan2(-c[0],c[1]))*O;this.translate=[a.e,a.f];this.scale=[d,f];this.skew=f?Math.atan2(e,f)*O:0}function Ec(a){var b=Math.sqrt(a[0]*a[0]+a[1]*a[1]);b&&(a[0]/=b,a[1]/=b);return b}function xb(a){return"transform"==a?g.interpolateTransform:g.interpolate}function Ze(a,b){b=b-(a=+a)?1/(b- a):0;return function(c){return(c-a)*b}}function $e(a,b){b=b-(a=+a)?1/(b-a):0;return function(c){return Math.max(0,Math.min(1,(c-a)*b))}}function qa(){}function ca(a,b,c){return new yb(a,b,c)}function yb(a,b,c){this.r=a;this.g=b;this.b=c}function ra(a){return 16>a?"0"+Math.max(0,a).toString(16):Math.min(255,a).toString(16)}function zb(a,b,c){var d=0,e=0,f=0,h,k;if(h=/([a-z]+)\((.*)\)/i.exec(a))switch(k=h[2].split(","),h[1]){case "hsl":return c(parseFloat(k[0]),parseFloat(k[1])/100,parseFloat(k[2])/ -100);case "rgb":return b(Ab(k[0]),Ab(k[1]),Ab(k[2]))}if(c=Ka.get(a))return b(c.r,c.g,c.b);null!=a&&"#"===a.charAt(0)&&(4===a.length?(d=a.charAt(1),d+=d,e=a.charAt(2),e+=e,f=a.charAt(3),f+=f):7===a.length&&(d=a.substring(1,3),e=a.substring(3,5),f=a.substring(5,7)),d=parseInt(d,16),e=parseInt(e,16),f=parseInt(f,16));return b(d,e,f)}function Fc(a,b,c){var d=Math.min(a/=255,b/=255,c/=255),e=Math.max(a,b,c),f=e-d,h=(e+d)/2;f?(d=0.5>h?f/(e+d):f/(2-e-d),a=60*(a==e?(b-c)/f+(b<c?6:0):b==e?(c-a)/f+2:(a-b)/ -f+4)):d=a=0;return sa(a,d,h)}function Gc(a,b,c){a=Bb(a);b=Bb(b);c=Bb(c);var d=Cb((0.4124564*a+0.3575761*b+0.1804375*c)/Hc),e=Cb((0.2126729*a+0.7151522*b+0.072175*c)/Ic);a=Cb((0.0193339*a+0.119192*b+0.9503041*c)/Jc);return ta(116*e-16,500*(d-e),200*(e-a))}function Bb(a){return 0.04045>=(a/=255)?a/12.92:Math.pow((a+0.055)/1.055,2.4)}function Ab(a){var b=parseFloat(a);return"%"===a.charAt(a.length-1)?Math.round(2.55*b):b}function sa(a,b,c){return new Db(a,b,c)}function Db(a,b,c){this.h=a;this.s=b;this.l= -c}function La(a,b,c){function d(a){360<a?a-=360:0>a&&(a+=360);return 60>a?e+(f-e)*a/60:180>a?f:240>a?e+(f-e)*(240-a)/60:e}var e,f;a%=360;0>a&&(a+=360);b=0>b?0:1<b?1:b;c=0>c?0:1<c?1:c;f=0.5>=c?c*(1+b):c+b-c*b;e=2*c-f;return ca(Math.round(255*d(a+120)),Math.round(255*d(a)),Math.round(255*d(a-120)))}function Aa(a,b,c){return new Ma(a,b,c)}function Ma(a,b,c){this.h=a;this.c=b;this.l=c}function Eb(a,b,c){return ta(c,Math.cos(a*=w)*b,Math.sin(a)*b)}function ta(a,b,c){return new Na(a,b,c)}function Na(a, -b,c){this.l=a;this.a=b;this.b=c}function Kc(a,b,c){a=(a+16)/116;c=a-c/200;b=Fb(a+b/500)*Hc;a=Fb(a)*Ic;c=Fb(c)*Jc;return ca(Gb(3.2404542*b-1.5371385*a-0.4985314*c),Gb(-0.969266*b+1.8760108*a+0.041556*c),Gb(0.0556434*b-0.2040259*a+1.0572252*c))}function Lc(a,b,c){return Aa(Math.atan2(c,b)/u*180,Math.sqrt(b*b+c*c),a)}function Fb(a){return 0.206893034<a?a*a*a:(a-4/29)/7.787037}function Cb(a){return 0.008856<a?Math.pow(a,1/3):7.787037*a+4/29}function Gb(a){return Math.round(255*(0.00304>=a?12.92*a:1.055* -Math.pow(a,1/2.4)-0.055))}function da(a){Hb(a,C);return a}function Mc(a){return function(){return Oa(a,this)}}function Nc(a){return function(){return Oc(a,this)}}function Pc(a,b){function c(){this.removeAttribute(a)}function d(){this.removeAttributeNS(a.space,a.local)}function e(){this.setAttribute(a,b)}function f(){this.setAttributeNS(a.space,a.local,b)}function h(){var c=b.apply(this,arguments);null==c?this.removeAttribute(a):this.setAttribute(a,c)}function k(){var c=b.apply(this,arguments);null== -c?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space,a.local,c)}a=g.ns.qualify(a);return null==b?a.local?d:c:"function"===typeof b?a.local?k:h:a.local?f:e}function Qc(a){return RegExp("(?:^|\\s+)"+g.requote(a)+"(?:\\s+|$)","g")}function Rc(a,b){function c(){for(var c=-1;++c<e;)a[c](this,b)}function d(){for(var c=-1,d=b.apply(this,arguments);++c<e;)a[c](this,d)}a=a.trim().split(/\s+/).map(af);var e=a.length;return"function"===typeof b?d:c}function af(a){var b=Qc(a);return function(c, -d){if(e=c.classList)return d?e.add(a):e.remove(a);var e=c.className,f=null!=e.baseVal,h=f?e.baseVal:e;d?(b.lastIndex=0,b.test(h)||(h=(h+" "+a).trim().replace(/\s+/g," "),f?e.baseVal=h:c.className=h)):h&&(h=h.replace(b," ").trim().replace(/\s+/g," "),f?e.baseVal=h:c.className=h)}}function Sc(a,b,c){function d(){this.style.removeProperty(a)}function e(){this.style.setProperty(a,b,c)}function f(){var e=b.apply(this,arguments);null==e?this.style.removeProperty(a):this.style.setProperty(a,e,c)}return null== -b?d:"function"===typeof b?f:e}function Tc(a,b){function c(){delete this[a]}function d(){this[a]=b}function e(){var c=b.apply(this,arguments);null==c?delete this[a]:this[a]=c}return null==b?c:"function"===typeof b?e:d}function Uc(a){return function(){return Vc(this,a)}}function bf(a){arguments.length||(a=g.ascending);return function(b,c){return!b-!c||a(b.__data__,c.__data__)}}function Wc(a,b,c){function d(){var b=this[f];b&&(this.removeEventListener(a,b,b.$),delete this[f])}function e(){function e(a){var c= -g.event;g.event=a;m[0]=h.__data__;try{b.apply(h,m)}finally{g.event=c}}var h=this,m=ha(arguments);d.call(this);this.addEventListener(a,this[f]=e,e.$=c);e._=b}var f="__on"+a,h=a.indexOf(".");0<h&&(a=a.substring(0,h));return b?e:d}function ia(a,b){for(var c=0,d=a.length;c<d;c++)for(var e=a[c],f=0,h=e.length,k;f<h;f++)(k=e[f])&&b(k,f,c);return a}function Xc(a){Hb(a,ma);return a}function Ba(a,b){Hb(a,M);a.id=b;return a}function Pa(a,b,c,d){var e=a.__transition__||(a.__transition__={active:0,count:0}), -f=e[c];if(!f){var h=d.time,f=e[c]={tween:new ba,event:g.dispatch("start","end"),time:h,ease:d.ease,delay:d.delay,duration:d.duration};++e.count;g.timer(function(d){function l(d){if(e.active>c)return n();e.active=c;r.start.call(a,p,b);f.tween.forEach(function(c,e){(e=e.call(a,p,b))&&v.push(e)});m(d)||g.timer(m,0,h);return 1}function m(d){if(e.active!==c)return n();d=(d-s)/t;for(var f=q(d),h=v.length;0<h;)v[--h].call(a,f);if(1<=d)return n(),r.end.call(a,p,b),1}function n(){--e.count?delete e[c]:delete a.__transition__; -return 1}var p=a.__data__,q=f.ease,r=f.event,s=f.delay,t=f.duration,v=[];return s<=d?l(d):g.timer(l,s,h),1},0,h);return f}}function cf(a){null==a&&(a="");return function(){this.textContent=a}}function Ib(a,b,c,d){var e=a.id;return ia(a,"function"===typeof c?function(a,h,k){a.__transition__[e].tween.set(b,d(c.call(a,a.__data__,h,k)))}:(c=d(c),function(a){a.__transition__[e].tween.set(b,c)}))}function Jb(){for(var a,b=Date.now(),c=ua;c;)a=b-c.then,a>=c.delay&&(c.flush=c.callback(a)),c=c.next;a=Yc()- -b;24<a?(isFinite(a)&&(clearTimeout(Qa),Qa=setTimeout(Jb,a)),Ra=0):(Ra=1,Zc(Jb))}function Yc(){for(var a=null,b=ua,c=Infinity;b;)b.flush?(delete Kb[b.callback.id],b=a?a.next=b.next:ua=b.next):(c=Math.min(c,b.then+b.delay),b=(a=b).next);return c}function $c(a,b){var c=a.ownerSVGElement||a;if(c.createSVGPoint){var d=c.createSVGPoint();if(0>Lb&&(P.scrollX||P.scrollY)){var c=g.select(W.body).append("svg").style("position","absolute").style("top",0).style("left",0),e=c[0][0].getScreenCTM();Lb=!(e.f||e.e); -c.remove()}Lb?(d.x=b.pageX,d.y=b.pageY):(d.x=b.clientX,d.y=b.clientY);d=d.matrixTransform(a.getScreenCTM().inverse());return[d.x,d.y]}c=a.getBoundingClientRect();return[b.clientX-c.left-a.clientLeft,b.clientY-c.top-a.clientTop]}function T(){}function Ca(a){var b=a[0];a=a[a.length-1];return b<a?[b,a]:[a,b]}function Sa(a){return a.rangeExtent?a.rangeExtent():Ca(a.range())}function Ta(a,b){var c=0,d=a.length-1,e=a[c],f=a[d],h;f<e&&(h=c,c=d,d=h,h=e,e=f,f=h);if(b=b(f-e))a[c]=b.floor(e),a[d]=b.ceil(f); -return a}function df(){return Math}function ad(a,b,c,d){function e(){var e=2<Math.min(a.length,b.length)?ef:ff,m=d?$e:Ze;h=e(a,b,m,c);k=e(b,a,m,g.interpolate);return f}function f(a){return h(a)}var h,k;f.invert=function(a){return k(a)};f.domain=function(b){if(!arguments.length)return a;a=b.map(Number);return e()};f.range=function(a){if(!arguments.length)return b;b=a;return e()};f.rangeRound=function(a){return f.range(a).interpolate(g.interpolateRound)};f.clamp=function(a){if(!arguments.length)return d; -d=a;return e()};f.interpolate=function(a){if(!arguments.length)return c;c=a;return e()};f.ticks=function(b){return Mb(a,b)};f.tickFormat=function(b){return Nb(a,b)};f.nice=function(){Ta(a,bd);return e()};f.copy=function(){return ad(a,b,c,d)};return e()}function cd(a,b){return g.rebind(a,b,"range","rangeRound","interpolate","clamp")}function bd(a){return(a=Math.pow(10,Math.round(Math.log(a)/Math.LN10)-1))&&{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}}function dd(a, -b){var c=Ca(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/b)/Math.LN10)),d=b/d*e;0.15>=d?e*=10:0.35>=d?e*=5:0.75>=d&&(e*=2);c[0]=Math.ceil(c[0]/e)*e;c[1]=Math.floor(c[1]/e)*e+0.5*e;c[2]=e;return c}function Mb(a,b){return g.range.apply(g,dd(a,b))}function Nb(a,b){return g.format(",."+Math.max(0,-Math.floor(Math.log(dd(a,b)[2])/Math.LN10+0.01))+"f")}function ff(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function ef(a,b,c,d){var e=[],f=[],h=0,k=Math.min(a.length, -b.length)-1;a[k]<a[0]&&(a=a.slice().reverse(),b=b.slice().reverse());for(;++h<=k;)e.push(c(a[h-1],a[h])),f.push(d(b[h-1],b[h]));return function(b){var c=g.bisect(a,b,1,k)-1;return f[c](e[c](b))}}function ed(a,b){function c(c){return a(b(c))}var d=b.pow;c.invert=function(b){return d(a.invert(b))};c.domain=function(e){if(!arguments.length)return a.domain().map(d);b=0>e[0]?Ua:Ob;d=b.pow;a.domain(e.map(b));return c};c.nice=function(){a.domain(Ta(a.domain(),df));return c};c.ticks=function(){var c=Ca(a.domain()), -f=[];if(c.every(isFinite)){var h=Math.floor(c[0]),k=Math.ceil(c[1]),l=d(c[0]),c=d(c[1]);if(b===Ua)for(f.push(d(h));h++<k;)for(var m=9;0<m;m--)f.push(d(h)*m);else{for(;h<k;h++)for(m=1;10>m;m++)f.push(d(h)*m);f.push(d(h))}for(h=0;f[h]<l;h++);for(k=f.length;f[k-1]>c;k--);f=f.slice(h,k)}return f};c.tickFormat=function(a,f){2>arguments.length&&(f=gf);if(!arguments.length)return f;var h=Math.max(0.1,a/c.ticks().length),k=b===Ua?(l=-1E-12,Math.floor):(l=1E-12,Math.ceil),l;return function(a){return a/d(k(b(a)+ -l))<=h?f(a):""}};c.copy=function(){return ed(a.copy(),b)};return cd(c,a)}function Ob(a){return Math.log(0>a?0:a)/Math.LN10}function Ua(a){return-Math.log(0<a?0:-a)/Math.LN10}function fd(a,b){function c(b){return a(d(b))}var d=Va(b),e=Va(1/b);c.invert=function(b){return e(a.invert(b))};c.domain=function(b){if(!arguments.length)return a.domain().map(e);a.domain(b.map(d));return c};c.ticks=function(a){return Mb(c.domain(),a)};c.tickFormat=function(a){return Nb(c.domain(),a)};c.nice=function(){return c.domain(Ta(c.domain(), -bd))};c.exponent=function(a){if(!arguments.length)return b;var h=c.domain();d=Va(b=a);e=Va(1/b);return c.domain(h)};c.copy=function(){return fd(a.copy(),b)};return cd(c,a)}function Va(a){return function(b){return 0>b?-Math.pow(-b,a):Math.pow(b,a)}}function gd(a,b){function c(b){return f[((e.get(b)||e.set(b,a.push(b)))-1)%f.length]}function d(b,c){return g.range(a.length).map(function(a){return b+c*a})}var e,f,h;c.domain=function(d){if(!arguments.length)return a;a=[];e=new ba;for(var f=-1,h=d.length, -g;++f<h;)e.has(g=d[f])||e.set(g,a.push(g));return c[b.t].apply(c,b.a)};c.range=function(a){if(!arguments.length)return f;f=a;h=0;b={t:"range",a:arguments};return c};c.rangePoints=function(e,l){2>arguments.length&&(l=0);var m=e[0],g=e[1],p=(g-m)/(Math.max(1,a.length-1)+l);f=d(2>a.length?(m+g)/2:m+p*l/2,p);h=0;b={t:"rangePoints",a:arguments};return c};c.rangeBands=function(e,l,m){2>arguments.length&&(l=0);3>arguments.length&&(m=l);var g=e[1]<e[0],p=e[g-0],q=(e[1-g]-p)/(a.length-l+2*m);f=d(p+q*m,q); -g&&f.reverse();h=q*(1-l);b={t:"rangeBands",a:arguments};return c};c.rangeRoundBands=function(e,l,m){2>arguments.length&&(l=0);3>arguments.length&&(m=l);var g=e[1]<e[0],p=e[g-0],q=e[1-g],r=Math.floor((q-p)/(a.length-l+2*m));f=d(p+Math.round((q-p-(a.length-l)*r)/2),r);g&&f.reverse();h=Math.round(r*(1-l));b={t:"rangeRoundBands",a:arguments};return c};c.rangeBand=function(){return h};c.rangeExtent=function(){return Ca(b.a[0])};c.copy=function(){return gd(a,b)};return c.domain(a)}function hd(a,b){function c(){var c= -0,h=b.length;for(e=[];++c<h;)e[c-1]=g.quantile(a,c/h);return d}function d(a){return isNaN(a=+a)?NaN:b[g.bisect(e,a)]}var e;d.domain=function(b){if(!arguments.length)return a;a=b.filter(function(a){return!isNaN(a)}).sort(g.ascending);return c()};d.range=function(a){if(!arguments.length)return b;b=a;return c()};d.quantiles=function(){return e};d.copy=function(){return hd(a,b)};return c()}function id(a,b,c){function d(b){return c[Math.max(0,Math.min(h,Math.floor(f*(b-a))))]}function e(){f=c.length/(b- -a);h=c.length-1;return d}var f,h;d.domain=function(c){if(!arguments.length)return[a,b];a=+c[0];b=+c[c.length-1];return e()};d.range=function(a){if(!arguments.length)return c;c=a;return e()};d.copy=function(){return id(a,b,c)};return e()}function jd(a,b){function c(c){return b[g.bisect(a,c)]}c.domain=function(b){if(!arguments.length)return a;a=b;return c};c.range=function(a){if(!arguments.length)return b;b=a;return c};c.copy=function(){return jd(a,b)};return c}function kd(a){function b(a){return+a} -b.invert=b;b.domain=b.range=function(c){if(!arguments.length)return a;a=c.map(b);return b};b.ticks=function(b){return Mb(a,b)};b.tickFormat=function(b){return Nb(a,b)};b.copy=function(){return kd(a)};return b}function hf(a){return a.innerRadius}function jf(a){return a.outerRadius}function ld(a){return a.startAngle}function md(a){return a.endAngle}function nd(a){function b(b){function h(){g.push("M",f(a(p),k))}for(var g=[],p=[],q=-1,r=b.length,s,t=F(c),v=F(d);++q<r;)e.call(this,s=b[q],q)?p.push([+t.call(this, -s,q),+v.call(this,s,q)]):p.length&&(h(),p=[]);p.length&&h();return g.length?g.join(""):null}var c=Pb,d=od,e=za,f=U,h=f.key,k=0.7;b.x=function(a){if(!arguments.length)return c;c=a;return b};b.y=function(a){if(!arguments.length)return d;d=a;return b};b.defined=function(a){if(!arguments.length)return e;e=a;return b};b.interpolate=function(a){if(!arguments.length)return h;h="function"===typeof a?f=a:(f=Qb.get(a)||U).key;return b};b.tension=function(a){if(!arguments.length)return k;k=a;return b};return b} -function Pb(a){return a[0]}function od(a){return a[1]}function U(a){return a.join("L")}function Rb(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b<c;)e.push("V",(d=a[b])[1],"H",d[0]);return e.join("")}function Sb(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b<c;)e.push("H",(d=a[b])[0],"V",d[1]);return e.join("")}function Wa(a,b){if(1>b.length||a.length!=b.length&&a.length!=b.length+2)return U(a);var c=a.length!=b.length,d="",e=a[0],f=a[1],h=b[0],k=h,l=1;c&&(d+="Q"+(f[0]-2*h[0]/3)+","+ -(f[1]-2*h[1]/3)+","+f[0]+","+f[1],e=a[1],l=2);if(1<b.length)for(k=b[1],f=a[l],l++,d+="C"+(e[0]+h[0])+","+(e[1]+h[1])+","+(f[0]-k[0])+","+(f[1]-k[1])+","+f[0]+","+f[1],e=2;e<b.length;e++,l++)f=a[l],k=b[e],d+="S"+(f[0]-k[0])+","+(f[1]-k[1])+","+f[0]+","+f[1];c&&(c=a[l],d+="Q"+(f[0]+2*k[0]/3)+","+(f[1]+2*k[1]/3)+","+c[0]+","+c[1]);return d}function Tb(a,b){for(var c=[],d=(1-b)/2,e,f=a[0],h=a[1],k=1,l=a.length;++k<l;)e=f,f=h,h=a[k],c.push([d*(h[0]-e[0]),d*(h[1]-e[1])]);return c}function pd(a){if(3>a.length)return U(a); -var b=1,c=a.length,d=a[0],e=d[0],f=d[1],h=[e,e,e,(d=a[1])[0]],k=[f,f,f,d[1]],e=[e,",",f];for(Da(e,h,k);++b<c;)d=a[b],h.shift(),h.push(d[0]),k.shift(),k.push(d[1]),Da(e,h,k);for(b=-1;2>++b;)h.shift(),h.push(d[0]),k.shift(),k.push(d[1]),Da(e,h,k);return e.join("")}function aa(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}function Da(a,b,c){a.push("C",aa(qd,b),",",aa(qd,c),",",aa(rd,b),",",aa(rd,c),",",aa(va,b),",",aa(va,c))}function Ub(a,b){return(b[1]-a[1])/(b[0]-a[0])}function sd(a){for(var b, -c=-1,d=a.length,e,f;++c<d;)b=a[c],e=b[0],f=b[1]+na,b[0]=e*Math.cos(f),b[1]=e*Math.sin(f);return a}function td(a){function b(b){function l(){s.push("M",k(a(v),p),g,m(a(t.reverse()),p),"Z")}for(var s=[],t=[],v=[],x=-1,z=b.length,y,G=F(c),H=F(e),D=c===d?function(){return E}:F(d),B=e===f?function(){return wa}:F(f),E,wa;++x<z;)h.call(this,y=b[x],x)?(t.push([E=+G.call(this,y,x),wa=+H.call(this,y,x)]),v.push([+D.call(this,y,x),+B.call(this,y,x)])):t.length&&(l(),t=[],v=[]);t.length&&l();return s.length? -s.join(""):null}var c=Pb,d=Pb,e=0,f=od,h=za,k=U,l=k.key,m=k,g="L",p=0.7;b.x=function(a){if(!arguments.length)return d;c=d=a;return b};b.x0=function(a){if(!arguments.length)return c;c=a;return b};b.x1=function(a){if(!arguments.length)return d;d=a;return b};b.y=function(a){if(!arguments.length)return f;e=f=a;return b};b.y0=function(a){if(!arguments.length)return e;e=a;return b};b.y1=function(a){if(!arguments.length)return f;f=a;return b};b.defined=function(a){if(!arguments.length)return h;h=a;return b}; -b.interpolate=function(a){if(!arguments.length)return l;l="function"===typeof a?k=a:(k=Qb.get(a)||U).key;m=k.reverse||k;g=k.closed?"M":"L";return b};b.tension=function(a){if(!arguments.length)return p;p=a;return b};return b}function kf(a){return a.radius}function ud(a){return[a.x,a.y]}function lf(a){return function(){var b=a.apply(this,arguments),c=b[0],b=b[1]+na;return[c*Math.cos(b),c*Math.sin(b)]}}function mf(){return 64}function nf(){return"circle"}function vd(a){a=Math.sqrt(a/u);return"M0,"+a+ -"A"+a+","+a+" 0 1,1 0,"+-a+"A"+a+","+a+" 0 1,1 0,"+a+"Z"}function wd(a,b){a.attr("transform",function(a){return"translate("+b(a)+",0)"})}function xd(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function of(a,b,c){d=[];if(c&&1<b.length){a=Ca(a.domain());for(var d,e=-1,f=b.length,h=(b[1]-b[0])/++c,k,l;++e<f;)for(k=c;0<--k;)(l=+b[e]-k*h)>=a[0]&&d.push(l);--e;for(k=0;++k<c&&(l=+b[e]+k*h)<a[1];)d.push(l)}return d}function pf(a){var b=a.source;a=a.target;var c;var d=a;if(b===d)c= -b;else{c=yd(b);for(var d=yd(d),e=c.pop(),f=d.pop(),h=null;e===f;)h=e,e=c.pop(),f=d.pop();c=h}for(d=[b];b!==c;)b=b.parent,d.push(b);for(b=d.length;a!==c;)d.splice(b,0,a),a=a.parent;return d}function yd(a){for(var b=[],c=a.parent;null!=c;)b.push(a),a=c,c=c.parent;b.push(a);return b}function qf(a){a.fixed|=2}function rf(a){a.fixed&=-7}function sf(a){a.fixed|=4;a.px=a.x;a.py=a.y}function tf(a){a.fixed&=-5}function zd(a,b,c){var d=0,e=0;a.charge=0;if(!a.leaf)for(var f=a.nodes,h=f.length,k=-1,l;++k<h;)l= -f[k],null!=l&&(zd(l,b,c),a.charge+=l.charge,d+=l.charge*l.cx,e+=l.charge*l.cy);a.point&&(a.leaf||(a.point.x+=Math.random()-0.5,a.point.y+=Math.random()-0.5),b*=c[a.point.index],a.charge+=a.pointCharge=b,d+=b*a.point.x,e+=b*a.point.y);a.cx=d/a.charge;a.cy=e/a.charge}function uf(a){return a.x}function vf(a){return a.y}function wf(a,b,c){a.y0=b;a.y=c}function Vb(a){return g.range(a.length)}function Wb(a){var b=-1;a=a[0].length;for(var c=[];++b<a;)c[b]=0;return c}function xf(a){for(var b=1,c=0,d=a[0][1], -e,f=a.length;b<f;++b)(e=a[b][1])>d&&(c=b,d=e);return c}function yf(a){return a.reduce(zf,0)}function zf(a,b){return a+b[1]}function Af(a,b){return Ad(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function Ad(a,b){for(var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];++c<=b;)f[c]=e*c+d;return f}function Bf(a){return[g.min(a),g.max(a)]}function Ea(a,b){g.rebind(a,b,"sort","children","value");a.nodes=a;a.links=Cf;return a}function Df(a){return a.children}function Ef(a){return a.value}function Ff(a,b){return b.value- -a.value}function Cf(a){return g.merge(a.map(function(a){return(a.children||[]).map(function(c){return{source:a,target:c}})}))}function Gf(a,b){return a.value-b.value}function Xb(a,b){var c=a._pack_next;a._pack_next=b;b._pack_prev=a;b._pack_next=c;c._pack_prev=b}function Bd(a,b){a._pack_next=b;b._pack_prev=a}function Cd(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return 0.001<e*e-c*c-d*d}function Dd(a){function b(a){d=Math.min(a.x-a.r,d);e=Math.max(a.x+a.r,e);f=Math.min(a.y-a.r,f);h=Math.max(a.y+a.r,h)} -if((c=a.children)&&(r=c.length)){var c,d=Infinity,e=-Infinity,f=Infinity,h=-Infinity,k,l,m,g,p,q,r;c.forEach(Hf);k=c[0];k.x=-k.r;k.y=0;b(k);if(1<r&&(l=c[1],l.x=l.r,l.y=0,b(l),2<r))for(m=c[2],Ed(k,l,m),b(m),Xb(k,m),k._pack_prev=m,Xb(m,l),l=k._pack_next,g=3;g<r;g++){Ed(k,l,m=c[g]);var s=0,t=1,v=1;for(p=l._pack_next;p!==l;p=p._pack_next,t++)if(Cd(p,m)){s=1;break}if(1==s)for(q=k._pack_prev;q!==p._pack_prev&&!Cd(q,m);q=q._pack_prev,v++);s?(t<v||t==v&&l.r<k.r?Bd(k,l=p):Bd(k=q,l),g--):(Xb(k,m),l=m,b(m))}k= -(d+e)/2;l=(f+h)/2;for(g=p=0;g<r;g++)m=c[g],m.x-=k,m.y-=l,p=Math.max(p,m.r+Math.sqrt(m.x*m.x+m.y*m.y));a.r=p;c.forEach(If)}}function Hf(a){a._pack_next=a._pack_prev=a}function If(a){delete a._pack_next;delete a._pack_prev}function Fd(a,b,c,d){var e=a.children;a.x=b+=d*a.x;a.y=c+=d*a.y;a.r*=d;if(e){a=-1;for(var f=e.length;++a<f;)Fd(e[a],b,c,d)}}function Ed(a,b,c){var d=a.r+c.r,e=b.x-a.x,f=b.y-a.y;if(d&&(e||f)){var h=b.r+c.r,k=e*e+f*f,h=h*h,d=d*d;b=0.5+(d-h)/(2*k);h=Math.sqrt(Math.max(0,2*h*(d+k)-(d-= -k)*d-h*h))/(2*k);c.x=a.x+b*e+h*f;c.y=a.y+b*f-h*e}else c.x=a.x+d,c.y=a.y}function Jf(a){return 1+g.max(a,function(a){return a.y})}function Kf(a){return a.reduce(function(a,c){return a+c.x},0)/a.length}function Gd(a){var b=a.children;return b&&b.length?Gd(b[0]):a}function Hd(a){var b=a.children,c;return b&&(c=b.length)?Hd(b[c-1]):a}function Id(a,b){return a.parent==b.parent?1:2}function Yb(a){var b=a.children;return b&&b.length?b[0]:a._tree.thread}function Zb(a){var b=a.children,c;return b&&(c=b.length)? -b[c-1]:a._tree.thread}function Xa(a,b){var c=a.children;if(c&&(e=c.length))for(var d,e,f=-1;++f<e;)0<b(d=Xa(c[f],b),a)&&(a=d);return a}function Lf(a,b){return a.x-b.x}function Mf(a,b){return b.x-a.x}function Nf(a,b){return a.depth-b.depth}function ea(a,b){function c(a,e){var f=a.children;if(f&&(g=f.length))for(var h,k=null,l=-1,g;++l<g;)h=f[l],c(h,k),k=h;b(a,e)}c(a,null)}function $b(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function Jd(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2]; -0>e&&(c+=e/2,e=0);0>f&&(d+=f/2,f=0);return{x:c,y:d,dx:e,dy:f}}function Kd(a,b){function c(a,c){return g.xhr(a,b,c).response(d)}function d(a){return c.parse(a.responseText)}function e(b){return b.map(f).join(a)}function f(a){return h.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}var h=RegExp('["'+a+"\n]"),k=a.charCodeAt(0);c.parse=function(a){var b;return c.parseRows(a,function(a){if(b)return b(a);b=new Function("d","return {"+a.map(function(a,b){return JSON.stringify(a)+": d["+b+"]"}).join(",")+"}")})}; -c.parseRows=function(a,b){function c(){if(g>=h)return d;if(z)return z=!1,e;var b=g;if(34===a.charCodeAt(b)){for(var f=b;f++<h;)if(34===a.charCodeAt(f)){if(34!==a.charCodeAt(f+1))break;++f}g=f+2;var m=a.charCodeAt(f+1);13===m?(z=!0,10===a.charCodeAt(f+2)&&++g):10===m&&(z=!0);return a.substring(b+1,f).replace(/""/g,'"')}for(;g<h;){m=a.charCodeAt(g++);f=1;if(10===m)z=!0;else if(13===m)z=!0,10===a.charCodeAt(g)&&(++g,++f);else if(m!==k)continue;return a.substring(b,g-f)}return a.substring(b)}for(var e= -{},d={},f=[],h=a.length,g=0,v=0,x,z;(x=c())!==d;){for(var y=[];x!==e&&x!==d;)y.push(x),x=c();b&&!(y=b(y,v++))||f.push(y)}return f};c.format=function(a){return a.map(e).join("\n")};return c}function Ya(a,b){if(Ld.hasOwnProperty(a.type))Ld[a.type](a,b)}function ac(a,b,c){var d=-1;c=a.length-c;var e;for(b.lineStart();++d<c;)e=a[d],b.point(e[0],e[1]);b.lineEnd()}function Md(a,b){var c=-1,d=a.length;for(b.polygonStart();++c<d;)ac(a[c],b,1);b.polygonEnd()}function Nd(a){return[Math.atan2(a[1],a[0]),Math.asin(Math.max(-1, -Math.min(1,a[2])))]}function bc(a,b){return Math.abs(a[0]-b[0])<A&&Math.abs(a[1]-b[1])<A}function Za(a){var b=a[0];a=a[1];var c=Math.cos(a);return[c*Math.cos(b),c*Math.sin(b),Math.sin(a)]}function $a(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function Od(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function cc(a,b){return[a[0]*b,a[1]*b,a[2]*b]}function Pd(a){function b(b){function d(c,e){c=a(c,e);b.point(c[0],c[1])}function k(){q=NaN;x.point=l;b.lineStart()}function l(d, -h){var k=Za([d,h]),l=a(d,h);c(q,r,p,s,t,v,q=l[0],r=l[1],p=d,s=k[0],t=k[1],v=k[2],e,b);b.point(q,r)}function g(){x.point=d;b.lineEnd()}function n(){var a,d,h,n,D,B;k();x.point=function(b,c){l(a=b,c);d=q;h=r;n=s;D=t;B=v;x.point=l};x.lineEnd=function(){c(q,r,p,s,t,v,d,h,a,n,D,B,e,b);x.lineEnd=g;g()}}var p,q,r,s,t,v,x={point:d,lineStart:k,lineEnd:g,polygonStart:function(){b.polygonStart();x.lineStart=n},polygonEnd:function(){b.polygonEnd();x.lineStart=k}};return x}function c(b,e,k,l,g,n,p,q,r,s,t,v,x, -z){var y=p-b,G=q-e,H=y*y+G*G;if(H>4*d&&x--){var D=l+s,B=g+t,E=n+v,wa=Math.sqrt(D*D+B*B+E*E),L=Math.asin(E/=wa),u=Math.abs(Math.abs(E)-1)<A?(k+r)/2:Math.atan2(B,D),fa=a(u,L),L=fa[0],fa=fa[1],w=L-b,C=fa-e,I=G*w-y*C;if(I*I/H>d||0.3<Math.abs((y*w+G*C)/H-0.5))c(b,e,k,l,g,n,L,fa,u,D/=wa,B/=wa,E,x,z),z.point(L,fa),c(L,fa,u,D,B,E,p,q,r,s,t,v,x,z)}}var d=0.5,e=16;b.precision=function(a){if(!arguments.length)return Math.sqrt(d);e=0<(d=a*a)&&16;return b};return b}function Qd(a,b){function c(a,b){var c=Math.sqrt(f- -2*e*Math.sin(b))/e;return[c*Math.sin(a*=e),h-c*Math.cos(a)]}var d=Math.sin(a),e=(d+Math.sin(b))/2,f=1+d*(2*e-d),h=Math.sqrt(f)/e;c.invert=function(a,b){var c=h-b;return[Math.atan2(a,c)/e,Math.asin((f-(a*a+c*c)*e*e)/(2*e))]};return c}function Rd(a){function b(a,b){a<d&&(d=a);a>f&&(f=a);b<e&&(e=b);b>h&&(h=b)}function c(){k.point=k.lineEnd=T}var d,e,f,h,k={point:b,lineStart:T,lineEnd:T,polygonStart:function(){k.lineEnd=c},polygonEnd:function(){k.point=b}};return function(b){h=f=-(d=e=Infinity);g.geo.stream(b, -a(k));return[[d,e],[f,h]]}}function Sd(a,b){if(!N){++Y;a*=w;var c=Math.cos(b*=w);J+=(c*Math.cos(a)-J)/Y;K+=(c*Math.sin(a)-K)/Y;I+=(Math.sin(b)-I)/Y}}function Of(){var a,b;N=1;dc();N=2;var c=Z.point;Z.point=function(d,e){c(a=d,b=e)};Z.lineEnd=function(){Z.point(a,b);ec();Z.lineEnd=ec}}function dc(){function a(a,f){a*=w;var h=Math.cos(f*=w),k=h*Math.cos(a),h=h*Math.sin(a),l=Math.sin(f),g=Math.atan2(Math.sqrt((g=c*l-d*h)*g+(g=d*k-b*l)*g+(g=b*h-c*k)*g),b*k+c*h+d*l);Y+=g;J+=g*(b+(b=k));K+=g*(c+(c=h)); -I+=g*(d+(d=l))}var b,c,d;1<N||(1>N&&(N=1,Y=J=K=I=0),Z.point=function(e,f){e*=w;var h=Math.cos(f*=w);b=h*Math.cos(e);c=h*Math.sin(e);d=Math.sin(f);Z.point=a})}function ec(){Z.point=Sd}function fc(a,b){var c=Math.cos(a),d=Math.sin(a);return function(e,f,h,k){if(null!=e){if(e=Td(c,e),f=Td(c,f),0<h?e<f:e>f)e+=2*h*u}else e=a+2*h*u,f=a;for(var l,g=h*b;0<h?e>f:e<f;e-=g)k.point((l=Nd([c,-d*Math.cos(e),-d*Math.sin(e)]))[0],l[1])}}function Td(a,b){var c=Za(b);c[0]-=a;var d=Math.sqrt(c[0]*c[0]+c[1]*c[1]+c[2]* -c[2]);c[0]/=d;c[1]/=d;c[2]/=d;d=Math.acos(Math.max(-1,Math.min(1,-c[1])));return((0>-c[2]?-d:d)+2*Math.PI-A)%(2*Math.PI)}function Ud(a,b,c){return function(d){function e(b,c){a(b,c)&&d.point(b,c)}function f(a,b){p.point(a,b)}function h(){q.point=f;p.lineStart()}function k(){q.point=e;p.lineEnd()}function l(a,b){z.point(a,b);y.push([a,b])}function m(){z.lineStart();y=[]}function n(){l(y[0][0],y[0][1]);z.lineEnd();var a=z.clean(),b=x.buffer(),c=b.length;if(c)if(y=null,a&1){a=b[0];s+=Vd(a,1);var c=a.length- -1,b=-1,e;for(d.lineStart();++b<c;)d.point((e=a[b])[0],e[1]);d.lineEnd()}else 1<c&&a&2&&b.push(b.pop().concat(b.shift())),r.push(b.filter(Pf));else v=!0,t+=Vd(y,-1),y=null}var p=b(d),q={point:e,lineStart:h,lineEnd:k,polygonStart:function(){q.point=l;q.lineStart=m;q.lineEnd=n;v=!1;t=s=0;r=[];d.polygonStart()},polygonEnd:function(){q.point=e;q.lineStart=h;q.lineEnd=k;r=g.merge(r);if(r.length)Qf(r,c,d);else if(s<-A||v&&t<-A)d.lineStart(),c(null,null,1,d),d.lineEnd();d.polygonEnd();r=null},sphere:function(){d.polygonStart(); -d.lineStart();c(null,null,1,d);d.lineEnd();d.polygonEnd()}},r,s,t,v,x=Rf(),z=b(x),y;return q}}function Qf(a,b,c){var d=[],e=[];a.forEach(function(a){var b=a.length;if(!(1>=b)){var c=a[0],b=a[b-1];a={point:c,points:a,other:null,visited:!1,entry:!0,subject:!0};c={point:c,points:[c],other:a,visited:!1,entry:!1,subject:!1};a.other=c;d.push(a);e.push(c);a={point:b,points:[b],other:null,visited:!1,entry:!1,subject:!0};c={point:b,points:[b],other:a,visited:!1,entry:!0,subject:!1};a.other=c;d.push(a);e.push(c)}}); -e.sort(Sf);Wd(d);Wd(e);if(d.length){a=d[0];for(var f,h,k;;){for(f=a;f.visited;)if((f=f.next)===a)return;h=f.points;c.lineStart();do{f.visited=f.other.visited=!0;if(f.entry){if(f.subject)for(var l=0;l<h.length;l++)c.point((k=h[l])[0],k[1]);else b(f.point,f.next.point,1,c);f=f.next}else{if(f.subject)for(h=f.prev.points,l=h.length;0<=--l;)c.point((k=h[l])[0],k[1]);else b(f.point,f.prev.point,-1,c);f=f.prev}f=f.other;h=f.points}while(!f.visited);c.lineEnd()}}}function Wd(a){if(b=a.length){for(var b,c= -0,d=a[0],e;++c<b;)d.next=e=a[c],e.prev=d,d=e;d.next=e=a[0];e.prev=d}}function Sf(a,b){return(0>(a=a.point)[0]?a[1]-u/2-A:u/2-a[1])-(0>(b=b.point)[0]?b[1]-u/2-A:u/2-b[1])}function Pf(a){return 1<a.length}function Rf(){var a=[],b;return{lineStart:function(){a.push(b=[])},point:function(a,d){b.push([a,d])},lineEnd:T,buffer:function(){var c=a;a=[];b=null;return c}}}function Vd(a,b){if(!(c=a.length))return 0;for(var c,d=0,e=0,f=a[0],h=f[0],k=f[1],l=Math.cos(k),g=Math.atan2(b*Math.sin(h)*l,Math.sin(k)), -n=1-b*Math.cos(h)*l,p=g;++d<c;)f=a[d],l=Math.cos(k=f[1]),f=Math.atan2(b*Math.sin(h=f[0])*l,Math.sin(k)),h=1-b*Math.cos(h)*l,Math.abs(n-2)<A&&Math.abs(h-2)<A||(Math.abs(h)<A||Math.abs(n)<A||(Math.abs(Math.abs(f-g)-u)<A?2<h+n&&(e+=4*(f-g)):e=Math.abs(n-2)<A?e+4*(f-p):e+((3*u+f-g)%(2*u)-u)*(n+h)),p=g,g=f,n=h);return e}function Tf(a){function b(a,b){return Math.cos(a)*Math.cos(b)>d}function c(a,b){var c=Za(a,0),k=Za(b,0),l=[1,0,0],k=Od(c,k),g=$a(k,k),c=k[0],n=g-c*c;if(!n)return a;g=d*g/n;n=-d*c/n;c=Od(l, -k);l=cc(l,g);k=cc(k,n);l[0]+=k[0];l[1]+=k[1];l[2]+=k[2];k=$a(l,c);g=$a(c,c);n=Math.sqrt(k*k-g*($a(l,l)-1));c=cc(c,(-k-n)/g);c[0]+=l[0];c[1]+=l[1];c[2]+=l[2];return Nd(c)}a*=w;var d=Math.cos(a);a=fc(a,6*w);return Ud(b,function(a){var d,h,k,l;return{lineStart:function(){k=h=!1;l=1},point:function(g,n){var p=[g,n],q,r=b(g,n);!d&&(k=h=r)&&a.lineStart();r!==h&&(q=c(d,p),bc(d,q)||bc(p,q))&&(p[0]+=A,p[1]+=A,r=b(p[0],p[1]));r!==h&&(l=0,(h=r)?(a.lineStart(),q=c(p,d),a.point(q[0],q[1])):(q=c(d,p),a.point(q[0], -q[1]),a.lineEnd()),d=q);!r||d&&bc(d,p)||a.point(p[0],p[1]);d=p},lineEnd:function(){h&&a.lineEnd();d=null},clean:function(){return l|(k&&h)<<1}}},a)}function Xd(a,b){function c(c,e){return c=a(c,e),b(c[0],c[1])}a.invert&&b.invert&&(c.invert=function(c,e){return c=b.invert(c,e),c&&a.invert(c[0],c[1])});return c}function ab(a,b){return[a,b]}function Uf(a,b,c){var d=g.range(a,b-A,c).concat(b);return function(a){return d.map(function(b){return[a,b]})}}function Vf(a,b,c){var d=g.range(a,b-A,c).concat(b); -return function(a){return d.map(function(b){return[b,a]})}}function Wf(a,b,c,d){function e(a){var b=Math.sin(a*=q)*r,c=Math.sin(q-a)*r;a=c*l+b*n;var d=c*g+b*p,b=c*h+b*k;return[Math.atan2(d,a)/w,Math.atan2(b,Math.sqrt(a*a+d*d))/w]}var f=Math.cos(b),h=Math.sin(b);b=Math.cos(d);var k=Math.sin(d),l=f*Math.cos(a),g=f*Math.sin(a),n=b*Math.cos(c),p=b*Math.sin(c),q=Math.acos(Math.max(-1,Math.min(1,h*k+f*b*Math.cos(c-a)))),r=1/Math.sin(q);e.distance=q;return e}function gc(a,b){return[a/(2*u),Math.max(-0.5, -Math.min(0.5,Math.log(Math.tan(u/4+b/2))/(2*u)))]}function Yd(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+-2*a+"a"+a+","+a+" 0 1,1 0,"+2*a+"z"}function Xf(a){var b=Pd(function(b,d){return a([b*O,d*O])});return function(a){a=b(a);return{point:function(b,e){a.point(b*w,e*w)},sphere:function(){a.sphere()},lineStart:function(){a.lineStart()},lineEnd:function(){a.lineEnd()},polygonStart:function(){a.polygonStart()},polygonEnd:function(){a.polygonEnd()}}}}function Yf(){function a(a,b){h.push("M",a,",",b,f)} -function b(a,b){h.push("M",a,",",b);k.point=c}function c(a,b){h.push("L",a,",",b)}function d(){k.point=a}function e(){h.push("Z")}var f=Yd(4.5),h=[],k={point:a,lineStart:function(){k.point=b},lineEnd:d,polygonStart:function(){k.lineEnd=e},polygonEnd:function(){k.lineEnd=d;k.point=a},pointRadius:function(a){f=Yd(a);return k},result:function(){if(h.length){var a=h.join("");h=[];return a}}};return k}function Zf(a){function b(b,c){a.moveTo(b,c);a.arc(b,c,h,0,2*u)}function c(b,c){a.moveTo(b,c);k.point= -d}function d(b,c){a.lineTo(b,c)}function e(){k.point=b}function f(){a.closePath()}var h=4.5,k={point:b,lineStart:function(){k.point=c},lineEnd:e,polygonStart:function(){k.lineEnd=f},polygonEnd:function(){k.lineEnd=e;k.point=b},pointRadius:function(a){h=a;return k},result:T};return k}function $f(){function a(a,b){bb+=e*a-d*b;d=a;e=b}var b,c,d,e;ja.point=function(f,h){ja.point=a;b=d=f;c=e=h};ja.lineEnd=function(){a(b,c)}}function hc(a,b){N||(J+=a,K+=b,++I)}function Zd(){function a(a,e){var f=a-b,h= -e-c,f=Math.sqrt(f*f+h*h);J+=f*(b+a)/2;K+=f*(c+e)/2;I+=f;b=a;c=e}var b,c;if(1!==N)if(1>N)N=1,J=K=I=0;else return;$.point=function(d,e){$.point=a;b=d;c=e}}function $d(){$.point=hc}function ag(){function a(a,b){var c=e*a-d*b;J+=c*(d+a);K+=c*(e+b);I+=3*c;d=a;e=b}var b,c,d,e;2>N&&(N=2,J=K=I=0);$.point=function(f,h){$.point=a;b=d=f;c=e=h};$.lineEnd=function(){a(b,c)}}function bg(){function a(a,b){a*=w;b=b*w/2+u/4;var c=a-d,g=Math.cos(b),n=Math.sin(b),p=f*n,q=cb,r=db,s=e*g+p*Math.cos(c),c=p*Math.sin(c); -cb=q*s-r*c;db=r*s+q*c;d=a;e=g;f=n}var b,c,d,e,f;ka.point=function(h,k){ka.point=a;d=(b=h)*w;e=Math.cos(k=(c=k)*w/2+u/4);f=Math.sin(k)};ka.lineEnd=function(){a(b,c)}}function la(a){return ic(function(){return a})()}function ic(a){function b(a){a=h(a[0]*w,a[1]*w);return[a[0]*l+v,x-a[1]*l]}function c(a){return(a=h.invert((a[0]-v)/l,(x-a[1])/l))&&[a[0]*O,a[1]*O]}function d(){h=Xd(f=ae(r,s,t),e);var a=e(p,q);v=m-a[0]*l;x=n+a[1]*l;return b}var e,f,h,k=Pd(function(a,b){a=e(a,b);return[a[0]*l+v,x-a[1]*l]}), -l=150,m=480,n=250,p=0,q=0,r=0,s=0,t=0,v,x,z=be,y=null;b.stream=function(a){return cg(f,z(k(a)))};b.clipAngle=function(a){if(!arguments.length)return y;z=null==a?(y=a,be):Tf(y=+a);return b};b.scale=function(a){if(!arguments.length)return l;l=+a;return d()};b.translate=function(a){if(!arguments.length)return[m,n];m=+a[0];n=+a[1];return d()};b.center=function(a){if(!arguments.length)return[p*O,q*O];p=a[0]%360*w;q=a[1]%360*w;return d()};b.rotate=function(a){if(!arguments.length)return[r*O,s*O,t*O];r= -a[0]%360*w;s=a[1]%360*w;t=2<a.length?a[2]%360*w:0;return d()};g.rebind(b,k,"precision");return function(){e=a.apply(this,arguments);b.invert=e.invert&&c;return d()}}function cg(a,b){return{point:function(c,d){d=a(c*w,d*w);c=d[0];b.point(c>u?c-2*u:c<-u?c+2*u:c,d[1])},sphere:function(){b.sphere()},lineStart:function(){b.lineStart()},lineEnd:function(){b.lineEnd()},polygonStart:function(){b.polygonStart()},polygonEnd:function(){b.polygonEnd()}}}function ae(a,b,c){return a?b||c?Xd(ce(a),de(b,c)):ce(a): -b||c?de(b,c):ab}function ee(a){return function(b,c){return b+=a,[b>u?b-2*u:b<-u?b+2*u:b,c]}}function ce(a){var b=ee(a);b.invert=ee(-a);return b}function de(a,b){function c(a,b){var c=Math.cos(b),g=Math.cos(a)*c,c=Math.sin(a)*c,p=Math.sin(b),q=p*d+g*e;return[Math.atan2(c*f-q*h,g*d-p*e),Math.asin(Math.max(-1,Math.min(1,q*f+c*h)))]}var d=Math.cos(a),e=Math.sin(a),f=Math.cos(b),h=Math.sin(b);c.invert=function(a,b){var c=Math.cos(b),g=Math.cos(a)*c,c=Math.sin(a)*c,p=Math.sin(b),q=p*f-c*h;return[Math.atan2(c* -f+p*h,g*d+q*e),Math.asin(Math.max(-1,Math.min(1,q*d-g*e)))]};return c}function Fa(a,b){function c(b,c){var f=Math.cos(b),h=Math.cos(c),f=a(f*h);return[f*h*Math.sin(b),f*Math.sin(c)]}c.invert=function(a,c){var f=Math.sqrt(a*a+c*c),h=b(f),k=Math.sin(h),h=Math.cos(h);return[Math.atan2(a*k,f*h),Math.asin(f&&c*k/f)]};return c}function dg(a,b,c,d){var e,f,h;a=d[a];e=a[0];f=a[1];a=d[b];b=a[0];h=a[1];a=d[c];return 0<(a[1]-f)*(b-e)-(h-f)*(a[0]-e)}function jc(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])* -(a[0]-b[0])}function fe(a,b,c,d){var e=a[0],f=c[0],h=b[0]-e,k=d[0]-f;a=a[1];c=c[1];b=b[1]-a;d=d[1]-c;f=(k*(a-c)-d*(e-f))/(d*h-k*b);return[e+f*h,a+f*b]}function ge(a,b){var c=a.map(function(a,b){return{index:b,x:a[0],y:a[1]}}).sort(function(a,b){return a.y<b.y?-1:a.y>b.y?1:a.x<b.x?-1:a.x>b.x?1:0}),d=null,e={list:[],leftEnd:null,rightEnd:null,init:function(){e.leftEnd=e.createHalfEdge(null,"l");e.rightEnd=e.createHalfEdge(null,"l");e.leftEnd.r=e.rightEnd;e.rightEnd.l=e.leftEnd;e.list.unshift(e.leftEnd, -e.rightEnd)},createHalfEdge:function(a,b){return{edge:a,side:b,vertex:null,l:null,r:null}},insert:function(a,b){b.l=a;b.r=a.r;a.r.l=b;a.r=b},leftBound:function(a){var b=e.leftEnd;do b=b.r;while(b!=e.rightEnd&&f.rightOf(b,a));return b=b.l},del:function(a){a.l.r=a.r;a.r.l=a.l;a.edge=null},right:function(a){return a.r},left:function(a){return a.l},leftRegion:function(a){return null==a.edge?d:a.edge.region[a.side]},rightRegion:function(a){return null==a.edge?d:a.edge.region[kc[a.side]]}},f={bisect:function(a, -b){var c={region:{l:a,r:b},ep:{l:null,r:null}},d=b.x-a.x,e=b.y-a.y;c.c=a.x*d+a.y*e+0.5*(d*d+e*e);(0<d?d:-d)>(0<e?e:-e)?(c.a=1,c.b=e/d,c.c/=d):(c.b=1,c.a=d/e,c.c/=e);return c},intersect:function(a,b){var c=a.edge,d=b.edge;if(!c||!d||c.region.r==d.region.r)return null;var e=c.a*d.b-c.b*d.a;if(1E-10>Math.abs(e))return null;var f=(c.c*d.b-d.c*c.b)/e,e=(d.c*c.a-c.c*d.a)/e,h=c.region.r,k=d.region.r;h.y<k.y||h.y==k.y&&h.x<k.x?h=a:(h=b,c=d);return(c=f>=c.region.r.x)&&"l"===h.side||!c&&"r"===h.side?null:{x:f, -y:e}},rightOf:function(a,b){var c=a.edge,d=c.region.r,e=b.x>d.x;if(e&&"l"===a.side)return 1;if(!e&&"r"===a.side)return 0;if(1===c.a){var f=b.y-d.y,h=b.x-d.x,k=0,g=0;!e&&0>c.b||e&&0<=c.b?g=k=f>=c.b*h:(g=b.x+b.y*c.b>c.c,0>c.b&&(g=!g),g||(k=1));k||(d=d.x-c.region.l.x,g=c.b*(h*h-f*f)<d*f*(1+2*h/d+c.b*c.b),0>c.b&&(g=!g))}else h=c.c-c.a*b.x,c=b.y-h,f=b.x-d.x,d=h-d.y,g=c*c>f*f+d*d;return"l"===a.side?g:!g},endPoint:function(a,c,d){a.ep[c]=d;a.ep[kc[c]]&&b(a)},distance:function(a,b){var c=a.x-b.x,d=a.y-b.y; -return Math.sqrt(c*c+d*d)}},h={list:[],insert:function(a,b,c){a.vertex=b;a.ystar=b.y+c;c=0;for(var d=h.list,e=d.length;c<e;c++){var f=d[c];if(!(a.ystar>f.ystar||a.ystar==f.ystar&&b.x>f.vertex.x))break}d.splice(c,0,a)},del:function(a){for(var b=0,c=h.list,d=c.length;b<d&&c[b]!=a;++b);c.splice(b,1)},empty:function(){return 0===h.list.length},nextEvent:function(a){for(var b=0,c=h.list,d=c.length;b<d;++b)if(c[b]==a)return c[b+1];return null},min:function(){var a=h.list[0];return{x:a.vertex.x,y:a.ystar}}, -extractMin:function(){return h.list.shift()}};e.init();for(var d=c.shift(),k=c.shift(),g,m,n,p,q,r,s,t,v;;)if(h.empty()||(g=h.min()),k&&(h.empty()||k.y<g.y||k.y==g.y&&k.x<g.x)){m=e.leftBound(k);n=e.right(m);s=e.rightRegion(m);v=f.bisect(s,k);r=e.createHalfEdge(v,"l");e.insert(m,r);if(t=f.intersect(m,r))h.del(m),h.insert(m,t,f.distance(t,k));m=r;r=e.createHalfEdge(v,"r");e.insert(m,r);(t=f.intersect(r,n))&&h.insert(r,t,f.distance(t,k));k=c.shift()}else if(h.empty())break;else{m=h.extractMin();p=e.left(m); -n=e.right(m);q=e.right(n);s=e.leftRegion(m);r=e.rightRegion(n);t=m.vertex;f.endPoint(m.edge,m.side,t);f.endPoint(n.edge,n.side,t);e.del(m);h.del(n);e.del(n);m="l";s.y>r.y&&(m=s,s=r,r=m,m="r");v=f.bisect(s,r);r=e.createHalfEdge(v,m);e.insert(p,r);f.endPoint(v,kc[m],t);if(t=f.intersect(p,r))h.del(p),h.insert(p,t,f.distance(t,s));(t=f.intersect(r,q))&&h.insert(r,t,f.distance(t,s))}for(m=e.right(e.leftEnd);m!=e.rightEnd;m=e.right(m))b(m.edge)}function Ga(a,b,c,d,e,f){if(!a(b,c,d,e,f)){var h=0.5*(c+e), -k=0.5*(d+f);b=b.nodes;b[0]&&Ga(a,b[0],c,d,h,k);b[1]&&Ga(a,b[1],h,d,e,k);b[2]&&Ga(a,b[2],c,k,h,f);b[3]&&Ga(a,b[3],h,k,e,f)}}function oa(){this._=new Date(1<arguments.length?Date.UTC.apply(this,arguments):arguments[0])}function eb(a,b,c,d){for(var e,f=0,h=b.length,k=c.length;f<h;){if(d>=k)return-1;e=b.charCodeAt(f++);if(37===e){if(e=eg[b.charAt(f++)],!e||0>(d=e(a,c,d)))return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function fb(a){return RegExp("^(?:"+a.map(g.requote).join("|")+")","i")}function he(a){for(var b= -new ba,c=-1,d=a.length;++c<d;)b.set(a[c].toLowerCase(),c);return b}function S(a,b,c){a+="";var d=a.length;return d<c?Array(c-d+1).join(b)+a:a}function ie(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.d=+b[0],c+b[0].length):-1}function je(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.H=+b[0],c+b[0].length):-1}function lc(a){return a.toISOString()}function pa(a,b,c){function d(b){var c=a(b),d=f(c,1);return b-c<d-b?c:d}function e(c){b(c=a(new R(c-1)),1);return c}function f(a, -c){b(a=new R(+a),c);return a}function h(a,d,f){a=e(a);var h=[];if(1<f)for(;a<d;)c(a)%f||h.push(new Date(+a)),b(a,1);else for(;a<d;)h.push(new Date(+a)),b(a,1);return h}a.floor=a;a.round=d;a.ceil=e;a.offset=f;a.range=h;var k=a.utc=gb(a);k.floor=k;k.round=gb(d);k.ceil=gb(e);k.offset=gb(f);k.range=function(a,b,c){try{R=oa;var d=new oa;d._=a;return h(d,b,c)}finally{R=Date}};return a}function gb(a){return function(b,c){try{R=oa;var d=new oa;d._=b;return a(d,c)._}finally{R=Date}}}function mc(a,b,c){function d(b){return a(b)} -d.invert=function(b){return nc(a.invert(b))};d.domain=function(b){if(!arguments.length)return a.domain().map(nc);a.domain(b);return d};d.nice=function(a){return d.domain(Ta(d.domain(),function(){return a}))};d.ticks=function(c,f){var h,k=d.domain();h=k[0];k=k[k.length-1];h=h<k?[h,k]:[k,h];if("function"!==typeof c){var k=(h[1]-h[0])/c,l=g.bisect(hb,k);if(l==hb.length)return b.year(h,c);if(!l)return a.ticks(c).map(nc);Math.log(k/hb[l-1])<Math.log(hb[l]/k)&&--l;c=b[l];f=c[1];c=c[0].range}return c(h[0], -new Date(+h[1]+1),f)};d.tickFormat=function(){return c};d.copy=function(){return mc(a.copy(),b,c)};return g.rebind(d,a,"range","rangeRound","interpolate","clamp")}function nc(a){return new Date(a)}function ke(a){return function(b){for(var c=a.length-1,d=a[c];!d[1](b);)d=a[--c];return d[0](b)}}function oc(a){var b=new Date(a,0,1);b.setFullYear(a);return b}function fg(a){var b=a.getFullYear(),c=oc(b),d=oc(b+1);return b+(a-c)/(d-c)}function pc(a){var b=new Date(Date.UTC(a,0,1));b.setUTCFullYear(a);return b} -function gg(a){var b=a.getUTCFullYear(),c=pc(b),d=pc(b+1);return b+(a-c)/(d-c)}var u=Math.PI,A=1E-6,g={version:"3.0.6"},w=u/180,O=180/u,W=document,P=window,ib=[3,3];Date.now||(Date.now=function(){return+new Date});try{W.createElement("div").style.setProperty("opacity",0,"")}catch(Ng){var le=P.CSSStyleDeclaration.prototype,hg=le.setProperty;le.setProperty=function(a,b,c){hg.call(this,a,b+"",c)}}var ha=function(a){return Array.prototype.slice.call(a)};try{ha(W.documentElement.childNodes)[0].nodeType}catch(Og){ha= -Je}var Hb=[].__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]};g.map=function(a){var b=new ba,c;for(c in a)b.set(c,a[c]);return b};(function(a,b){try{for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}catch(d){a.prototype=b}})(ba,{has:function(a){return Ha+a in this},get:function(a){return this[Ha+a]},set:function(a,b){return this[Ha+a]=b},remove:function(a){a=Ha+a;return a in this&&delete this[a]},keys:function(){var a=[];this.forEach(function(b){a.push(b)}); -return a},values:function(){var a=[];this.forEach(function(b,c){a.push(c)});return a},entries:function(){var a=[];this.forEach(function(b,c){a.push({key:b,value:c})});return a},forEach:function(a){for(var b in this)b.charCodeAt(0)===ig&&a.call(this,b.substring(1),this[b])}});var Ha="\x00",ig=Ha.charCodeAt(0);g.functor=F;g.rebind=function(a,b){for(var c=1,d=arguments.length,e;++c<d;)a[e=arguments[c]]=Ke(a,b,b[e]);return a};g.ascending=function(a,b){return a<b?-1:a>b?1:a>=b?0:NaN};g.descending=function(a, -b){return b<a?-1:b>a?1:b>=a?0:NaN};g.mean=function(a,b){var c=a.length,d,e=0,f=-1,h=0;if(1===arguments.length)for(;++f<c;)tb(d=a[f])&&(e+=(d-e)/++h);else for(;++f<c;)tb(d=b.call(a,a[f],f))&&(e+=(d-e)/++h);return h?e:void 0};g.median=function(a,b){1<arguments.length&&(a=a.map(b));a=a.filter(tb);return a.length?g.quantile(a.sort(g.ascending),0.5):void 0};g.min=function(a,b){var c=-1,d=a.length,e,f;if(1===arguments.length){for(;++c<d&&(null==(e=a[c])||e!=e);)e=void 0;for(;++c<d;)null!=(f=a[c])&&e>f&& -(e=f)}else{for(;++c<d&&(null==(e=b.call(a,a[c],c))||e!=e);)e=void 0;for(;++c<d;)null!=(f=b.call(a,a[c],c))&&e>f&&(e=f)}return e};g.max=function(a,b){var c=-1,d=a.length,e,f;if(1===arguments.length){for(;++c<d&&(null==(e=a[c])||e!=e);)e=void 0;for(;++c<d;)null!=(f=a[c])&&f>e&&(e=f)}else{for(;++c<d&&(null==(e=b.call(a,a[c],c))||e!=e);)e=void 0;for(;++c<d;)null!=(f=b.call(a,a[c],c))&&f>e&&(e=f)}return e};g.extent=function(a,b){var c=-1,d=a.length,e,f,h;if(1===arguments.length){for(;++c<d&&(null==(e= -h=a[c])||e!=e);)e=h=void 0;for(;++c<d;)null!=(f=a[c])&&(e>f&&(e=f),h<f&&(h=f))}else{for(;++c<d&&(null==(e=h=b.call(a,a[c],c))||e!=e);)e=void 0;for(;++c<d;)null!=(f=b.call(a,a[c],c))&&(e>f&&(e=f),h<f&&(h=f))}return[e,h]};g.random={normal:function(a,b){var c=arguments.length;2>c&&(b=1);1>c&&(a=0);return function(){var c,e;do c=2*Math.random()-1,e=2*Math.random()-1,e=c*c+e*e;while(!e||1<e);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}},logNormal:function(){var a=g.random.normal.apply(g,arguments);return function(){return Math.exp(a())}}, -irwinHall:function(a){return function(){for(var b=0,c=0;c<a;c++)b+=Math.random();return b/a}}};g.sum=function(a,b){var c=0,d=a.length,e,f=-1;if(1===arguments.length)for(;++f<d;)isNaN(e=+a[f])||(c+=e);else for(;++f<d;)isNaN(e=+b.call(a,a[f],f))||(c+=e);return c};g.quantile=function(a,b){var c=(a.length-1)*b+1,d=Math.floor(c),e=+a[d-1];return(c-=d)?e+c*(a[d]-e):e};g.shuffle=function(a){for(var b=a.length,c,d;b;)d=Math.random()*b--|0,c=a[b],a[b]=a[d],a[d]=c;return a};g.transpose=function(a){return g.zip.apply(g, -a)};g.zip=function(){if(!(e=arguments.length))return[];for(var a=-1,b=g.min(arguments,Le),c=Array(b);++a<b;)for(var d=-1,e,f=c[a]=Array(e);++d<e;)f[d]=arguments[d][a];return c};g.bisector=function(a){return{left:function(b,c,d,e){3>arguments.length&&(d=0);4>arguments.length&&(e=b.length);for(;d<e;){var f=d+e>>>1;a.call(b,b[f],f)<c?d=f+1:e=f}return d},right:function(b,c,d,e){3>arguments.length&&(d=0);4>arguments.length&&(e=b.length);for(;d<e;){var f=d+e>>>1;c<a.call(b,b[f],f)?e=f:d=f+1}return d}}}; -var me=g.bisector(function(a){return a});g.bisectLeft=me.left;g.bisect=g.bisectRight=me.right;g.nest=function(){function a(b,e){if(e>=d.length)return h?h.call(c,b):f?b.sort(f):b;for(var g=-1,n=b.length,p=d[e++],q,r,s=new ba,t,v={};++g<n;)(t=s.get(q=p(r=b[g])))?t.push(r):s.set(q,[r]);s.forEach(function(b,c){v[b]=a(c,e)});return v}function b(a,c){if(c>=d.length)return a;var f=[],h=e[c++],g;for(g in a)f.push({key:g,values:b(a[g],c)});h&&f.sort(function(a,b){return h(a.key,b.key)});return f}var c={}, -d=[],e=[],f,h;c.map=function(b){return a(b,0)};c.entries=function(c){return b(a(c,0),0)};c.key=function(a){d.push(a);return c};c.sortKeys=function(a){e[d.length-1]=a;return c};c.sortValues=function(a){f=a;return c};c.rollup=function(a){h=a;return c};return c};g.keys=function(a){var b=[],c;for(c in a)b.push(c);return b};g.values=function(a){var b=[],c;for(c in a)b.push(a[c]);return b};g.entries=function(a){var b=[],c;for(c in a)b.push({key:c,value:a[c]});return b};g.permute=function(a,b){for(var c= -[],d=-1,e=b.length;++d<e;)c[d]=a[b[d]];return c};g.merge=function(a){return Array.prototype.concat.apply([],a)};g.range=function(a,b,c){3>arguments.length&&(c=1,2>arguments.length&&(b=a,a=0));if(Infinity===(b-a)/c)throw Error("infinite range");var d=[],e;e=Math.abs(c);for(var f=1;e*f%1;)f*=10;e=f;var f=-1,h;a*=e;b*=e;c*=e;if(0>c)for(;(h=a+c*++f)>b;)d.push(h/e);else for(;(h=a+c*++f)<b;)d.push(h/e);return d};g.requote=function(a){return a.replace(jg,"\\$&")};var jg=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; -g.round=function(a,b){return b?Math.round(a*(b=Math.pow(10,b)))/b:Math.round(a)};g.xhr=function(a,b,c){function d(){var a=l.status;!a&&l.responseText||200<=a&&300>a||304===a?f.load.call(e,k.call(e,l)):f.error.call(e,l)}var e={},f=g.dispatch("progress","load","error"),h={},k=V,l=new (P.XDomainRequest&&/^(http(s)?:)?\/\//.test(a)?XDomainRequest:XMLHttpRequest);"onload"in l?l.onload=l.onerror=d:l.onreadystatechange=function(){3<l.readyState&&d()};l.onprogress=function(a){var b=g.event;g.event=a;try{f.progress.call(e, -l)}finally{g.event=b}};e.header=function(a,b){a=(a+"").toLowerCase();if(2>arguments.length)return h[a];null==b?delete h[a]:h[a]=b+"";return e};e.mimeType=function(a){if(!arguments.length)return b;b=null==a?null:a+"";return e};e.response=function(a){k=a;return e};["get","post"].forEach(function(a){e[a]=function(){return e.send.apply(e,[a].concat(ha(arguments)))}});e.send=function(c,d,f){2===arguments.length&&"function"===typeof d&&(f=d,d=null);l.open(c,a,!0);null==b||"accept"in h||(h.accept=b+",*/*"); -if(l.setRequestHeader)for(var k in h)l.setRequestHeader(k,h[k]);null!=b&&l.overrideMimeType&&l.overrideMimeType(b);if(null!=f)e.on("error",f).on("load",function(a){f(null,a)});l.send(null==d?null:d);return e};e.abort=function(){l.abort();return e};g.rebind(e,f,"on");2===arguments.length&&"function"===typeof b&&(c=b,b=null);return null==c?e:e.get(Me(c))};g.text=function(){return g.xhr.apply(g,arguments).response(Ne)};g.json=function(a,b){return g.xhr(a,"application/json",b).response(Oe)};g.html=function(a, -b){return g.xhr(a,"text/html",b).response(Pe)};g.xml=function(){return g.xhr.apply(g,arguments).response(Qe)};var qc={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};g.ns={prefix:qc,qualify:function(a){var b=a.indexOf(":"),c=a;0<=b&&(c=a.substring(0,b),a=a.substring(b+1));return qc.hasOwnProperty(c)?{space:qc[c],local:a}:a}};g.dispatch=function(){for(var a=new ub, -b=-1,c=arguments.length;++b<c;)a[arguments[b]]=zc(a);return a};ub.prototype.on=function(a,b){var c=a.indexOf("."),d="";0<c&&(d=a.substring(c+1),a=a.substring(0,c));return 2>arguments.length?this[a].on(d):this[a].on(d,b)};g.format=function(a){a=kg.exec(a);var b=a[1]||" ",c=a[2]||">",d=a[3]||"",e=a[4]||"",f=a[5],h=+a[6],k=a[7],l=a[8],m=a[9],n=1,p="",q=!1;l&&(l=+l.substring(1));if(f||"0"===b&&"="===c)f=b="0",c="=",k&&(h-=Math.floor((h-1)/4));switch(m){case "n":k=!0;m="g";break;case "%":n=100;p="%";m= -"f";break;case "p":n=100;p="%";m="r";break;case "b":case "o":case "x":case "X":e&&(e="0"+m.toLowerCase());case "c":case "d":q=!0;l=0;break;case "s":n=-1,m="r"}"#"===e&&(e="");"r"!=m||l||(m="g");var m=lg.get(m)||Re,r=f&&k;return function(a){if(q&&a%1)return"";var t=0>a||0===a&&0>1/a?(a=-a,"-"):d;if(0>n){var v=g.formatPrefix(a,l);a=v.scale(a);p=v.symbol}else a*=n;a=m(a,l);!f&&k&&(a=rc(a));var v=e.length+a.length+(r?0:t.length),x=v<h?Array(v=h-v+1).join(b):"";r&&(a=rc(x+a));a.replace(".",".");t+=e;return("<"=== -c?t+a+x:">"===c?x+t+a:"^"===c?x.substring(0,v>>=1)+t+a+x.substring(v):t+(r?a:x+a))+p}};var kg=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,lg=g.map({b:function(a){return a.toString(2)},c:function(a){return String.fromCharCode(a)},o:function(a){return a.toString(8)},x:function(a){return a.toString(16)},X:function(a){return a.toString(16).toUpperCase()},g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)}, -r:function(a,b){return(a=g.round(a,vb(a,b))).toFixed(Math.max(0,Math.min(20,vb(a*(1+1E-15),b))))}}),rc=V;if(ib)var mg=ib.length,rc=function(a){for(var b=a.lastIndexOf("."),c=0<=b?"."+a.substring(b+1):(b=a.length,""),d=[],e=0,f=ib[0];0<b&&0<f;)d.push(a.substring(b-=f,b+f)),f=ib[e=(e+1)%mg];return d.reverse().join(",")+c};var ng="y z a f p n \u00b5 m k M G T P E Z Y".split(" ").map(function(a,b){var c=Math.pow(10,3*Math.abs(8-b));return{scale:8<b?function(a){return a/c}:function(a){return a*c},symbol:a}}); -g.formatPrefix=function(a,b){var c=0;a&&(0>a&&(a*=-1),b&&(a=g.round(a,vb(a,b))),c=1+Math.floor(1E-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,3*Math.floor((0>=c?c+1:c-1)/3))));return ng[8+c/3]};var ne=function(){return V},og=g.map({linear:ne,poly:function(a){return function(b){return Math.pow(b,a)}},quad:function(){return Te},cubic:function(){return Ue},sin:function(){return Ve},exp:function(){return We},circle:function(){return Xe},elastic:function(a,b){var c;2>arguments.length&&(b=0.45); -arguments.length?c=b/(2*u)*Math.asin(1/a):(a=1,c=b/4);return function(d){return 1+a*Math.pow(2,10*-d)*Math.sin(2*(d-c)*u/b)}},back:function(a){a||(a=1.70158);return function(b){return b*b*((a+1)*b-a)}},bounce:function(){return Ye}}),pg=g.map({"in":V,out:Ac,"in-out":Bc,"out-in":function(a){return Bc(Ac(a))}});g.ease=function(a){var b=a.indexOf("-"),c=0<=b?a.substring(0,b):a,b=0<=b?a.substring(b+1):"in",c=og.get(c)||ne,b=pg.get(b)||V;return Se(b(c.apply(null,Array.prototype.slice.call(arguments,1))))}; -g.event=null;g.transform=function(a){var b=W.createElementNS(g.ns.prefix.svg,"g");return(g.transform=function(a){b.setAttribute("transform",a);a=b.transform.baseVal.consolidate();return new Dc(a?a.matrix:qg)})(a)};Dc.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var qg={a:1,b:0,c:0,d:1,e:0,f:0};g.interpolate=function(a,b){for(var c=g.interpolators.length,d;0<=--c&&!(d=g.interpolators[c](a,b)););return d};g.interpolateNumber= -function(a,b){b-=a;return function(c){return a+b*c}};g.interpolateRound=function(a,b){b-=a;return function(c){return Math.round(a+b*c)}};g.interpolateString=function(a,b){var c,d,e=0,f=[],h=[],k,l;for(d=jb.lastIndex=0;c=jb.exec(b);++d)c.index&&f.push(b.substring(e,c.index)),h.push({i:f.length,x:c[0]}),f.push(null),e=jb.lastIndex;e<b.length&&f.push(b.substring(e));d=0;for(k=h.length;(c=jb.exec(a))&&d<k;++d)if(l=h[d],l.x==c[0]){if(l.i)if(null==f[l.i+1])for(f[l.i-1]+=l.x,f.splice(l.i,1),c=d+1;c<k;++c)h[c].i--; -else for(f[l.i-1]+=l.x+f[l.i+1],f.splice(l.i,2),c=d+1;c<k;++c)h[c].i-=2;else if(null==f[l.i+1])f[l.i]=l.x;else for(f[l.i]=l.x+f[l.i+1],f.splice(l.i+1,1),c=d+1;c<k;++c)h[c].i--;h.splice(d,1);k--;d--}else l.x=g.interpolateNumber(parseFloat(c[0]),parseFloat(l.x));for(;d<k;)l=h.pop(),null==f[l.i+1]?f[l.i]=l.x:(f[l.i]=l.x+f[l.i+1],f.splice(l.i+1,1)),k--;return 1===f.length?null==f[0]?h[0].x:function(){return b}:function(a){for(d=0;d<k;++d)f[(l=h[d]).i]=l.x(a);return f.join("")}};g.interpolateTransform= -function(a,b){var c=[],d=[],e,f=g.transform(a),h=g.transform(b),k=f.translate,l=h.translate,m=f.rotate,n=h.rotate,p=f.skew,q=h.skew,f=f.scale,h=h.scale;k[0]!=l[0]||k[1]!=l[1]?(c.push("translate(",null,",",null,")"),d.push({i:1,x:g.interpolateNumber(k[0],l[0])},{i:3,x:g.interpolateNumber(k[1],l[1])})):l[0]||l[1]?c.push("translate("+l+")"):c.push("");m!=n?(180<m-n?n+=360:180<n-m&&(m+=360),d.push({i:c.push(c.pop()+"rotate(",null,")")-2,x:g.interpolateNumber(m,n)})):n&&c.push(c.pop()+"rotate("+n+")"); -p!=q?d.push({i:c.push(c.pop()+"skewX(",null,")")-2,x:g.interpolateNumber(p,q)}):q&&c.push(c.pop()+"skewX("+q+")");f[0]!=h[0]||f[1]!=h[1]?(e=c.push(c.pop()+"scale(",null,",",null,")"),d.push({i:e-4,x:g.interpolateNumber(f[0],h[0])},{i:e-2,x:g.interpolateNumber(f[1],h[1])})):1==h[0]&&1==h[1]||c.push(c.pop()+"scale("+h+")");e=d.length;return function(a){for(var b=-1,f;++b<e;)c[(f=d[b]).i]=f.x(a);return c.join("")}};g.interpolateRgb=function(a,b){a=g.rgb(a);b=g.rgb(b);var c=a.r,d=a.g,e=a.b,f=b.r-c,h= -b.g-d,k=b.b-e;return function(a){return"#"+ra(Math.round(c+f*a))+ra(Math.round(d+h*a))+ra(Math.round(e+k*a))}};g.interpolateHsl=function(a,b){a=g.hsl(a);b=g.hsl(b);var c=a.h,d=a.s,e=a.l,f=b.h-c,h=b.s-d,k=b.l-e;180<f?f-=360:-180>f&&(f+=360);return function(a){return La(c+f*a,d+h*a,e+k*a)+""}};g.interpolateLab=function(a,b){a=g.lab(a);b=g.lab(b);var c=a.l,d=a.a,e=a.b,f=b.l-c,h=b.a-d,k=b.b-e;return function(a){return Kc(c+f*a,d+h*a,e+k*a)+""}};g.interpolateHcl=function(a,b){a=g.hcl(a);b=g.hcl(b);var c= -a.h,d=a.c,e=a.l,f=b.h-c,h=b.c-d,k=b.l-e;180<f?f-=360:-180>f&&(f+=360);return function(a){return Eb(c+f*a,d+h*a,e+k*a)+""}};g.interpolateArray=function(a,b){var c=[],d=[],e=a.length,f=b.length,h=Math.min(a.length,b.length),k;for(k=0;k<h;++k)c.push(g.interpolate(a[k],b[k]));for(;k<e;++k)d[k]=a[k];for(;k<f;++k)d[k]=b[k];return function(a){for(k=0;k<h;++k)d[k]=c[k](a);return d}};g.interpolateObject=function(a,b){var c={},d={},e;for(e in a)e in b?c[e]=xb(e)(a[e],b[e]):d[e]=a[e];for(e in b)e in a||(d[e]= -b[e]);return function(a){for(e in c)d[e]=c[e](a);return d}};var jb=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;g.interpolators=[g.interpolateObject,function(a,b){return b instanceof Array&&g.interpolateArray(a,b)},function(a,b){return("string"===typeof a||"string"===typeof b)&&g.interpolateString(a+"",b+"")},function(a,b){return("string"===typeof b?Ka.has(b)||/^(#|rgb\(|hsl\()/.test(b):b instanceof qa)&&g.interpolateRgb(a,b)},function(a,b){return!isNaN(a=+a)&&!isNaN(b=+b)&&g.interpolateNumber(a, -b)}];qa.prototype.toString=function(){return this.rgb()+""};g.rgb=function(a,b,c){return 1===arguments.length?a instanceof yb?ca(a.r,a.g,a.b):zb(""+a,ca,La):ca(~~a,~~b,~~c)};var kb=yb.prototype=new qa;kb.brighter=function(a){a=Math.pow(0.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b;if(!b&&!c&&!d)return ca(30,30,30);b&&30>b&&(b=30);c&&30>c&&(c=30);d&&30>d&&(d=30);return ca(Math.min(255,Math.floor(b/a)),Math.min(255,Math.floor(c/a)),Math.min(255,Math.floor(d/a)))};kb.darker=function(a){a= -Math.pow(0.7,arguments.length?a:1);return ca(Math.floor(a*this.r),Math.floor(a*this.g),Math.floor(a*this.b))};kb.hsl=function(){return Fc(this.r,this.g,this.b)};kb.toString=function(){return"#"+ra(this.r)+ra(this.g)+ra(this.b)};var Ka=g.map({aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0", -chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1", -darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00", -lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3", -mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9", -peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee", -wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"});Ka.forEach(function(a,b){Ka.set(a,zb(b,ca,La))});g.hsl=function(a,b,c){return 1===arguments.length?a instanceof Db?sa(a.h,a.s,a.l):zb(""+a,Fc,sa):sa(+a,+b,+c)};var sc=Db.prototype=new qa;sc.brighter=function(a){a=Math.pow(0.7,arguments.length?a:1);return sa(this.h,this.s,this.l/a)};sc.darker=function(a){a=Math.pow(0.7,arguments.length?a:1);return sa(this.h,this.s,a*this.l)};sc.rgb=function(){return La(this.h, -this.s,this.l)};g.hcl=function(a,b,c){return 1===arguments.length?a instanceof Ma?Aa(a.h,a.c,a.l):a instanceof Na?Lc(a.l,a.a,a.b):Lc((a=Gc((a=g.rgb(a)).r,a.g,a.b)).l,a.a,a.b):Aa(+a,+b,+c)};var tc=Ma.prototype=new qa;tc.brighter=function(a){return Aa(this.h,this.c,Math.min(100,this.l+lb*(arguments.length?a:1)))};tc.darker=function(a){return Aa(this.h,this.c,Math.max(0,this.l-lb*(arguments.length?a:1)))};tc.rgb=function(){return Eb(this.h,this.c,this.l).rgb()};g.lab=function(a,b,c){return 1===arguments.length? -a instanceof Na?ta(a.l,a.a,a.b):a instanceof Ma?Eb(a.l,a.c,a.h):Gc((a=g.rgb(a)).r,a.g,a.b):ta(+a,+b,+c)};var lb=18,Hc=0.95047,Ic=1,Jc=1.08883,uc=Na.prototype=new qa;uc.brighter=function(a){return ta(Math.min(100,this.l+lb*(arguments.length?a:1)),this.a,this.b)};uc.darker=function(a){return ta(Math.max(0,this.l-lb*(arguments.length?a:1)),this.a,this.b)};uc.rgb=function(){return Kc(this.l,this.a,this.b)};var Oa=function(a,b){return b.querySelector(a)},Oc=function(a,b){return b.querySelectorAll(a)}, -xa=W.documentElement,rg=xa.matchesSelector||xa.webkitMatchesSelector||xa.mozMatchesSelector||xa.msMatchesSelector||xa.oMatchesSelector,Vc=function(a,b){return rg.call(a,b)};"function"===typeof Sizzle&&(Oa=function(a,b){return Sizzle(a,b)[0]||null},Oc=function(a,b){return Sizzle.uniqueSort(Sizzle(a,b))},Vc=Sizzle.matchesSelector);var C=[];g.selection=function(){return Ia};g.selection.prototype=C;C.select=function(a){var b=[],c,d,e,f;"function"!==typeof a&&(a=Mc(a));for(var h=-1,k=this.length;++h<k;){b.push(c= -[]);c.parentNode=(e=this[h]).parentNode;for(var g=-1,m=e.length;++g<m;)(f=e[g])?(c.push(d=a.call(f,f.__data__,g)),d&&"__data__"in f&&(d.__data__=f.__data__)):c.push(null)}return da(b)};C.selectAll=function(a){var b=[],c,d;"function"!==typeof a&&(a=Nc(a));for(var e=-1,f=this.length;++e<f;)for(var h=this[e],k=-1,g=h.length;++k<g;)if(d=h[k])b.push(c=ha(a.call(d,d.__data__,k))),c.parentNode=d;return da(b)};C.attr=function(a,b){if(2>arguments.length){if("string"===typeof a){var c=this.node();a=g.ns.qualify(a); -return a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}for(b in a)this.each(Pc(b,a[b]));return this}return this.each(Pc(a,b))};C.classed=function(a,b){if(2>arguments.length){if("string"===typeof a){var c=this.node(),d=(a=a.trim().split(/^|\s+/g)).length,e=-1;if(b=c.classList)for(;++e<d;){if(!b.contains(a[e]))return!1}else for(b=c.className,null!=b.baseVal&&(b=b.baseVal);++e<d;)if(!Qc(a[e]).test(b))return!1;return!0}for(b in a)this.each(Rc(b,a[b]));return this}return this.each(Rc(a,b))}; -C.style=function(a,b,c){var d=arguments.length;if(3>d){if("string"!==typeof a){2>d&&(b="");for(c in a)this.each(Sc(c,a[c],b));return this}if(2>d)return P.getComputedStyle(this.node(),null).getPropertyValue(a);c=""}return this.each(Sc(a,b,c))};C.property=function(a,b){if(2>arguments.length){if("string"===typeof a)return this.node()[a];for(b in a)this.each(Tc(b,a[b]));return this}return this.each(Tc(a,b))};C.text=function(a){return arguments.length?this.each("function"===typeof a?function(){var b=a.apply(this, -arguments);this.textContent=null==b?"":b}:null==a?function(){this.textContent=""}:function(){this.textContent=a}):this.node().textContent};C.html=function(a){return arguments.length?this.each("function"===typeof a?function(){var b=a.apply(this,arguments);this.innerHTML=null==b?"":b}:null==a?function(){this.innerHTML=""}:function(){this.innerHTML=a}):this.node().innerHTML};C.append=function(a){function b(){return this.appendChild(W.createElementNS(this.namespaceURI,a))}function c(){return this.appendChild(W.createElementNS(a.space, -a.local))}a=g.ns.qualify(a);return this.select(a.local?c:b)};C.insert=function(a,b){function c(){return this.insertBefore(W.createElementNS(this.namespaceURI,a),Oa(b,this))}function d(){return this.insertBefore(W.createElementNS(a.space,a.local),Oa(b,this))}a=g.ns.qualify(a);return this.select(a.local?d:c)};C.remove=function(){return this.each(function(){var a=this.parentNode;a&&a.removeChild(this)})};C.data=function(a,b){function c(a,c){var d,e=a.length,f=c.length,h=Math.min(e,f),v=Array(f),x=Array(f), -z=Array(e),y,G;if(b){var h=new ba,H=new ba,D=[],B;for(d=-1;++d<e;)B=b.call(y=a[d],y.__data__,d),h.has(B)?z[d]=y:h.set(B,y),D.push(B);for(d=-1;++d<f;)B=b.call(c,G=c[d],d),(y=h.get(B))?(v[d]=y,y.__data__=G):H.has(B)||(x[d]={__data__:G}),H.set(B,G),h.remove(B);for(d=-1;++d<e;)h.has(D[d])&&(z[d]=a[d])}else{for(d=-1;++d<h;)y=a[d],G=c[d],y?(y.__data__=G,v[d]=y):x[d]={__data__:G};for(;d<f;++d)x[d]={__data__:c[d]};for(;d<e;++d)z[d]=a[d]}x.update=v;x.parentNode=v.parentNode=z.parentNode=a.parentNode;k.push(x); -g.push(v);m.push(z)}var d=-1,e=this.length,f,h;if(!arguments.length){for(a=Array(e=(f=this[0]).length);++d<e;)if(h=f[d])a[d]=h.__data__;return a}var k=Xc([]),g=da([]),m=da([]);if("function"===typeof a)for(;++d<e;)c(f=this[d],a.call(f,f.parentNode.__data__,d));else for(;++d<e;)c(f=this[d],a);g.enter=function(){return k};g.exit=function(){return m};return g};C.datum=function(a){return arguments.length?this.property("__data__",a):this.property("__data__")};C.filter=function(a){var b=[],c,d,e;"function"!== -typeof a&&(a=Uc(a));for(var f=0,h=this.length;f<h;f++){b.push(c=[]);c.parentNode=(d=this[f]).parentNode;for(var k=0,g=d.length;k<g;k++)(e=d[k])&&a.call(e,e.__data__,k)&&c.push(e)}return da(b)};C.order=function(){for(var a=-1,b=this.length;++a<b;)for(var c=this[a],d=c.length-1,e=c[d],f;0<=--d;)if(f=c[d])e&&e!==f.nextSibling&&e.parentNode.insertBefore(f,e),e=f;return this};C.sort=function(a){a=bf.apply(this,arguments);for(var b=-1,c=this.length;++b<c;)this[b].sort(a);return this.order()};C.on=function(a, -b,c){var d=arguments.length;if(3>d){if("string"!==typeof a){2>d&&(b=!1);for(c in a)this.each(Wc(c,a[c],b));return this}if(2>d)return(d=this.node()["__on"+a])&&d._;c=!1}return this.each(Wc(a,b,c))};C.each=function(a){return ia(this,function(b,c,d){a.call(b,b.__data__,c,d)})};C.call=function(a){var b=ha(arguments);a.apply(b[0]=this,b);return this};C.empty=function(){return!this.node()};C.node=function(){for(var a=0,b=this.length;a<b;a++)for(var c=this[a],d=0,e=c.length;d<e;d++){var f=c[d];if(f)return f}return null}; -C.transition=function(){var a=Ja||++oe,b=[],c,d,e=Object.create(mb);e.time=Date.now();for(var f=-1,h=this.length;++f<h;){b.push(c=[]);for(var k=this[f],g=-1,m=k.length;++g<m;)(d=k[g])&&Pa(d,g,a,e),c.push(d)}return Ba(b,a)};var Ia=da([[W]]);Ia[0].parentNode=xa;g.select=function(a){return"string"===typeof a?Ia.select(a):da([[a]])};g.selectAll=function(a){return"string"===typeof a?Ia.selectAll(a):da([ha(a)])};var ma=[];g.selection.enter=Xc;g.selection.enter.prototype=ma;ma.append=C.append;ma.insert= -C.insert;ma.empty=C.empty;ma.node=C.node;ma.select=function(a){for(var b=[],c,d,e,f,h,k=-1,g=this.length;++k<g;){e=(f=this[k]).update;b.push(c=[]);c.parentNode=f.parentNode;for(var m=-1,n=f.length;++m<n;)(h=f[m])?(c.push(e[m]=d=a.call(f.parentNode,h.__data__,m)),d.__data__=h.__data__):c.push(null)}return da(b)};var M=[],oe=0,Ja,mb={ease:function(a){if(0>=a)return 0;if(1<=a)return 1;var b=a*a,c=b*a;return 4*(0.5>a?c:3*(a-b)+c-0.75)},delay:0,duration:250};M.call=C.call;M.empty=C.empty;M.node=C.node; -g.transition=function(a){return arguments.length?Ja?a.transition():a:Ia.transition()};g.transition.prototype=M;M.select=function(a){var b=this.id,c=[],d,e,f;"function"!==typeof a&&(a=Mc(a));for(var h=-1,k=this.length;++h<k;){c.push(d=[]);for(var g=this[h],m=-1,n=g.length;++m<n;)(f=g[m])&&(e=a.call(f,f.__data__,m))?("__data__"in f&&(e.__data__=f.__data__),Pa(e,m,b,f.__transition__[b]),d.push(e)):d.push(null)}return Ba(c,b)};M.selectAll=function(a){var b=this.id,c=[],d,e,f,h;"function"!==typeof a&& -(a=Nc(a));for(var k=-1,g=this.length;++k<g;)for(var m=this[k],n=-1,p=m.length;++n<p;)if(d=m[n]){h=d.__transition__[b];e=a.call(d,d.__data__,n);c.push(d=[]);for(var q=-1,r=e.length;++q<r;)Pa(f=e[q],q,b,h),d.push(f)}return Ba(c,b)};M.filter=function(a){var b=[],c,d,e;"function"!==typeof a&&(a=Uc(a));for(var f=0,h=this.length;f<h;f++){b.push(c=[]);d=this[f];for(var k=0,g=d.length;k<g;k++)(e=d[k])&&a.call(e,e.__data__,k)&&c.push(e)}return Ba(b,this.id,this.time).ease(this.ease())};M.attr=function(a,b){function c(){this.removeAttribute(f)} -function d(){this.removeAttributeNS(f.space,f.local)}if(2>arguments.length){for(b in a)this.attr(b,a[b]);return this}var e=xb(a),f=g.ns.qualify(a);return Ib(this,"attr."+a,b,function(a){function b(){var c=this.getAttribute(f),d;return c!==a&&(d=e(c,a),function(a){this.setAttribute(f,d(a))})}function g(){var b=this.getAttributeNS(f.space,f.local),c;return b!==a&&(c=e(b,a),function(a){this.setAttributeNS(f.space,f.local,c(a))})}return null==a?f.local?d:c:(a+="",f.local?g:b)})};M.attrTween=function(a, -b){function c(a,c){var d=b.call(this,a,c,this.getAttribute(e));return d&&function(a){this.setAttribute(e,d(a))}}function d(a,c){var d=b.call(this,a,c,this.getAttributeNS(e.space,e.local));return d&&function(a){this.setAttributeNS(e.space,e.local,d(a))}}var e=g.ns.qualify(a);return this.tween("attr."+a,e.local?d:c)};M.style=function(a,b,c){function d(){this.style.removeProperty(a)}var e=arguments.length;if(3>e){if("string"!==typeof a){2>e&&(b="");for(c in a)this.style(c,a[c],b);return this}c=""}var f= -xb(a);return Ib(this,"style."+a,b,function(b){function e(){var d=P.getComputedStyle(this,null).getPropertyValue(a),k;return d!==b&&(k=f(d,b),function(b){this.style.setProperty(a,k(b),c)})}return null==b?d:(b+="",e)})};M.styleTween=function(a,b,c){3>arguments.length&&(c="");return this.tween("style."+a,function(d,e){var f=b.call(this,d,e,P.getComputedStyle(this,null).getPropertyValue(a));return f&&function(b){this.style.setProperty(a,f(b),c)}})};M.text=function(a){return Ib(this,"text",a,cf)};M.remove= -function(){return this.each("end.transition",function(){var a;!this.__transition__&&(a=this.parentNode)&&a.removeChild(this)})};M.ease=function(a){var b=this.id;if(1>arguments.length)return this.node().__transition__[b].ease;"function"!==typeof a&&(a=g.ease.apply(g,arguments));return ia(this,function(c){c.__transition__[b].ease=a})};M.delay=function(a){var b=this.id;return ia(this,"function"===typeof a?function(c,d,e){c.__transition__[b].delay=a.call(c,c.__data__,d,e)|0}:(a|=0,function(c){c.__transition__[b].delay= -a}))};M.duration=function(a){var b=this.id;return ia(this,"function"===typeof a?function(c,d,e){c.__transition__[b].duration=Math.max(1,a.call(c,c.__data__,d,e)|0)}:(a=Math.max(1,a|0),function(c){c.__transition__[b].duration=a}))};M.each=function(a,b){var c=this.id;if(2>arguments.length){var d=mb,e=Ja;Ja=c;ia(this,function(b,d,e){mb=b.__transition__[c];a.call(b,b.__data__,d,e)});mb=d;Ja=e}else ia(this,function(d){d.__transition__[c].event.on(a,b)});return this};M.transition=function(){for(var a=this.id, -b=++oe,c=[],d,e,f,h,k=0,g=this.length;k<g;k++){c.push(d=[]);e=this[k];for(var m=0,n=e.length;m<n;m++){if(f=e[m])h=Object.create(f.__transition__[a]),h.delay+=h.duration,Pa(f,m,b,h);d.push(f)}}return Ba(c,b)};M.tween=function(a,b){var c=this.id;return 2>arguments.length?this.node().__transition__[c].tween.get(a):ia(this,null==b?function(b){b.__transition__[c].tween.remove(a)}:function(d){d.__transition__[c].tween.set(a,b)})};var sg=0,Kb={},ua=null,Ra,Qa;g.timer=function(a,b,c){if(3>arguments.length){if(2> -arguments.length)b=0;else if(!isFinite(b))return;c=Date.now()}var d=Kb[a.id];d&&d.callback===a?(d.then=c,d.delay=b):Kb[a.id=++sg]=ua={callback:a,then:c,delay:b,next:ua};Ra||(Qa=clearTimeout(Qa),Ra=1,Zc(Jb))};g.timer.flush=function(){for(var a,b=Date.now(),c=ua;c;)a=b-c.then,c.delay||(c.flush=c.callback(a)),c=c.next;Yc()};var Zc=P.requestAnimationFrame||P.webkitRequestAnimationFrame||P.mozRequestAnimationFrame||P.oRequestAnimationFrame||P.msRequestAnimationFrame||function(a){setTimeout(a,17)};g.mouse= -function(a){return $c(a,Cc())};var Lb=/WebKit/.test(P.navigator.userAgent)?-1:0;g.touches=function(a,b){2>arguments.length&&(b=Cc().touches);return b?ha(b).map(function(b){var d=$c(a,b);d.identifier=b.identifier;return d}):[]};g.scale={};g.scale.linear=function(){return ad([0,1],[0,1],g.interpolate,!1)};g.scale.log=function(){return ed(g.scale.linear(),Ob)};var gf=g.format(".0e");Ob.pow=function(a){return Math.pow(10,a)};Ua.pow=function(a){return-Math.pow(10,-a)};g.scale.pow=function(){return fd(g.scale.linear(), -1)};g.scale.sqrt=function(){return g.scale.pow().exponent(0.5)};g.scale.ordinal=function(){return gd([],{t:"range",a:[[]]})};g.scale.category10=function(){return g.scale.ordinal().range(tg)};g.scale.category20=function(){return g.scale.ordinal().range(ug)};g.scale.category20b=function(){return g.scale.ordinal().range(vg)};g.scale.category20c=function(){return g.scale.ordinal().range(wg)};var tg="#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf".split(" "),ug="#1f77b4 #aec7e8 #ff7f0e #ffbb78 #2ca02c #98df8a #d62728 #ff9896 #9467bd #c5b0d5 #8c564b #c49c94 #e377c2 #f7b6d2 #7f7f7f #c7c7c7 #bcbd22 #dbdb8d #17becf #9edae5".split(" "), -vg="#393b79 #5254a3 #6b6ecf #9c9ede #637939 #8ca252 #b5cf6b #cedb9c #8c6d31 #bd9e39 #e7ba52 #e7cb94 #843c39 #ad494a #d6616b #e7969c #7b4173 #a55194 #ce6dbd #de9ed6".split(" "),wg="#3182bd #6baed6 #9ecae1 #c6dbef #e6550d #fd8d3c #fdae6b #fdd0a2 #31a354 #74c476 #a1d99b #c7e9c0 #756bb1 #9e9ac8 #bcbddc #dadaeb #636363 #969696 #bdbdbd #d9d9d9".split(" ");g.scale.quantile=function(){return hd([],[])};g.scale.quantize=function(){return id(0,1,[0,1])};g.scale.threshold=function(){return jd([0.5],[0,1])}; -g.scale.identity=function(){return kd([0,1])};g.svg={};g.svg.arc=function(){function a(){var a=b.apply(this,arguments),h=c.apply(this,arguments),k=d.apply(this,arguments)+na,g=e.apply(this,arguments)+na,m=(g<k&&(m=k,k=g,g=m),g-k),n=m<u?"0":"1",p=Math.cos(k),k=Math.sin(k),q=Math.cos(g),g=Math.sin(g);return m>=xg?a?"M0,"+h+"A"+h+","+h+" 0 1,1 0,"+-h+"A"+h+","+h+" 0 1,1 0,"+h+"M0,"+a+"A"+a+","+a+" 0 1,0 0,"+-a+"A"+a+","+a+" 0 1,0 0,"+a+"Z":"M0,"+h+"A"+h+","+h+" 0 1,1 0,"+-h+"A"+h+","+h+" 0 1,1 0,"+h+ -"Z":a?"M"+h*p+","+h*k+"A"+h+","+h+" 0 "+n+",1 "+h*q+","+h*g+"L"+a*q+","+a*g+"A"+a+","+a+" 0 "+n+",0 "+a*p+","+a*k+"Z":"M"+h*p+","+h*k+"A"+h+","+h+" 0 "+n+",1 "+h*q+","+h*g+"L0,0Z"}var b=hf,c=jf,d=ld,e=md;a.innerRadius=function(c){if(!arguments.length)return b;b=F(c);return a};a.outerRadius=function(b){if(!arguments.length)return c;c=F(b);return a};a.startAngle=function(b){if(!arguments.length)return d;d=F(b);return a};a.endAngle=function(b){if(!arguments.length)return e;e=F(b);return a};a.centroid= -function(){var a=(b.apply(this,arguments)+c.apply(this,arguments))/2,h=(d.apply(this,arguments)+e.apply(this,arguments))/2+na;return[Math.cos(h)*a,Math.sin(h)*a]};return a};var na=-u/2,xg=2*u-1E-6;g.svg.line=function(){return nd(V)};var Qb=g.map({linear:U,"linear-closed":function(a){return U(a)+"Z"},"step-before":Rb,"step-after":Sb,basis:pd,"basis-open":function(a){if(4>a.length)return U(a);for(var b=[],c=-1,d=a.length,e,f=[0],h=[0];3>++c;)e=a[c],f.push(e[0]),h.push(e[1]);b.push(aa(va,f)+","+aa(va, -h));for(--c;++c<d;)e=a[c],f.shift(),f.push(e[0]),h.shift(),h.push(e[1]),Da(b,f,h);return b.join("")},"basis-closed":function(a){for(var b,c=-1,d=a.length,e=d+4,f,h=[],g=[];4>++c;)f=a[c%d],h.push(f[0]),g.push(f[1]);b=[aa(va,h),",",aa(va,g)];for(--c;++c<e;)f=a[c%d],h.shift(),h.push(f[0]),g.shift(),g.push(f[1]),Da(b,h,g);return b.join("")},bundle:function(a,b){var c=a.length-1;if(c)for(var d=a[0][0],e=a[0][1],f=a[c][0]-d,h=a[c][1]-e,g=-1,l,m;++g<=c;)l=a[g],m=g/c,l[0]=b*l[0]+(1-b)*(d+m*f),l[1]=b*l[1]+ -(1-b)*(e+m*h);return pd(a)},cardinal:function(a,b){return 3>a.length?U(a):a[0]+Wa(a,Tb(a,b))},"cardinal-open":function(a,b){return 4>a.length?U(a):a[1]+Wa(a.slice(1,a.length-1),Tb(a,b))},"cardinal-closed":function(a,b){return 3>a.length?U(a):a[0]+Wa((a.push(a[0]),a),Tb([a[a.length-2]].concat(a,[a[1]]),b))},monotone:function(a){if(3>a.length)a=U(a);else{var b=a[0],c=[],d,e,f,h;d=0;e=a.length-1;var g=[];f=a[1];for(h=g[0]=Ub(a[0],f);++d<e;)g[d]=(h+(h=Ub(f,f=a[d+1])))/2;g[d]=h;for(var l=-1,m=a.length- -1;++l<m;)d=Ub(a[l],a[l+1]),1E-6>Math.abs(d)?g[l]=g[l+1]=0:(e=g[l]/d,f=g[l+1]/d,h=e*e+f*f,9<h&&(h=3*d/Math.sqrt(h),g[l]=h*e,g[l+1]=h*f));for(l=-1;++l<=m;)h=(a[Math.min(m,l+1)][0]-a[Math.max(0,l-1)][0])/(6*(1+g[l]*g[l])),c.push([h||0,g[l]*h||0]);a=b+Wa(a,c)}return a}});Qb.forEach(function(a,b){b.key=a;b.closed=/-closed$/.test(a)});var qd=[0,2/3,1/3,0],rd=[0,1/3,2/3,0],va=[0,1/6,2/3,1/6];g.svg.line.radial=function(){var a=nd(sd);a.radius=a.x;delete a.x;a.angle=a.y;delete a.y;return a};Rb.reverse=Sb; -Sb.reverse=Rb;g.svg.area=function(){return td(V)};g.svg.area.radial=function(){var a=td(sd);a.radius=a.x;delete a.x;a.innerRadius=a.x0;delete a.x0;a.outerRadius=a.x1;delete a.x1;a.angle=a.y;delete a.y;a.startAngle=a.y0;delete a.y0;a.endAngle=a.y1;delete a.y1;return a};g.svg.chord=function(){function a(a,f){var h=b(this,d,a,f),g=b(this,e,a,f);return"M"+h.p0+c(h.r,h.p1,h.a1-h.a0)+(h.a0==g.a0&&h.a1==g.a1?"Q 0,0 "+h.p0:"Q 0,0 "+g.p0+c(g.r,g.p1,g.a1-g.a0)+("Q 0,0 "+h.p0))+"Z"}function b(a,b,c,d){var e= -b.call(a,c,d);b=f.call(a,e,d);c=h.call(a,e,d)+na;a=g.call(a,e,d)+na;return{r:b,a0:c,a1:a,p0:[b*Math.cos(c),b*Math.sin(c)],p1:[b*Math.cos(a),b*Math.sin(a)]}}function c(a,b,c){return"A"+a+","+a+" 0 "+ +(c>u)+",1 "+b}var d=sb,e=rb,f=kf,h=ld,g=md;a.radius=function(b){if(!arguments.length)return f;f=F(b);return a};a.source=function(b){if(!arguments.length)return d;d=F(b);return a};a.target=function(b){if(!arguments.length)return e;e=F(b);return a};a.startAngle=function(b){if(!arguments.length)return h; -h=F(b);return a};a.endAngle=function(b){if(!arguments.length)return g;g=F(b);return a};return a};g.svg.diagonal=function(){function a(a,f){var h=b.call(this,a,f),g=c.call(this,a,f),l=(h.y+g.y)/2,h=[h,{x:h.x,y:l},{x:g.x,y:l},g],h=h.map(d);return"M"+h[0]+"C"+h[1]+" "+h[2]+" "+h[3]}var b=sb,c=rb,d=ud;a.source=function(c){if(!arguments.length)return b;b=F(c);return a};a.target=function(b){if(!arguments.length)return c;c=F(b);return a};a.projection=function(b){if(!arguments.length)return d;d=b;return a}; -return a};g.svg.diagonal.radial=function(){var a=g.svg.diagonal(),b=ud,c=a.projection;a.projection=function(a){return arguments.length?c(lf(b=a)):b};return a};g.svg.symbol=function(){function a(a,e){return(pe.get(b.call(this,a,e))||vd)(c.call(this,a,e))}var b=nf,c=mf;a.type=function(c){if(!arguments.length)return b;b=F(c);return a};a.size=function(b){if(!arguments.length)return c;c=F(b);return a};return a};var pe=g.map({circle:vd,cross:function(a){a=Math.sqrt(a/5)/2;return"M"+-3*a+","+-a+"H"+-a+"V"+ --3*a+"H"+a+"V"+-a+"H"+3*a+"V"+a+"H"+a+"V"+3*a+"H"+-a+"V"+a+"H"+-3*a+"Z"},diamond:function(a){a=Math.sqrt(a/(2*qe));var b=a*qe;return"M0,"+-a+"L"+b+",0 0,"+a+" "+-b+",0Z"},square:function(a){a=Math.sqrt(a)/2;return"M"+-a+","+-a+"L"+a+","+-a+" "+a+","+a+" "+-a+","+a+"Z"},"triangle-down":function(a){a=Math.sqrt(a/nb);var b=a*nb/2;return"M0,"+b+"L"+a+","+-b+" "+-a+","+-b+"Z"},"triangle-up":function(a){a=Math.sqrt(a/nb);var b=a*nb/2;return"M0,"+-b+"L"+a+","+b+" "+-a+","+b+"Z"}});g.svg.symbolTypes=pe.keys(); -var nb=Math.sqrt(3),qe=Math.tan(30*w);g.svg.axis=function(){function a(a){a.each(function(){var a=g.select(this),p=null==l?b.ticks?b.ticks.apply(b,k):b.domain():l,s=null==m?b.tickFormat?b.tickFormat.apply(b,k):String:m,t=of(b,p,n),v=a.selectAll(".tick.minor").data(t,String),t=v.enter().insert("line",".tick").attr("class","tick minor").style("opacity",1E-6),x=g.transition(v.exit()).style("opacity",1E-6).remove(),v=g.transition(v).style("opacity",1),z=a.selectAll(".tick.major").data(p,String),p=z.enter().insert("g", -"path").attr("class","tick major").style("opacity",1E-6),y=g.transition(z.exit()).style("opacity",1E-6).remove(),G=g.transition(z).style("opacity",1),H,D=Sa(b),a=a.selectAll(".domain").data([0]),a=(a.enter().append("path").attr("class","domain"),g.transition(a)),B=b.copy(),E=this.__chart__||B;this.__chart__=B;p.append("line");p.append("text");var u=p.select("line"),L=G.select("line"),s=z.select("text").text(s),z=p.select("text"),w=G.select("text");switch(c){case "bottom":H=wd;t.attr("y2",e);v.attr("x2", -0).attr("y2",e);u.attr("y2",d);z.attr("y",Math.max(d,0)+h);L.attr("x2",0).attr("y2",d);w.attr("x",0).attr("y",Math.max(d,0)+h);s.attr("dy",".71em").style("text-anchor","middle");a.attr("d","M"+D[0]+","+f+"V0H"+D[1]+"V"+f);break;case "top":H=wd;t.attr("y2",-e);v.attr("x2",0).attr("y2",-e);u.attr("y2",-d);z.attr("y",-(Math.max(d,0)+h));L.attr("x2",0).attr("y2",-d);w.attr("x",0).attr("y",-(Math.max(d,0)+h));s.attr("dy","0em").style("text-anchor","middle");a.attr("d","M"+D[0]+","+-f+"V0H"+D[1]+"V"+-f); -break;case "left":H=xd;t.attr("x2",-e);v.attr("x2",-e).attr("y2",0);u.attr("x2",-d);z.attr("x",-(Math.max(d,0)+h));L.attr("x2",-d).attr("y2",0);w.attr("x",-(Math.max(d,0)+h)).attr("y",0);s.attr("dy",".32em").style("text-anchor","end");a.attr("d","M"+-f+","+D[0]+"H0V"+D[1]+"H"+-f);break;case "right":H=xd,t.attr("x2",e),v.attr("x2",e).attr("y2",0),u.attr("x2",d),z.attr("x",Math.max(d,0)+h),L.attr("x2",d).attr("y2",0),w.attr("x",Math.max(d,0)+h).attr("y",0),s.attr("dy",".32em").style("text-anchor","start"), -a.attr("d","M"+f+","+D[0]+"H0V"+D[1]+"H"+f)}if(b.ticks)p.call(H,E),G.call(H,B),y.call(H,B),t.call(H,E),v.call(H,B),x.call(H,B);else{var fa=B.rangeBand()/2,t=function(a){return B(a)+fa};p.call(H,t);G.call(H,t)}})}var b=g.scale.linear(),c=re,d=6,e=6,f=6,h=3,k=[10],l=null,m,n=0;a.scale=function(c){if(!arguments.length)return b;b=c;return a};a.orient=function(b){if(!arguments.length)return c;c=b in yg?b+"":re;return a};a.ticks=function(){if(!arguments.length)return k;k=arguments;return a};a.tickValues= -function(b){if(!arguments.length)return l;l=b;return a};a.tickFormat=function(b){if(!arguments.length)return m;m=b;return a};a.tickSize=function(b,c){if(!arguments.length)return d;var h=arguments.length-1;d=+b;e=1<h?+c:d;f=0<h?+arguments[h]:d;return a};a.tickPadding=function(b){if(!arguments.length)return h;h=+b;return a};a.tickSubdivide=function(b){if(!arguments.length)return n;n=+b;return a};return a};var re="bottom",yg={top:1,right:1,bottom:1,left:1};g.svg.brush=function(){function a(f){f.each(function(){var f= -g.select(this),m=f.selectAll(".background").data([0]),p=f.selectAll(".extent").data([0]),n=f.selectAll(".resize").data(l,String);f.style("pointer-events","all").on("mousedown.brush",e).on("touchstart.brush",e);m.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair");p.enter().append("rect").attr("class","extent").style("cursor","move");n.enter().append("g").attr("class",function(a){return"resize "+a}).style("cursor",function(a){return zg[a]}).append("rect").attr("x", -function(a){return/[ew]$/.test(a)?-3:null}).attr("y",function(a){return/^[ns]/.test(a)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden");n.style("display",a.empty()?"none":null);n.exit().remove();h&&(p=Sa(h),m.attr("x",p[0]).attr("width",p[1]-p[0]),c(f));k&&(p=Sa(k),m.attr("y",p[0]).attr("height",p[1]-p[0]),d(f));b(f)})}function b(a){a.selectAll(".resize").attr("transform",function(a){return"translate("+m[+/e$/.test(a)][0]+","+m[+/^s/.test(a)][1]+")"})}function c(a){a.select(".extent").attr("x", -m[0][0]);a.selectAll(".extent,.n>rect,.s>rect").attr("width",m[1][0]-m[0][0])}function d(a){a.select(".extent").attr("y",m[0][1]);a.selectAll(".extent,.e>rect,.w>rect").attr("height",m[1][1]-m[0][1])}function e(){function e(){var a=g.event.changedTouches;return a?g.touches(t,a)[0]:g.mouse(t)}function l(){var a=e(),f=!1;u&&(a[0]+=u[0],a[1]+=u[1]);D||(g.event.altKey?(B||(B=[(m[0][0]+m[1][0])/2,(m[0][1]+m[1][1])/2]),E[0]=m[+(a[0]<B[0])][0],E[1]=m[+(a[1]<B[1])][1]):B=null);G&&r(a,h,0)&&(c(z),f=!0);H&& -r(a,k,1)&&(d(z),f=!0);f&&(b(z),x({type:"brush",mode:D?"move":"resize"}))}function r(a,b,c){var d=Sa(b);b=d[0];var e=d[1],d=E[c],f=m[1][c]-m[0][c];D&&(b-=d,e-=f+d);a=Math.max(b,Math.min(e,a[c]));D?b=(a+=d)+f:(B&&(d=Math.max(b,Math.min(e,2*B[c]-a))),d<a?(b=a,a=d):b=d);if(m[0][c]!==a||m[1][c]!==b)return n=null,m[0][c]=a,m[1][c]=b,!0}function s(){l();z.style("pointer-events","all").selectAll(".resize").style("display",a.empty()?"none":null);g.select("body").style("cursor",null);L.on("mousemove.brush", -null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null);x({type:"brushend"});X()}var t=this,v=g.select(g.event.target),x=f.of(t,arguments),z=g.select(t),y=v.datum(),G=!/^(n|s)$/.test(y)&&h,H=!/^(e|w)$/.test(y)&&k,D=v.classed("extent"),B,E=e(),u,L=g.select(P).on("mousemove.brush",l).on("mouseup.brush",s).on("touchmove.brush",l).on("touchend.brush",s).on("keydown.brush",function(){32==g.event.keyCode&&(D||(B=null,E[0]-=m[1][0], -E[1]-=m[1][1],D=2),X())}).on("keyup.brush",function(){32==g.event.keyCode&&2==D&&(E[0]+=m[1][0],E[1]+=m[1][1],D=0,X())});if(D)E[0]=m[0][0]-E[0],E[1]=m[0][1]-E[1];else if(y){var w=+/w$/.test(y),y=+/^n/.test(y);u=[m[1-w][0]-E[0],m[1-y][1]-E[1]];E[0]=m[w][0];E[1]=m[y][1]}else g.event.altKey&&(B=E.slice());z.style("pointer-events","none").selectAll(".resize").style("display",null);g.select("body").style("cursor",v.style("cursor"));x({type:"brushstart"});l();X()}var f=wb(a,"brushstart","brush","brushend"), -h=null,k=null,l=vc[0],m=[[0,0],[0,0]],n;a.x=function(b){if(!arguments.length)return h;h=b;l=vc[!h<<1|!k];return a};a.y=function(b){if(!arguments.length)return k;k=b;l=vc[!h<<1|!k];return a};a.extent=function(b){var c,d,e,f,g;if(!arguments.length)return b=n||m,h&&(c=b[0][0],d=b[1][0],n||(c=m[0][0],d=m[1][0],h.invert&&(c=h.invert(c),d=h.invert(d)),d<c&&(g=c,c=d,d=g))),k&&(e=b[0][1],f=b[1][1],n||(e=m[0][1],f=m[1][1],k.invert&&(e=k.invert(e),f=k.invert(f)),f<e&&(g=e,e=f,f=g))),h&&k?[[c,e],[d,f]]:h?[c, -d]:k&&[e,f];n=[[0,0],[0,0]];h&&(c=b[0],d=b[1],k&&(c=c[0],d=d[0]),n[0][0]=c,n[1][0]=d,h.invert&&(c=h(c),d=h(d)),d<c&&(g=c,c=d,d=g),m[0][0]=c|0,m[1][0]=d|0);k&&(e=b[0],f=b[1],h&&(e=e[1],f=f[1]),n[0][1]=e,n[1][1]=f,k.invert&&(e=k(e),f=k(f)),f<e&&(g=e,e=f,f=g),m[0][1]=e|0,m[1][1]=f|0);return a};a.clear=function(){n=null;m[0][0]=m[0][1]=m[1][0]=m[1][1]=0;return a};a.empty=function(){return h&&m[0][0]===m[1][0]||k&&m[0][1]===m[1][1]};return g.rebind(a,f,"on")};var zg={n:"ns-resize",e:"ew-resize",s:"ns-resize", -w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},vc=["n e s w nw ne se sw".split(" "),["e","w"],["n","s"],[]];g.behavior={};g.behavior.drag=function(){function a(){this.on("mousedown.drag",b).on("touchstart.drag",b)}function b(){function a(){var b=k.parentNode;return null!=n?g.touches(b).filter(function(a){return a.identifier===n})[0]:g.mouse(b)}function b(){l({type:"dragend"});if(r&&(X(),g.event.target===m))s.on("click.drag",h,!0);s.on(null!=n?"touchmove.drag-"+ -n:"mousemove.drag",null).on(null!=n?"touchend.drag-"+n:"mouseup.drag",null)}function h(){X();s.on("click.drag",null)}var k=this,l=c.of(k,arguments),m=g.event.target,n=g.event.touches?g.event.changedTouches[0].identifier:null,p,q=a(),r=0,s=g.select(P).on(null!=n?"touchmove.drag-"+n:"mousemove.drag",function(){if(!k.parentNode)return b();var c=a(),d=c[0]-q[0],h=c[1]-q[1];r=r|d|h;q=c;X();l({type:"drag",x:c[0]+p[0],y:c[1]+p[1],dx:d,dy:h})}).on(null!=n?"touchend.drag-"+n:"mouseup.drag",b,!0);d?(p=d.apply(k, -arguments),p=[p.x-q[0],p.y-q[1]]):p=[0,0];null==n&&X();l({type:"dragstart"})}var c=wb(a,"drag","dragstart","dragend"),d=null;a.origin=function(b){if(!arguments.length)return d;d=b;return a};return g.rebind(a,c,"on")};g.behavior.zoom=function(){function a(){this.on("mousedown.zoom",h).on("mousemove.zoom",l).on(Ag+".zoom",k).on("dblclick.zoom",m).on("touchstart.zoom",n).on("touchmove.zoom",p).on("touchend.zoom",n)}function b(a){return[(a[0]-q[0])/s,(a[1]-q[1])/s]}function c(a){s=Math.max(v[0],Math.min(v[1], -a))}function d(a,b){b=[b[0]*s+q[0],b[1]*s+q[1]];q[0]+=a[0]-b[0];q[1]+=a[1]-b[1]}function e(){y&&y.domain(z.range().map(function(a){return(a-q[0])/s}).map(z.invert));H&&H.domain(G.range().map(function(a){return(a-q[1])/s}).map(G.invert))}function f(a){e();g.event.preventDefault();a({type:"zoom",scale:s,translate:q})}function h(){function a(){X();l.on("click.zoom",null)}var c=this,e=x.of(c,arguments),h=g.event.target,k=0,l=g.select(P).on("mousemove.zoom",function(){k=1;d(g.mouse(c),m);f(e)}).on("mouseup.zoom", -function(){k&&X();l.on("mousemove.zoom",null).on("mouseup.zoom",null);if(k&&g.event.target===h)l.on("click.zoom",a,!0)}),m=b(g.mouse(c));P.focus();X()}function k(){r||(r=b(g.mouse(this)));c(Math.pow(2,0.002*ob())*s);d(g.mouse(this),r);f(x.of(this,arguments))}function l(){r=null}function m(){var a=g.mouse(this),e=b(a),h=Math.log(s)/Math.LN2;c(Math.pow(2,g.event.shiftKey?Math.ceil(h)-1:Math.floor(h)+1));d(a,e);f(x.of(this,arguments))}function n(){var a=g.touches(this),e=Date.now();t=s;r={};a.forEach(function(a){r[a.identifier]= -b(a)});X();if(1===a.length){if(500>e-D){var h=a[0],a=b(a[0]);c(2*s);d(h,a);f(x.of(this,arguments))}D=e}}function p(){var a=g.touches(this),b=a[0],e=r[b.identifier];if(a=a[1]){var h=r[a.identifier],b=[(b[0]+a[0])/2,(b[1]+a[1])/2],e=[(e[0]+h[0])/2,(e[1]+h[1])/2];c(g.event.scale*t)}d(b,e);D=null;f(x.of(this,arguments))}var q=[0,0],r,s=1,t,v=se,x=wb(a,"zoom"),z,y,G,H,D;a.translate=function(b){if(!arguments.length)return q;q=b.map(Number);e();return a};a.scale=function(b){if(!arguments.length)return s; -s=+b;e();return a};a.scaleExtent=function(b){if(!arguments.length)return v;v=null==b?se:b.map(Number);return a};a.x=function(b){if(!arguments.length)return y;y=b;z=b.copy();q=[0,0];s=1;return a};a.y=function(b){if(!arguments.length)return H;H=b;G=b.copy();q=[0,0];s=1;return a};return g.rebind(a,x,"on")};var se=[0,Infinity],ob,Ag="onwheel"in document?(ob=function(){return-g.event.deltaY*(g.event.deltaMode?120:1)},"wheel"):"onmousewheel"in document?(ob=function(){return g.event.wheelDelta},"mousewheel"): -(ob=function(){return-g.event.detail},"MozMousePixelScroll");g.layout={};g.layout.bundle=function(){return function(a){for(var b=[],c=-1,d=a.length;++c<d;)b.push(pf(a[c]));return b}};g.layout.chord=function(){function a(){var a={},c=[],r=g.range(h),s=[],t,v,x,z,y;d=[];e=[];t=0;for(z=-1;++z<h;){v=0;for(y=-1;++y<h;)v+=f[z][y];c.push(v);s.push(g.range(h));t+=v}l&&r.sort(function(a,b){return l(c[a],c[b])});m&&s.forEach(function(a,b){a.sort(function(a,c){return m(f[b][a],f[b][c])})});t=(2*u-k*h)/t;v=0; -for(z=-1;++z<h;){x=v;for(y=-1;++y<h;){var G=r[z],H=s[G][y],D=f[G][H],B=v,E=v+=D*t;a[G+"-"+H]={index:G,subindex:H,startAngle:B,endAngle:E,value:D}}e[G]={index:G,startAngle:x,endAngle:v,value:(v-x)/t};v+=k}for(z=-1;++z<h;)for(y=z-1;++y<h;)r=a[z+"-"+y],s=a[y+"-"+z],(r.value||s.value)&&d.push(r.value<s.value?{source:s,target:r}:{source:r,target:s});n&&b()}function b(){d.sort(function(a,b){return n((a.source.value+a.target.value)/2,(b.source.value+b.target.value)/2)})}var c={},d,e,f,h,k=0,l,m,n;c.matrix= -function(a){if(!arguments.length)return f;h=(f=a)&&f.length;d=e=null;return c};c.padding=function(a){if(!arguments.length)return k;k=a;d=e=null;return c};c.sortGroups=function(a){if(!arguments.length)return l;l=a;d=e=null;return c};c.sortSubgroups=function(a){if(!arguments.length)return m;m=a;d=null;return c};c.sortChords=function(a){if(!arguments.length)return n;n=a;d&&b();return c};c.chords=function(){d||a();return d};c.groups=function(){e||a();return e};return c};g.layout.force=function(){function a(a){return function(b, -c,d,e){if(b.point!==a){d=b.cx-a.x;var f=b.cy-a.y,h=1/Math.sqrt(d*d+f*f);if((e-c)*h<q)return c=b.charge*h*h,a.px-=d*c,a.py-=f*c,!0;b.point&&isFinite(h)&&(c=b.pointCharge*h*h,a.px-=d*c,a.py-=f*c)}return!b.charge}}function b(a){a.px=g.event.x;a.py=g.event.y;c.resume()}var c={},d=g.dispatch("start","tick","end"),e=[1,1],f,h,k=0.9,l=Bg,m=Cg,n=-30,p=0.1,q=0.8,r=[],s=[],t,v,x;c.tick=function(){if(0.005>(h*=0.99))return d.end({type:"end",alpha:h=0}),!0;var b=r.length,c=s.length,f,l,m,q,u,w,L;for(f=0;f<c;++f)if(l= -s[f],m=l.source,q=l.target,w=q.x-m.x,L=q.y-m.y,u=w*w+L*L)u=h*v[f]*((u=Math.sqrt(u))-t[f])/u,w*=u,L*=u,q.x-=w*(u=m.weight/(q.weight+m.weight)),q.y-=L*u,m.x+=w*(u=1-u),m.y+=L*u;if(u=h*p)if(w=e[0]/2,L=e[1]/2,f=-1,u)for(;++f<b;)l=r[f],l.x+=(w-l.x)*u,l.y+=(L-l.y)*u;if(n)for(zd(c=g.geom.quadtree(r),h,x),f=-1;++f<b;)(l=r[f]).fixed||c.visit(a(l));for(f=-1;++f<b;)l=r[f],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*k,l.y-=(l.py-(l.py=l.y))*k);d.tick({type:"tick",alpha:h})};c.nodes=function(a){if(!arguments.length)return r; -r=a;return c};c.links=function(a){if(!arguments.length)return s;s=a;return c};c.size=function(a){if(!arguments.length)return e;e=a;return c};c.linkDistance=function(a){if(!arguments.length)return l;l="function"===typeof a?a:+a;return c};c.distance=c.linkDistance;c.linkStrength=function(a){if(!arguments.length)return m;m="function"===typeof a?a:+a;return c};c.friction=function(a){if(!arguments.length)return k;k=+a;return c};c.charge=function(a){if(!arguments.length)return n;n="function"===typeof a? -a:+a;return c};c.gravity=function(a){if(!arguments.length)return p;p=+a;return c};c.theta=function(a){if(!arguments.length)return q;q=+a;return c};c.alpha=function(a){if(!arguments.length)return h;a=+a;h?h=0<a?a:0:0<a&&(d.start({type:"start",alpha:h=a}),g.timer(c.tick));return c};c.start=function(){function a(c,e){var g;if(!p){p=[];for(d=0;d<f;++d)p[d]=[];for(d=0;d<h;++d)g=s[d],p[g.source.index].push(g.target),p[g.target.index].push(g.source)}g=p[b];for(var k=-1,l=g.length,m;++k<l;)if(!isNaN(m=g[k][c]))return m; -return Math.random()*e}var b,d,f=r.length,h=s.length,g=e[0],k=e[1],p,q;for(b=0;b<f;++b)(q=r[b]).index=b,q.weight=0;for(b=0;b<h;++b)q=s[b],"number"==typeof q.source&&(q.source=r[q.source]),"number"==typeof q.target&&(q.target=r[q.target]),++q.source.weight,++q.target.weight;for(b=0;b<f;++b)q=r[b],isNaN(q.x)&&(q.x=a("x",g)),isNaN(q.y)&&(q.y=a("y",k)),isNaN(q.px)&&(q.px=q.x),isNaN(q.py)&&(q.py=q.y);t=[];if("function"===typeof l)for(b=0;b<h;++b)t[b]=+l.call(this,s[b],b);else for(b=0;b<h;++b)t[b]=l;v= -[];if("function"===typeof m)for(b=0;b<h;++b)v[b]=+m.call(this,s[b],b);else for(b=0;b<h;++b)v[b]=m;x=[];if("function"===typeof n)for(b=0;b<f;++b)x[b]=+n.call(this,r[b],b);else for(b=0;b<f;++b)x[b]=n;return c.resume()};c.resume=function(){return c.alpha(0.1)};c.stop=function(){return c.alpha(0)};c.drag=function(){f||(f=g.behavior.drag().origin(V).on("dragstart.force",qf).on("drag.force",b).on("dragend.force",rf));if(!arguments.length)return f;this.on("mouseover.force",sf).on("mouseout.force",tf).call(f)}; -return g.rebind(c,d,"on")};var Bg=20,Cg=1;g.layout.partition=function(){function a(b,c,d,e){var g=b.children;b.x=c;b.y=b.depth*e;b.dx=d;b.dy=e;if(g&&(p=g.length)){var n=-1,p,q;for(d=b.value?d/b.value:0;++n<p;)a(q=g[n],c,b=q.value*d,e),c+=b}}function b(a){a=a.children;var c=0;if(a&&(e=a.length))for(var d=-1,e;++d<e;)c=Math.max(c,b(a[d]));return 1+c}function c(c,h){var g=d.call(this,c,h);a(g[0],0,e[0],e[1]/b(g[0]));return g}var d=g.layout.hierarchy(),e=[1,1];c.size=function(a){if(!arguments.length)return e; -e=a;return c};return Ea(c,d)};g.layout.pie=function(){function a(f){var h=f.map(function(c,d){return+b.call(a,c,d)}),k=+("function"===typeof d?d.apply(this,arguments):d),l=(("function"===typeof e?e.apply(this,arguments):e)-d)/g.sum(h),m=g.range(f.length);null!=c&&m.sort(c===te?function(a,b){return h[b]-h[a]}:function(a,b){return c(f[a],f[b])});var n=[];m.forEach(function(a){var b;n[a]={data:f[a],value:b=h[a],startAngle:k,endAngle:k+=b*l}});return n}var b=Number,c=te,d=0,e=2*u;a.value=function(c){if(!arguments.length)return b; -b=c;return a};a.sort=function(b){if(!arguments.length)return c;c=b;return a};a.startAngle=function(b){if(!arguments.length)return d;d=b;return a};a.endAngle=function(b){if(!arguments.length)return e;e=b;return a};return a};var te={};g.layout.stack=function(){function a(k,l){var m=k.map(function(c,d){return b.call(a,c,d)}),n=m.map(function(b){return b.map(function(b,c){return[f.call(a,b,c),h.call(a,b,c)]})}),p=c.call(a,n,l),m=g.permute(m,p),n=g.permute(n,p),p=d.call(a,n,l),q=m.length,r=m[0].length, -s,t,v;for(t=0;t<r;++t)for(e.call(a,m[0][t],v=p[t],n[0][t][1]),s=1;s<q;++s)e.call(a,m[s][t],v+=n[s-1][t][1],n[s][t][1]);return k}var b=V,c=Vb,d=Wb,e=wf,f=uf,h=vf;a.values=function(c){if(!arguments.length)return b;b=c;return a};a.order=function(b){if(!arguments.length)return c;c="function"===typeof b?b:Dg.get(b)||Vb;return a};a.offset=function(b){if(!arguments.length)return d;d="function"===typeof b?b:Eg.get(b)||Wb;return a};a.x=function(b){if(!arguments.length)return f;f=b;return a};a.y=function(b){if(!arguments.length)return h; -h=b;return a};a.out=function(b){if(!arguments.length)return e;e=b;return a};return a};var Dg=g.map({"inside-out":function(a){var b=a.length,c,d=a.map(xf),e=a.map(yf),f=g.range(b).sort(function(a,b){return d[a]-d[b]}),h=0,k=0,l=[],m=[];for(a=0;a<b;++a)c=f[a],h<k?(h+=e[c],l.push(c)):(k+=e[c],m.push(c));return m.reverse().concat(l)},reverse:function(a){return g.range(a.length).reverse()},"default":Vb}),Eg=g.map({silhouette:function(a){var b=a.length,c=a[0].length,d=[],e=0,f,h,g,l=[];for(h=0;h<c;++h){for(g= -f=0;f<b;f++)g+=a[f][h][1];g>e&&(e=g);d.push(g)}for(h=0;h<c;++h)l[h]=(e-d[h])/2;return l},wiggle:function(a){var b=a.length,c=a[0],d=c.length,e,f,h,g,l,m,n,p,q,r=[];r[0]=p=q=0;for(f=1;f<d;++f){for(g=e=0;e<b;++e)g+=a[e][f][1];l=e=0;for(n=c[f][0]-c[f-1][0];e<b;++e){h=0;for(m=(a[e][f][1]-a[e][f-1][1])/(2*n);h<e;++h)m+=(a[h][f][1]-a[h][f-1][1])/n;l+=m*a[e][f][1]}r[f]=p-=g?l/g*n:0;p<q&&(q=p)}for(f=0;f<d;++f)r[f]-=q;return r},expand:function(a){var b=a.length,c=a[0].length,d=1/b,e,f,h,g=[];for(f=0;f<c;++f){for(h= -e=0;e<b;e++)h+=a[e][f][1];if(h)for(e=0;e<b;e++)a[e][f][1]/=h;else for(e=0;e<b;e++)a[e][f][1]=d}for(f=0;f<c;++f)g[f]=0;return g},zero:Wb});g.layout.histogram=function(){function a(a,h){var k=[],l=a.map(c,this),m=d.call(this,l,h),n=e.call(this,m,l,h),p;h=-1;for(var q=l.length,r=n.length-1,s=b?1:1/q;++h<r;)p=k[h]=[],p.dx=n[h+1]-(p.x=n[h]),p.y=0;if(0<r)for(h=-1;++h<q;)p=l[h],p>=m[0]&&p<=m[1]&&(p=k[g.bisect(n,p,1,r)-1],p.y+=s,p.push(a[h]));return k}var b=!0,c=Number,d=Bf,e=Af;a.value=function(b){if(!arguments.length)return c; -c=b;return a};a.range=function(b){if(!arguments.length)return d;d=F(b);return a};a.bins=function(b){if(!arguments.length)return e;e="number"===typeof b?function(a){return Ad(a,b)}:F(b);return a};a.frequency=function(c){if(!arguments.length)return b;b=!!c;return a};return a};g.layout.hierarchy=function(){function a(b,g,l){var m=e.call(c,b,g);b.depth=g;l.push(b);if(m&&(p=m.length)){var n=-1,p,q=b.children=[],r=0;g+=1;for(var s;++n<p;)s=a(m[n],g,l),s.parent=b,q.push(s),r+=s.value;d&&q.sort(d);f&&(b.value= -r)}else f&&(b.value=+f.call(c,b,g)||0);return b}function b(a,d){var e=a.children,g=0;if(e&&(p=e.length))for(var n=-1,p,q=d+1;++n<p;)g+=b(e[n],q);else f&&(g=+f.call(c,a,d)||0);f&&(a.value=g);return g}function c(b){var c=[];a(b,0,c);return c}var d=Ff,e=Df,f=Ef;c.sort=function(a){if(!arguments.length)return d;d=a;return c};c.children=function(a){if(!arguments.length)return e;e=a;return c};c.value=function(a){if(!arguments.length)return f;f=a;return c};c.revalue=function(a){b(a,0);return a};return c}; -g.layout.pack=function(){function a(a,f){var h=b.call(this,a,f),g=h[0];g.x=0;g.y=0;ea(g,function(a){a.r=Math.sqrt(a.value)});ea(g,Dd);var l=d[0],m=d[1],n=Math.max(2*g.r/l,2*g.r/m);if(0<c){var p=c*n/2;ea(g,function(a){a.r+=p});ea(g,Dd);ea(g,function(a){a.r-=p});n=Math.max(2*g.r/l,2*g.r/m)}Fd(g,l/2,m/2,1/n);return h}var b=g.layout.hierarchy().sort(Gf),c=0,d=[1,1];a.size=function(b){if(!arguments.length)return d;d=b;return a};a.padding=function(b){if(!arguments.length)return c;c=+b;return a};return Ea(a, -b)};g.layout.cluster=function(){function a(a,f){var h=b.call(this,a,f),g=h[0],l,m=0;ea(g,function(a){var b=a.children;b&&b.length?(a.x=Kf(b),a.y=Jf(b)):(a.x=l?m+=c(a,l):0,a.y=0,l=a)});var n=Gd(g),p=Hd(g),q=n.x-c(n,p)/2,r=p.x+c(p,n)/2;ea(g,function(a){a.x=(a.x-q)/(r-q)*d[0];a.y=(1-(g.y?a.y/g.y:1))*d[1]});return h}var b=g.layout.hierarchy().sort(null).value(null),c=Id,d=[1,1];a.separation=function(b){if(!arguments.length)return c;c=b;return a};a.size=function(b){if(!arguments.length)return d;d=b;return a}; -return Ea(a,b)};g.layout.tree=function(){function a(a,f){function h(a,b){var d=a.children,e=a._tree;if(d&&(f=d.length)){for(var f,g=d[0],k,l=g,m,p=-1;++p<f;){m=d[p];h(m,k);var n=m;if(k){for(var q=n,s=n,r=n.parent.children[0],t=q._tree.mod,u=s._tree.mod,w=k._tree.mod,C=r._tree.mod,A=void 0;k=Zb(k),q=Yb(q),k&&q;){r=Yb(r);s=Zb(s);s._tree.ancestor=n;A=k._tree.prelim+w-q._tree.prelim-t+c(k,q);if(0<A){var I=k._tree.ancestor.parent==n.parent?k._tree.ancestor:l,F=n,J=A,I=I._tree,F=F._tree,K=J/(F.number-I.number); -I.change+=K;F.change-=K;F.shift+=J;F.prelim+=J;F.mod+=J;t+=A;u+=A}w+=k._tree.mod;t+=q._tree.mod;C+=r._tree.mod;u+=s._tree.mod}k&&!Zb(s)&&(s._tree.thread=k,s._tree.mod+=w-u);q&&!Yb(r)&&(r._tree.thread=q,r._tree.mod+=t-C,l=n)}k=m}f=d=0;p=a.children;for(n=p.length;0<=--n;)l=p[n]._tree,l.prelim+=d,l.mod+=d,d+=l.shift+(f+=l.change);g=0.5*(g._tree.prelim+m._tree.prelim);b?(e.prelim=b._tree.prelim+c(a,b),e.mod=e.prelim-g):e.prelim=g}else b&&(e.prelim=b._tree.prelim+c(a,b))}function g(a,b){a.x=a._tree.prelim+ -b;var c=a.children;if(c&&(e=c.length)){var d=-1,e;for(b+=a._tree.mod;++d<e;)g(c[d],b)}}var l=b.call(this,a,f),m=l[0];ea(m,function(a,b){a._tree={ancestor:a,prelim:0,mod:0,change:0,shift:0,number:b?b._tree.number+1:0}});h(m);g(m,-m._tree.prelim);var n=Xa(m,Mf),p=Xa(m,Lf),q=Xa(m,Nf),r=n.x-c(n,p)/2,s=p.x+c(p,n)/2,t=q.depth||1;ea(m,function(a){a.x=(a.x-r)/(s-r)*d[0];a.y=a.depth/t*d[1];delete a._tree});return l}var b=g.layout.hierarchy().sort(null).value(null),c=Id,d=[1,1];a.separation=function(b){if(!arguments.length)return c; -c=b;return a};a.size=function(b){if(!arguments.length)return d;d=b;return a};return Ea(a,b)};g.layout.treemap=function(){function a(a,b){for(var c=-1,d=a.length,e,f;++c<d;)f=(e=a[c]).value*(0>b?0:b),e.area=isNaN(f)||0>=f?0:f}function b(c){var e=c.children;if(e&&e.length){var f=m(c),h=[],g=e.slice(),k=Infinity,l,p="slice"===q?f.dx:"dice"===q?f.dy:"slice-dice"===q?c.depth&1?f.dy:f.dx:Math.min(f.dx,f.dy);a(g,f.dx*f.dy/c.value);for(h.area=0;0<(c=g.length);){h.push(c=g[c-1]);h.area+=c.area;if(!(c="squarify"!== -q)){l=p;c=h.area;for(var n=void 0,u=0,w=Infinity,A=-1,C=h.length;++A<C;)if(n=h[A].area)n<w&&(w=n),n>u&&(u=n);c*=c;l*=l;c=(l=c?Math.max(l*u*r/c,c/(l*w*r)):Infinity)<=k}c?(g.pop(),k=l):(h.area-=h.pop().area,d(h,p,f,!1),p=Math.min(f.dx,f.dy),h.length=h.area=0,k=Infinity)}h.length&&(d(h,p,f,!0),h.length=h.area=0);e.forEach(b)}}function c(b){var e=b.children;if(e&&e.length){var f=m(b),h=e.slice(),g=[];a(h,f.dx*f.dy/b.value);for(g.area=0;b=h.pop();)g.push(b),g.area+=b.area,null!=b.z&&(d(g,b.z?f.dx:f.dy, -f,!h.length),g.length=g.area=0);e.forEach(c)}}function d(a,b,c,d){var e=-1,f=a.length,g=c.x,k=c.y,l=b?h(a.area/b):0,m;if(b==c.dx){if(d||l>c.dy)l=c.dy;for(;++e<f;)m=a[e],m.x=g,m.y=k,m.dy=l,g+=m.dx=Math.min(c.x+c.dx-g,l?h(m.area/l):0);m.z=!0;m.dx+=c.x+c.dx-g;c.y+=l;c.dy-=l}else{if(d||l>c.dx)l=c.dx;for(;++e<f;)m=a[e],m.x=g,m.y=k,m.dx=l,k+=m.dy=Math.min(c.y+c.dy-k,l?h(m.area/l):0);m.z=!1;m.dy+=c.y+c.dy-k;c.x+=l;c.dx-=l}}function e(d){d=p||f(d);var e=d[0];e.x=0;e.y=0;e.dx=k[0];e.dy=k[1];p&&f.revalue(e); -a([e],e.dx*e.dy/e.value);(p?c:b)(e);n&&(p=d);return d}var f=g.layout.hierarchy(),h=Math.round,k=[1,1],l=null,m=$b,n=!1,p,q="squarify",r=0.5*(1+Math.sqrt(5));e.size=function(a){if(!arguments.length)return k;k=a;return e};e.padding=function(a){function b(c){var d=a.call(e,c,c.depth);return null==d?$b(c):Jd(c,"number"===typeof d?[d,d,d,d]:d)}function c(b){return Jd(b,a)}if(!arguments.length)return l;var d;m=null==(l=a)?$b:"function"===(d=typeof a)?b:"number"===d?(a=[a,a,a,a],c):c;return e};e.round=function(a){if(!arguments.length)return h!= -Number;h=a?Math.round:Number;return e};e.sticky=function(a){if(!arguments.length)return n;n=a;p=null;return e};e.ratio=function(a){if(!arguments.length)return r;r=a;return e};e.mode=function(a){if(!arguments.length)return q;q=a+"";return e};return Ea(e,f)};g.csv=Kd(",","text/csv");g.tsv=Kd("\t","text/tab-separated-values");g.geo={};g.geo.stream=function(a,b){if(ue.hasOwnProperty(a.type))ue[a.type](a,b);else Ya(a,b)};var ue={Feature:function(a,b){Ya(a.geometry,b)},FeatureCollection:function(a,b){for(var c= -a.features,d=-1,e=c.length;++d<e;)Ya(c[d].geometry,b)}},Ld={Sphere:function(a,b){b.sphere()},Point:function(a,b){var c=a.coordinates;b.point(c[0],c[1])},MultiPoint:function(a,b){for(var c=a.coordinates,d=-1,e=c.length,f;++d<e;)f=c[d],b.point(f[0],f[1])},LineString:function(a,b){ac(a.coordinates,b,0)},MultiLineString:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)ac(c[d],b,0)},Polygon:function(a,b){Md(a.coordinates,b)},MultiPolygon:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d< -e;)Md(c[d],b)},GeometryCollection:function(a,b){for(var c=a.geometries,d=-1,e=c.length;++d<e;)Ya(c[d],b)}};g.geo.albersUsa=function(){function a(a){var h=a[0],g=a[1];return(50<g?c:-140>h?d:21>g?e:b)(a)}var b=g.geo.albers(),c=g.geo.albers().rotate([160,0]).center([0,60]).parallels([55,65]),d=g.geo.albers().rotate([160,0]).center([0,20]).parallels([8,18]),e=g.geo.albers().rotate([60,0]).center([0,10]).parallels([8,18]);a.scale=function(f){if(!arguments.length)return b.scale();b.scale(f);c.scale(0.6* -f);d.scale(f);e.scale(1.5*f);return a.translate(b.translate())};a.translate=function(f){if(!arguments.length)return b.translate();var h=b.scale(),g=f[0],l=f[1];b.translate(f);c.translate([g-0.4*h,l+0.17*h]);d.translate([g-0.19*h,l+0.2*h]);e.translate([g+0.58*h,l+0.43*h]);return a};return a.scale(b.scale())};(g.geo.albers=function(){var a=29.5*w,b=45.5*w,c=ic(Qd),d=c(a,b);d.parallels=function(d){return arguments.length?c(a=d[0]*w,b=d[1]*w):[a*O,b*O]};return d.rotate([98,0]).center([0,38]).scale(1E3)}).raw= -Qd;var ve=Fa(function(a){return Math.sqrt(2/(1+a))},function(a){return 2*Math.asin(a/2)});(g.geo.azimuthalEqualArea=function(){return la(ve)}).raw=ve;var we=Fa(function(a){return(a=Math.acos(a))&&a/Math.sin(a)},V);(g.geo.azimuthalEquidistant=function(){return la(we)}).raw=we;g.geo.bounds=Rd(V);g.geo.centroid=function(a){N=Y=J=K=I=0;g.geo.stream(a,Z);var b;if(Y&&Math.abs(b=Math.sqrt(J*J+K*K+I*I))>A)return[Math.atan2(K,J)*O,Math.asin(Math.max(-1,Math.min(1,I/b)))*O]};var N,Y,J,K,I,Z={sphere:function(){2> -N&&(N=2,Y=J=K=I=0)},point:Sd,lineStart:dc,lineEnd:ec,polygonStart:function(){2>N&&(N=2,Y=J=K=I=0);Z.lineStart=Of},polygonEnd:function(){Z.lineStart=dc}};g.geo.circle=function(){function a(){var a="function"===typeof b?b.apply(this,arguments):b,c=ae(-a[0]*w,-a[1]*w,0).invert,d=[];e(null,null,1,{point:function(a,b){d.push(a=c(a,b));a[0]*=O;a[1]*=O}});return{type:"Polygon",coordinates:[d]}}var b=[0,0],c,d=6,e;a.origin=function(c){if(!arguments.length)return b;b=c;return a};a.angle=function(b){if(!arguments.length)return c; -e=fc((c=+b)*w,d*w);return a};a.precision=function(b){if(!arguments.length)return d;e=fc(c*w,(d=+b)*w);return a};return a.angle(90)};var be=Ud(za,function(a){var b=NaN,c=NaN,d=NaN,e;return{lineStart:function(){a.lineStart();e=1},point:function(f,h){var g=0<f?u:-u,l=Math.abs(f-b);if(Math.abs(l-u)<A)a.point(b,c=0<(c+h)/2?u/2:-u/2),a.point(d,c),a.lineEnd(),a.lineStart(),a.point(g,c),a.point(f,c),e=0;else if(d!==g&&l>=u){Math.abs(b-d)<A&&(b-=d*A);Math.abs(f-g)<A&&(f-=g*A);var l=b,m=c,n=f,p,q,r=Math.sin(l- -n);c=Math.abs(r)>A?Math.atan((Math.sin(m)*(q=Math.cos(h))*Math.sin(n)-Math.sin(h)*(p=Math.cos(m))*Math.sin(l))/(p*q*r)):(m+h)/2;a.point(d,c);a.lineEnd();a.lineStart();a.point(g,c);e=0}a.point(b=f,c=h);d=g},lineEnd:function(){a.lineEnd();b=c=NaN},clean:function(){return 2-e}}},function(a,b,c,d){null==a?(c=c*u/2,d.point(-u,c),d.point(0,c),d.point(u,c),d.point(u,0),d.point(u,-c),d.point(0,-c),d.point(-u,-c),d.point(-u,0),d.point(-u,c)):Math.abs(a[0]-b[0])>A?(a=(a[0]<b[0]?1:-1)*u,c=c*a/2,d.point(-a,c), -d.point(0,c),d.point(a,c)):d.point(b[0],b[1])});(g.geo.equirectangular=function(){return la(ab).scale(250/u)}).raw=ab.invert=ab;var xe=Fa(function(a){return 1/a},Math.atan);(g.geo.gnomonic=function(){return la(xe)}).raw=xe;g.geo.graticule=function(){function a(){return{type:"MultiLineString",coordinates:b()}}function b(){return g.range(Math.ceil(d/h)*h,c,h).map(l).concat(g.range(Math.ceil(f/k)*k,e,k).map(m))}var c,d,e,f,h=22.5,k=h,l,m,n=2.5;a.lines=function(){return b().map(function(a){return{type:"LineString", -coordinates:a}})};a.outline=function(){return{type:"Polygon",coordinates:[l(d).concat(m(e).slice(1),l(c).reverse().slice(1),m(f).reverse().slice(1))]}};a.extent=function(b){if(!arguments.length)return[[d,f],[c,e]];d=+b[0][0];c=+b[1][0];f=+b[0][1];e=+b[1][1];d>c&&(b=d,d=c,c=b);f>e&&(b=f,f=e,e=b);return a.precision(n)};a.step=function(b){if(!arguments.length)return[h,k];h=+b[0];k=+b[1];return a};a.precision=function(b){if(!arguments.length)return n;n=+b;l=Uf(f,e,n);m=Vf(d,c,n);return a};return a.extent([[-180+ -A,-90+A],[180-A,90-A]])};g.geo.interpolate=function(a,b){return Wf(a[0]*w,a[1]*w,b[0]*w,b[1]*w)};g.geo.greatArc=function(){function a(){for(var a=c||b.apply(this,arguments),l=e||d.apply(this,arguments),m=h||g.geo.interpolate(a,l),n=0,p=f/m.distance,a=[a];1>(n+=p);)a.push(m(n));a.push(l);return{type:"LineString",coordinates:a}}var b=sb,c,d=rb,e,f=6*w,h;a.distance=function(){return(h||g.geo.interpolate(c||b.apply(this,arguments),e||d.apply(this,arguments))).distance};a.source=function(d){if(!arguments.length)return b; -b=d;h=(c="function"===typeof d?null:d)&&e?g.geo.interpolate(c,e):null;return a};a.target=function(b){if(!arguments.length)return d;d=b;e="function"===typeof b?null:b;h=c&&e?g.geo.interpolate(c,e):null;return a};a.precision=function(b){if(!arguments.length)return f/w;f=b*w;return a};return a};gc.invert=function(a,b){return[2*u*a,2*Math.atan(Math.exp(2*u*b))-u/2]};(g.geo.mercator=function(){return la(gc).scale(500)}).raw=gc;var ye=Fa(function(){return 1},Math.asin);(g.geo.orthographic=function(){return la(ye)}).raw= -ye;g.geo.path=function(){function a(a){a&&g.geo.stream(a,e(f.pointRadius("function"===typeof b?+b.apply(this,arguments):b)));return f.result()}var b=4.5,c,d,e,f;a.area=function(a){pb=0;g.geo.stream(a,e(ja));return pb};a.centroid=function(a){N=J=K=I=0;g.geo.stream(a,e($));return I?[J/I,K/I]:void 0};a.bounds=function(a){return Rd(e)(a)};a.projection=function(b){if(!arguments.length)return c;e=(c=b)?b.stream||Xf(b):V;return a};a.context=function(b){if(!arguments.length)return d;f=null==(d=b)?new Yf: -new Zf(b);return a};a.pointRadius=function(c){if(!arguments.length)return b;b="function"===typeof c?c:+c;return a};return a.projection(g.geo.albersUsa()).context(null)};var pb,bb,ja={point:T,lineStart:T,lineEnd:T,polygonStart:function(){bb=0;ja.lineStart=$f},polygonEnd:function(){ja.lineStart=ja.lineEnd=ja.point=T;pb+=Math.abs(bb/2)}},$={point:hc,lineStart:Zd,lineEnd:$d,polygonStart:function(){$.lineStart=ag},polygonEnd:function(){$.point=hc;$.lineStart=Zd;$.lineEnd=$d}};g.geo.area=function(a){ya= -0;g.geo.stream(a,ka);return ya};var ya,cb,db,ka={sphere:function(){ya+=4*u},point:T,lineStart:T,lineEnd:T,polygonStart:function(){cb=1;db=0;ka.lineStart=bg},polygonEnd:function(){var a=2*Math.atan2(db,cb);ya+=0>a?4*u+a:a;ka.lineStart=ka.lineEnd=ka.point=T}};g.geo.projection=la;g.geo.projectionMutator=ic;var ze=Fa(function(a){return 1/(1+a)},function(a){return 2*Math.atan(a)});(g.geo.stereographic=function(){return la(ze)}).raw=ze;g.geom={};g.geom.hull=function(a){if(3>a.length)return[];var b=a.length, -c=b-1,d=[],e=[],f,h=0,g,l,m,n,p,q,r;for(f=1;f<b;++f)a[f][1]<a[h][1]?h=f:a[f][1]==a[h][1]&&(h=a[f][0]<a[h][0]?f:h);for(f=0;f<b;++f)f!==h&&(l=a[f][1]-a[h][1],g=a[f][0]-a[h][0],d.push({angle:Math.atan2(l,g),index:f}));d.sort(function(a,b){return a.angle-b.angle});r=d[0].angle;q=d[0].index;p=0;for(f=1;f<c;++f)b=d[f].index,r==d[f].angle?(g=a[q][0]-a[h][0],l=a[q][1]-a[h][1],m=a[b][0]-a[h][0],n=a[b][1]-a[h][1],g*g+l*l>=m*m+n*n?d[f].index=-1:(d[p].index=-1,r=d[f].angle,p=f,q=b)):(r=d[f].angle,p=f,q=b);e.push(h); -for(b=f=0;2>f;++b)-1!==d[b].index&&(e.push(d[b].index),f++);for(h=e.length;b<c;++b)if(-1!==d[b].index){for(;!dg(e[h-2],e[h-1],d[b].index,a);)--h;e[h++]=d[b].index}c=[];for(f=0;f<h;++f)c.push(a[e[f]]);return c};g.geom.polygon=function(a){a.area=function(){for(var b=0,c=a.length,d=a[c-1][1]*a[0][0]-a[c-1][0]*a[0][1];++b<c;)d+=a[b-1][1]*a[b][0]-a[b-1][0]*a[b][1];return 0.5*d};a.centroid=function(b){var c=-1,d=a.length,e=0,f=0,h,g=a[d-1],l;for(arguments.length||(b=-1/(6*a.area()));++c<d;)h=g,g=a[c],l= -h[0]*g[1]-g[0]*h[1],e+=(h[0]+g[0])*l,f+=(h[1]+g[1])*l;return[e*b,f*b]};a.clip=function(b){for(var c,d=-1,e=a.length,f,h,g=a[e-1],l,m,n;++d<e;){c=b.slice();b.length=0;l=a[d];m=c[(h=c.length)-1];for(f=-1;++f<h;)n=c[f],jc(n,g,l)?(jc(m,g,l)||b.push(fe(m,n,g,l)),b.push(n)):jc(m,g,l)&&b.push(fe(m,n,g,l)),m=n;g=l}return b};return a};g.geom.voronoi=function(a){var b=a.map(function(){return[]});ge(a,function(a){var d,e,f,g;1===a.a&&0<=a.b?(d=a.ep.r,e=a.ep.l):(d=a.ep.l,e=a.ep.r);1===a.a?(f=d?d.y:-1E6,d=a.c- -a.b*f,g=e?e.y:1E6,e=a.c-a.b*g):(d=d?d.x:-1E6,f=a.c-a.a*d,e=e?e.x:1E6,g=a.c-a.a*e);d=[d,f];e=[e,g];b[a.region.l.index].push(d,e);b[a.region.r.index].push(d,e)});b=b.map(function(b,d){var e=a[d][0],f=a[d][1],h=b.map(function(a){return Math.atan2(a[0]-e,a[1]-f)}),k=g.range(b.length).sort(function(a,b){return h[a]-h[b]});return k.filter(function(a,b){return!b||h[a]-h[k[b-1]]>A}).map(function(a){return b[a]})});b.forEach(function(b,d){var e=b.length;if(!e)return b.push([-1E6,-1E6],[-1E6,1E6],[1E6,1E6], -[1E6,-1E6]);if(!(2<e)){var f=a[d],g=b[0],k=b[1],e=f[0],f=f[1],l=g[0],g=g[1],m=k[0],n=k[1],p=Math.abs(m-l),k=n-g;Math.abs(k)<A?(e=f<g?-1E6:1E6,b.push([-1E6,e],[1E6,e])):p<A?(e=e<l?-1E6:1E6,b.push([e,-1E6],[e,1E6])):(e=(m-l)*(g-f)<(l-e)*(n-g)?1E6:-1E6,f=Math.abs(k)-p,Math.abs(f)<A?b.push([0>k?e:-e,e]):(0<f&&(e*=-1),b.push([-1E6,e],[1E6,e])))}});return b};var kc={l:"r",r:"l"};g.geom.delaunay=function(a){var b=a.map(function(){return[]}),c=[];ge(a,function(c){b[c.region.l.index].push(a[c.region.r.index])}); -b.forEach(function(b,e){var f=a[e],g=f[0],k=f[1];b.forEach(function(a){a.angle=Math.atan2(a[0]-g,a[1]-k)});b.sort(function(a,b){return a.angle-b.angle});for(var l=0,m=b.length-1;l<m;l++)c.push([f,b[l],b[l+1]])});return c};g.geom.quadtree=function(a,b,c,d,e){function f(a,b,c,d,e,f){if(!isNaN(b.x)&&!isNaN(b.y))if(a.leaf){var k=a.point;k?(0.01>Math.abs(k.x-b.x)+Math.abs(k.y-b.y)||(a.point=null,g(a,k,c,d,e,f)),g(a,b,c,d,e,f)):a.point=b}else g(a,b,c,d,e,f)}function g(a,b,c,d,e,h){var k=0.5*(c+e),l=0.5* -(d+h),m=b.x>=k,n=b.y>=l,u=(n<<1)+m;a.leaf=!1;a=a.nodes[u]||(a.nodes[u]={leaf:!0,nodes:[],point:null});m?c=k:e=k;n?d=l:h=l;f(a,b,c,d,e,h)}var k,l=-1,m=a.length;if(5>arguments.length)if(3===arguments.length)e=c,d=b,c=b=0;else for(b=c=Infinity,d=e=-Infinity;++l<m;)k=a[l],k.x<b&&(b=k.x),k.y<c&&(c=k.y),k.x>d&&(d=k.x),k.y>e&&(e=k.y);k=d-b;l=e-c;k>l?e=c+k:d=b+l;var n={leaf:!0,nodes:[],point:null,add:function(a){f(n,a,b,c,d,e)},visit:function(a){Ga(a,n,b,c,d,e)}};a.forEach(n.add);return n};g.time={};var R= -Date;oa.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0}, -valueOf:function(){return this._.valueOf()},setDate:function(){ga.setUTCDate.apply(this._,arguments)},setDay:function(){ga.setUTCDay.apply(this._,arguments)},setFullYear:function(){ga.setUTCFullYear.apply(this._,arguments)},setHours:function(){ga.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){ga.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){ga.setUTCMinutes.apply(this._,arguments)},setMonth:function(){ga.setUTCMonth.apply(this._,arguments)},setSeconds:function(){ga.setUTCSeconds.apply(this._, -arguments)},setTime:function(){ga.setTime.apply(this._,arguments)}};var ga=Date.prototype,Ae="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),Be="Sun Mon Tue Wed Thu Fri Sat".split(" "),wc="January February March April May June July August September October November December".split(" "),xc="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ");g.time.format=function(a){function b(b){for(var e=[],f=-1,g=0,k,l;++f<c;)if(37===a.charCodeAt(f)){e.push(a.substring(g,f));null!= -(k=Fg[g=a.charAt(++f)])&&(g=a.charAt(++f));if(l=qb[g])g=l(b,null==k?"e"===g?" ":"0":k);e.push(g);g=f+1}e.push(a.substring(g,f));return e.join("")}var c=a.length;b.parse=function(b){var c={y:1900,m:0,d:1,H:0,M:0,S:0,L:0};if(eb(c,a,b,0)!=b.length)return null;"p"in c&&(c.H=c.H%12+12*c.p);b=new R;b.setFullYear(c.y,c.m,c.d);b.setHours(c.H,c.M,c.S,c.L);return b};b.toString=function(){return a};return b};var Ce=fb(Ae),De=fb(Be),Ee=fb(wc),Gg=he(wc),Fe=fb(xc),Hg=he(xc),Fg={"-":"",_:" ",0:"0"},qb={a:function(a){return Be[a.getDay()]}, -A:function(a){return Ae[a.getDay()]},b:function(a){return xc[a.getMonth()]},B:function(a){return wc[a.getMonth()]},c:g.time.format("%a %b %e %X %Y"),d:function(a,b){return S(a.getDate(),b,2)},e:function(a,b){return S(a.getDate(),b,2)},H:function(a,b){return S(a.getHours(),b,2)},I:function(a,b){return S(a.getHours()%12||12,b,2)},j:function(a,b){return S(1+g.time.dayOfYear(a),b,3)},L:function(a,b){return S(a.getMilliseconds(),b,3)},m:function(a,b){return S(a.getMonth()+1,b,2)},M:function(a,b){return S(a.getMinutes(), -b,2)},p:function(a){return 12<=a.getHours()?"PM":"AM"},S:function(a,b){return S(a.getSeconds(),b,2)},U:function(a,b){return S(g.time.sundayOfYear(a),b,2)},w:function(a){return a.getDay()},W:function(a,b){return S(g.time.mondayOfYear(a),b,2)},x:g.time.format("%m/%d/%Y"),X:g.time.format("%H:%M:%S"),y:function(a,b){return S(a.getFullYear()%100,b,2)},Y:function(a,b){return S(a.getFullYear()%1E4,b,4)},Z:function(a){var b=a.getTimezoneOffset();a=0<b?"-":"+";var c=~~(Math.abs(b)/60),b=Math.abs(b)%60;return a+ -S(c,"0",2)+S(b,"0",2)},"%":function(){return"%"}},eg={a:function(a,b,c){De.lastIndex=0;return(a=De.exec(b.substring(c)))?c+a[0].length:-1},A:function(a,b,c){Ce.lastIndex=0;return(a=Ce.exec(b.substring(c)))?c+a[0].length:-1},b:function(a,b,c){Fe.lastIndex=0;return(b=Fe.exec(b.substring(c)))?(a.m=Hg.get(b[0].toLowerCase()),c+b[0].length):-1},B:function(a,b,c){Ee.lastIndex=0;return(b=Ee.exec(b.substring(c)))?(a.m=Gg.get(b[0].toLowerCase()),c+b[0].length):-1},c:function(a,b,c){return eb(a,qb.c.toString(), -b,c)},d:ie,e:ie,H:je,I:je,L:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+3)))?(a.L=+b[0],c+b[0].length):-1},m:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.m=b[0]-1,c+b[0].length):-1},M:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.M=+b[0],c+b[0].length):-1},p:function(a,b,c){b=Ig.get(b.substring(c,c+=2).toLowerCase());return null==b?-1:(a.p=b,c)},S:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.S=+b[0],c+b[0].length): --1},x:function(a,b,c){return eb(a,qb.x.toString(),b,c)},X:function(a,b,c){return eb(a,qb.X.toString(),b,c)},y:function(a,b,c){Q.lastIndex=0;if(b=Q.exec(b.substring(c,c+2))){var d=+b[0];a=(a.y=d+(68<d?1900:2E3),c+b[0].length)}else a=-1;return a},Y:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+4)))?(a.y=+b[0],c+b[0].length):-1}},Q=/^\s*\d+/,Ig=g.map({am:0,pm:1});g.time.format.utc=function(a){function b(a){try{R=oa;var b=new R;b._=a;return c(b)}finally{R=Date}}var c=g.time.format(a); -b.parse=function(a){try{R=oa;var b=c.parse(a);return b&&b._}finally{R=Date}};b.toString=c.toString;return b};var Ge=g.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");g.time.format.iso=Date.prototype.toISOString?lc:Ge;lc.parse=function(a){a=new Date(a);return isNaN(a)?null:a};lc.toString=Ge.toString;g.time.second=pa(function(a){return new R(1E3*Math.floor(a/1E3))},function(a,b){a.setTime(a.getTime()+1E3*Math.floor(b))},function(a){return a.getSeconds()});g.time.seconds=g.time.second.range;g.time.seconds.utc= -g.time.second.utc.range;g.time.minute=pa(function(a){return new R(6E4*Math.floor(a/6E4))},function(a,b){a.setTime(a.getTime()+6E4*Math.floor(b))},function(a){return a.getMinutes()});g.time.minutes=g.time.minute.range;g.time.minutes.utc=g.time.minute.utc.range;g.time.hour=pa(function(a){var b=a.getTimezoneOffset()/60;return new R(36E5*(Math.floor(a/36E5-b)+b))},function(a,b){a.setTime(a.getTime()+36E5*Math.floor(b))},function(a){return a.getHours()});g.time.hours=g.time.hour.range;g.time.hours.utc= -g.time.hour.utc.range;g.time.day=pa(function(a){var b=new R(1970,0);b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate());return b},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1});g.time.days=g.time.day.range;g.time.days.utc=g.time.day.utc.range;g.time.dayOfYear=function(a){var b=g.time.year(a);return Math.floor((a-b-6E4*(a.getTimezoneOffset()-b.getTimezoneOffset()))/864E5)};"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" ").forEach(function(a,b){a= -a.toLowerCase();b=7-b;var c=g.time[a]=pa(function(a){(a=g.time.day(a)).setDate(a.getDate()-(a.getDay()+b)%7);return a},function(a,b){a.setDate(a.getDate()+7*Math.floor(b))},function(a){var c=g.time.year(a).getDay();return Math.floor((g.time.dayOfYear(a)+(c+b)%7)/7)-(c!==b)});g.time[a+"s"]=c.range;g.time[a+"s"].utc=c.utc.range;g.time[a+"OfYear"]=function(a){var c=g.time.year(a).getDay();return Math.floor((g.time.dayOfYear(a)+(c+b)%7)/7)}});g.time.week=g.time.sunday;g.time.weeks=g.time.sunday.range; -g.time.weeks.utc=g.time.sunday.utc.range;g.time.weekOfYear=g.time.sundayOfYear;g.time.month=pa(function(a){a=g.time.day(a);a.setDate(1);return a},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()});g.time.months=g.time.month.range;g.time.months.utc=g.time.month.utc.range;g.time.year=pa(function(a){a=g.time.day(a);a.setMonth(0,1);return a},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()});g.time.years=g.time.year.range;g.time.years.utc=g.time.year.utc.range; -var hb=[1E3,5E3,15E3,3E4,6E4,3E5,9E5,18E5,36E5,108E5,216E5,432E5,864E5,1728E5,6048E5,2592E6,7776E6,31536E6],yc=[[g.time.second,1],[g.time.second,5],[g.time.second,15],[g.time.second,30],[g.time.minute,1],[g.time.minute,5],[g.time.minute,15],[g.time.minute,30],[g.time.hour,1],[g.time.hour,3],[g.time.hour,6],[g.time.hour,12],[g.time.day,1],[g.time.day,2],[g.time.week,1],[g.time.month,1],[g.time.month,3],[g.time.year,1]],Jg=[[g.time.format("%Y"),za],[g.time.format("%B"),function(a){return a.getMonth()}], -[g.time.format("%b %d"),function(a){return 1!=a.getDate()}],[g.time.format("%a %d"),function(a){return a.getDay()&&1!=a.getDate()}],[g.time.format("%I %p"),function(a){return a.getHours()}],[g.time.format("%I:%M"),function(a){return a.getMinutes()}],[g.time.format(":%S"),function(a){return a.getSeconds()}],[g.time.format(".%L"),function(a){return a.getMilliseconds()}]],He=g.scale.linear(),Kg=ke(Jg);yc.year=function(a,b){return He.domain(a.map(fg)).ticks(b).map(oc)};g.time.scale=function(){return mc(g.scale.linear(), -yc,Kg)};var Ie=yc.map(function(a){return[a[0].utc,a[1]]}),Lg=[[g.time.format.utc("%Y"),za],[g.time.format.utc("%B"),function(a){return a.getUTCMonth()}],[g.time.format.utc("%b %d"),function(a){return 1!=a.getUTCDate()}],[g.time.format.utc("%a %d"),function(a){return a.getUTCDay()&&1!=a.getUTCDate()}],[g.time.format.utc("%I %p"),function(a){return a.getUTCHours()}],[g.time.format.utc("%I:%M"),function(a){return a.getUTCMinutes()}],[g.time.format.utc(":%S"),function(a){return a.getUTCSeconds()}],[g.time.format.utc(".%L"), -function(a){return a.getUTCMilliseconds()}]],Mg=ke(Lg);Ie.year=function(a,b){return He.domain(a.map(gg)).ticks(b).map(pc)};g.time.scale.utc=function(){return mc(g.scale.linear(),Ie,Mg)};return g}(); +100);case "rgb":return b(Ab(k[0]),Ab(k[1]),Ab(k[2]))}if(c=Ka.get(a))return b(c.r,c.g,c.b);null!=a&&"#"===a.charAt(0)&&(4===a.length?(d=a.charAt(1),d+=d,e=a.charAt(2),e+=e,f=a.charAt(3),f+=f):7===a.length&&(d=a.substring(1,3),e=a.substring(3,5),f=a.substring(5,7)),d=parseInt(d,16),e=parseInt(e,16),f=parseInt(f,16));return b(d,e,f)}function Fc(a,b,c){var d=Math.min(a/=255,b/=255,c/=255),e=Math.max(a,b,c),f=e-d,h=(e+d)/2;f?(d=.5>h?f/(e+d):f/(2-e-d),a=60*(a==e?(b-c)/f+(b<c?6:0):b==e?(c-a)/f+2:(a-b)/f+ +4)):d=a=0;return sa(a,d,h)}function Gc(a,b,c){a=Bb(a);b=Bb(b);c=Bb(c);var d=Cb((.4124564*a+.3575761*b+.1804375*c)/Hc),e=Cb((.2126729*a+.7151522*b+.072175*c)/Ic);a=Cb((.0193339*a+.119192*b+.9503041*c)/Jc);return ta(116*e-16,500*(d-e),200*(e-a))}function Bb(a){return.04045>=(a/=255)?a/12.92:Math.pow((a+.055)/1.055,2.4)}function Ab(a){var b=parseFloat(a);return"%"===a.charAt(a.length-1)?Math.round(2.55*b):b}function sa(a,b,c){return new Db(a,b,c)}function Db(a,b,c){this.h=a;this.s=b;this.l=c}function La(a, +b,c){function d(a){360<a?a-=360:0>a&&(a+=360);return 60>a?e+(f-e)*a/60:180>a?f:240>a?e+(f-e)*(240-a)/60:e}var e,f;a%=360;0>a&&(a+=360);b=0>b?0:1<b?1:b;c=0>c?0:1<c?1:c;f=.5>=c?c*(1+b):c+b-c*b;e=2*c-f;return ca(Math.round(255*d(a+120)),Math.round(255*d(a)),Math.round(255*d(a-120)))}function Aa(a,b,c){return new Ma(a,b,c)}function Ma(a,b,c){this.h=a;this.c=b;this.l=c}function Eb(a,b,c){return ta(c,Math.cos(a*=w)*b,Math.sin(a)*b)}function ta(a,b,c){return new Na(a,b,c)}function Na(a,b,c){this.l=a;this.a= +b;this.b=c}function Kc(a,b,c){a=(a+16)/116;c=a-c/200;b=Fb(a+b/500)*Hc;a=Fb(a)*Ic;c=Fb(c)*Jc;return ca(Gb(3.2404542*b-1.5371385*a-.4985314*c),Gb(-.969266*b+1.8760108*a+.041556*c),Gb(.0556434*b-.2040259*a+1.0572252*c))}function Lc(a,b,c){return Aa(Math.atan2(c,b)/u*180,Math.sqrt(b*b+c*c),a)}function Fb(a){return.206893034<a?a*a*a:(a-4/29)/7.787037}function Cb(a){return.008856<a?Math.pow(a,1/3):7.787037*a+4/29}function Gb(a){return Math.round(255*(.00304>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055))}function da(a){Hb(a, +C);return a}function Mc(a){return function(){return Oa(a,this)}}function Nc(a){return function(){return Oc(a,this)}}function Pc(a,b){function c(){this.removeAttribute(a)}function d(){this.removeAttributeNS(a.space,a.local)}function e(){this.setAttribute(a,b)}function f(){this.setAttributeNS(a.space,a.local,b)}function h(){var c=b.apply(this,arguments);null==c?this.removeAttribute(a):this.setAttribute(a,c)}function k(){var c=b.apply(this,arguments);null==c?this.removeAttributeNS(a.space,a.local):this.setAttributeNS(a.space, +a.local,c)}a=g.ns.qualify(a);return null==b?a.local?d:c:"function"===typeof b?a.local?k:h:a.local?f:e}function Qc(a){return new RegExp("(?:^|\\s+)"+g.requote(a)+"(?:\\s+|$)","g")}function Rc(a,b){function c(){for(var c=-1;++c<e;)a[c](this,b)}function d(){for(var c=-1,d=b.apply(this,arguments);++c<e;)a[c](this,d)}a=a.trim().split(/\s+/).map(af);var e=a.length;return"function"===typeof b?d:c}function af(a){var b=Qc(a);return function(c,d){if(e=c.classList)return d?e.add(a):e.remove(a);var e=c.className, +f=null!=e.baseVal,h=f?e.baseVal:e;d?(b.lastIndex=0,b.test(h)||(h=(h+" "+a).trim().replace(/\s+/g," "),f?e.baseVal=h:c.className=h)):h&&(h=h.replace(b," ").trim().replace(/\s+/g," "),f?e.baseVal=h:c.className=h)}}function Sc(a,b,c){function d(){this.style.removeProperty(a)}function e(){this.style.setProperty(a,b,c)}function f(){var e=b.apply(this,arguments);null==e?this.style.removeProperty(a):this.style.setProperty(a,e,c)}return null==b?d:"function"===typeof b?f:e}function Tc(a,b){function c(){delete this[a]} +function d(){this[a]=b}function e(){var c=b.apply(this,arguments);null==c?delete this[a]:this[a]=c}return null==b?c:"function"===typeof b?e:d}function Uc(a){return function(){return Vc(this,a)}}function bf(a){arguments.length||(a=g.ascending);return function(b,c){return!b-!c||a(b.__data__,c.__data__)}}function Wc(a,b,c){function d(){var b=this[f];b&&(this.removeEventListener(a,b,b.$),delete this[f])}function e(){function e(a){var c=g.event;g.event=a;m[0]=h.__data__;try{b.apply(h,m)}finally{g.event= +c}}var h=this,m=ha(arguments);d.call(this);this.addEventListener(a,this[f]=e,e.$=c);e._=b}var f="__on"+a,h=a.indexOf(".");0<h&&(a=a.substring(0,h));return b?e:d}function ia(a,b){for(var c=0,d=a.length;c<d;c++)for(var e=a[c],f=0,h=e.length,k;f<h;f++)(k=e[f])&&b(k,f,c);return a}function Xc(a){Hb(a,ma);return a}function Ba(a,b){Hb(a,M);a.id=b;return a}function Pa(a,b,c,d){var e=a.__transition__||(a.__transition__={active:0,count:0}),f=e[c];if(!f){var h=d.time,f=e[c]={tween:new ba,event:g.dispatch("start", +"end"),time:h,ease:d.ease,delay:d.delay,duration:d.duration};++e.count;g.timer(function(d){function l(d){if(e.active>c)return n();e.active=c;r.start.call(a,p,b);f.tween.forEach(function(c,e){(e=e.call(a,p,b))&&v.push(e)});m(d)||g.timer(m,0,h);return 1}function m(d){if(e.active!==c)return n();d=(d-s)/t;for(var f=q(d),h=v.length;0<h;)v[--h].call(a,f);if(1<=d)return n(),r.end.call(a,p,b),1}function n(){--e.count?delete e[c]:delete a.__transition__;return 1}var p=a.__data__,q=f.ease,r=f.event,s=f.delay, +t=f.duration,v=[];return s<=d?l(d):g.timer(l,s,h),1},0,h);return f}}function cf(a){null==a&&(a="");return function(){this.textContent=a}}function Ib(a,b,c,d){var e=a.id;return ia(a,"function"===typeof c?function(a,h,k){a.__transition__[e].tween.set(b,d(c.call(a,a.__data__,h,k)))}:(c=d(c),function(a){a.__transition__[e].tween.set(b,c)}))}function Jb(){for(var a,b=Date.now(),c=ua;c;)a=b-c.then,a>=c.delay&&(c.flush=c.callback(a)),c=c.next;a=Yc()-b;24<a?(isFinite(a)&&(clearTimeout(Qa),Qa=setTimeout(Jb, +a)),Ra=0):(Ra=1,Zc(Jb))}function Yc(){for(var a=null,b=ua,c=Infinity;b;)b.flush?(delete Kb[b.callback.id],b=a?a.next=b.next:ua=b.next):(c=Math.min(c,b.then+b.delay),b=(a=b).next);return c}function $c(a,b){var c=a.ownerSVGElement||a;if(c.createSVGPoint){var d=c.createSVGPoint();if(0>Lb&&(P.scrollX||P.scrollY)){var c=g.select(W.body).append("svg").style("position","absolute").style("top",0).style("left",0),e=c[0][0].getScreenCTM();Lb=!(e.f||e.e);c.remove()}Lb?(d.x=b.pageX,d.y=b.pageY):(d.x=b.clientX, +d.y=b.clientY);d=d.matrixTransform(a.getScreenCTM().inverse());return[d.x,d.y]}c=a.getBoundingClientRect();return[b.clientX-c.left-a.clientLeft,b.clientY-c.top-a.clientTop]}function T(){}function Ca(a){var b=a[0];a=a[a.length-1];return b<a?[b,a]:[a,b]}function Sa(a){return a.rangeExtent?a.rangeExtent():Ca(a.range())}function Ta(a,b){var c=0,d=a.length-1,e=a[c],f=a[d],h;f<e&&(h=c,c=d,d=h,h=e,e=f,f=h);if(b=b(f-e))a[c]=b.floor(e),a[d]=b.ceil(f);return a}function df(){return Math}function ad(a,b,c,d){function e(){var e= +2<Math.min(a.length,b.length)?ef:ff,m=d?$e:Ze;h=e(a,b,m,c);k=e(b,a,m,g.interpolate);return f}function f(a){return h(a)}var h,k;f.invert=function(a){return k(a)};f.domain=function(b){if(!arguments.length)return a;a=b.map(Number);return e()};f.range=function(a){if(!arguments.length)return b;b=a;return e()};f.rangeRound=function(a){return f.range(a).interpolate(g.interpolateRound)};f.clamp=function(a){if(!arguments.length)return d;d=a;return e()};f.interpolate=function(a){if(!arguments.length)return c; +c=a;return e()};f.ticks=function(b){return Mb(a,b)};f.tickFormat=function(b){return Nb(a,b)};f.nice=function(){Ta(a,bd);return e()};f.copy=function(){return ad(a,b,c,d)};return e()}function cd(a,b){return g.rebind(a,b,"range","rangeRound","interpolate","clamp")}function bd(a){return(a=Math.pow(10,Math.round(Math.log(a)/Math.LN10)-1))&&{floor:function(b){return Math.floor(b/a)*a},ceil:function(b){return Math.ceil(b/a)*a}}}function dd(a,b){var c=Ca(a),d=c[1]-c[0],e=Math.pow(10,Math.floor(Math.log(d/ +b)/Math.LN10)),d=b/d*e;.15>=d?e*=10:.35>=d?e*=5:.75>=d&&(e*=2);c[0]=Math.ceil(c[0]/e)*e;c[1]=Math.floor(c[1]/e)*e+.5*e;c[2]=e;return c}function Mb(a,b){return g.range.apply(g,dd(a,b))}function Nb(a,b){return g.format(",."+Math.max(0,-Math.floor(Math.log(dd(a,b)[2])/Math.LN10+.01))+"f")}function ff(a,b,c,d){var e=c(a[0],a[1]),f=d(b[0],b[1]);return function(a){return f(e(a))}}function ef(a,b,c,d){var e=[],f=[],h=0,k=Math.min(a.length,b.length)-1;a[k]<a[0]&&(a=a.slice().reverse(),b=b.slice().reverse()); +for(;++h<=k;)e.push(c(a[h-1],a[h])),f.push(d(b[h-1],b[h]));return function(b){var c=g.bisect(a,b,1,k)-1;return f[c](e[c](b))}}function ed(a,b){function c(c){return a(b(c))}var d=b.pow;c.invert=function(b){return d(a.invert(b))};c.domain=function(e){if(!arguments.length)return a.domain().map(d);b=0>e[0]?Ua:Ob;d=b.pow;a.domain(e.map(b));return c};c.nice=function(){a.domain(Ta(a.domain(),df));return c};c.ticks=function(){var c=Ca(a.domain()),f=[];if(c.every(isFinite)){var h=Math.floor(c[0]),k=Math.ceil(c[1]), +l=d(c[0]),c=d(c[1]);if(b===Ua)for(f.push(d(h));h++<k;)for(var m=9;0<m;m--)f.push(d(h)*m);else{for(;h<k;h++)for(m=1;10>m;m++)f.push(d(h)*m);f.push(d(h))}for(h=0;f[h]<l;h++);for(k=f.length;f[k-1]>c;k--);f=f.slice(h,k)}return f};c.tickFormat=function(a,f){2>arguments.length&&(f=gf);if(!arguments.length)return f;var h=Math.max(.1,a/c.ticks().length),k=b===Ua?(l=-1E-12,Math.floor):(l=1E-12,Math.ceil),l;return function(a){return a/d(k(b(a)+l))<=h?f(a):""}};c.copy=function(){return ed(a.copy(),b)};return cd(c, +a)}function Ob(a){return Math.log(0>a?0:a)/Math.LN10}function Ua(a){return-Math.log(0<a?0:-a)/Math.LN10}function fd(a,b){function c(b){return a(d(b))}var d=Va(b),e=Va(1/b);c.invert=function(b){return e(a.invert(b))};c.domain=function(b){if(!arguments.length)return a.domain().map(e);a.domain(b.map(d));return c};c.ticks=function(a){return Mb(c.domain(),a)};c.tickFormat=function(a){return Nb(c.domain(),a)};c.nice=function(){return c.domain(Ta(c.domain(),bd))};c.exponent=function(a){if(!arguments.length)return b; +var h=c.domain();d=Va(b=a);e=Va(1/b);return c.domain(h)};c.copy=function(){return fd(a.copy(),b)};return cd(c,a)}function Va(a){return function(b){return 0>b?-Math.pow(-b,a):Math.pow(b,a)}}function gd(a,b){function c(b){return f[((e.get(b)||e.set(b,a.push(b)))-1)%f.length]}function d(b,c){return g.range(a.length).map(function(a){return b+c*a})}var e,f,h;c.domain=function(d){if(!arguments.length)return a;a=[];e=new ba;for(var f=-1,h=d.length,g;++f<h;)e.has(g=d[f])||e.set(g,a.push(g));return c[b.t].apply(c, +b.a)};c.range=function(a){if(!arguments.length)return f;f=a;h=0;b={t:"range",a:arguments};return c};c.rangePoints=function(e,l){2>arguments.length&&(l=0);var m=e[0],g=e[1],p=(g-m)/(Math.max(1,a.length-1)+l);f=d(2>a.length?(m+g)/2:m+p*l/2,p);h=0;b={t:"rangePoints",a:arguments};return c};c.rangeBands=function(e,l,m){2>arguments.length&&(l=0);3>arguments.length&&(m=l);var g=e[1]<e[0],p=e[g-0],q=(e[1-g]-p)/(a.length-l+2*m);f=d(p+q*m,q);g&&f.reverse();h=q*(1-l);b={t:"rangeBands",a:arguments};return c}; +c.rangeRoundBands=function(e,l,m){2>arguments.length&&(l=0);3>arguments.length&&(m=l);var g=e[1]<e[0],p=e[g-0],q=e[1-g],r=Math.floor((q-p)/(a.length-l+2*m));f=d(p+Math.round((q-p-(a.length-l)*r)/2),r);g&&f.reverse();h=Math.round(r*(1-l));b={t:"rangeRoundBands",a:arguments};return c};c.rangeBand=function(){return h};c.rangeExtent=function(){return Ca(b.a[0])};c.copy=function(){return gd(a,b)};return c.domain(a)}function hd(a,b){function c(){var c=0,h=b.length;for(e=[];++c<h;)e[c-1]=g.quantile(a,c/ +h);return d}function d(a){return isNaN(a=+a)?NaN:b[g.bisect(e,a)]}var e;d.domain=function(b){if(!arguments.length)return a;a=b.filter(function(a){return!isNaN(a)}).sort(g.ascending);return c()};d.range=function(a){if(!arguments.length)return b;b=a;return c()};d.quantiles=function(){return e};d.copy=function(){return hd(a,b)};return c()}function id(a,b,c){function d(b){return c[Math.max(0,Math.min(h,Math.floor(f*(b-a))))]}function e(){f=c.length/(b-a);h=c.length-1;return d}var f,h;d.domain=function(c){if(!arguments.length)return[a, +b];a=+c[0];b=+c[c.length-1];return e()};d.range=function(a){if(!arguments.length)return c;c=a;return e()};d.copy=function(){return id(a,b,c)};return e()}function jd(a,b){function c(c){return b[g.bisect(a,c)]}c.domain=function(b){if(!arguments.length)return a;a=b;return c};c.range=function(a){if(!arguments.length)return b;b=a;return c};c.copy=function(){return jd(a,b)};return c}function kd(a){function b(a){return+a}b.invert=b;b.domain=b.range=function(c){if(!arguments.length)return a;a=c.map(b);return b}; +b.ticks=function(b){return Mb(a,b)};b.tickFormat=function(b){return Nb(a,b)};b.copy=function(){return kd(a)};return b}function hf(a){return a.innerRadius}function jf(a){return a.outerRadius}function ld(a){return a.startAngle}function md(a){return a.endAngle}function nd(a){function b(b){function h(){g.push("M",f(a(p),k))}for(var g=[],p=[],q=-1,r=b.length,s,t=F(c),v=F(d);++q<r;)e.call(this,s=b[q],q)?p.push([+t.call(this,s,q),+v.call(this,s,q)]):p.length&&(h(),p=[]);p.length&&h();return g.length?g.join(""): +null}var c=Pb,d=od,e=za,f=U,h=f.key,k=.7;b.x=function(a){if(!arguments.length)return c;c=a;return b};b.y=function(a){if(!arguments.length)return d;d=a;return b};b.defined=function(a){if(!arguments.length)return e;e=a;return b};b.interpolate=function(a){if(!arguments.length)return h;h="function"===typeof a?f=a:(f=Qb.get(a)||U).key;return b};b.tension=function(a){if(!arguments.length)return k;k=a;return b};return b}function Pb(a){return a[0]}function od(a){return a[1]}function U(a){return a.join("L")} +function Rb(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b<c;)e.push("V",(d=a[b])[1],"H",d[0]);return e.join("")}function Sb(a){for(var b=0,c=a.length,d=a[0],e=[d[0],",",d[1]];++b<c;)e.push("H",(d=a[b])[0],"V",d[1]);return e.join("")}function Wa(a,b){if(1>b.length||a.length!=b.length&&a.length!=b.length+2)return U(a);var c=a.length!=b.length,d="",e=a[0],f=a[1],h=b[0],k=h,l=1;c&&(d+="Q"+(f[0]-2*h[0]/3)+","+(f[1]-2*h[1]/3)+","+f[0]+","+f[1],e=a[1],l=2);if(1<b.length)for(k=b[1],f=a[l],l++,d+= +"C"+(e[0]+h[0])+","+(e[1]+h[1])+","+(f[0]-k[0])+","+(f[1]-k[1])+","+f[0]+","+f[1],e=2;e<b.length;e++,l++)f=a[l],k=b[e],d+="S"+(f[0]-k[0])+","+(f[1]-k[1])+","+f[0]+","+f[1];c&&(c=a[l],d+="Q"+(f[0]+2*k[0]/3)+","+(f[1]+2*k[1]/3)+","+c[0]+","+c[1]);return d}function Tb(a,b){for(var c=[],d=(1-b)/2,e,f=a[0],h=a[1],k=1,l=a.length;++k<l;)e=f,f=h,h=a[k],c.push([d*(h[0]-e[0]),d*(h[1]-e[1])]);return c}function pd(a){if(3>a.length)return U(a);var b=1,c=a.length,d=a[0],e=d[0],f=d[1],h=[e,e,e,(d=a[1])[0]],k=[f, +f,f,d[1]],e=[e,",",f];for(Da(e,h,k);++b<c;)d=a[b],h.shift(),h.push(d[0]),k.shift(),k.push(d[1]),Da(e,h,k);for(b=-1;2>++b;)h.shift(),h.push(d[0]),k.shift(),k.push(d[1]),Da(e,h,k);return e.join("")}function aa(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]}function Da(a,b,c){a.push("C",aa(qd,b),",",aa(qd,c),",",aa(rd,b),",",aa(rd,c),",",aa(va,b),",",aa(va,c))}function Ub(a,b){return(b[1]-a[1])/(b[0]-a[0])}function sd(a){for(var b,c=-1,d=a.length,e,f;++c<d;)b=a[c],e=b[0],f=b[1]+na,b[0]=e*Math.cos(f), +b[1]=e*Math.sin(f);return a}function td(a){function b(b){function l(){s.push("M",k(a(v),p),g,m(a(t.reverse()),p),"Z")}for(var s=[],t=[],v=[],x=-1,z=b.length,y,G=F(c),H=F(e),D=c===d?function(){return E}:F(d),B=e===f?function(){return wa}:F(f),E,wa;++x<z;)h.call(this,y=b[x],x)?(t.push([E=+G.call(this,y,x),wa=+H.call(this,y,x)]),v.push([+D.call(this,y,x),+B.call(this,y,x)])):t.length&&(l(),t=[],v=[]);t.length&&l();return s.length?s.join(""):null}var c=Pb,d=Pb,e=0,f=od,h=za,k=U,l=k.key,m=k,g="L",p=.7; +b.x=function(a){if(!arguments.length)return d;c=d=a;return b};b.x0=function(a){if(!arguments.length)return c;c=a;return b};b.x1=function(a){if(!arguments.length)return d;d=a;return b};b.y=function(a){if(!arguments.length)return f;e=f=a;return b};b.y0=function(a){if(!arguments.length)return e;e=a;return b};b.y1=function(a){if(!arguments.length)return f;f=a;return b};b.defined=function(a){if(!arguments.length)return h;h=a;return b};b.interpolate=function(a){if(!arguments.length)return l;l="function"=== +typeof a?k=a:(k=Qb.get(a)||U).key;m=k.reverse||k;g=k.closed?"M":"L";return b};b.tension=function(a){if(!arguments.length)return p;p=a;return b};return b}function kf(a){return a.radius}function ud(a){return[a.x,a.y]}function lf(a){return function(){var b=a.apply(this,arguments),c=b[0],b=b[1]+na;return[c*Math.cos(b),c*Math.sin(b)]}}function mf(){return 64}function nf(){return"circle"}function vd(a){a=Math.sqrt(a/u);return"M0,"+a+"A"+a+","+a+" 0 1,1 0,"+-a+"A"+a+","+a+" 0 1,1 0,"+a+"Z"}function wd(a, +b){a.attr("transform",function(a){return"translate("+b(a)+",0)"})}function xd(a,b){a.attr("transform",function(a){return"translate(0,"+b(a)+")"})}function of(a,b,c){d=[];if(c&&1<b.length){a=Ca(a.domain());for(var d,e=-1,f=b.length,h=(b[1]-b[0])/++c,k,l;++e<f;)for(k=c;0<--k;)(l=+b[e]-k*h)>=a[0]&&d.push(l);--e;for(k=0;++k<c&&(l=+b[e]+k*h)<a[1];)d.push(l)}return d}function pf(a){var b=a.source;a=a.target;var c;var d=a;if(b===d)c=b;else{c=yd(b);for(var d=yd(d),e=c.pop(),f=d.pop(),h=null;e===f;)h=e,e= +c.pop(),f=d.pop();c=h}for(d=[b];b!==c;)b=b.parent,d.push(b);for(b=d.length;a!==c;)d.splice(b,0,a),a=a.parent;return d}function yd(a){for(var b=[],c=a.parent;null!=c;)b.push(a),a=c,c=c.parent;b.push(a);return b}function qf(a){a.fixed|=2}function rf(a){a.fixed&=-7}function sf(a){a.fixed|=4;a.px=a.x;a.py=a.y}function tf(a){a.fixed&=-5}function zd(a,b,c){var d=0,e=0;a.charge=0;if(!a.leaf)for(var f=a.nodes,h=f.length,k=-1,l;++k<h;)l=f[k],null!=l&&(zd(l,b,c),a.charge+=l.charge,d+=l.charge*l.cx,e+=l.charge* +l.cy);a.point&&(a.leaf||(a.point.x+=Math.random()-.5,a.point.y+=Math.random()-.5),b*=c[a.point.index],a.charge+=a.pointCharge=b,d+=b*a.point.x,e+=b*a.point.y);a.cx=d/a.charge;a.cy=e/a.charge}function uf(a){return a.x}function vf(a){return a.y}function wf(a,b,c){a.y0=b;a.y=c}function Vb(a){return g.range(a.length)}function Wb(a){var b=-1;a=a[0].length;for(var c=[];++b<a;)c[b]=0;return c}function xf(a){for(var b=1,c=0,d=a[0][1],e,f=a.length;b<f;++b)(e=a[b][1])>d&&(c=b,d=e);return c}function yf(a){return a.reduce(zf, +0)}function zf(a,b){return a+b[1]}function Af(a,b){return Ad(a,Math.ceil(Math.log(b.length)/Math.LN2+1))}function Ad(a,b){for(var c=-1,d=+a[0],e=(a[1]-d)/b,f=[];++c<=b;)f[c]=e*c+d;return f}function Bf(a){return[g.min(a),g.max(a)]}function Ea(a,b){g.rebind(a,b,"sort","children","value");a.nodes=a;a.links=Cf;return a}function Df(a){return a.children}function Ef(a){return a.value}function Ff(a,b){return b.value-a.value}function Cf(a){return g.merge(a.map(function(a){return(a.children||[]).map(function(c){return{source:a, +target:c}})}))}function Gf(a,b){return a.value-b.value}function Xb(a,b){var c=a._pack_next;a._pack_next=b;b._pack_prev=a;b._pack_next=c;c._pack_prev=b}function Bd(a,b){a._pack_next=b;b._pack_prev=a}function Cd(a,b){var c=b.x-a.x,d=b.y-a.y,e=a.r+b.r;return.001<e*e-c*c-d*d}function Dd(a){function b(a){d=Math.min(a.x-a.r,d);e=Math.max(a.x+a.r,e);f=Math.min(a.y-a.r,f);h=Math.max(a.y+a.r,h)}if((c=a.children)&&(r=c.length)){var c,d=Infinity,e=-Infinity,f=Infinity,h=-Infinity,k,l,m,g,p,q,r;c.forEach(Hf); +k=c[0];k.x=-k.r;k.y=0;b(k);if(1<r&&(l=c[1],l.x=l.r,l.y=0,b(l),2<r))for(m=c[2],Ed(k,l,m),b(m),Xb(k,m),k._pack_prev=m,Xb(m,l),l=k._pack_next,g=3;g<r;g++){Ed(k,l,m=c[g]);var s=0,t=1,v=1;for(p=l._pack_next;p!==l;p=p._pack_next,t++)if(Cd(p,m)){s=1;break}if(1==s)for(q=k._pack_prev;q!==p._pack_prev&&!Cd(q,m);q=q._pack_prev,v++);s?(t<v||t==v&&l.r<k.r?Bd(k,l=p):Bd(k=q,l),g--):(Xb(k,m),l=m,b(m))}k=(d+e)/2;l=(f+h)/2;for(g=p=0;g<r;g++)m=c[g],m.x-=k,m.y-=l,p=Math.max(p,m.r+Math.sqrt(m.x*m.x+m.y*m.y));a.r=p;c.forEach(If)}} +function Hf(a){a._pack_next=a._pack_prev=a}function If(a){delete a._pack_next;delete a._pack_prev}function Fd(a,b,c,d){var e=a.children;a.x=b+=d*a.x;a.y=c+=d*a.y;a.r*=d;if(e){a=-1;for(var f=e.length;++a<f;)Fd(e[a],b,c,d)}}function Ed(a,b,c){var d=a.r+c.r,e=b.x-a.x,f=b.y-a.y;if(d&&(e||f)){var h=b.r+c.r,k=e*e+f*f,h=h*h,d=d*d;b=.5+(d-h)/(2*k);h=Math.sqrt(Math.max(0,2*h*(d+k)-(d-=k)*d-h*h))/(2*k);c.x=a.x+b*e+h*f;c.y=a.y+b*f-h*e}else c.x=a.x+d,c.y=a.y}function Jf(a){return 1+g.max(a,function(a){return a.y})} +function Kf(a){return a.reduce(function(a,c){return a+c.x},0)/a.length}function Gd(a){var b=a.children;return b&&b.length?Gd(b[0]):a}function Hd(a){var b=a.children,c;return b&&(c=b.length)?Hd(b[c-1]):a}function Id(a,b){return a.parent==b.parent?1:2}function Yb(a){var b=a.children;return b&&b.length?b[0]:a._tree.thread}function Zb(a){var b=a.children,c;return b&&(c=b.length)?b[c-1]:a._tree.thread}function Xa(a,b){var c=a.children;if(c&&(e=c.length))for(var d,e,f=-1;++f<e;)0<b(d=Xa(c[f],b),a)&&(a= +d);return a}function Lf(a,b){return a.x-b.x}function Mf(a,b){return b.x-a.x}function Nf(a,b){return a.depth-b.depth}function ea(a,b){function c(a,e){var f=a.children;if(f&&(g=f.length))for(var h,k=null,l=-1,g;++l<g;)h=f[l],c(h,k),k=h;b(a,e)}c(a,null)}function $b(a){return{x:a.x,y:a.y,dx:a.dx,dy:a.dy}}function Jd(a,b){var c=a.x+b[3],d=a.y+b[0],e=a.dx-b[1]-b[3],f=a.dy-b[0]-b[2];0>e&&(c+=e/2,e=0);0>f&&(d+=f/2,f=0);return{x:c,y:d,dx:e,dy:f}}function Kd(a,b){function c(a,c){return g.xhr(a,b,c).response(d)} +function d(a){return c.parse(a.responseText)}function e(b){return b.map(f).join(a)}function f(a){return h.test(a)?'"'+a.replace(/\"/g,'""')+'"':a}var h=new RegExp('["'+a+"\n]"),k=a.charCodeAt(0);c.parse=function(a){var b;return c.parseRows(a,function(a){if(b)return b(a);b=new Function("d","return {"+a.map(function(a,b){return JSON.stringify(a)+": d["+b+"]"}).join(",")+"}")})};c.parseRows=function(a,b){function c(){if(g>=h)return d;if(z)return z=!1,e;var b=g;if(34===a.charCodeAt(b)){for(var f=b;f++< +h;)if(34===a.charCodeAt(f)){if(34!==a.charCodeAt(f+1))break;++f}g=f+2;var m=a.charCodeAt(f+1);13===m?(z=!0,10===a.charCodeAt(f+2)&&++g):10===m&&(z=!0);return a.substring(b+1,f).replace(/""/g,'"')}for(;g<h;){m=a.charCodeAt(g++);f=1;if(10===m)z=!0;else if(13===m)z=!0,10===a.charCodeAt(g)&&(++g,++f);else if(m!==k)continue;return a.substring(b,g-f)}return a.substring(b)}for(var e={},d={},f=[],h=a.length,g=0,v=0,x,z;(x=c())!==d;){for(var y=[];x!==e&&x!==d;)y.push(x),x=c();b&&!(y=b(y,v++))||f.push(y)}return f}; +c.format=function(a){return a.map(e).join("\n")};return c}function Ya(a,b){if(Ld.hasOwnProperty(a.type))Ld[a.type](a,b)}function ac(a,b,c){var d=-1;c=a.length-c;var e;for(b.lineStart();++d<c;)e=a[d],b.point(e[0],e[1]);b.lineEnd()}function Md(a,b){var c=-1,d=a.length;for(b.polygonStart();++c<d;)ac(a[c],b,1);b.polygonEnd()}function Nd(a){return[Math.atan2(a[1],a[0]),Math.asin(Math.max(-1,Math.min(1,a[2])))]}function bc(a,b){return Math.abs(a[0]-b[0])<A&&Math.abs(a[1]-b[1])<A}function Za(a){var b=a[0]; +a=a[1];var c=Math.cos(a);return[c*Math.cos(b),c*Math.sin(b),Math.sin(a)]}function $a(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}function Od(a,b){return[a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]]}function cc(a,b){return[a[0]*b,a[1]*b,a[2]*b]}function Pd(a){function b(b){function d(c,e){c=a(c,e);b.point(c[0],c[1])}function k(){q=NaN;x.point=l;b.lineStart()}function l(d,h){var k=Za([d,h]),l=a(d,h);c(q,r,p,s,t,v,q=l[0],r=l[1],p=d,s=k[0],t=k[1],v=k[2],e,b);b.point(q,r)}function g(){x.point= +d;b.lineEnd()}function n(){var a,d,h,n,D,B;k();x.point=function(b,c){l(a=b,c);d=q;h=r;n=s;D=t;B=v;x.point=l};x.lineEnd=function(){c(q,r,p,s,t,v,d,h,a,n,D,B,e,b);x.lineEnd=g;g()}}var p,q,r,s,t,v,x={point:d,lineStart:k,lineEnd:g,polygonStart:function(){b.polygonStart();x.lineStart=n},polygonEnd:function(){b.polygonEnd();x.lineStart=k}};return x}function c(b,e,k,l,g,n,p,q,r,s,t,v,x,z){var y=p-b,G=q-e,H=y*y+G*G;if(H>4*d&&x--){var D=l+s,B=g+t,E=n+v,wa=Math.sqrt(D*D+B*B+E*E),L=Math.asin(E/=wa),u=Math.abs(Math.abs(E)- +1)<A?(k+r)/2:Math.atan2(B,D),fa=a(u,L),L=fa[0],fa=fa[1],w=L-b,C=fa-e,I=G*w-y*C;if(I*I/H>d||.3<Math.abs((y*w+G*C)/H-.5))c(b,e,k,l,g,n,L,fa,u,D/=wa,B/=wa,E,x,z),z.point(L,fa),c(L,fa,u,D,B,E,p,q,r,s,t,v,x,z)}}var d=.5,e=16;b.precision=function(a){if(!arguments.length)return Math.sqrt(d);e=0<(d=a*a)&&16;return b};return b}function Qd(a,b){function c(a,b){var c=Math.sqrt(f-2*e*Math.sin(b))/e;return[c*Math.sin(a*=e),h-c*Math.cos(a)]}var d=Math.sin(a),e=(d+Math.sin(b))/2,f=1+d*(2*e-d),h=Math.sqrt(f)/e;c.invert= +function(a,b){var c=h-b;return[Math.atan2(a,c)/e,Math.asin((f-(a*a+c*c)*e*e)/(2*e))]};return c}function Rd(a){function b(a,b){a<d&&(d=a);a>f&&(f=a);b<e&&(e=b);b>h&&(h=b)}function c(){k.point=k.lineEnd=T}var d,e,f,h,k={point:b,lineStart:T,lineEnd:T,polygonStart:function(){k.lineEnd=c},polygonEnd:function(){k.point=b}};return function(b){h=f=-(d=e=Infinity);g.geo.stream(b,a(k));return[[d,e],[f,h]]}}function Sd(a,b){if(!N){++Y;a*=w;var c=Math.cos(b*=w);J+=(c*Math.cos(a)-J)/Y;K+=(c*Math.sin(a)-K)/Y;I+= +(Math.sin(b)-I)/Y}}function Of(){var a,b;N=1;dc();N=2;var c=Z.point;Z.point=function(d,e){c(a=d,b=e)};Z.lineEnd=function(){Z.point(a,b);ec();Z.lineEnd=ec}}function dc(){function a(a,f){a*=w;var h=Math.cos(f*=w),k=h*Math.cos(a),h=h*Math.sin(a),l=Math.sin(f),g=Math.atan2(Math.sqrt((g=c*l-d*h)*g+(g=d*k-b*l)*g+(g=b*h-c*k)*g),b*k+c*h+d*l);Y+=g;J+=g*(b+(b=k));K+=g*(c+(c=h));I+=g*(d+(d=l))}var b,c,d;1<N||(1>N&&(N=1,Y=J=K=I=0),Z.point=function(e,f){e*=w;var h=Math.cos(f*=w);b=h*Math.cos(e);c=h*Math.sin(e); +d=Math.sin(f);Z.point=a})}function ec(){Z.point=Sd}function fc(a,b){var c=Math.cos(a),d=Math.sin(a);return function(e,f,h,k){if(null!=e){if(e=Td(c,e),f=Td(c,f),0<h?e<f:e>f)e+=2*h*u}else e=a+2*h*u,f=a;for(var l,g=h*b;0<h?e>f:e<f;e-=g)k.point((l=Nd([c,-d*Math.cos(e),-d*Math.sin(e)]))[0],l[1])}}function Td(a,b){var c=Za(b);c[0]-=a;var d=Math.sqrt(c[0]*c[0]+c[1]*c[1]+c[2]*c[2]);c[0]/=d;c[1]/=d;c[2]/=d;d=Math.acos(Math.max(-1,Math.min(1,-c[1])));return((0>-c[2]?-d:d)+2*Math.PI-A)%(2*Math.PI)}function Ud(a, +b,c){return function(d){function e(b,c){a(b,c)&&d.point(b,c)}function f(a,b){p.point(a,b)}function h(){q.point=f;p.lineStart()}function k(){q.point=e;p.lineEnd()}function l(a,b){z.point(a,b);y.push([a,b])}function m(){z.lineStart();y=[]}function n(){l(y[0][0],y[0][1]);z.lineEnd();var a=z.clean(),b=x.buffer(),c=b.length;if(c)if(y=null,a&1){a=b[0];s+=Vd(a,1);var c=a.length-1,b=-1,e;for(d.lineStart();++b<c;)d.point((e=a[b])[0],e[1]);d.lineEnd()}else 1<c&&a&2&&b.push(b.pop().concat(b.shift())),r.push(b.filter(Pf)); +else v=!0,t+=Vd(y,-1),y=null}var p=b(d),q={point:e,lineStart:h,lineEnd:k,polygonStart:function(){q.point=l;q.lineStart=m;q.lineEnd=n;v=!1;t=s=0;r=[];d.polygonStart()},polygonEnd:function(){q.point=e;q.lineStart=h;q.lineEnd=k;r=g.merge(r);if(r.length)Qf(r,c,d);else if(s<-A||v&&t<-A)d.lineStart(),c(null,null,1,d),d.lineEnd();d.polygonEnd();r=null},sphere:function(){d.polygonStart();d.lineStart();c(null,null,1,d);d.lineEnd();d.polygonEnd()}},r,s,t,v,x=Rf(),z=b(x),y;return q}}function Qf(a,b,c){var d= +[],e=[];a.forEach(function(a){var b=a.length;if(!(1>=b)){var c=a[0],b=a[b-1];a={point:c,points:a,other:null,visited:!1,entry:!0,subject:!0};c={point:c,points:[c],other:a,visited:!1,entry:!1,subject:!1};a.other=c;d.push(a);e.push(c);a={point:b,points:[b],other:null,visited:!1,entry:!1,subject:!0};c={point:b,points:[b],other:a,visited:!1,entry:!0,subject:!1};a.other=c;d.push(a);e.push(c)}});e.sort(Sf);Wd(d);Wd(e);if(d.length){a=d[0];for(var f,h,k;;){for(f=a;f.visited;)if((f=f.next)===a)return;h=f.points; +c.lineStart();do{f.visited=f.other.visited=!0;if(f.entry){if(f.subject)for(var l=0;l<h.length;l++)c.point((k=h[l])[0],k[1]);else b(f.point,f.next.point,1,c);f=f.next}else{if(f.subject)for(h=f.prev.points,l=h.length;0<=--l;)c.point((k=h[l])[0],k[1]);else b(f.point,f.prev.point,-1,c);f=f.prev}f=f.other;h=f.points}while(!f.visited);c.lineEnd()}}}function Wd(a){if(b=a.length){for(var b,c=0,d=a[0],e;++c<b;)d.next=e=a[c],e.prev=d,d=e;d.next=e=a[0];e.prev=d}}function Sf(a,b){return(0>(a=a.point)[0]?a[1]- +u/2-A:u/2-a[1])-(0>(b=b.point)[0]?b[1]-u/2-A:u/2-b[1])}function Pf(a){return 1<a.length}function Rf(){var a=[],b;return{lineStart:function(){a.push(b=[])},point:function(a,d){b.push([a,d])},lineEnd:T,buffer:function(){var c=a;a=[];b=null;return c}}}function Vd(a,b){if(!(c=a.length))return 0;for(var c,d=0,e=0,f=a[0],h=f[0],k=f[1],l=Math.cos(k),g=Math.atan2(b*Math.sin(h)*l,Math.sin(k)),n=1-b*Math.cos(h)*l,p=g;++d<c;)f=a[d],l=Math.cos(k=f[1]),f=Math.atan2(b*Math.sin(h=f[0])*l,Math.sin(k)),h=1-b*Math.cos(h)* +l,Math.abs(n-2)<A&&Math.abs(h-2)<A||(Math.abs(h)<A||Math.abs(n)<A||(Math.abs(Math.abs(f-g)-u)<A?2<h+n&&(e+=4*(f-g)):e=Math.abs(n-2)<A?e+4*(f-p):e+((3*u+f-g)%(2*u)-u)*(n+h)),p=g,g=f,n=h);return e}function Tf(a){function b(a,b){return Math.cos(a)*Math.cos(b)>d}function c(a,b){var c=Za(a,0),k=Za(b,0),l=[1,0,0],k=Od(c,k),g=$a(k,k),c=k[0],n=g-c*c;if(!n)return a;g=d*g/n;n=-d*c/n;c=Od(l,k);l=cc(l,g);k=cc(k,n);l[0]+=k[0];l[1]+=k[1];l[2]+=k[2];k=$a(l,c);g=$a(c,c);n=Math.sqrt(k*k-g*($a(l,l)-1));c=cc(c,(-k- +n)/g);c[0]+=l[0];c[1]+=l[1];c[2]+=l[2];return Nd(c)}a*=w;var d=Math.cos(a);a=fc(a,6*w);return Ud(b,function(a){var d,h,k,l;return{lineStart:function(){k=h=!1;l=1},point:function(g,n){var p=[g,n],q,r=b(g,n);!d&&(k=h=r)&&a.lineStart();r!==h&&(q=c(d,p),bc(d,q)||bc(p,q))&&(p[0]+=A,p[1]+=A,r=b(p[0],p[1]));r!==h&&(l=0,(h=r)?(a.lineStart(),q=c(p,d),a.point(q[0],q[1])):(q=c(d,p),a.point(q[0],q[1]),a.lineEnd()),d=q);!r||d&&bc(d,p)||a.point(p[0],p[1]);d=p},lineEnd:function(){h&&a.lineEnd();d=null},clean:function(){return l| +(k&&h)<<1}}},a)}function Xd(a,b){function c(c,e){return c=a(c,e),b(c[0],c[1])}a.invert&&b.invert&&(c.invert=function(c,e){return c=b.invert(c,e),c&&a.invert(c[0],c[1])});return c}function ab(a,b){return[a,b]}function Uf(a,b,c){var d=g.range(a,b-A,c).concat(b);return function(a){return d.map(function(b){return[a,b]})}}function Vf(a,b,c){var d=g.range(a,b-A,c).concat(b);return function(a){return d.map(function(b){return[b,a]})}}function Wf(a,b,c,d){function e(a){var b=Math.sin(a*=q)*r,c=Math.sin(q- +a)*r;a=c*l+b*n;var d=c*g+b*p,b=c*h+b*k;return[Math.atan2(d,a)/w,Math.atan2(b,Math.sqrt(a*a+d*d))/w]}var f=Math.cos(b),h=Math.sin(b);b=Math.cos(d);var k=Math.sin(d),l=f*Math.cos(a),g=f*Math.sin(a),n=b*Math.cos(c),p=b*Math.sin(c),q=Math.acos(Math.max(-1,Math.min(1,h*k+f*b*Math.cos(c-a)))),r=1/Math.sin(q);e.distance=q;return e}function gc(a,b){return[a/(2*u),Math.max(-.5,Math.min(.5,Math.log(Math.tan(u/4+b/2))/(2*u)))]}function Yd(a){return"m0,"+a+"a"+a+","+a+" 0 1,1 0,"+-2*a+"a"+a+","+a+" 0 1,1 0,"+ +2*a+"z"}function Xf(a){var b=Pd(function(b,d){return a([b*O,d*O])});return function(a){a=b(a);return{point:function(b,e){a.point(b*w,e*w)},sphere:function(){a.sphere()},lineStart:function(){a.lineStart()},lineEnd:function(){a.lineEnd()},polygonStart:function(){a.polygonStart()},polygonEnd:function(){a.polygonEnd()}}}}function Yf(){function a(a,b){h.push("M",a,",",b,f)}function b(a,b){h.push("M",a,",",b);k.point=c}function c(a,b){h.push("L",a,",",b)}function d(){k.point=a}function e(){h.push("Z")} +var f=Yd(4.5),h=[],k={point:a,lineStart:function(){k.point=b},lineEnd:d,polygonStart:function(){k.lineEnd=e},polygonEnd:function(){k.lineEnd=d;k.point=a},pointRadius:function(a){f=Yd(a);return k},result:function(){if(h.length){var a=h.join("");h=[];return a}}};return k}function Zf(a){function b(b,c){a.moveTo(b,c);a.arc(b,c,h,0,2*u)}function c(b,c){a.moveTo(b,c);k.point=d}function d(b,c){a.lineTo(b,c)}function e(){k.point=b}function f(){a.closePath()}var h=4.5,k={point:b,lineStart:function(){k.point= +c},lineEnd:e,polygonStart:function(){k.lineEnd=f},polygonEnd:function(){k.lineEnd=e;k.point=b},pointRadius:function(a){h=a;return k},result:T};return k}function $f(){function a(a,b){bb+=e*a-d*b;d=a;e=b}var b,c,d,e;ja.point=function(f,h){ja.point=a;b=d=f;c=e=h};ja.lineEnd=function(){a(b,c)}}function hc(a,b){N||(J+=a,K+=b,++I)}function Zd(){function a(a,e){var f=a-b,h=e-c,f=Math.sqrt(f*f+h*h);J+=f*(b+a)/2;K+=f*(c+e)/2;I+=f;b=a;c=e}var b,c;if(1!==N)if(1>N)N=1,J=K=I=0;else return;$.point=function(d,e){$.point= +a;b=d;c=e}}function $d(){$.point=hc}function ag(){function a(a,b){var c=e*a-d*b;J+=c*(d+a);K+=c*(e+b);I+=3*c;d=a;e=b}var b,c,d,e;2>N&&(N=2,J=K=I=0);$.point=function(f,h){$.point=a;b=d=f;c=e=h};$.lineEnd=function(){a(b,c)}}function bg(){function a(a,b){a*=w;b=b*w/2+u/4;var c=a-d,g=Math.cos(b),n=Math.sin(b),p=f*n,q=cb,r=db,s=e*g+p*Math.cos(c),c=p*Math.sin(c);cb=q*s-r*c;db=r*s+q*c;d=a;e=g;f=n}var b,c,d,e,f;ka.point=function(h,k){ka.point=a;d=(b=h)*w;e=Math.cos(k=(c=k)*w/2+u/4);f=Math.sin(k)};ka.lineEnd= +function(){a(b,c)}}function la(a){return ic(function(){return a})()}function ic(a){function b(a){a=h(a[0]*w,a[1]*w);return[a[0]*l+v,x-a[1]*l]}function c(a){return(a=h.invert((a[0]-v)/l,(x-a[1])/l))&&[a[0]*O,a[1]*O]}function d(){h=Xd(f=ae(r,s,t),e);var a=e(p,q);v=m-a[0]*l;x=n+a[1]*l;return b}var e,f,h,k=Pd(function(a,b){a=e(a,b);return[a[0]*l+v,x-a[1]*l]}),l=150,m=480,n=250,p=0,q=0,r=0,s=0,t=0,v,x,z=be,y=null;b.stream=function(a){return cg(f,z(k(a)))};b.clipAngle=function(a){if(!arguments.length)return y; +z=null==a?(y=a,be):Tf(y=+a);return b};b.scale=function(a){if(!arguments.length)return l;l=+a;return d()};b.translate=function(a){if(!arguments.length)return[m,n];m=+a[0];n=+a[1];return d()};b.center=function(a){if(!arguments.length)return[p*O,q*O];p=a[0]%360*w;q=a[1]%360*w;return d()};b.rotate=function(a){if(!arguments.length)return[r*O,s*O,t*O];r=a[0]%360*w;s=a[1]%360*w;t=2<a.length?a[2]%360*w:0;return d()};g.rebind(b,k,"precision");return function(){e=a.apply(this,arguments);b.invert=e.invert&& +c;return d()}}function cg(a,b){return{point:function(c,d){d=a(c*w,d*w);c=d[0];b.point(c>u?c-2*u:c<-u?c+2*u:c,d[1])},sphere:function(){b.sphere()},lineStart:function(){b.lineStart()},lineEnd:function(){b.lineEnd()},polygonStart:function(){b.polygonStart()},polygonEnd:function(){b.polygonEnd()}}}function ae(a,b,c){return a?b||c?Xd(ce(a),de(b,c)):ce(a):b||c?de(b,c):ab}function ee(a){return function(b,c){return b+=a,[b>u?b-2*u:b<-u?b+2*u:b,c]}}function ce(a){var b=ee(a);b.invert=ee(-a);return b}function de(a, +b){function c(a,b){var c=Math.cos(b),g=Math.cos(a)*c,c=Math.sin(a)*c,p=Math.sin(b),q=p*d+g*e;return[Math.atan2(c*f-q*h,g*d-p*e),Math.asin(Math.max(-1,Math.min(1,q*f+c*h)))]}var d=Math.cos(a),e=Math.sin(a),f=Math.cos(b),h=Math.sin(b);c.invert=function(a,b){var c=Math.cos(b),g=Math.cos(a)*c,c=Math.sin(a)*c,p=Math.sin(b),q=p*f-c*h;return[Math.atan2(c*f+p*h,g*d+q*e),Math.asin(Math.max(-1,Math.min(1,q*d-g*e)))]};return c}function Fa(a,b){function c(b,c){var f=Math.cos(b),h=Math.cos(c),f=a(f*h);return[f* +h*Math.sin(b),f*Math.sin(c)]}c.invert=function(a,c){var f=Math.sqrt(a*a+c*c),h=b(f),k=Math.sin(h),h=Math.cos(h);return[Math.atan2(a*k,f*h),Math.asin(f&&c*k/f)]};return c}function dg(a,b,c,d){var e,f,h;a=d[a];e=a[0];f=a[1];a=d[b];b=a[0];h=a[1];a=d[c];return 0<(a[1]-f)*(b-e)-(h-f)*(a[0]-e)}function jc(a,b,c){return(c[0]-b[0])*(a[1]-b[1])<(c[1]-b[1])*(a[0]-b[0])}function fe(a,b,c,d){var e=a[0],f=c[0],h=b[0]-e,k=d[0]-f;a=a[1];c=c[1];b=b[1]-a;d=d[1]-c;f=(k*(a-c)-d*(e-f))/(d*h-k*b);return[e+f*h,a+f*b]} +function ge(a,b){var c=a.map(function(a,b){return{index:b,x:a[0],y:a[1]}}).sort(function(a,b){return a.y<b.y?-1:a.y>b.y?1:a.x<b.x?-1:a.x>b.x?1:0}),d=null,e={list:[],leftEnd:null,rightEnd:null,init:function(){e.leftEnd=e.createHalfEdge(null,"l");e.rightEnd=e.createHalfEdge(null,"l");e.leftEnd.r=e.rightEnd;e.rightEnd.l=e.leftEnd;e.list.unshift(e.leftEnd,e.rightEnd)},createHalfEdge:function(a,b){return{edge:a,side:b,vertex:null,l:null,r:null}},insert:function(a,b){b.l=a;b.r=a.r;a.r.l=b;a.r=b},leftBound:function(a){var b= +e.leftEnd;do b=b.r;while(b!=e.rightEnd&&f.rightOf(b,a));return b=b.l},del:function(a){a.l.r=a.r;a.r.l=a.l;a.edge=null},right:function(a){return a.r},left:function(a){return a.l},leftRegion:function(a){return null==a.edge?d:a.edge.region[a.side]},rightRegion:function(a){return null==a.edge?d:a.edge.region[kc[a.side]]}},f={bisect:function(a,b){var c={region:{l:a,r:b},ep:{l:null,r:null}},d=b.x-a.x,e=b.y-a.y;c.c=a.x*d+a.y*e+.5*(d*d+e*e);(0<d?d:-d)>(0<e?e:-e)?(c.a=1,c.b=e/d,c.c/=d):(c.b=1,c.a=d/e,c.c/= +e);return c},intersect:function(a,b){var c=a.edge,d=b.edge;if(!c||!d||c.region.r==d.region.r)return null;var e=c.a*d.b-c.b*d.a;if(1E-10>Math.abs(e))return null;var f=(c.c*d.b-d.c*c.b)/e,e=(d.c*c.a-c.c*d.a)/e,h=c.region.r,k=d.region.r;h.y<k.y||h.y==k.y&&h.x<k.x?h=a:(h=b,c=d);return(c=f>=c.region.r.x)&&"l"===h.side||!c&&"r"===h.side?null:{x:f,y:e}},rightOf:function(a,b){var c=a.edge,d=c.region.r,e=b.x>d.x;if(e&&"l"===a.side)return 1;if(!e&&"r"===a.side)return 0;if(1===c.a){var f=b.y-d.y,h=b.x-d.x,k= +0,g=0;!e&&0>c.b||e&&0<=c.b?g=k=f>=c.b*h:(g=b.x+b.y*c.b>c.c,0>c.b&&(g=!g),g||(k=1));k||(d=d.x-c.region.l.x,g=c.b*(h*h-f*f)<d*f*(1+2*h/d+c.b*c.b),0>c.b&&(g=!g))}else h=c.c-c.a*b.x,c=b.y-h,f=b.x-d.x,d=h-d.y,g=c*c>f*f+d*d;return"l"===a.side?g:!g},endPoint:function(a,c,d){a.ep[c]=d;a.ep[kc[c]]&&b(a)},distance:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}},h={list:[],insert:function(a,b,c){a.vertex=b;a.ystar=b.y+c;c=0;for(var d=h.list,e=d.length;c<e;c++){var f=d[c];if(!(a.ystar>f.ystar|| +a.ystar==f.ystar&&b.x>f.vertex.x))break}d.splice(c,0,a)},del:function(a){for(var b=0,c=h.list,d=c.length;b<d&&c[b]!=a;++b);c.splice(b,1)},empty:function(){return 0===h.list.length},nextEvent:function(a){for(var b=0,c=h.list,d=c.length;b<d;++b)if(c[b]==a)return c[b+1];return null},min:function(){var a=h.list[0];return{x:a.vertex.x,y:a.ystar}},extractMin:function(){return h.list.shift()}};e.init();for(var d=c.shift(),k=c.shift(),g,m,n,p,q,r,s,t,v;;)if(h.empty()||(g=h.min()),k&&(h.empty()||k.y<g.y|| +k.y==g.y&&k.x<g.x)){m=e.leftBound(k);n=e.right(m);s=e.rightRegion(m);v=f.bisect(s,k);r=e.createHalfEdge(v,"l");e.insert(m,r);if(t=f.intersect(m,r))h.del(m),h.insert(m,t,f.distance(t,k));m=r;r=e.createHalfEdge(v,"r");e.insert(m,r);(t=f.intersect(r,n))&&h.insert(r,t,f.distance(t,k));k=c.shift()}else if(h.empty())break;else{m=h.extractMin();p=e.left(m);n=e.right(m);q=e.right(n);s=e.leftRegion(m);r=e.rightRegion(n);t=m.vertex;f.endPoint(m.edge,m.side,t);f.endPoint(n.edge,n.side,t);e.del(m);h.del(n);e.del(n); +m="l";s.y>r.y&&(m=s,s=r,r=m,m="r");v=f.bisect(s,r);r=e.createHalfEdge(v,m);e.insert(p,r);f.endPoint(v,kc[m],t);if(t=f.intersect(p,r))h.del(p),h.insert(p,t,f.distance(t,s));(t=f.intersect(r,q))&&h.insert(r,t,f.distance(t,s))}for(m=e.right(e.leftEnd);m!=e.rightEnd;m=e.right(m))b(m.edge)}function Ga(a,b,c,d,e,f){if(!a(b,c,d,e,f)){var h=.5*(c+e),k=.5*(d+f);b=b.nodes;b[0]&&Ga(a,b[0],c,d,h,k);b[1]&&Ga(a,b[1],h,d,e,k);b[2]&&Ga(a,b[2],c,k,h,f);b[3]&&Ga(a,b[3],h,k,e,f)}}function oa(){this._=new Date(1<arguments.length? +Date.UTC.apply(this,arguments):arguments[0])}function eb(a,b,c,d){for(var e,f=0,h=b.length,k=c.length;f<h;){if(d>=k)return-1;e=b.charCodeAt(f++);if(37===e){if(e=eg[b.charAt(f++)],!e||0>(d=e(a,c,d)))return-1}else if(e!=c.charCodeAt(d++))return-1}return d}function fb(a){return new RegExp("^(?:"+a.map(g.requote).join("|")+")","i")}function he(a){for(var b=new ba,c=-1,d=a.length;++c<d;)b.set(a[c].toLowerCase(),c);return b}function S(a,b,c){a+="";var d=a.length;return d<c?Array(c-d+1).join(b)+a:a}function ie(a, +b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.d=+b[0],c+b[0].length):-1}function je(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.H=+b[0],c+b[0].length):-1}function lc(a){return a.toISOString()}function pa(a,b,c){function d(b){var c=a(b),d=f(c,1);return b-c<d-b?c:d}function e(c){b(c=a(new R(c-1)),1);return c}function f(a,c){b(a=new R(+a),c);return a}function h(a,d,f){a=e(a);var h=[];if(1<f)for(;a<d;)c(a)%f||h.push(new Date(+a)),b(a,1);else for(;a<d;)h.push(new Date(+a)), +b(a,1);return h}a.floor=a;a.round=d;a.ceil=e;a.offset=f;a.range=h;var k=a.utc=gb(a);k.floor=k;k.round=gb(d);k.ceil=gb(e);k.offset=gb(f);k.range=function(a,b,c){try{R=oa;var d=new oa;d._=a;return h(d,b,c)}finally{R=Date}};return a}function gb(a){return function(b,c){try{R=oa;var d=new oa;d._=b;return a(d,c)._}finally{R=Date}}}function mc(a,b,c){function d(b){return a(b)}d.invert=function(b){return nc(a.invert(b))};d.domain=function(b){if(!arguments.length)return a.domain().map(nc);a.domain(b);return d}; +d.nice=function(a){return d.domain(Ta(d.domain(),function(){return a}))};d.ticks=function(c,f){var h,k=d.domain();h=k[0];k=k[k.length-1];h=h<k?[h,k]:[k,h];if("function"!==typeof c){var k=(h[1]-h[0])/c,l=g.bisect(hb,k);if(l==hb.length)return b.year(h,c);if(!l)return a.ticks(c).map(nc);Math.log(k/hb[l-1])<Math.log(hb[l]/k)&&--l;c=b[l];f=c[1];c=c[0].range}return c(h[0],new Date(+h[1]+1),f)};d.tickFormat=function(){return c};d.copy=function(){return mc(a.copy(),b,c)};return g.rebind(d,a,"range","rangeRound", +"interpolate","clamp")}function nc(a){return new Date(a)}function ke(a){return function(b){for(var c=a.length-1,d=a[c];!d[1](b);)d=a[--c];return d[0](b)}}function oc(a){var b=new Date(a,0,1);b.setFullYear(a);return b}function fg(a){var b=a.getFullYear(),c=oc(b),d=oc(b+1);return b+(a-c)/(d-c)}function pc(a){var b=new Date(Date.UTC(a,0,1));b.setUTCFullYear(a);return b}function gg(a){var b=a.getUTCFullYear(),c=pc(b),d=pc(b+1);return b+(a-c)/(d-c)}var u=Math.PI,A=1E-6,g={version:"3.0.6"},w=u/180,O=180/ +u,W=document,P=window,ib=[3,3];Date.now||(Date.now=function(){return+new Date});try{W.createElement("div").style.setProperty("opacity",0,"")}catch(Ng){var le=P.CSSStyleDeclaration.prototype,hg=le.setProperty;le.setProperty=function(a,b,c){hg.call(this,a,b+"",c)}}var ha=function(a){return Array.prototype.slice.call(a)};try{ha(W.documentElement.childNodes)[0].nodeType}catch(Og){ha=Je}var Hb=[].__proto__?function(a,b){a.__proto__=b}:function(a,b){for(var c in b)a[c]=b[c]};g.map=function(a){var b=new ba, +c;for(c in a)b.set(c,a[c]);return b};(function(a,b){try{for(var c in b)Object.defineProperty(a.prototype,c,{value:b[c],enumerable:!1})}catch(d){a.prototype=b}})(ba,{has:function(a){return Ha+a in this},get:function(a){return this[Ha+a]},set:function(a,b){return this[Ha+a]=b},remove:function(a){a=Ha+a;return a in this&&delete this[a]},keys:function(){var a=[];this.forEach(function(b){a.push(b)});return a},values:function(){var a=[];this.forEach(function(b,c){a.push(c)});return a},entries:function(){var a= +[];this.forEach(function(b,c){a.push({key:b,value:c})});return a},forEach:function(a){for(var b in this)b.charCodeAt(0)===ig&&a.call(this,b.substring(1),this[b])}});var Ha="\x00",ig=Ha.charCodeAt(0);g.functor=F;g.rebind=function(a,b){for(var c=1,d=arguments.length,e;++c<d;)a[e=arguments[c]]=Ke(a,b,b[e]);return a};g.ascending=function(a,b){return a<b?-1:a>b?1:a>=b?0:NaN};g.descending=function(a,b){return b<a?-1:b>a?1:b>=a?0:NaN};g.mean=function(a,b){var c=a.length,d,e=0,f=-1,h=0;if(1===arguments.length)for(;++f< +c;)tb(d=a[f])&&(e+=(d-e)/++h);else for(;++f<c;)tb(d=b.call(a,a[f],f))&&(e+=(d-e)/++h);return h?e:void 0};g.median=function(a,b){1<arguments.length&&(a=a.map(b));a=a.filter(tb);return a.length?g.quantile(a.sort(g.ascending),.5):void 0};g.min=function(a,b){var c=-1,d=a.length,e,f;if(1===arguments.length){for(;++c<d&&(null==(e=a[c])||e!=e);)e=void 0;for(;++c<d;)null!=(f=a[c])&&e>f&&(e=f)}else{for(;++c<d&&(null==(e=b.call(a,a[c],c))||e!=e);)e=void 0;for(;++c<d;)null!=(f=b.call(a,a[c],c))&&e>f&&(e=f)}return e}; +g.max=function(a,b){var c=-1,d=a.length,e,f;if(1===arguments.length){for(;++c<d&&(null==(e=a[c])||e!=e);)e=void 0;for(;++c<d;)null!=(f=a[c])&&f>e&&(e=f)}else{for(;++c<d&&(null==(e=b.call(a,a[c],c))||e!=e);)e=void 0;for(;++c<d;)null!=(f=b.call(a,a[c],c))&&f>e&&(e=f)}return e};g.extent=function(a,b){var c=-1,d=a.length,e,f,h;if(1===arguments.length){for(;++c<d&&(null==(e=h=a[c])||e!=e);)e=h=void 0;for(;++c<d;)null!=(f=a[c])&&(e>f&&(e=f),h<f&&(h=f))}else{for(;++c<d&&(null==(e=h=b.call(a,a[c],c))||e!= +e);)e=void 0;for(;++c<d;)null!=(f=b.call(a,a[c],c))&&(e>f&&(e=f),h<f&&(h=f))}return[e,h]};g.random={normal:function(a,b){var c=arguments.length;2>c&&(b=1);1>c&&(a=0);return function(){var c,e;do c=2*Math.random()-1,e=2*Math.random()-1,e=c*c+e*e;while(!e||1<e);return a+b*c*Math.sqrt(-2*Math.log(e)/e)}},logNormal:function(){var a=g.random.normal.apply(g,arguments);return function(){return Math.exp(a())}},irwinHall:function(a){return function(){for(var b=0,c=0;c<a;c++)b+=Math.random();return b/a}}}; +g.sum=function(a,b){var c=0,d=a.length,e,f=-1;if(1===arguments.length)for(;++f<d;)isNaN(e=+a[f])||(c+=e);else for(;++f<d;)isNaN(e=+b.call(a,a[f],f))||(c+=e);return c};g.quantile=function(a,b){var c=(a.length-1)*b+1,d=Math.floor(c),e=+a[d-1];return(c-=d)?e+c*(a[d]-e):e};g.shuffle=function(a){for(var b=a.length,c,d;b;)d=Math.random()*b--|0,c=a[b],a[b]=a[d],a[d]=c;return a};g.transpose=function(a){return g.zip.apply(g,a)};g.zip=function(){if(!(e=arguments.length))return[];for(var a=-1,b=g.min(arguments, +Le),c=Array(b);++a<b;)for(var d=-1,e,f=c[a]=Array(e);++d<e;)f[d]=arguments[d][a];return c};g.bisector=function(a){return{left:function(b,c,d,e){3>arguments.length&&(d=0);4>arguments.length&&(e=b.length);for(;d<e;){var f=d+e>>>1;a.call(b,b[f],f)<c?d=f+1:e=f}return d},right:function(b,c,d,e){3>arguments.length&&(d=0);4>arguments.length&&(e=b.length);for(;d<e;){var f=d+e>>>1;c<a.call(b,b[f],f)?e=f:d=f+1}return d}}};var me=g.bisector(function(a){return a});g.bisectLeft=me.left;g.bisect=g.bisectRight= +me.right;g.nest=function(){function a(b,e){if(e>=d.length)return h?h.call(c,b):f?b.sort(f):b;for(var g=-1,n=b.length,p=d[e++],q,r,s=new ba,t,v={};++g<n;)(t=s.get(q=p(r=b[g])))?t.push(r):s.set(q,[r]);s.forEach(function(b,c){v[b]=a(c,e)});return v}function b(a,c){if(c>=d.length)return a;var f=[],h=e[c++],g;for(g in a)f.push({key:g,values:b(a[g],c)});h&&f.sort(function(a,b){return h(a.key,b.key)});return f}var c={},d=[],e=[],f,h;c.map=function(b){return a(b,0)};c.entries=function(c){return b(a(c,0), +0)};c.key=function(a){d.push(a);return c};c.sortKeys=function(a){e[d.length-1]=a;return c};c.sortValues=function(a){f=a;return c};c.rollup=function(a){h=a;return c};return c};g.keys=function(a){var b=[],c;for(c in a)b.push(c);return b};g.values=function(a){var b=[],c;for(c in a)b.push(a[c]);return b};g.entries=function(a){var b=[],c;for(c in a)b.push({key:c,value:a[c]});return b};g.permute=function(a,b){for(var c=[],d=-1,e=b.length;++d<e;)c[d]=a[b[d]];return c};g.merge=function(a){return Array.prototype.concat.apply([], +a)};g.range=function(a,b,c){3>arguments.length&&(c=1,2>arguments.length&&(b=a,a=0));if(Infinity===(b-a)/c)throw Error("infinite range");var d=[],e;e=Math.abs(c);for(var f=1;e*f%1;)f*=10;e=f;var f=-1,h;a*=e;b*=e;c*=e;if(0>c)for(;(h=a+c*++f)>b;)d.push(h/e);else for(;(h=a+c*++f)<b;)d.push(h/e);return d};g.requote=function(a){return a.replace(jg,"\\$&")};var jg=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;g.round=function(a,b){return b?Math.round(a*(b=Math.pow(10,b)))/b:Math.round(a)};g.xhr=function(a,b,c){function d(){var a= +l.status;!a&&l.responseText||200<=a&&300>a||304===a?f.load.call(e,k.call(e,l)):f.error.call(e,l)}var e={},f=g.dispatch("progress","load","error"),h={},k=V,l=new (P.XDomainRequest&&/^(http(s)?:)?\/\//.test(a)?XDomainRequest:XMLHttpRequest);"onload"in l?l.onload=l.onerror=d:l.onreadystatechange=function(){3<l.readyState&&d()};l.onprogress=function(a){var b=g.event;g.event=a;try{f.progress.call(e,l)}finally{g.event=b}};e.header=function(a,b){a=(a+"").toLowerCase();if(2>arguments.length)return h[a];null== +b?delete h[a]:h[a]=b+"";return e};e.mimeType=function(a){if(!arguments.length)return b;b=null==a?null:a+"";return e};e.response=function(a){k=a;return e};["get","post"].forEach(function(a){e[a]=function(){return e.send.apply(e,[a].concat(ha(arguments)))}});e.send=function(c,d,f){2===arguments.length&&"function"===typeof d&&(f=d,d=null);l.open(c,a,!0);null==b||"accept"in h||(h.accept=b+",*/*");if(l.setRequestHeader)for(var k in h)l.setRequestHeader(k,h[k]);null!=b&&l.overrideMimeType&&l.overrideMimeType(b); +if(null!=f)e.on("error",f).on("load",function(a){f(null,a)});l.send(null==d?null:d);return e};e.abort=function(){l.abort();return e};g.rebind(e,f,"on");2===arguments.length&&"function"===typeof b&&(c=b,b=null);return null==c?e:e.get(Me(c))};g.text=function(){return g.xhr.apply(g,arguments).response(Ne)};g.json=function(a,b){return g.xhr(a,"application/json",b).response(Oe)};g.html=function(a,b){return g.xhr(a,"text/html",b).response(Pe)};g.xml=function(){return g.xhr.apply(g,arguments).response(Qe)}; +var qc={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};g.ns={prefix:qc,qualify:function(a){var b=a.indexOf(":"),c=a;0<=b&&(c=a.substring(0,b),a=a.substring(b+1));return qc.hasOwnProperty(c)?{space:qc[c],local:a}:a}};g.dispatch=function(){for(var a=new ub,b=-1,c=arguments.length;++b<c;)a[arguments[b]]=zc(a);return a};ub.prototype.on=function(a,b){var c=a.indexOf("."), +d="";0<c&&(d=a.substring(c+1),a=a.substring(0,c));return 2>arguments.length?this[a].on(d):this[a].on(d,b)};g.format=function(a){a=kg.exec(a);var b=a[1]||" ",c=a[2]||">",d=a[3]||"",e=a[4]||"",f=a[5],h=+a[6],k=a[7],l=a[8],m=a[9],n=1,p="",q=!1;l&&(l=+l.substring(1));if(f||"0"===b&&"="===c)f=b="0",c="=",k&&(h-=Math.floor((h-1)/4));switch(m){case "n":k=!0;m="g";break;case "%":n=100;p="%";m="f";break;case "p":n=100;p="%";m="r";break;case "b":case "o":case "x":case "X":e&&(e="0"+m.toLowerCase());case "c":case "d":q= +!0;l=0;break;case "s":n=-1,m="r"}"#"===e&&(e="");"r"!=m||l||(m="g");var m=lg.get(m)||Re,r=f&&k;return function(a){if(q&&a%1)return"";var t=0>a||0===a&&0>1/a?(a=-a,"-"):d;if(0>n){var v=g.formatPrefix(a,l);a=v.scale(a);p=v.symbol}else a*=n;a=m(a,l);!f&&k&&(a=rc(a));var v=e.length+a.length+(r?0:t.length),x=v<h?Array(v=h-v+1).join(b):"";r&&(a=rc(x+a));a.replace(".",".");t+=e;return("<"===c?t+a+x:">"===c?x+t+a:"^"===c?x.substring(0,v>>=1)+t+a+x.substring(v):t+(r?a:x+a))+p}};var kg=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/, +lg=g.map({b:function(a){return a.toString(2)},c:function(a){return String.fromCharCode(a)},o:function(a){return a.toString(8)},x:function(a){return a.toString(16)},X:function(a){return a.toString(16).toUpperCase()},g:function(a,b){return a.toPrecision(b)},e:function(a,b){return a.toExponential(b)},f:function(a,b){return a.toFixed(b)},r:function(a,b){return(a=g.round(a,vb(a,b))).toFixed(Math.max(0,Math.min(20,vb(a*(1+1E-15),b))))}}),rc=V;if(ib)var mg=ib.length,rc=function(a){for(var b=a.lastIndexOf("."), +c=0<=b?"."+a.substring(b+1):(b=a.length,""),d=[],e=0,f=ib[0];0<b&&0<f;)d.push(a.substring(b-=f,b+f)),f=ib[e=(e+1)%mg];return d.reverse().join(",")+c};var ng="y z a f p n \u00b5 m k M G T P E Z Y".split(" ").map(function(a,b){var c=Math.pow(10,3*Math.abs(8-b));return{scale:8<b?function(a){return a/c}:function(a){return a*c},symbol:a}});g.formatPrefix=function(a,b){var c=0;a&&(0>a&&(a*=-1),b&&(a=g.round(a,vb(a,b))),c=1+Math.floor(1E-12+Math.log(a)/Math.LN10),c=Math.max(-24,Math.min(24,3*Math.floor((0>= +c?c+1:c-1)/3))));return ng[8+c/3]};var ne=function(){return V},og=g.map({linear:ne,poly:function(a){return function(b){return Math.pow(b,a)}},quad:function(){return Te},cubic:function(){return Ue},sin:function(){return Ve},exp:function(){return We},circle:function(){return Xe},elastic:function(a,b){var c;2>arguments.length&&(b=.45);arguments.length?c=b/(2*u)*Math.asin(1/a):(a=1,c=b/4);return function(d){return 1+a*Math.pow(2,10*-d)*Math.sin(2*(d-c)*u/b)}},back:function(a){a||(a=1.70158);return function(b){return b* +b*((a+1)*b-a)}},bounce:function(){return Ye}}),pg=g.map({"in":V,out:Ac,"in-out":Bc,"out-in":function(a){return Bc(Ac(a))}});g.ease=function(a){var b=a.indexOf("-"),c=0<=b?a.substring(0,b):a,b=0<=b?a.substring(b+1):"in",c=og.get(c)||ne,b=pg.get(b)||V;return Se(b(c.apply(null,Array.prototype.slice.call(arguments,1))))};g.event=null;g.transform=function(a){var b=W.createElementNS(g.ns.prefix.svg,"g");return(g.transform=function(a){b.setAttribute("transform",a);a=b.transform.baseVal.consolidate();return new Dc(a? +a.matrix:qg)})(a)};Dc.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var qg={a:1,b:0,c:0,d:1,e:0,f:0};g.interpolate=function(a,b){for(var c=g.interpolators.length,d;0<=--c&&!(d=g.interpolators[c](a,b)););return d};g.interpolateNumber=function(a,b){b-=a;return function(c){return a+b*c}};g.interpolateRound=function(a,b){b-=a;return function(c){return Math.round(a+b*c)}};g.interpolateString=function(a,b){var c,d,e= +0,f=[],h=[],k,l;for(d=jb.lastIndex=0;c=jb.exec(b);++d)c.index&&f.push(b.substring(e,c.index)),h.push({i:f.length,x:c[0]}),f.push(null),e=jb.lastIndex;e<b.length&&f.push(b.substring(e));d=0;for(k=h.length;(c=jb.exec(a))&&d<k;++d)if(l=h[d],l.x==c[0]){if(l.i)if(null==f[l.i+1])for(f[l.i-1]+=l.x,f.splice(l.i,1),c=d+1;c<k;++c)h[c].i--;else for(f[l.i-1]+=l.x+f[l.i+1],f.splice(l.i,2),c=d+1;c<k;++c)h[c].i-=2;else if(null==f[l.i+1])f[l.i]=l.x;else for(f[l.i]=l.x+f[l.i+1],f.splice(l.i+1,1),c=d+1;c<k;++c)h[c].i--; +h.splice(d,1);k--;d--}else l.x=g.interpolateNumber(parseFloat(c[0]),parseFloat(l.x));for(;d<k;)l=h.pop(),null==f[l.i+1]?f[l.i]=l.x:(f[l.i]=l.x+f[l.i+1],f.splice(l.i+1,1)),k--;return 1===f.length?null==f[0]?h[0].x:function(){return b}:function(a){for(d=0;d<k;++d)f[(l=h[d]).i]=l.x(a);return f.join("")}};g.interpolateTransform=function(a,b){var c=[],d=[],e,f=g.transform(a),h=g.transform(b),k=f.translate,l=h.translate,m=f.rotate,n=h.rotate,p=f.skew,q=h.skew,f=f.scale,h=h.scale;k[0]!=l[0]||k[1]!=l[1]? +(c.push("translate(",null,",",null,")"),d.push({i:1,x:g.interpolateNumber(k[0],l[0])},{i:3,x:g.interpolateNumber(k[1],l[1])})):l[0]||l[1]?c.push("translate("+l+")"):c.push("");m!=n?(180<m-n?n+=360:180<n-m&&(m+=360),d.push({i:c.push(c.pop()+"rotate(",null,")")-2,x:g.interpolateNumber(m,n)})):n&&c.push(c.pop()+"rotate("+n+")");p!=q?d.push({i:c.push(c.pop()+"skewX(",null,")")-2,x:g.interpolateNumber(p,q)}):q&&c.push(c.pop()+"skewX("+q+")");f[0]!=h[0]||f[1]!=h[1]?(e=c.push(c.pop()+"scale(",null,",",null, +")"),d.push({i:e-4,x:g.interpolateNumber(f[0],h[0])},{i:e-2,x:g.interpolateNumber(f[1],h[1])})):1==h[0]&&1==h[1]||c.push(c.pop()+"scale("+h+")");e=d.length;return function(a){for(var b=-1,f;++b<e;)c[(f=d[b]).i]=f.x(a);return c.join("")}};g.interpolateRgb=function(a,b){a=g.rgb(a);b=g.rgb(b);var c=a.r,d=a.g,e=a.b,f=b.r-c,h=b.g-d,k=b.b-e;return function(a){return"#"+ra(Math.round(c+f*a))+ra(Math.round(d+h*a))+ra(Math.round(e+k*a))}};g.interpolateHsl=function(a,b){a=g.hsl(a);b=g.hsl(b);var c=a.h,d=a.s, +e=a.l,f=b.h-c,h=b.s-d,k=b.l-e;180<f?f-=360:-180>f&&(f+=360);return function(a){return La(c+f*a,d+h*a,e+k*a)+""}};g.interpolateLab=function(a,b){a=g.lab(a);b=g.lab(b);var c=a.l,d=a.a,e=a.b,f=b.l-c,h=b.a-d,k=b.b-e;return function(a){return Kc(c+f*a,d+h*a,e+k*a)+""}};g.interpolateHcl=function(a,b){a=g.hcl(a);b=g.hcl(b);var c=a.h,d=a.c,e=a.l,f=b.h-c,h=b.c-d,k=b.l-e;180<f?f-=360:-180>f&&(f+=360);return function(a){return Eb(c+f*a,d+h*a,e+k*a)+""}};g.interpolateArray=function(a,b){var c=[],d=[],e=a.length, +f=b.length,h=Math.min(a.length,b.length),k;for(k=0;k<h;++k)c.push(g.interpolate(a[k],b[k]));for(;k<e;++k)d[k]=a[k];for(;k<f;++k)d[k]=b[k];return function(a){for(k=0;k<h;++k)d[k]=c[k](a);return d}};g.interpolateObject=function(a,b){var c={},d={},e;for(e in a)e in b?c[e]=xb(e)(a[e],b[e]):d[e]=a[e];for(e in b)e in a||(d[e]=b[e]);return function(a){for(e in c)d[e]=c[e](a);return d}};var jb=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;g.interpolators=[g.interpolateObject,function(a,b){return b instanceof +Array&&g.interpolateArray(a,b)},function(a,b){return("string"===typeof a||"string"===typeof b)&&g.interpolateString(a+"",b+"")},function(a,b){return("string"===typeof b?Ka.has(b)||/^(#|rgb\(|hsl\()/.test(b):b instanceof qa)&&g.interpolateRgb(a,b)},function(a,b){return!isNaN(a=+a)&&!isNaN(b=+b)&&g.interpolateNumber(a,b)}];qa.prototype.toString=function(){return this.rgb()+""};g.rgb=function(a,b,c){return 1===arguments.length?a instanceof yb?ca(a.r,a.g,a.b):zb(""+a,ca,La):ca(~~a,~~b,~~c)};var kb=yb.prototype= +new qa;kb.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);var b=this.r,c=this.g,d=this.b;if(!b&&!c&&!d)return ca(30,30,30);b&&30>b&&(b=30);c&&30>c&&(c=30);d&&30>d&&(d=30);return ca(Math.min(255,Math.floor(b/a)),Math.min(255,Math.floor(c/a)),Math.min(255,Math.floor(d/a)))};kb.darker=function(a){a=Math.pow(.7,arguments.length?a:1);return ca(Math.floor(a*this.r),Math.floor(a*this.g),Math.floor(a*this.b))};kb.hsl=function(){return Fc(this.r,this.g,this.b)};kb.toString=function(){return"#"+ra(this.r)+ +ra(this.g)+ra(this.b)};var Ka=g.map({aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9", +darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff", +gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1", +lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa", +mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460", +seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"});Ka.forEach(function(a,b){Ka.set(a,zb(b,ca,La))});g.hsl=function(a,b,c){return 1===arguments.length? +a instanceof Db?sa(a.h,a.s,a.l):zb(""+a,Fc,sa):sa(+a,+b,+c)};var sc=Db.prototype=new qa;sc.brighter=function(a){a=Math.pow(.7,arguments.length?a:1);return sa(this.h,this.s,this.l/a)};sc.darker=function(a){a=Math.pow(.7,arguments.length?a:1);return sa(this.h,this.s,a*this.l)};sc.rgb=function(){return La(this.h,this.s,this.l)};g.hcl=function(a,b,c){return 1===arguments.length?a instanceof Ma?Aa(a.h,a.c,a.l):a instanceof Na?Lc(a.l,a.a,a.b):Lc((a=Gc((a=g.rgb(a)).r,a.g,a.b)).l,a.a,a.b):Aa(+a,+b,+c)};var tc= +Ma.prototype=new qa;tc.brighter=function(a){return Aa(this.h,this.c,Math.min(100,this.l+lb*(arguments.length?a:1)))};tc.darker=function(a){return Aa(this.h,this.c,Math.max(0,this.l-lb*(arguments.length?a:1)))};tc.rgb=function(){return Eb(this.h,this.c,this.l).rgb()};g.lab=function(a,b,c){return 1===arguments.length?a instanceof Na?ta(a.l,a.a,a.b):a instanceof Ma?Eb(a.l,a.c,a.h):Gc((a=g.rgb(a)).r,a.g,a.b):ta(+a,+b,+c)};var lb=18,Hc=.95047,Ic=1,Jc=1.08883,uc=Na.prototype=new qa;uc.brighter=function(a){return ta(Math.min(100, +this.l+lb*(arguments.length?a:1)),this.a,this.b)};uc.darker=function(a){return ta(Math.max(0,this.l-lb*(arguments.length?a:1)),this.a,this.b)};uc.rgb=function(){return Kc(this.l,this.a,this.b)};var Oa=function(a,b){return b.querySelector(a)},Oc=function(a,b){return b.querySelectorAll(a)},xa=W.documentElement,rg=xa.matchesSelector||xa.webkitMatchesSelector||xa.mozMatchesSelector||xa.msMatchesSelector||xa.oMatchesSelector,Vc=function(a,b){return rg.call(a,b)};"function"===typeof Sizzle&&(Oa=function(a, +b){return Sizzle(a,b)[0]||null},Oc=function(a,b){return Sizzle.uniqueSort(Sizzle(a,b))},Vc=Sizzle.matchesSelector);var C=[];g.selection=function(){return Ia};g.selection.prototype=C;C.select=function(a){var b=[],c,d,e,f;"function"!==typeof a&&(a=Mc(a));for(var h=-1,k=this.length;++h<k;){b.push(c=[]);c.parentNode=(e=this[h]).parentNode;for(var g=-1,m=e.length;++g<m;)(f=e[g])?(c.push(d=a.call(f,f.__data__,g)),d&&"__data__"in f&&(d.__data__=f.__data__)):c.push(null)}return da(b)};C.selectAll=function(a){var b= +[],c,d;"function"!==typeof a&&(a=Nc(a));for(var e=-1,f=this.length;++e<f;)for(var h=this[e],k=-1,g=h.length;++k<g;)if(d=h[k])b.push(c=ha(a.call(d,d.__data__,k))),c.parentNode=d;return da(b)};C.attr=function(a,b){if(2>arguments.length){if("string"===typeof a){var c=this.node();a=g.ns.qualify(a);return a.local?c.getAttributeNS(a.space,a.local):c.getAttribute(a)}for(b in a)this.each(Pc(b,a[b]));return this}return this.each(Pc(a,b))};C.classed=function(a,b){if(2>arguments.length){if("string"===typeof a){var c= +this.node(),d=(a=a.trim().split(/^|\s+/g)).length,e=-1;if(b=c.classList)for(;++e<d;){if(!b.contains(a[e]))return!1}else for(b=c.className,null!=b.baseVal&&(b=b.baseVal);++e<d;)if(!Qc(a[e]).test(b))return!1;return!0}for(b in a)this.each(Rc(b,a[b]));return this}return this.each(Rc(a,b))};C.style=function(a,b,c){var d=arguments.length;if(3>d){if("string"!==typeof a){2>d&&(b="");for(c in a)this.each(Sc(c,a[c],b));return this}if(2>d)return P.getComputedStyle(this.node(),null).getPropertyValue(a);c=""}return this.each(Sc(a, +b,c))};C.property=function(a,b){if(2>arguments.length){if("string"===typeof a)return this.node()[a];for(b in a)this.each(Tc(b,a[b]));return this}return this.each(Tc(a,b))};C.text=function(a){return arguments.length?this.each("function"===typeof a?function(){var b=a.apply(this,arguments);this.textContent=null==b?"":b}:null==a?function(){this.textContent=""}:function(){this.textContent=a}):this.node().textContent};C.html=function(a){return arguments.length?this.each("function"===typeof a?function(){var b= +a.apply(this,arguments);this.innerHTML=null==b?"":b}:null==a?function(){this.innerHTML=""}:function(){this.innerHTML=a}):this.node().innerHTML};C.append=function(a){function b(){return this.appendChild(W.createElementNS(this.namespaceURI,a))}function c(){return this.appendChild(W.createElementNS(a.space,a.local))}a=g.ns.qualify(a);return this.select(a.local?c:b)};C.insert=function(a,b){function c(){return this.insertBefore(W.createElementNS(this.namespaceURI,a),Oa(b,this))}function d(){return this.insertBefore(W.createElementNS(a.space, +a.local),Oa(b,this))}a=g.ns.qualify(a);return this.select(a.local?d:c)};C.remove=function(){return this.each(function(){var a=this.parentNode;a&&a.removeChild(this)})};C.data=function(a,b){function c(a,c){var d,e=a.length,f=c.length,h=Math.min(e,f),v=Array(f),x=Array(f),z=Array(e),y,G;if(b){var h=new ba,H=new ba,D=[],B;for(d=-1;++d<e;)B=b.call(y=a[d],y.__data__,d),h.has(B)?z[d]=y:h.set(B,y),D.push(B);for(d=-1;++d<f;)B=b.call(c,G=c[d],d),(y=h.get(B))?(v[d]=y,y.__data__=G):H.has(B)||(x[d]={__data__:G}), +H.set(B,G),h.remove(B);for(d=-1;++d<e;)h.has(D[d])&&(z[d]=a[d])}else{for(d=-1;++d<h;)y=a[d],G=c[d],y?(y.__data__=G,v[d]=y):x[d]={__data__:G};for(;d<f;++d)x[d]={__data__:c[d]};for(;d<e;++d)z[d]=a[d]}x.update=v;x.parentNode=v.parentNode=z.parentNode=a.parentNode;k.push(x);g.push(v);m.push(z)}var d=-1,e=this.length,f,h;if(!arguments.length){for(a=Array(e=(f=this[0]).length);++d<e;)if(h=f[d])a[d]=h.__data__;return a}var k=Xc([]),g=da([]),m=da([]);if("function"===typeof a)for(;++d<e;)c(f=this[d],a.call(f, +f.parentNode.__data__,d));else for(;++d<e;)c(f=this[d],a);g.enter=function(){return k};g.exit=function(){return m};return g};C.datum=function(a){return arguments.length?this.property("__data__",a):this.property("__data__")};C.filter=function(a){var b=[],c,d,e;"function"!==typeof a&&(a=Uc(a));for(var f=0,h=this.length;f<h;f++){b.push(c=[]);c.parentNode=(d=this[f]).parentNode;for(var k=0,g=d.length;k<g;k++)(e=d[k])&&a.call(e,e.__data__,k)&&c.push(e)}return da(b)};C.order=function(){for(var a=-1,b=this.length;++a< +b;)for(var c=this[a],d=c.length-1,e=c[d],f;0<=--d;)if(f=c[d])e&&e!==f.nextSibling&&e.parentNode.insertBefore(f,e),e=f;return this};C.sort=function(a){a=bf.apply(this,arguments);for(var b=-1,c=this.length;++b<c;)this[b].sort(a);return this.order()};C.on=function(a,b,c){var d=arguments.length;if(3>d){if("string"!==typeof a){2>d&&(b=!1);for(c in a)this.each(Wc(c,a[c],b));return this}if(2>d)return(d=this.node()["__on"+a])&&d._;c=!1}return this.each(Wc(a,b,c))};C.each=function(a){return ia(this,function(b, +c,d){a.call(b,b.__data__,c,d)})};C.call=function(a){var b=ha(arguments);a.apply(b[0]=this,b);return this};C.empty=function(){return!this.node()};C.node=function(){for(var a=0,b=this.length;a<b;a++)for(var c=this[a],d=0,e=c.length;d<e;d++){var f=c[d];if(f)return f}return null};C.transition=function(){var a=Ja||++oe,b=[],c,d,e=Object.create(mb);e.time=Date.now();for(var f=-1,h=this.length;++f<h;){b.push(c=[]);for(var k=this[f],g=-1,m=k.length;++g<m;)(d=k[g])&&Pa(d,g,a,e),c.push(d)}return Ba(b,a)};var Ia= +da([[W]]);Ia[0].parentNode=xa;g.select=function(a){return"string"===typeof a?Ia.select(a):da([[a]])};g.selectAll=function(a){return"string"===typeof a?Ia.selectAll(a):da([ha(a)])};var ma=[];g.selection.enter=Xc;g.selection.enter.prototype=ma;ma.append=C.append;ma.insert=C.insert;ma.empty=C.empty;ma.node=C.node;ma.select=function(a){for(var b=[],c,d,e,f,h,k=-1,g=this.length;++k<g;){e=(f=this[k]).update;b.push(c=[]);c.parentNode=f.parentNode;for(var m=-1,n=f.length;++m<n;)(h=f[m])?(c.push(e[m]=d=a.call(f.parentNode, +h.__data__,m)),d.__data__=h.__data__):c.push(null)}return da(b)};var M=[],oe=0,Ja,mb={ease:function(a){if(0>=a)return 0;if(1<=a)return 1;var b=a*a,c=b*a;return 4*(.5>a?c:3*(a-b)+c-.75)},delay:0,duration:250};M.call=C.call;M.empty=C.empty;M.node=C.node;g.transition=function(a){return arguments.length?Ja?a.transition():a:Ia.transition()};g.transition.prototype=M;M.select=function(a){var b=this.id,c=[],d,e,f;"function"!==typeof a&&(a=Mc(a));for(var h=-1,k=this.length;++h<k;){c.push(d=[]);for(var g=this[h], +m=-1,n=g.length;++m<n;)(f=g[m])&&(e=a.call(f,f.__data__,m))?("__data__"in f&&(e.__data__=f.__data__),Pa(e,m,b,f.__transition__[b]),d.push(e)):d.push(null)}return Ba(c,b)};M.selectAll=function(a){var b=this.id,c=[],d,e,f,h;"function"!==typeof a&&(a=Nc(a));for(var k=-1,g=this.length;++k<g;)for(var m=this[k],n=-1,p=m.length;++n<p;)if(d=m[n]){h=d.__transition__[b];e=a.call(d,d.__data__,n);c.push(d=[]);for(var q=-1,r=e.length;++q<r;)Pa(f=e[q],q,b,h),d.push(f)}return Ba(c,b)};M.filter=function(a){var b= +[],c,d,e;"function"!==typeof a&&(a=Uc(a));for(var f=0,h=this.length;f<h;f++){b.push(c=[]);d=this[f];for(var k=0,g=d.length;k<g;k++)(e=d[k])&&a.call(e,e.__data__,k)&&c.push(e)}return Ba(b,this.id,this.time).ease(this.ease())};M.attr=function(a,b){function c(){this.removeAttribute(f)}function d(){this.removeAttributeNS(f.space,f.local)}if(2>arguments.length){for(b in a)this.attr(b,a[b]);return this}var e=xb(a),f=g.ns.qualify(a);return Ib(this,"attr."+a,b,function(a){function b(){var c=this.getAttribute(f), +d;return c!==a&&(d=e(c,a),function(a){this.setAttribute(f,d(a))})}function g(){var b=this.getAttributeNS(f.space,f.local),c;return b!==a&&(c=e(b,a),function(a){this.setAttributeNS(f.space,f.local,c(a))})}return null==a?f.local?d:c:(a+="",f.local?g:b)})};M.attrTween=function(a,b){function c(a,c){var d=b.call(this,a,c,this.getAttribute(e));return d&&function(a){this.setAttribute(e,d(a))}}function d(a,c){var d=b.call(this,a,c,this.getAttributeNS(e.space,e.local));return d&&function(a){this.setAttributeNS(e.space, +e.local,d(a))}}var e=g.ns.qualify(a);return this.tween("attr."+a,e.local?d:c)};M.style=function(a,b,c){function d(){this.style.removeProperty(a)}var e=arguments.length;if(3>e){if("string"!==typeof a){2>e&&(b="");for(c in a)this.style(c,a[c],b);return this}c=""}var f=xb(a);return Ib(this,"style."+a,b,function(b){function e(){var d=P.getComputedStyle(this,null).getPropertyValue(a),k;return d!==b&&(k=f(d,b),function(b){this.style.setProperty(a,k(b),c)})}return null==b?d:(b+="",e)})};M.styleTween=function(a, +b,c){3>arguments.length&&(c="");return this.tween("style."+a,function(d,e){var f=b.call(this,d,e,P.getComputedStyle(this,null).getPropertyValue(a));return f&&function(b){this.style.setProperty(a,f(b),c)}})};M.text=function(a){return Ib(this,"text",a,cf)};M.remove=function(){return this.each("end.transition",function(){var a;!this.__transition__&&(a=this.parentNode)&&a.removeChild(this)})};M.ease=function(a){var b=this.id;if(1>arguments.length)return this.node().__transition__[b].ease;"function"!== +typeof a&&(a=g.ease.apply(g,arguments));return ia(this,function(c){c.__transition__[b].ease=a})};M.delay=function(a){var b=this.id;return ia(this,"function"===typeof a?function(c,d,e){c.__transition__[b].delay=a.call(c,c.__data__,d,e)|0}:(a|=0,function(c){c.__transition__[b].delay=a}))};M.duration=function(a){var b=this.id;return ia(this,"function"===typeof a?function(c,d,e){c.__transition__[b].duration=Math.max(1,a.call(c,c.__data__,d,e)|0)}:(a=Math.max(1,a|0),function(c){c.__transition__[b].duration= +a}))};M.each=function(a,b){var c=this.id;if(2>arguments.length){var d=mb,e=Ja;Ja=c;ia(this,function(b,d,e){mb=b.__transition__[c];a.call(b,b.__data__,d,e)});mb=d;Ja=e}else ia(this,function(d){d.__transition__[c].event.on(a,b)});return this};M.transition=function(){for(var a=this.id,b=++oe,c=[],d,e,f,h,k=0,g=this.length;k<g;k++){c.push(d=[]);e=this[k];for(var m=0,n=e.length;m<n;m++){if(f=e[m])h=Object.create(f.__transition__[a]),h.delay+=h.duration,Pa(f,m,b,h);d.push(f)}}return Ba(c,b)};M.tween=function(a, +b){var c=this.id;return 2>arguments.length?this.node().__transition__[c].tween.get(a):ia(this,null==b?function(b){b.__transition__[c].tween.remove(a)}:function(d){d.__transition__[c].tween.set(a,b)})};var sg=0,Kb={},ua=null,Ra,Qa;g.timer=function(a,b,c){if(3>arguments.length){if(2>arguments.length)b=0;else if(!isFinite(b))return;c=Date.now()}var d=Kb[a.id];d&&d.callback===a?(d.then=c,d.delay=b):Kb[a.id=++sg]=ua={callback:a,then:c,delay:b,next:ua};Ra||(Qa=clearTimeout(Qa),Ra=1,Zc(Jb))};g.timer.flush= +function(){for(var a,b=Date.now(),c=ua;c;)a=b-c.then,c.delay||(c.flush=c.callback(a)),c=c.next;Yc()};var Zc=P.requestAnimationFrame||P.webkitRequestAnimationFrame||P.mozRequestAnimationFrame||P.oRequestAnimationFrame||P.msRequestAnimationFrame||function(a){setTimeout(a,17)};g.mouse=function(a){return $c(a,Cc())};var Lb=/WebKit/.test(P.navigator.userAgent)?-1:0;g.touches=function(a,b){2>arguments.length&&(b=Cc().touches);return b?ha(b).map(function(b){var d=$c(a,b);d.identifier=b.identifier;return d}): +[]};g.scale={};g.scale.linear=function(){return ad([0,1],[0,1],g.interpolate,!1)};g.scale.log=function(){return ed(g.scale.linear(),Ob)};var gf=g.format(".0e");Ob.pow=function(a){return Math.pow(10,a)};Ua.pow=function(a){return-Math.pow(10,-a)};g.scale.pow=function(){return fd(g.scale.linear(),1)};g.scale.sqrt=function(){return g.scale.pow().exponent(.5)};g.scale.ordinal=function(){return gd([],{t:"range",a:[[]]})};g.scale.category10=function(){return g.scale.ordinal().range(tg)};g.scale.category20= +function(){return g.scale.ordinal().range(ug)};g.scale.category20b=function(){return g.scale.ordinal().range(vg)};g.scale.category20c=function(){return g.scale.ordinal().range(wg)};var tg="#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf".split(" "),ug="#1f77b4 #aec7e8 #ff7f0e #ffbb78 #2ca02c #98df8a #d62728 #ff9896 #9467bd #c5b0d5 #8c564b #c49c94 #e377c2 #f7b6d2 #7f7f7f #c7c7c7 #bcbd22 #dbdb8d #17becf #9edae5".split(" "),vg="#393b79 #5254a3 #6b6ecf #9c9ede #637939 #8ca252 #b5cf6b #cedb9c #8c6d31 #bd9e39 #e7ba52 #e7cb94 #843c39 #ad494a #d6616b #e7969c #7b4173 #a55194 #ce6dbd #de9ed6".split(" "), +wg="#3182bd #6baed6 #9ecae1 #c6dbef #e6550d #fd8d3c #fdae6b #fdd0a2 #31a354 #74c476 #a1d99b #c7e9c0 #756bb1 #9e9ac8 #bcbddc #dadaeb #636363 #969696 #bdbdbd #d9d9d9".split(" ");g.scale.quantile=function(){return hd([],[])};g.scale.quantize=function(){return id(0,1,[0,1])};g.scale.threshold=function(){return jd([.5],[0,1])};g.scale.identity=function(){return kd([0,1])};g.svg={};g.svg.arc=function(){function a(){var a=b.apply(this,arguments),h=c.apply(this,arguments),k=d.apply(this,arguments)+na,g=e.apply(this, +arguments)+na,m=(g<k&&(m=k,k=g,g=m),g-k),n=m<u?"0":"1",p=Math.cos(k),k=Math.sin(k),q=Math.cos(g),g=Math.sin(g);return m>=xg?a?"M0,"+h+"A"+h+","+h+" 0 1,1 0,"+-h+"A"+h+","+h+" 0 1,1 0,"+h+"M0,"+a+"A"+a+","+a+" 0 1,0 0,"+-a+"A"+a+","+a+" 0 1,0 0,"+a+"Z":"M0,"+h+"A"+h+","+h+" 0 1,1 0,"+-h+"A"+h+","+h+" 0 1,1 0,"+h+"Z":a?"M"+h*p+","+h*k+"A"+h+","+h+" 0 "+n+",1 "+h*q+","+h*g+"L"+a*q+","+a*g+"A"+a+","+a+" 0 "+n+",0 "+a*p+","+a*k+"Z":"M"+h*p+","+h*k+"A"+h+","+h+" 0 "+n+",1 "+h*q+","+h*g+"L0,0Z"}var b=hf, +c=jf,d=ld,e=md;a.innerRadius=function(c){if(!arguments.length)return b;b=F(c);return a};a.outerRadius=function(b){if(!arguments.length)return c;c=F(b);return a};a.startAngle=function(b){if(!arguments.length)return d;d=F(b);return a};a.endAngle=function(b){if(!arguments.length)return e;e=F(b);return a};a.centroid=function(){var a=(b.apply(this,arguments)+c.apply(this,arguments))/2,h=(d.apply(this,arguments)+e.apply(this,arguments))/2+na;return[Math.cos(h)*a,Math.sin(h)*a]};return a};var na=-u/2,xg= +2*u-1E-6;g.svg.line=function(){return nd(V)};var Qb=g.map({linear:U,"linear-closed":function(a){return U(a)+"Z"},"step-before":Rb,"step-after":Sb,basis:pd,"basis-open":function(a){if(4>a.length)return U(a);for(var b=[],c=-1,d=a.length,e,f=[0],h=[0];3>++c;)e=a[c],f.push(e[0]),h.push(e[1]);b.push(aa(va,f)+","+aa(va,h));for(--c;++c<d;)e=a[c],f.shift(),f.push(e[0]),h.shift(),h.push(e[1]),Da(b,f,h);return b.join("")},"basis-closed":function(a){for(var b,c=-1,d=a.length,e=d+4,f,h=[],g=[];4>++c;)f=a[c%d], +h.push(f[0]),g.push(f[1]);b=[aa(va,h),",",aa(va,g)];for(--c;++c<e;)f=a[c%d],h.shift(),h.push(f[0]),g.shift(),g.push(f[1]),Da(b,h,g);return b.join("")},bundle:function(a,b){var c=a.length-1;if(c)for(var d=a[0][0],e=a[0][1],f=a[c][0]-d,h=a[c][1]-e,g=-1,l,m;++g<=c;)l=a[g],m=g/c,l[0]=b*l[0]+(1-b)*(d+m*f),l[1]=b*l[1]+(1-b)*(e+m*h);return pd(a)},cardinal:function(a,b){return 3>a.length?U(a):a[0]+Wa(a,Tb(a,b))},"cardinal-open":function(a,b){return 4>a.length?U(a):a[1]+Wa(a.slice(1,a.length-1),Tb(a,b))}, +"cardinal-closed":function(a,b){return 3>a.length?U(a):a[0]+Wa((a.push(a[0]),a),Tb([a[a.length-2]].concat(a,[a[1]]),b))},monotone:function(a){if(3>a.length)a=U(a);else{var b=a[0],c=[],d,e,f,h;d=0;e=a.length-1;var g=[];f=a[1];for(h=g[0]=Ub(a[0],f);++d<e;)g[d]=(h+(h=Ub(f,f=a[d+1])))/2;g[d]=h;for(var l=-1,m=a.length-1;++l<m;)d=Ub(a[l],a[l+1]),1E-6>Math.abs(d)?g[l]=g[l+1]=0:(e=g[l]/d,f=g[l+1]/d,h=e*e+f*f,9<h&&(h=3*d/Math.sqrt(h),g[l]=h*e,g[l+1]=h*f));for(l=-1;++l<=m;)h=(a[Math.min(m,l+1)][0]-a[Math.max(0, +l-1)][0])/(6*(1+g[l]*g[l])),c.push([h||0,g[l]*h||0]);a=b+Wa(a,c)}return a}});Qb.forEach(function(a,b){b.key=a;b.closed=/-closed$/.test(a)});var qd=[0,2/3,1/3,0],rd=[0,1/3,2/3,0],va=[0,1/6,2/3,1/6];g.svg.line.radial=function(){var a=nd(sd);a.radius=a.x;delete a.x;a.angle=a.y;delete a.y;return a};Rb.reverse=Sb;Sb.reverse=Rb;g.svg.area=function(){return td(V)};g.svg.area.radial=function(){var a=td(sd);a.radius=a.x;delete a.x;a.innerRadius=a.x0;delete a.x0;a.outerRadius=a.x1;delete a.x1;a.angle=a.y;delete a.y; +a.startAngle=a.y0;delete a.y0;a.endAngle=a.y1;delete a.y1;return a};g.svg.chord=function(){function a(a,f){var h=b(this,d,a,f),g=b(this,e,a,f);return"M"+h.p0+c(h.r,h.p1,h.a1-h.a0)+(h.a0==g.a0&&h.a1==g.a1?"Q 0,0 "+h.p0:"Q 0,0 "+g.p0+c(g.r,g.p1,g.a1-g.a0)+("Q 0,0 "+h.p0))+"Z"}function b(a,b,c,d){var e=b.call(a,c,d);b=f.call(a,e,d);c=h.call(a,e,d)+na;a=g.call(a,e,d)+na;return{r:b,a0:c,a1:a,p0:[b*Math.cos(c),b*Math.sin(c)],p1:[b*Math.cos(a),b*Math.sin(a)]}}function c(a,b,c){return"A"+a+","+a+" 0 "+ +(c> +u)+",1 "+b}var d=sb,e=rb,f=kf,h=ld,g=md;a.radius=function(b){if(!arguments.length)return f;f=F(b);return a};a.source=function(b){if(!arguments.length)return d;d=F(b);return a};a.target=function(b){if(!arguments.length)return e;e=F(b);return a};a.startAngle=function(b){if(!arguments.length)return h;h=F(b);return a};a.endAngle=function(b){if(!arguments.length)return g;g=F(b);return a};return a};g.svg.diagonal=function(){function a(a,f){var h=b.call(this,a,f),g=c.call(this,a,f),l=(h.y+g.y)/2,h=[h,{x:h.x, +y:l},{x:g.x,y:l},g],h=h.map(d);return"M"+h[0]+"C"+h[1]+" "+h[2]+" "+h[3]}var b=sb,c=rb,d=ud;a.source=function(c){if(!arguments.length)return b;b=F(c);return a};a.target=function(b){if(!arguments.length)return c;c=F(b);return a};a.projection=function(b){if(!arguments.length)return d;d=b;return a};return a};g.svg.diagonal.radial=function(){var a=g.svg.diagonal(),b=ud,c=a.projection;a.projection=function(a){return arguments.length?c(lf(b=a)):b};return a};g.svg.symbol=function(){function a(a,e){return(pe.get(b.call(this, +a,e))||vd)(c.call(this,a,e))}var b=nf,c=mf;a.type=function(c){if(!arguments.length)return b;b=F(c);return a};a.size=function(b){if(!arguments.length)return c;c=F(b);return a};return a};var pe=g.map({circle:vd,cross:function(a){a=Math.sqrt(a/5)/2;return"M"+-3*a+","+-a+"H"+-a+"V"+-3*a+"H"+a+"V"+-a+"H"+3*a+"V"+a+"H"+a+"V"+3*a+"H"+-a+"V"+a+"H"+-3*a+"Z"},diamond:function(a){a=Math.sqrt(a/(2*qe));var b=a*qe;return"M0,"+-a+"L"+b+",0 0,"+a+" "+-b+",0Z"},square:function(a){a=Math.sqrt(a)/2;return"M"+-a+","+ +-a+"L"+a+","+-a+" "+a+","+a+" "+-a+","+a+"Z"},"triangle-down":function(a){a=Math.sqrt(a/nb);var b=a*nb/2;return"M0,"+b+"L"+a+","+-b+" "+-a+","+-b+"Z"},"triangle-up":function(a){a=Math.sqrt(a/nb);var b=a*nb/2;return"M0,"+-b+"L"+a+","+b+" "+-a+","+b+"Z"}});g.svg.symbolTypes=pe.keys();var nb=Math.sqrt(3),qe=Math.tan(30*w);g.svg.axis=function(){function a(a){a.each(function(){var a=g.select(this),p=null==l?b.ticks?b.ticks.apply(b,k):b.domain():l,s=null==m?b.tickFormat?b.tickFormat.apply(b,k):String:m, +t=of(b,p,n),v=a.selectAll(".tick.minor").data(t,String),t=v.enter().insert("line",".tick").attr("class","tick minor").style("opacity",1E-6),x=g.transition(v.exit()).style("opacity",1E-6).remove(),v=g.transition(v).style("opacity",1),z=a.selectAll(".tick.major").data(p,String),p=z.enter().insert("g","path").attr("class","tick major").style("opacity",1E-6),y=g.transition(z.exit()).style("opacity",1E-6).remove(),G=g.transition(z).style("opacity",1),H,D=Sa(b),a=a.selectAll(".domain").data([0]),a=(a.enter().append("path").attr("class", +"domain"),g.transition(a)),B=b.copy(),E=this.__chart__||B;this.__chart__=B;p.append("line");p.append("text");var u=p.select("line"),L=G.select("line"),s=z.select("text").text(s),z=p.select("text"),w=G.select("text");switch(c){case "bottom":H=wd;t.attr("y2",e);v.attr("x2",0).attr("y2",e);u.attr("y2",d);z.attr("y",Math.max(d,0)+h);L.attr("x2",0).attr("y2",d);w.attr("x",0).attr("y",Math.max(d,0)+h);s.attr("dy",".71em").style("text-anchor","middle");a.attr("d","M"+D[0]+","+f+"V0H"+D[1]+"V"+f);break;case "top":H= +wd;t.attr("y2",-e);v.attr("x2",0).attr("y2",-e);u.attr("y2",-d);z.attr("y",-(Math.max(d,0)+h));L.attr("x2",0).attr("y2",-d);w.attr("x",0).attr("y",-(Math.max(d,0)+h));s.attr("dy","0em").style("text-anchor","middle");a.attr("d","M"+D[0]+","+-f+"V0H"+D[1]+"V"+-f);break;case "left":H=xd;t.attr("x2",-e);v.attr("x2",-e).attr("y2",0);u.attr("x2",-d);z.attr("x",-(Math.max(d,0)+h));L.attr("x2",-d).attr("y2",0);w.attr("x",-(Math.max(d,0)+h)).attr("y",0);s.attr("dy",".32em").style("text-anchor","end");a.attr("d", +"M"+-f+","+D[0]+"H0V"+D[1]+"H"+-f);break;case "right":H=xd,t.attr("x2",e),v.attr("x2",e).attr("y2",0),u.attr("x2",d),z.attr("x",Math.max(d,0)+h),L.attr("x2",d).attr("y2",0),w.attr("x",Math.max(d,0)+h).attr("y",0),s.attr("dy",".32em").style("text-anchor","start"),a.attr("d","M"+f+","+D[0]+"H0V"+D[1]+"H"+f)}if(b.ticks)p.call(H,E),G.call(H,B),y.call(H,B),t.call(H,E),v.call(H,B),x.call(H,B);else{var fa=B.rangeBand()/2,t=function(a){return B(a)+fa};p.call(H,t);G.call(H,t)}})}var b=g.scale.linear(),c=re, +d=6,e=6,f=6,h=3,k=[10],l=null,m,n=0;a.scale=function(c){if(!arguments.length)return b;b=c;return a};a.orient=function(b){if(!arguments.length)return c;c=b in yg?b+"":re;return a};a.ticks=function(){if(!arguments.length)return k;k=arguments;return a};a.tickValues=function(b){if(!arguments.length)return l;l=b;return a};a.tickFormat=function(b){if(!arguments.length)return m;m=b;return a};a.tickSize=function(b,c){if(!arguments.length)return d;var h=arguments.length-1;d=+b;e=1<h?+c:d;f=0<h?+arguments[h]: +d;return a};a.tickPadding=function(b){if(!arguments.length)return h;h=+b;return a};a.tickSubdivide=function(b){if(!arguments.length)return n;n=+b;return a};return a};var re="bottom",yg={top:1,right:1,bottom:1,left:1};g.svg.brush=function(){function a(f){f.each(function(){var f=g.select(this),m=f.selectAll(".background").data([0]),p=f.selectAll(".extent").data([0]),n=f.selectAll(".resize").data(l,String);f.style("pointer-events","all").on("mousedown.brush",e).on("touchstart.brush",e);m.enter().append("rect").attr("class", +"background").style("visibility","hidden").style("cursor","crosshair");p.enter().append("rect").attr("class","extent").style("cursor","move");n.enter().append("g").attr("class",function(a){return"resize "+a}).style("cursor",function(a){return zg[a]}).append("rect").attr("x",function(a){return/[ew]$/.test(a)?-3:null}).attr("y",function(a){return/^[ns]/.test(a)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden");n.style("display",a.empty()?"none":null);n.exit().remove();h&&(p=Sa(h), +m.attr("x",p[0]).attr("width",p[1]-p[0]),c(f));k&&(p=Sa(k),m.attr("y",p[0]).attr("height",p[1]-p[0]),d(f));b(f)})}function b(a){a.selectAll(".resize").attr("transform",function(a){return"translate("+m[+/e$/.test(a)][0]+","+m[+/^s/.test(a)][1]+")"})}function c(a){a.select(".extent").attr("x",m[0][0]);a.selectAll(".extent,.n>rect,.s>rect").attr("width",m[1][0]-m[0][0])}function d(a){a.select(".extent").attr("y",m[0][1]);a.selectAll(".extent,.e>rect,.w>rect").attr("height",m[1][1]-m[0][1])}function e(){function e(){var a= +g.event.changedTouches;return a?g.touches(t,a)[0]:g.mouse(t)}function l(){var a=e(),f=!1;u&&(a[0]+=u[0],a[1]+=u[1]);D||(g.event.altKey?(B||(B=[(m[0][0]+m[1][0])/2,(m[0][1]+m[1][1])/2]),E[0]=m[+(a[0]<B[0])][0],E[1]=m[+(a[1]<B[1])][1]):B=null);G&&r(a,h,0)&&(c(z),f=!0);H&&r(a,k,1)&&(d(z),f=!0);f&&(b(z),x({type:"brush",mode:D?"move":"resize"}))}function r(a,b,c){var d=Sa(b);b=d[0];var e=d[1],d=E[c],f=m[1][c]-m[0][c];D&&(b-=d,e-=f+d);a=Math.max(b,Math.min(e,a[c]));D?b=(a+=d)+f:(B&&(d=Math.max(b,Math.min(e, +2*B[c]-a))),d<a?(b=a,a=d):b=d);if(m[0][c]!==a||m[1][c]!==b)return n=null,m[0][c]=a,m[1][c]=b,!0}function s(){l();z.style("pointer-events","all").selectAll(".resize").style("display",a.empty()?"none":null);g.select("body").style("cursor",null);L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null);x({type:"brushend"});X()}var t=this,v=g.select(g.event.target),x=f.of(t,arguments),z=g.select(t),y=v.datum(), +G=!/^(n|s)$/.test(y)&&h,H=!/^(e|w)$/.test(y)&&k,D=v.classed("extent"),B,E=e(),u,L=g.select(P).on("mousemove.brush",l).on("mouseup.brush",s).on("touchmove.brush",l).on("touchend.brush",s).on("keydown.brush",function(){32==g.event.keyCode&&(D||(B=null,E[0]-=m[1][0],E[1]-=m[1][1],D=2),X())}).on("keyup.brush",function(){32==g.event.keyCode&&2==D&&(E[0]+=m[1][0],E[1]+=m[1][1],D=0,X())});if(D)E[0]=m[0][0]-E[0],E[1]=m[0][1]-E[1];else if(y){var w=+/w$/.test(y),y=+/^n/.test(y);u=[m[1-w][0]-E[0],m[1-y][1]- +E[1]];E[0]=m[w][0];E[1]=m[y][1]}else g.event.altKey&&(B=E.slice());z.style("pointer-events","none").selectAll(".resize").style("display",null);g.select("body").style("cursor",v.style("cursor"));x({type:"brushstart"});l();X()}var f=wb(a,"brushstart","brush","brushend"),h=null,k=null,l=vc[0],m=[[0,0],[0,0]],n;a.x=function(b){if(!arguments.length)return h;h=b;l=vc[!h<<1|!k];return a};a.y=function(b){if(!arguments.length)return k;k=b;l=vc[!h<<1|!k];return a};a.extent=function(b){var c,d,e,f,g;if(!arguments.length)return b= +n||m,h&&(c=b[0][0],d=b[1][0],n||(c=m[0][0],d=m[1][0],h.invert&&(c=h.invert(c),d=h.invert(d)),d<c&&(g=c,c=d,d=g))),k&&(e=b[0][1],f=b[1][1],n||(e=m[0][1],f=m[1][1],k.invert&&(e=k.invert(e),f=k.invert(f)),f<e&&(g=e,e=f,f=g))),h&&k?[[c,e],[d,f]]:h?[c,d]:k&&[e,f];n=[[0,0],[0,0]];h&&(c=b[0],d=b[1],k&&(c=c[0],d=d[0]),n[0][0]=c,n[1][0]=d,h.invert&&(c=h(c),d=h(d)),d<c&&(g=c,c=d,d=g),m[0][0]=c|0,m[1][0]=d|0);k&&(e=b[0],f=b[1],h&&(e=e[1],f=f[1]),n[0][1]=e,n[1][1]=f,k.invert&&(e=k(e),f=k(f)),f<e&&(g=e,e=f,f= +g),m[0][1]=e|0,m[1][1]=f|0);return a};a.clear=function(){n=null;m[0][0]=m[0][1]=m[1][0]=m[1][1]=0;return a};a.empty=function(){return h&&m[0][0]===m[1][0]||k&&m[0][1]===m[1][1]};return g.rebind(a,f,"on")};var zg={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},vc=["n e s w nw ne se sw".split(" "),["e","w"],["n","s"],[]];g.behavior={};g.behavior.drag=function(){function a(){this.on("mousedown.drag",b).on("touchstart.drag", +b)}function b(){function a(){var b=k.parentNode;return null!=n?g.touches(b).filter(function(a){return a.identifier===n})[0]:g.mouse(b)}function b(){l({type:"dragend"});if(r&&(X(),g.event.target===m))s.on("click.drag",h,!0);s.on(null!=n?"touchmove.drag-"+n:"mousemove.drag",null).on(null!=n?"touchend.drag-"+n:"mouseup.drag",null)}function h(){X();s.on("click.drag",null)}var k=this,l=c.of(k,arguments),m=g.event.target,n=g.event.touches?g.event.changedTouches[0].identifier:null,p,q=a(),r=0,s=g.select(P).on(null!= +n?"touchmove.drag-"+n:"mousemove.drag",function(){if(!k.parentNode)return b();var c=a(),d=c[0]-q[0],h=c[1]-q[1];r=r|d|h;q=c;X();l({type:"drag",x:c[0]+p[0],y:c[1]+p[1],dx:d,dy:h})}).on(null!=n?"touchend.drag-"+n:"mouseup.drag",b,!0);d?(p=d.apply(k,arguments),p=[p.x-q[0],p.y-q[1]]):p=[0,0];null==n&&X();l({type:"dragstart"})}var c=wb(a,"drag","dragstart","dragend"),d=null;a.origin=function(b){if(!arguments.length)return d;d=b;return a};return g.rebind(a,c,"on")};g.behavior.zoom=function(){function a(){this.on("mousedown.zoom", +h).on("mousemove.zoom",l).on(Ag+".zoom",k).on("dblclick.zoom",m).on("touchstart.zoom",n).on("touchmove.zoom",p).on("touchend.zoom",n)}function b(a){return[(a[0]-q[0])/s,(a[1]-q[1])/s]}function c(a){s=Math.max(v[0],Math.min(v[1],a))}function d(a,b){b=[b[0]*s+q[0],b[1]*s+q[1]];q[0]+=a[0]-b[0];q[1]+=a[1]-b[1]}function e(){y&&y.domain(z.range().map(function(a){return(a-q[0])/s}).map(z.invert));H&&H.domain(G.range().map(function(a){return(a-q[1])/s}).map(G.invert))}function f(a){e();g.event.preventDefault(); +a({type:"zoom",scale:s,translate:q})}function h(){function a(){X();l.on("click.zoom",null)}var c=this,e=x.of(c,arguments),h=g.event.target,k=0,l=g.select(P).on("mousemove.zoom",function(){k=1;d(g.mouse(c),m);f(e)}).on("mouseup.zoom",function(){k&&X();l.on("mousemove.zoom",null).on("mouseup.zoom",null);if(k&&g.event.target===h)l.on("click.zoom",a,!0)}),m=b(g.mouse(c));P.focus();X()}function k(){r||(r=b(g.mouse(this)));c(Math.pow(2,.002*ob())*s);d(g.mouse(this),r);f(x.of(this,arguments))}function l(){r= +null}function m(){var a=g.mouse(this),e=b(a),h=Math.log(s)/Math.LN2;c(Math.pow(2,g.event.shiftKey?Math.ceil(h)-1:Math.floor(h)+1));d(a,e);f(x.of(this,arguments))}function n(){var a=g.touches(this),e=Date.now();t=s;r={};a.forEach(function(a){r[a.identifier]=b(a)});X();if(1===a.length){if(500>e-D){var h=a[0],a=b(a[0]);c(2*s);d(h,a);f(x.of(this,arguments))}D=e}}function p(){var a=g.touches(this),b=a[0],e=r[b.identifier];if(a=a[1]){var h=r[a.identifier],b=[(b[0]+a[0])/2,(b[1]+a[1])/2],e=[(e[0]+h[0])/ +2,(e[1]+h[1])/2];c(g.event.scale*t)}d(b,e);D=null;f(x.of(this,arguments))}var q=[0,0],r,s=1,t,v=se,x=wb(a,"zoom"),z,y,G,H,D;a.translate=function(b){if(!arguments.length)return q;q=b.map(Number);e();return a};a.scale=function(b){if(!arguments.length)return s;s=+b;e();return a};a.scaleExtent=function(b){if(!arguments.length)return v;v=null==b?se:b.map(Number);return a};a.x=function(b){if(!arguments.length)return y;y=b;z=b.copy();q=[0,0];s=1;return a};a.y=function(b){if(!arguments.length)return H;H= +b;G=b.copy();q=[0,0];s=1;return a};return g.rebind(a,x,"on")};var se=[0,Infinity],ob,Ag="onwheel"in document?(ob=function(){return-g.event.deltaY*(g.event.deltaMode?120:1)},"wheel"):"onmousewheel"in document?(ob=function(){return g.event.wheelDelta},"mousewheel"):(ob=function(){return-g.event.detail},"MozMousePixelScroll");g.layout={};g.layout.bundle=function(){return function(a){for(var b=[],c=-1,d=a.length;++c<d;)b.push(pf(a[c]));return b}};g.layout.chord=function(){function a(){var a={},c=[],r= +g.range(h),s=[],t,v,x,z,y;d=[];e=[];t=0;for(z=-1;++z<h;){v=0;for(y=-1;++y<h;)v+=f[z][y];c.push(v);s.push(g.range(h));t+=v}l&&r.sort(function(a,b){return l(c[a],c[b])});m&&s.forEach(function(a,b){a.sort(function(a,c){return m(f[b][a],f[b][c])})});t=(2*u-k*h)/t;v=0;for(z=-1;++z<h;){x=v;for(y=-1;++y<h;){var G=r[z],H=s[G][y],D=f[G][H],B=v,E=v+=D*t;a[G+"-"+H]={index:G,subindex:H,startAngle:B,endAngle:E,value:D}}e[G]={index:G,startAngle:x,endAngle:v,value:(v-x)/t};v+=k}for(z=-1;++z<h;)for(y=z-1;++y<h;)r= +a[z+"-"+y],s=a[y+"-"+z],(r.value||s.value)&&d.push(r.value<s.value?{source:s,target:r}:{source:r,target:s});n&&b()}function b(){d.sort(function(a,b){return n((a.source.value+a.target.value)/2,(b.source.value+b.target.value)/2)})}var c={},d,e,f,h,k=0,l,m,n;c.matrix=function(a){if(!arguments.length)return f;h=(f=a)&&f.length;d=e=null;return c};c.padding=function(a){if(!arguments.length)return k;k=a;d=e=null;return c};c.sortGroups=function(a){if(!arguments.length)return l;l=a;d=e=null;return c};c.sortSubgroups= +function(a){if(!arguments.length)return m;m=a;d=null;return c};c.sortChords=function(a){if(!arguments.length)return n;n=a;d&&b();return c};c.chords=function(){d||a();return d};c.groups=function(){e||a();return e};return c};g.layout.force=function(){function a(a){return function(b,c,d,e){if(b.point!==a){d=b.cx-a.x;var f=b.cy-a.y,h=1/Math.sqrt(d*d+f*f);if((e-c)*h<q)return c=b.charge*h*h,a.px-=d*c,a.py-=f*c,!0;b.point&&isFinite(h)&&(c=b.pointCharge*h*h,a.px-=d*c,a.py-=f*c)}return!b.charge}}function b(a){a.px= +g.event.x;a.py=g.event.y;c.resume()}var c={},d=g.dispatch("start","tick","end"),e=[1,1],f,h,k=.9,l=Bg,m=Cg,n=-30,p=.1,q=.8,r=[],s=[],t,v,x;c.tick=function(){if(.005>(h*=.99))return d.end({type:"end",alpha:h=0}),!0;var b=r.length,c=s.length,f,l,m,q,u,w,L;for(f=0;f<c;++f)if(l=s[f],m=l.source,q=l.target,w=q.x-m.x,L=q.y-m.y,u=w*w+L*L)u=h*v[f]*((u=Math.sqrt(u))-t[f])/u,w*=u,L*=u,q.x-=w*(u=m.weight/(q.weight+m.weight)),q.y-=L*u,m.x+=w*(u=1-u),m.y+=L*u;if(u=h*p)if(w=e[0]/2,L=e[1]/2,f=-1,u)for(;++f<b;)l= +r[f],l.x+=(w-l.x)*u,l.y+=(L-l.y)*u;if(n)for(zd(c=g.geom.quadtree(r),h,x),f=-1;++f<b;)(l=r[f]).fixed||c.visit(a(l));for(f=-1;++f<b;)l=r[f],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*k,l.y-=(l.py-(l.py=l.y))*k);d.tick({type:"tick",alpha:h})};c.nodes=function(a){if(!arguments.length)return r;r=a;return c};c.links=function(a){if(!arguments.length)return s;s=a;return c};c.size=function(a){if(!arguments.length)return e;e=a;return c};c.linkDistance=function(a){if(!arguments.length)return l;l="function"=== +typeof a?a:+a;return c};c.distance=c.linkDistance;c.linkStrength=function(a){if(!arguments.length)return m;m="function"===typeof a?a:+a;return c};c.friction=function(a){if(!arguments.length)return k;k=+a;return c};c.charge=function(a){if(!arguments.length)return n;n="function"===typeof a?a:+a;return c};c.gravity=function(a){if(!arguments.length)return p;p=+a;return c};c.theta=function(a){if(!arguments.length)return q;q=+a;return c};c.alpha=function(a){if(!arguments.length)return h;a=+a;h?h=0<a?a: +0:0<a&&(d.start({type:"start",alpha:h=a}),g.timer(c.tick));return c};c.start=function(){function a(c,e){var g;if(!p){p=[];for(d=0;d<f;++d)p[d]=[];for(d=0;d<h;++d)g=s[d],p[g.source.index].push(g.target),p[g.target.index].push(g.source)}g=p[b];for(var k=-1,l=g.length,m;++k<l;)if(!isNaN(m=g[k][c]))return m;return Math.random()*e}var b,d,f=r.length,h=s.length,g=e[0],k=e[1],p,q;for(b=0;b<f;++b)(q=r[b]).index=b,q.weight=0;for(b=0;b<h;++b)q=s[b],"number"==typeof q.source&&(q.source=r[q.source]),"number"== +typeof q.target&&(q.target=r[q.target]),++q.source.weight,++q.target.weight;for(b=0;b<f;++b)q=r[b],isNaN(q.x)&&(q.x=a("x",g)),isNaN(q.y)&&(q.y=a("y",k)),isNaN(q.px)&&(q.px=q.x),isNaN(q.py)&&(q.py=q.y);t=[];if("function"===typeof l)for(b=0;b<h;++b)t[b]=+l.call(this,s[b],b);else for(b=0;b<h;++b)t[b]=l;v=[];if("function"===typeof m)for(b=0;b<h;++b)v[b]=+m.call(this,s[b],b);else for(b=0;b<h;++b)v[b]=m;x=[];if("function"===typeof n)for(b=0;b<f;++b)x[b]=+n.call(this,r[b],b);else for(b=0;b<f;++b)x[b]=n; +return c.resume()};c.resume=function(){return c.alpha(.1)};c.stop=function(){return c.alpha(0)};c.drag=function(){f||(f=g.behavior.drag().origin(V).on("dragstart.force",qf).on("drag.force",b).on("dragend.force",rf));if(!arguments.length)return f;this.on("mouseover.force",sf).on("mouseout.force",tf).call(f)};return g.rebind(c,d,"on")};var Bg=20,Cg=1;g.layout.partition=function(){function a(b,c,d,e){var g=b.children;b.x=c;b.y=b.depth*e;b.dx=d;b.dy=e;if(g&&(p=g.length)){var n=-1,p,q;for(d=b.value?d/ +b.value:0;++n<p;)a(q=g[n],c,b=q.value*d,e),c+=b}}function b(a){a=a.children;var c=0;if(a&&(e=a.length))for(var d=-1,e;++d<e;)c=Math.max(c,b(a[d]));return 1+c}function c(c,h){var g=d.call(this,c,h);a(g[0],0,e[0],e[1]/b(g[0]));return g}var d=g.layout.hierarchy(),e=[1,1];c.size=function(a){if(!arguments.length)return e;e=a;return c};return Ea(c,d)};g.layout.pie=function(){function a(f){var h=f.map(function(c,d){return+b.call(a,c,d)}),k=+("function"===typeof d?d.apply(this,arguments):d),l=(("function"=== +typeof e?e.apply(this,arguments):e)-d)/g.sum(h),m=g.range(f.length);null!=c&&m.sort(c===te?function(a,b){return h[b]-h[a]}:function(a,b){return c(f[a],f[b])});var n=[];m.forEach(function(a){var b;n[a]={data:f[a],value:b=h[a],startAngle:k,endAngle:k+=b*l}});return n}var b=Number,c=te,d=0,e=2*u;a.value=function(c){if(!arguments.length)return b;b=c;return a};a.sort=function(b){if(!arguments.length)return c;c=b;return a};a.startAngle=function(b){if(!arguments.length)return d;d=b;return a};a.endAngle= +function(b){if(!arguments.length)return e;e=b;return a};return a};var te={};g.layout.stack=function(){function a(k,l){var m=k.map(function(c,d){return b.call(a,c,d)}),n=m.map(function(b){return b.map(function(b,c){return[f.call(a,b,c),h.call(a,b,c)]})}),p=c.call(a,n,l),m=g.permute(m,p),n=g.permute(n,p),p=d.call(a,n,l),q=m.length,r=m[0].length,s,t,v;for(t=0;t<r;++t)for(e.call(a,m[0][t],v=p[t],n[0][t][1]),s=1;s<q;++s)e.call(a,m[s][t],v+=n[s-1][t][1],n[s][t][1]);return k}var b=V,c=Vb,d=Wb,e=wf,f=uf, +h=vf;a.values=function(c){if(!arguments.length)return b;b=c;return a};a.order=function(b){if(!arguments.length)return c;c="function"===typeof b?b:Dg.get(b)||Vb;return a};a.offset=function(b){if(!arguments.length)return d;d="function"===typeof b?b:Eg.get(b)||Wb;return a};a.x=function(b){if(!arguments.length)return f;f=b;return a};a.y=function(b){if(!arguments.length)return h;h=b;return a};a.out=function(b){if(!arguments.length)return e;e=b;return a};return a};var Dg=g.map({"inside-out":function(a){var b= +a.length,c,d=a.map(xf),e=a.map(yf),f=g.range(b).sort(function(a,b){return d[a]-d[b]}),h=0,k=0,l=[],m=[];for(a=0;a<b;++a)c=f[a],h<k?(h+=e[c],l.push(c)):(k+=e[c],m.push(c));return m.reverse().concat(l)},reverse:function(a){return g.range(a.length).reverse()},"default":Vb}),Eg=g.map({silhouette:function(a){var b=a.length,c=a[0].length,d=[],e=0,f,h,g,l=[];for(h=0;h<c;++h){for(g=f=0;f<b;f++)g+=a[f][h][1];g>e&&(e=g);d.push(g)}for(h=0;h<c;++h)l[h]=(e-d[h])/2;return l},wiggle:function(a){var b=a.length,c= +a[0],d=c.length,e,f,h,g,l,m,n,p,q,r=[];r[0]=p=q=0;for(f=1;f<d;++f){for(g=e=0;e<b;++e)g+=a[e][f][1];l=e=0;for(n=c[f][0]-c[f-1][0];e<b;++e){h=0;for(m=(a[e][f][1]-a[e][f-1][1])/(2*n);h<e;++h)m+=(a[h][f][1]-a[h][f-1][1])/n;l+=m*a[e][f][1]}r[f]=p-=g?l/g*n:0;p<q&&(q=p)}for(f=0;f<d;++f)r[f]-=q;return r},expand:function(a){var b=a.length,c=a[0].length,d=1/b,e,f,h,g=[];for(f=0;f<c;++f){for(h=e=0;e<b;e++)h+=a[e][f][1];if(h)for(e=0;e<b;e++)a[e][f][1]/=h;else for(e=0;e<b;e++)a[e][f][1]=d}for(f=0;f<c;++f)g[f]= +0;return g},zero:Wb});g.layout.histogram=function(){function a(a,h){var k=[],l=a.map(c,this),m=d.call(this,l,h),n=e.call(this,m,l,h),p;h=-1;for(var q=l.length,r=n.length-1,s=b?1:1/q;++h<r;)p=k[h]=[],p.dx=n[h+1]-(p.x=n[h]),p.y=0;if(0<r)for(h=-1;++h<q;)p=l[h],p>=m[0]&&p<=m[1]&&(p=k[g.bisect(n,p,1,r)-1],p.y+=s,p.push(a[h]));return k}var b=!0,c=Number,d=Bf,e=Af;a.value=function(b){if(!arguments.length)return c;c=b;return a};a.range=function(b){if(!arguments.length)return d;d=F(b);return a};a.bins=function(b){if(!arguments.length)return e; +e="number"===typeof b?function(a){return Ad(a,b)}:F(b);return a};a.frequency=function(c){if(!arguments.length)return b;b=!!c;return a};return a};g.layout.hierarchy=function(){function a(b,g,l){var m=e.call(c,b,g);b.depth=g;l.push(b);if(m&&(p=m.length)){var n=-1,p,q=b.children=[],r=0;g+=1;for(var s;++n<p;)s=a(m[n],g,l),s.parent=b,q.push(s),r+=s.value;d&&q.sort(d);f&&(b.value=r)}else f&&(b.value=+f.call(c,b,g)||0);return b}function b(a,d){var e=a.children,g=0;if(e&&(p=e.length))for(var n=-1,p,q=d+1;++n< +p;)g+=b(e[n],q);else f&&(g=+f.call(c,a,d)||0);f&&(a.value=g);return g}function c(b){var c=[];a(b,0,c);return c}var d=Ff,e=Df,f=Ef;c.sort=function(a){if(!arguments.length)return d;d=a;return c};c.children=function(a){if(!arguments.length)return e;e=a;return c};c.value=function(a){if(!arguments.length)return f;f=a;return c};c.revalue=function(a){b(a,0);return a};return c};g.layout.pack=function(){function a(a,f){var h=b.call(this,a,f),g=h[0];g.x=0;g.y=0;ea(g,function(a){a.r=Math.sqrt(a.value)});ea(g, +Dd);var l=d[0],m=d[1],n=Math.max(2*g.r/l,2*g.r/m);if(0<c){var p=c*n/2;ea(g,function(a){a.r+=p});ea(g,Dd);ea(g,function(a){a.r-=p});n=Math.max(2*g.r/l,2*g.r/m)}Fd(g,l/2,m/2,1/n);return h}var b=g.layout.hierarchy().sort(Gf),c=0,d=[1,1];a.size=function(b){if(!arguments.length)return d;d=b;return a};a.padding=function(b){if(!arguments.length)return c;c=+b;return a};return Ea(a,b)};g.layout.cluster=function(){function a(a,f){var h=b.call(this,a,f),g=h[0],l,m=0;ea(g,function(a){var b=a.children;b&&b.length? +(a.x=Kf(b),a.y=Jf(b)):(a.x=l?m+=c(a,l):0,a.y=0,l=a)});var n=Gd(g),p=Hd(g),q=n.x-c(n,p)/2,r=p.x+c(p,n)/2;ea(g,function(a){a.x=(a.x-q)/(r-q)*d[0];a.y=(1-(g.y?a.y/g.y:1))*d[1]});return h}var b=g.layout.hierarchy().sort(null).value(null),c=Id,d=[1,1];a.separation=function(b){if(!arguments.length)return c;c=b;return a};a.size=function(b){if(!arguments.length)return d;d=b;return a};return Ea(a,b)};g.layout.tree=function(){function a(a,f){function h(a,b){var d=a.children,e=a._tree;if(d&&(f=d.length)){for(var f, +g=d[0],k,l=g,m,p=-1;++p<f;){m=d[p];h(m,k);var n=m;if(k){for(var q=n,s=n,r=n.parent.children[0],t=q._tree.mod,u=s._tree.mod,w=k._tree.mod,C=r._tree.mod,A=void 0;k=Zb(k),q=Yb(q),k&&q;){r=Yb(r);s=Zb(s);s._tree.ancestor=n;A=k._tree.prelim+w-q._tree.prelim-t+c(k,q);if(0<A){var I=k._tree.ancestor.parent==n.parent?k._tree.ancestor:l,F=n,J=A,I=I._tree,F=F._tree,K=J/(F.number-I.number);I.change+=K;F.change-=K;F.shift+=J;F.prelim+=J;F.mod+=J;t+=A;u+=A}w+=k._tree.mod;t+=q._tree.mod;C+=r._tree.mod;u+=s._tree.mod}k&& +!Zb(s)&&(s._tree.thread=k,s._tree.mod+=w-u);q&&!Yb(r)&&(r._tree.thread=q,r._tree.mod+=t-C,l=n)}k=m}f=d=0;p=a.children;for(n=p.length;0<=--n;)l=p[n]._tree,l.prelim+=d,l.mod+=d,d+=l.shift+(f+=l.change);g=.5*(g._tree.prelim+m._tree.prelim);b?(e.prelim=b._tree.prelim+c(a,b),e.mod=e.prelim-g):e.prelim=g}else b&&(e.prelim=b._tree.prelim+c(a,b))}function g(a,b){a.x=a._tree.prelim+b;var c=a.children;if(c&&(e=c.length)){var d=-1,e;for(b+=a._tree.mod;++d<e;)g(c[d],b)}}var l=b.call(this,a,f),m=l[0];ea(m,function(a, +b){a._tree={ancestor:a,prelim:0,mod:0,change:0,shift:0,number:b?b._tree.number+1:0}});h(m);g(m,-m._tree.prelim);var n=Xa(m,Mf),p=Xa(m,Lf),q=Xa(m,Nf),r=n.x-c(n,p)/2,s=p.x+c(p,n)/2,t=q.depth||1;ea(m,function(a){a.x=(a.x-r)/(s-r)*d[0];a.y=a.depth/t*d[1];delete a._tree});return l}var b=g.layout.hierarchy().sort(null).value(null),c=Id,d=[1,1];a.separation=function(b){if(!arguments.length)return c;c=b;return a};a.size=function(b){if(!arguments.length)return d;d=b;return a};return Ea(a,b)};g.layout.treemap= +function(){function a(a,b){for(var c=-1,d=a.length,e,f;++c<d;)f=(e=a[c]).value*(0>b?0:b),e.area=isNaN(f)||0>=f?0:f}function b(c){var e=c.children;if(e&&e.length){var f=m(c),h=[],g=e.slice(),k=Infinity,l,p="slice"===q?f.dx:"dice"===q?f.dy:"slice-dice"===q?c.depth&1?f.dy:f.dx:Math.min(f.dx,f.dy);a(g,f.dx*f.dy/c.value);for(h.area=0;0<(c=g.length);){h.push(c=g[c-1]);h.area+=c.area;if(!(c="squarify"!==q)){l=p;c=h.area;for(var n=void 0,u=0,w=Infinity,A=-1,C=h.length;++A<C;)if(n=h[A].area)n<w&&(w=n),n>u&& +(u=n);c*=c;l*=l;c=(l=c?Math.max(l*u*r/c,c/(l*w*r)):Infinity)<=k}c?(g.pop(),k=l):(h.area-=h.pop().area,d(h,p,f,!1),p=Math.min(f.dx,f.dy),h.length=h.area=0,k=Infinity)}h.length&&(d(h,p,f,!0),h.length=h.area=0);e.forEach(b)}}function c(b){var e=b.children;if(e&&e.length){var f=m(b),h=e.slice(),g=[];a(h,f.dx*f.dy/b.value);for(g.area=0;b=h.pop();)g.push(b),g.area+=b.area,null!=b.z&&(d(g,b.z?f.dx:f.dy,f,!h.length),g.length=g.area=0);e.forEach(c)}}function d(a,b,c,d){var e=-1,f=a.length,g=c.x,k=c.y,l=b? +h(a.area/b):0,m;if(b==c.dx){if(d||l>c.dy)l=c.dy;for(;++e<f;)m=a[e],m.x=g,m.y=k,m.dy=l,g+=m.dx=Math.min(c.x+c.dx-g,l?h(m.area/l):0);m.z=!0;m.dx+=c.x+c.dx-g;c.y+=l;c.dy-=l}else{if(d||l>c.dx)l=c.dx;for(;++e<f;)m=a[e],m.x=g,m.y=k,m.dx=l,k+=m.dy=Math.min(c.y+c.dy-k,l?h(m.area/l):0);m.z=!1;m.dy+=c.y+c.dy-k;c.x+=l;c.dx-=l}}function e(d){d=p||f(d);var e=d[0];e.x=0;e.y=0;e.dx=k[0];e.dy=k[1];p&&f.revalue(e);a([e],e.dx*e.dy/e.value);(p?c:b)(e);n&&(p=d);return d}var f=g.layout.hierarchy(),h=Math.round,k=[1,1], +l=null,m=$b,n=!1,p,q="squarify",r=.5*(1+Math.sqrt(5));e.size=function(a){if(!arguments.length)return k;k=a;return e};e.padding=function(a){function b(c){var d=a.call(e,c,c.depth);return null==d?$b(c):Jd(c,"number"===typeof d?[d,d,d,d]:d)}function c(b){return Jd(b,a)}if(!arguments.length)return l;var d;m=null==(l=a)?$b:"function"===(d=typeof a)?b:"number"===d?(a=[a,a,a,a],c):c;return e};e.round=function(a){if(!arguments.length)return h!=Number;h=a?Math.round:Number;return e};e.sticky=function(a){if(!arguments.length)return n; +n=a;p=null;return e};e.ratio=function(a){if(!arguments.length)return r;r=a;return e};e.mode=function(a){if(!arguments.length)return q;q=a+"";return e};return Ea(e,f)};g.csv=Kd(",","text/csv");g.tsv=Kd("\t","text/tab-separated-values");g.geo={};g.geo.stream=function(a,b){if(ue.hasOwnProperty(a.type))ue[a.type](a,b);else Ya(a,b)};var ue={Feature:function(a,b){Ya(a.geometry,b)},FeatureCollection:function(a,b){for(var c=a.features,d=-1,e=c.length;++d<e;)Ya(c[d].geometry,b)}},Ld={Sphere:function(a,b){b.sphere()}, +Point:function(a,b){var c=a.coordinates;b.point(c[0],c[1])},MultiPoint:function(a,b){for(var c=a.coordinates,d=-1,e=c.length,f;++d<e;)f=c[d],b.point(f[0],f[1])},LineString:function(a,b){ac(a.coordinates,b,0)},MultiLineString:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)ac(c[d],b,0)},Polygon:function(a,b){Md(a.coordinates,b)},MultiPolygon:function(a,b){for(var c=a.coordinates,d=-1,e=c.length;++d<e;)Md(c[d],b)},GeometryCollection:function(a,b){for(var c=a.geometries,d=-1,e=c.length;++d< +e;)Ya(c[d],b)}};g.geo.albersUsa=function(){function a(a){var h=a[0],g=a[1];return(50<g?c:-140>h?d:21>g?e:b)(a)}var b=g.geo.albers(),c=g.geo.albers().rotate([160,0]).center([0,60]).parallels([55,65]),d=g.geo.albers().rotate([160,0]).center([0,20]).parallels([8,18]),e=g.geo.albers().rotate([60,0]).center([0,10]).parallels([8,18]);a.scale=function(f){if(!arguments.length)return b.scale();b.scale(f);c.scale(.6*f);d.scale(f);e.scale(1.5*f);return a.translate(b.translate())};a.translate=function(f){if(!arguments.length)return b.translate(); +var h=b.scale(),g=f[0],l=f[1];b.translate(f);c.translate([g-.4*h,l+.17*h]);d.translate([g-.19*h,l+.2*h]);e.translate([g+.58*h,l+.43*h]);return a};return a.scale(b.scale())};(g.geo.albers=function(){var a=29.5*w,b=45.5*w,c=ic(Qd),d=c(a,b);d.parallels=function(d){return arguments.length?c(a=d[0]*w,b=d[1]*w):[a*O,b*O]};return d.rotate([98,0]).center([0,38]).scale(1E3)}).raw=Qd;var ve=Fa(function(a){return Math.sqrt(2/(1+a))},function(a){return 2*Math.asin(a/2)});(g.geo.azimuthalEqualArea=function(){return la(ve)}).raw= +ve;var we=Fa(function(a){return(a=Math.acos(a))&&a/Math.sin(a)},V);(g.geo.azimuthalEquidistant=function(){return la(we)}).raw=we;g.geo.bounds=Rd(V);g.geo.centroid=function(a){N=Y=J=K=I=0;g.geo.stream(a,Z);var b;if(Y&&Math.abs(b=Math.sqrt(J*J+K*K+I*I))>A)return[Math.atan2(K,J)*O,Math.asin(Math.max(-1,Math.min(1,I/b)))*O]};var N,Y,J,K,I,Z={sphere:function(){2>N&&(N=2,Y=J=K=I=0)},point:Sd,lineStart:dc,lineEnd:ec,polygonStart:function(){2>N&&(N=2,Y=J=K=I=0);Z.lineStart=Of},polygonEnd:function(){Z.lineStart= +dc}};g.geo.circle=function(){function a(){var a="function"===typeof b?b.apply(this,arguments):b,c=ae(-a[0]*w,-a[1]*w,0).invert,d=[];e(null,null,1,{point:function(a,b){d.push(a=c(a,b));a[0]*=O;a[1]*=O}});return{type:"Polygon",coordinates:[d]}}var b=[0,0],c,d=6,e;a.origin=function(c){if(!arguments.length)return b;b=c;return a};a.angle=function(b){if(!arguments.length)return c;e=fc((c=+b)*w,d*w);return a};a.precision=function(b){if(!arguments.length)return d;e=fc(c*w,(d=+b)*w);return a};return a.angle(90)}; +var be=Ud(za,function(a){var b=NaN,c=NaN,d=NaN,e;return{lineStart:function(){a.lineStart();e=1},point:function(f,h){var g=0<f?u:-u,l=Math.abs(f-b);if(Math.abs(l-u)<A)a.point(b,c=0<(c+h)/2?u/2:-u/2),a.point(d,c),a.lineEnd(),a.lineStart(),a.point(g,c),a.point(f,c),e=0;else if(d!==g&&l>=u){Math.abs(b-d)<A&&(b-=d*A);Math.abs(f-g)<A&&(f-=g*A);var l=b,m=c,n=f,p,q,r=Math.sin(l-n);c=Math.abs(r)>A?Math.atan((Math.sin(m)*(q=Math.cos(h))*Math.sin(n)-Math.sin(h)*(p=Math.cos(m))*Math.sin(l))/(p*q*r)):(m+h)/2; +a.point(d,c);a.lineEnd();a.lineStart();a.point(g,c);e=0}a.point(b=f,c=h);d=g},lineEnd:function(){a.lineEnd();b=c=NaN},clean:function(){return 2-e}}},function(a,b,c,d){null==a?(c=c*u/2,d.point(-u,c),d.point(0,c),d.point(u,c),d.point(u,0),d.point(u,-c),d.point(0,-c),d.point(-u,-c),d.point(-u,0),d.point(-u,c)):Math.abs(a[0]-b[0])>A?(a=(a[0]<b[0]?1:-1)*u,c=c*a/2,d.point(-a,c),d.point(0,c),d.point(a,c)):d.point(b[0],b[1])});(g.geo.equirectangular=function(){return la(ab).scale(250/u)}).raw=ab.invert=ab; +var xe=Fa(function(a){return 1/a},Math.atan);(g.geo.gnomonic=function(){return la(xe)}).raw=xe;g.geo.graticule=function(){function a(){return{type:"MultiLineString",coordinates:b()}}function b(){return g.range(Math.ceil(d/h)*h,c,h).map(l).concat(g.range(Math.ceil(f/k)*k,e,k).map(m))}var c,d,e,f,h=22.5,k=h,l,m,n=2.5;a.lines=function(){return b().map(function(a){return{type:"LineString",coordinates:a}})};a.outline=function(){return{type:"Polygon",coordinates:[l(d).concat(m(e).slice(1),l(c).reverse().slice(1), +m(f).reverse().slice(1))]}};a.extent=function(b){if(!arguments.length)return[[d,f],[c,e]];d=+b[0][0];c=+b[1][0];f=+b[0][1];e=+b[1][1];d>c&&(b=d,d=c,c=b);f>e&&(b=f,f=e,e=b);return a.precision(n)};a.step=function(b){if(!arguments.length)return[h,k];h=+b[0];k=+b[1];return a};a.precision=function(b){if(!arguments.length)return n;n=+b;l=Uf(f,e,n);m=Vf(d,c,n);return a};return a.extent([[-180+A,-90+A],[180-A,90-A]])};g.geo.interpolate=function(a,b){return Wf(a[0]*w,a[1]*w,b[0]*w,b[1]*w)};g.geo.greatArc= +function(){function a(){for(var a=c||b.apply(this,arguments),l=e||d.apply(this,arguments),m=h||g.geo.interpolate(a,l),n=0,p=f/m.distance,a=[a];1>(n+=p);)a.push(m(n));a.push(l);return{type:"LineString",coordinates:a}}var b=sb,c,d=rb,e,f=6*w,h;a.distance=function(){return(h||g.geo.interpolate(c||b.apply(this,arguments),e||d.apply(this,arguments))).distance};a.source=function(d){if(!arguments.length)return b;b=d;h=(c="function"===typeof d?null:d)&&e?g.geo.interpolate(c,e):null;return a};a.target=function(b){if(!arguments.length)return d; +d=b;e="function"===typeof b?null:b;h=c&&e?g.geo.interpolate(c,e):null;return a};a.precision=function(b){if(!arguments.length)return f/w;f=b*w;return a};return a};gc.invert=function(a,b){return[2*u*a,2*Math.atan(Math.exp(2*u*b))-u/2]};(g.geo.mercator=function(){return la(gc).scale(500)}).raw=gc;var ye=Fa(function(){return 1},Math.asin);(g.geo.orthographic=function(){return la(ye)}).raw=ye;g.geo.path=function(){function a(a){a&&g.geo.stream(a,e(f.pointRadius("function"===typeof b?+b.apply(this,arguments): +b)));return f.result()}var b=4.5,c,d,e,f;a.area=function(a){pb=0;g.geo.stream(a,e(ja));return pb};a.centroid=function(a){N=J=K=I=0;g.geo.stream(a,e($));return I?[J/I,K/I]:void 0};a.bounds=function(a){return Rd(e)(a)};a.projection=function(b){if(!arguments.length)return c;e=(c=b)?b.stream||Xf(b):V;return a};a.context=function(b){if(!arguments.length)return d;f=null==(d=b)?new Yf:new Zf(b);return a};a.pointRadius=function(c){if(!arguments.length)return b;b="function"===typeof c?c:+c;return a};return a.projection(g.geo.albersUsa()).context(null)}; +var pb,bb,ja={point:T,lineStart:T,lineEnd:T,polygonStart:function(){bb=0;ja.lineStart=$f},polygonEnd:function(){ja.lineStart=ja.lineEnd=ja.point=T;pb+=Math.abs(bb/2)}},$={point:hc,lineStart:Zd,lineEnd:$d,polygonStart:function(){$.lineStart=ag},polygonEnd:function(){$.point=hc;$.lineStart=Zd;$.lineEnd=$d}};g.geo.area=function(a){ya=0;g.geo.stream(a,ka);return ya};var ya,cb,db,ka={sphere:function(){ya+=4*u},point:T,lineStart:T,lineEnd:T,polygonStart:function(){cb=1;db=0;ka.lineStart=bg},polygonEnd:function(){var a= +2*Math.atan2(db,cb);ya+=0>a?4*u+a:a;ka.lineStart=ka.lineEnd=ka.point=T}};g.geo.projection=la;g.geo.projectionMutator=ic;var ze=Fa(function(a){return 1/(1+a)},function(a){return 2*Math.atan(a)});(g.geo.stereographic=function(){return la(ze)}).raw=ze;g.geom={};g.geom.hull=function(a){if(3>a.length)return[];var b=a.length,c=b-1,d=[],e=[],f,h=0,g,l,m,n,p,q,r;for(f=1;f<b;++f)a[f][1]<a[h][1]?h=f:a[f][1]==a[h][1]&&(h=a[f][0]<a[h][0]?f:h);for(f=0;f<b;++f)f!==h&&(l=a[f][1]-a[h][1],g=a[f][0]-a[h][0],d.push({angle:Math.atan2(l, +g),index:f}));d.sort(function(a,b){return a.angle-b.angle});r=d[0].angle;q=d[0].index;p=0;for(f=1;f<c;++f)b=d[f].index,r==d[f].angle?(g=a[q][0]-a[h][0],l=a[q][1]-a[h][1],m=a[b][0]-a[h][0],n=a[b][1]-a[h][1],g*g+l*l>=m*m+n*n?d[f].index=-1:(d[p].index=-1,r=d[f].angle,p=f,q=b)):(r=d[f].angle,p=f,q=b);e.push(h);for(b=f=0;2>f;++b)-1!==d[b].index&&(e.push(d[b].index),f++);for(h=e.length;b<c;++b)if(-1!==d[b].index){for(;!dg(e[h-2],e[h-1],d[b].index,a);)--h;e[h++]=d[b].index}c=[];for(f=0;f<h;++f)c.push(a[e[f]]); +return c};g.geom.polygon=function(a){a.area=function(){for(var b=0,c=a.length,d=a[c-1][1]*a[0][0]-a[c-1][0]*a[0][1];++b<c;)d+=a[b-1][1]*a[b][0]-a[b-1][0]*a[b][1];return.5*d};a.centroid=function(b){var c=-1,d=a.length,e=0,f=0,h,g=a[d-1],l;for(arguments.length||(b=-1/(6*a.area()));++c<d;)h=g,g=a[c],l=h[0]*g[1]-g[0]*h[1],e+=(h[0]+g[0])*l,f+=(h[1]+g[1])*l;return[e*b,f*b]};a.clip=function(b){for(var c,d=-1,e=a.length,f,h,g=a[e-1],l,m,n;++d<e;){c=b.slice();b.length=0;l=a[d];m=c[(h=c.length)-1];for(f=-1;++f< +h;)n=c[f],jc(n,g,l)?(jc(m,g,l)||b.push(fe(m,n,g,l)),b.push(n)):jc(m,g,l)&&b.push(fe(m,n,g,l)),m=n;g=l}return b};return a};g.geom.voronoi=function(a){var b=a.map(function(){return[]});ge(a,function(a){var d,e,f,g;1===a.a&&0<=a.b?(d=a.ep.r,e=a.ep.l):(d=a.ep.l,e=a.ep.r);1===a.a?(f=d?d.y:-1E6,d=a.c-a.b*f,g=e?e.y:1E6,e=a.c-a.b*g):(d=d?d.x:-1E6,f=a.c-a.a*d,e=e?e.x:1E6,g=a.c-a.a*e);d=[d,f];e=[e,g];b[a.region.l.index].push(d,e);b[a.region.r.index].push(d,e)});b=b.map(function(b,d){var e=a[d][0],f=a[d][1], +h=b.map(function(a){return Math.atan2(a[0]-e,a[1]-f)}),k=g.range(b.length).sort(function(a,b){return h[a]-h[b]});return k.filter(function(a,b){return!b||h[a]-h[k[b-1]]>A}).map(function(a){return b[a]})});b.forEach(function(b,d){var e=b.length;if(!e)return b.push([-1E6,-1E6],[-1E6,1E6],[1E6,1E6],[1E6,-1E6]);if(!(2<e)){var f=a[d],g=b[0],k=b[1],e=f[0],f=f[1],l=g[0],g=g[1],m=k[0],n=k[1],p=Math.abs(m-l),k=n-g;Math.abs(k)<A?(e=f<g?-1E6:1E6,b.push([-1E6,e],[1E6,e])):p<A?(e=e<l?-1E6:1E6,b.push([e,-1E6],[e, +1E6])):(e=(m-l)*(g-f)<(l-e)*(n-g)?1E6:-1E6,f=Math.abs(k)-p,Math.abs(f)<A?b.push([0>k?e:-e,e]):(0<f&&(e*=-1),b.push([-1E6,e],[1E6,e])))}});return b};var kc={l:"r",r:"l"};g.geom.delaunay=function(a){var b=a.map(function(){return[]}),c=[];ge(a,function(c){b[c.region.l.index].push(a[c.region.r.index])});b.forEach(function(b,e){var f=a[e],g=f[0],k=f[1];b.forEach(function(a){a.angle=Math.atan2(a[0]-g,a[1]-k)});b.sort(function(a,b){return a.angle-b.angle});for(var l=0,m=b.length-1;l<m;l++)c.push([f,b[l], +b[l+1]])});return c};g.geom.quadtree=function(a,b,c,d,e){function f(a,b,c,d,e,f){if(!isNaN(b.x)&&!isNaN(b.y))if(a.leaf){var k=a.point;k?(.01>Math.abs(k.x-b.x)+Math.abs(k.y-b.y)||(a.point=null,g(a,k,c,d,e,f)),g(a,b,c,d,e,f)):a.point=b}else g(a,b,c,d,e,f)}function g(a,b,c,d,e,h){var k=.5*(c+e),l=.5*(d+h),m=b.x>=k,n=b.y>=l,u=(n<<1)+m;a.leaf=!1;a=a.nodes[u]||(a.nodes[u]={leaf:!0,nodes:[],point:null});m?c=k:e=k;n?d=l:h=l;f(a,b,c,d,e,h)}var k,l=-1,m=a.length;if(5>arguments.length)if(3===arguments.length)e= +c,d=b,c=b=0;else for(b=c=Infinity,d=e=-Infinity;++l<m;)k=a[l],k.x<b&&(b=k.x),k.y<c&&(c=k.y),k.x>d&&(d=k.x),k.y>e&&(e=k.y);k=d-b;l=e-c;k>l?e=c+k:d=b+l;var n={leaf:!0,nodes:[],point:null,add:function(a){f(n,a,b,c,d,e)},visit:function(a){Ga(a,n,b,c,d,e)}};a.forEach(n.add);return n};g.time={};var R=Date;oa.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()}, +getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){ga.setUTCDate.apply(this._,arguments)},setDay:function(){ga.setUTCDay.apply(this._,arguments)},setFullYear:function(){ga.setUTCFullYear.apply(this._, +arguments)},setHours:function(){ga.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){ga.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){ga.setUTCMinutes.apply(this._,arguments)},setMonth:function(){ga.setUTCMonth.apply(this._,arguments)},setSeconds:function(){ga.setUTCSeconds.apply(this._,arguments)},setTime:function(){ga.setTime.apply(this._,arguments)}};var ga=Date.prototype,Ae="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),Be="Sun Mon Tue Wed Thu Fri Sat".split(" "), +wc="January February March April May June July August September October November December".split(" "),xc="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ");g.time.format=function(a){function b(b){for(var e=[],f=-1,g=0,k,l;++f<c;)if(37===a.charCodeAt(f)){e.push(a.substring(g,f));null!=(k=Fg[g=a.charAt(++f)])&&(g=a.charAt(++f));if(l=qb[g])g=l(b,null==k?"e"===g?" ":"0":k);e.push(g);g=f+1}e.push(a.substring(g,f));return e.join("")}var c=a.length;b.parse=function(b){var c={y:1900,m:0,d:1,H:0, +M:0,S:0,L:0};if(eb(c,a,b,0)!=b.length)return null;"p"in c&&(c.H=c.H%12+12*c.p);b=new R;b.setFullYear(c.y,c.m,c.d);b.setHours(c.H,c.M,c.S,c.L);return b};b.toString=function(){return a};return b};var Ce=fb(Ae),De=fb(Be),Ee=fb(wc),Gg=he(wc),Fe=fb(xc),Hg=he(xc),Fg={"-":"",_:" ",0:"0"},qb={a:function(a){return Be[a.getDay()]},A:function(a){return Ae[a.getDay()]},b:function(a){return xc[a.getMonth()]},B:function(a){return wc[a.getMonth()]},c:g.time.format("%a %b %e %X %Y"),d:function(a,b){return S(a.getDate(), +b,2)},e:function(a,b){return S(a.getDate(),b,2)},H:function(a,b){return S(a.getHours(),b,2)},I:function(a,b){return S(a.getHours()%12||12,b,2)},j:function(a,b){return S(1+g.time.dayOfYear(a),b,3)},L:function(a,b){return S(a.getMilliseconds(),b,3)},m:function(a,b){return S(a.getMonth()+1,b,2)},M:function(a,b){return S(a.getMinutes(),b,2)},p:function(a){return 12<=a.getHours()?"PM":"AM"},S:function(a,b){return S(a.getSeconds(),b,2)},U:function(a,b){return S(g.time.sundayOfYear(a),b,2)},w:function(a){return a.getDay()}, +W:function(a,b){return S(g.time.mondayOfYear(a),b,2)},x:g.time.format("%m/%d/%Y"),X:g.time.format("%H:%M:%S"),y:function(a,b){return S(a.getFullYear()%100,b,2)},Y:function(a,b){return S(a.getFullYear()%1E4,b,4)},Z:function(a){var b=a.getTimezoneOffset();a=0<b?"-":"+";var c=~~(Math.abs(b)/60),b=Math.abs(b)%60;return a+S(c,"0",2)+S(b,"0",2)},"%":function(){return"%"}},eg={a:function(a,b,c){De.lastIndex=0;return(a=De.exec(b.substring(c)))?c+a[0].length:-1},A:function(a,b,c){Ce.lastIndex=0;return(a=Ce.exec(b.substring(c)))? +c+a[0].length:-1},b:function(a,b,c){Fe.lastIndex=0;return(b=Fe.exec(b.substring(c)))?(a.m=Hg.get(b[0].toLowerCase()),c+b[0].length):-1},B:function(a,b,c){Ee.lastIndex=0;return(b=Ee.exec(b.substring(c)))?(a.m=Gg.get(b[0].toLowerCase()),c+b[0].length):-1},c:function(a,b,c){return eb(a,qb.c.toString(),b,c)},d:ie,e:ie,H:je,I:je,L:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+3)))?(a.L=+b[0],c+b[0].length):-1},m:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.m=b[0]- +1,c+b[0].length):-1},M:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.M=+b[0],c+b[0].length):-1},p:function(a,b,c){b=Ig.get(b.substring(c,c+=2).toLowerCase());return null==b?-1:(a.p=b,c)},S:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+2)))?(a.S=+b[0],c+b[0].length):-1},x:function(a,b,c){return eb(a,qb.x.toString(),b,c)},X:function(a,b,c){return eb(a,qb.X.toString(),b,c)},y:function(a,b,c){Q.lastIndex=0;if(b=Q.exec(b.substring(c,c+2))){var d=+b[0];a=(a.y=d+(68< +d?1900:2E3),c+b[0].length)}else a=-1;return a},Y:function(a,b,c){Q.lastIndex=0;return(b=Q.exec(b.substring(c,c+4)))?(a.y=+b[0],c+b[0].length):-1}},Q=/^\s*\d+/,Ig=g.map({am:0,pm:1});g.time.format.utc=function(a){function b(a){try{R=oa;var b=new R;b._=a;return c(b)}finally{R=Date}}var c=g.time.format(a);b.parse=function(a){try{R=oa;var b=c.parse(a);return b&&b._}finally{R=Date}};b.toString=c.toString;return b};var Ge=g.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");g.time.format.iso=Date.prototype.toISOString? +lc:Ge;lc.parse=function(a){a=new Date(a);return isNaN(a)?null:a};lc.toString=Ge.toString;g.time.second=pa(function(a){return new R(1E3*Math.floor(a/1E3))},function(a,b){a.setTime(a.getTime()+1E3*Math.floor(b))},function(a){return a.getSeconds()});g.time.seconds=g.time.second.range;g.time.seconds.utc=g.time.second.utc.range;g.time.minute=pa(function(a){return new R(6E4*Math.floor(a/6E4))},function(a,b){a.setTime(a.getTime()+6E4*Math.floor(b))},function(a){return a.getMinutes()});g.time.minutes=g.time.minute.range; +g.time.minutes.utc=g.time.minute.utc.range;g.time.hour=pa(function(a){var b=a.getTimezoneOffset()/60;return new R(36E5*(Math.floor(a/36E5-b)+b))},function(a,b){a.setTime(a.getTime()+36E5*Math.floor(b))},function(a){return a.getHours()});g.time.hours=g.time.hour.range;g.time.hours.utc=g.time.hour.utc.range;g.time.day=pa(function(a){var b=new R(1970,0);b.setFullYear(a.getFullYear(),a.getMonth(),a.getDate());return b},function(a,b){a.setDate(a.getDate()+b)},function(a){return a.getDate()-1});g.time.days= +g.time.day.range;g.time.days.utc=g.time.day.utc.range;g.time.dayOfYear=function(a){var b=g.time.year(a);return Math.floor((a-b-6E4*(a.getTimezoneOffset()-b.getTimezoneOffset()))/864E5)};"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" ").forEach(function(a,b){a=a.toLowerCase();b=7-b;var c=g.time[a]=pa(function(a){(a=g.time.day(a)).setDate(a.getDate()-(a.getDay()+b)%7);return a},function(a,b){a.setDate(a.getDate()+7*Math.floor(b))},function(a){var c=g.time.year(a).getDay();return Math.floor((g.time.dayOfYear(a)+ +(c+b)%7)/7)-(c!==b)});g.time[a+"s"]=c.range;g.time[a+"s"].utc=c.utc.range;g.time[a+"OfYear"]=function(a){var c=g.time.year(a).getDay();return Math.floor((g.time.dayOfYear(a)+(c+b)%7)/7)}});g.time.week=g.time.sunday;g.time.weeks=g.time.sunday.range;g.time.weeks.utc=g.time.sunday.utc.range;g.time.weekOfYear=g.time.sundayOfYear;g.time.month=pa(function(a){a=g.time.day(a);a.setDate(1);return a},function(a,b){a.setMonth(a.getMonth()+b)},function(a){return a.getMonth()});g.time.months=g.time.month.range; +g.time.months.utc=g.time.month.utc.range;g.time.year=pa(function(a){a=g.time.day(a);a.setMonth(0,1);return a},function(a,b){a.setFullYear(a.getFullYear()+b)},function(a){return a.getFullYear()});g.time.years=g.time.year.range;g.time.years.utc=g.time.year.utc.range;var hb=[1E3,5E3,15E3,3E4,6E4,3E5,9E5,18E5,36E5,108E5,216E5,432E5,864E5,1728E5,6048E5,2592E6,7776E6,31536E6],yc=[[g.time.second,1],[g.time.second,5],[g.time.second,15],[g.time.second,30],[g.time.minute,1],[g.time.minute,5],[g.time.minute, +15],[g.time.minute,30],[g.time.hour,1],[g.time.hour,3],[g.time.hour,6],[g.time.hour,12],[g.time.day,1],[g.time.day,2],[g.time.week,1],[g.time.month,1],[g.time.month,3],[g.time.year,1]],Jg=[[g.time.format("%Y"),za],[g.time.format("%B"),function(a){return a.getMonth()}],[g.time.format("%b %d"),function(a){return 1!=a.getDate()}],[g.time.format("%a %d"),function(a){return a.getDay()&&1!=a.getDate()}],[g.time.format("%I %p"),function(a){return a.getHours()}],[g.time.format("%I:%M"),function(a){return a.getMinutes()}], +[g.time.format(":%S"),function(a){return a.getSeconds()}],[g.time.format(".%L"),function(a){return a.getMilliseconds()}]],He=g.scale.linear(),Kg=ke(Jg);yc.year=function(a,b){return He.domain(a.map(fg)).ticks(b).map(oc)};g.time.scale=function(){return mc(g.scale.linear(),yc,Kg)};var Ie=yc.map(function(a){return[a[0].utc,a[1]]}),Lg=[[g.time.format.utc("%Y"),za],[g.time.format.utc("%B"),function(a){return a.getUTCMonth()}],[g.time.format.utc("%b %d"),function(a){return 1!=a.getUTCDate()}],[g.time.format.utc("%a %d"), +function(a){return a.getUTCDay()&&1!=a.getUTCDate()}],[g.time.format.utc("%I %p"),function(a){return a.getUTCHours()}],[g.time.format.utc("%I:%M"),function(a){return a.getUTCMinutes()}],[g.time.format.utc(":%S"),function(a){return a.getUTCSeconds()}],[g.time.format.utc(".%L"),function(a){return a.getUTCMilliseconds()}]],Mg=ke(Lg);Ie.year=function(a,b){return He.domain(a.map(gg)).ticks(b).map(pc)};g.time.scale.utc=function(){return mc(g.scale.linear(),Ie,Mg)};return g}(); |