From 09da3de41d773c229094a0ef5a9cc8facf1eab61 Mon Sep 17 00:00:00 2001 From: "Jonathan S. Katz" Date: Wed, 14 Sep 2011 10:50:34 -0400 Subject: [PATCH] Fixed bug with south migration additions, added demo models --- demo/__init__.py | 0 demo/admin.py | 7 ++++ demo/migrations/0001_initial.py | 71 +++++++++++++++++++++++++++++++++ demo/migrations/__init__.py | 0 demo/models.py | 15 +++++++ demo/tests.py | 16 ++++++++ demo/views.py | 1 + ext/models.py | 10 ++--- settings.py | 1 + 9 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 demo/__init__.py create mode 100644 demo/admin.py create mode 100644 demo/migrations/0001_initial.py create mode 100644 demo/migrations/__init__.py create mode 100644 demo/models.py create mode 100644 demo/tests.py create mode 100644 demo/views.py diff --git a/demo/__init__.py b/demo/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/demo/admin.py b/demo/admin.py new file mode 100644 index 0000000..68056a8 --- /dev/null +++ b/demo/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin + +from models import * + +admin.site.register(Map) +admin.site.register(Lotto) +admin.site.register(Subscription) diff --git a/demo/migrations/0001_initial.py b/demo/migrations/0001_initial.py new file mode 100644 index 0000000..383c3d4 --- /dev/null +++ b/demo/migrations/0001_initial.py @@ -0,0 +1,71 @@ +# 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 'Map' + db.create_table('demo_map', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('geocode', self.gf('ext.models.PointField')()), + )) + db.send_create_signal('demo', ['Map']) + + # Adding model 'Lotto' + db.create_table('demo_lotto', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('numbers', self.gf('ext.models.IntegerArrayField')(null=True, blank=True)), + )) + db.send_create_signal('demo', ['Lotto']) + + # Adding model 'Subscription' + db.create_table('demo_subscription', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('period', self.gf('ext.models.DayIntervalField')()), + ('price', self.gf('ext.models.MoneyField')(null=True, blank=True)), + )) + db.send_create_signal('demo', ['Subscription']) + + + def backwards(self, orm): + + # Deleting model 'Map' + db.delete_table('demo_map') + + # Deleting model 'Lotto' + db.delete_table('demo_lotto') + + # Deleting model 'Subscription' + db.delete_table('demo_subscription') + + + models = { + 'demo.lotto': { + 'Meta': {'object_name': 'Lotto'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'numbers': ('ext.models.IntegerArrayField', [], {'null': 'True', 'blank': 'True'}) + }, + 'demo.map': { + 'Meta': {'object_name': 'Map'}, + 'geocode': ('ext.models.PointField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'demo.subscription': { + 'Meta': {'object_name': 'Subscription'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'period': ('ext.models.DayIntervalField', [], {}), + 'price': ('ext.models.MoneyField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['demo'] diff --git a/demo/migrations/__init__.py b/demo/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/demo/models.py b/demo/models.py new file mode 100644 index 0000000..67149d7 --- /dev/null +++ b/demo/models.py @@ -0,0 +1,15 @@ +from django.db import models +from ext.models import DayIntervalField, EnumField, IntegerArrayField, MoneyField, PointField + +class Map(models.Model): + name = models.CharField(max_length=255) + geocode = PointField() + +class Lotto(models.Model): + name = models.CharField(max_length=255) + numbers = IntegerArrayField(blank=True, null=True) + +class Subscription(models.Model): + name = models.CharField(max_length=255) + period = DayIntervalField() + price = MoneyField(blank=True, null=True) \ No newline at end of file diff --git a/demo/tests.py b/demo/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/demo/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/demo/views.py b/demo/views.py new file mode 100644 index 0000000..60f00ef --- /dev/null +++ b/demo/views.py @@ -0,0 +1 @@ +# Create your views here. diff --git a/ext/models.py b/ext/models.py index cbacfb4..04622bd 100644 --- a/ext/models.py +++ b/ext/models.py @@ -121,8 +121,8 @@ def __init__(self, *args, **kwargs): def db_type(self, connection): return 'point' -add_introspection_rules([], ["^ext\.DayIntervalField"]) -add_introspection_rules([], ["^ext\.EnumField"]) -add_introspection_rules([], ["^ext\.IntegerArrayField"]) -add_introspection_rules([], ["^ext\.MoneyField"]) -add_introspection_rules([], ["^ext\.PointField"]) +add_introspection_rules([], ["^ext\.models\.DayIntervalField"]) +add_introspection_rules([], ["^ext\.models\.EnumField"]) +add_introspection_rules([], ["^ext\.models\.IntegerArrayField"]) +add_introspection_rules([], ["^ext\.models\.MoneyField"]) +add_introspection_rules([], ["^ext\.models\.PointField"]) diff --git a/settings.py b/settings.py index ff3f7d3..ddc61d0 100644 --- a/settings.py +++ b/settings.py @@ -122,6 +122,7 @@ 'django.contrib.admin', 'django.contrib.admindocs', 'ext', + 'demo', 'south', # handles migrations )