# HG changeset patch # User Madhusudan.C.S # Date 1290076838 -19800 # Node ID 679a9cab4bf1e5f148ddf202451d2d674f773408 # Parent 334746111891728c7bdfdf28d4cb1c19c6d699a6# Parent 483641c2a98ab9edf7a66ce5981f83fc590ac663 Merge the south migration branch with an additional field for Laptop registration number with default branch. diff -r 483641c2a98a -r 679a9cab4bf1 buildout.cfg --- a/buildout.cfg Thu Nov 18 12:42:21 2010 +0530 +++ b/buildout.cfg Thu Nov 18 16:10:38 2010 +0530 @@ -1,5 +1,5 @@ [buildout] -parts = django tagging django-robots +parts = django tagging django-robots south eggs = Werkzeug PIL @@ -13,6 +13,7 @@ pythonpath = ${tagging:location} ${django-robots:location} + ${south:location} [tagging] recipe = infrae.subversion @@ -21,3 +22,7 @@ [django-robots] recipe = mercurialrecipe repository = http://bitbucket.org/jezdez/django-robots/ + +[south] +recipe = mercurialrecipe +repository = http://bitbucket.org/andrewgodwin/south/ diff -r 483641c2a98a -r 679a9cab4bf1 project/development.py --- a/project/development.py Thu Nov 18 12:42:21 2010 +0530 +++ b/project/development.py Thu Nov 18 16:10:38 2010 +0530 @@ -24,6 +24,7 @@ 'project.scipycon.talk', 'tagging', 'robots', + 'south', ) DATABASE_ENGINE = 'sqlite3' diff -r 483641c2a98a -r 679a9cab4bf1 project/production.py --- a/project/production.py Thu Nov 18 12:42:21 2010 +0530 +++ b/project/production.py Thu Nov 18 16:10:38 2010 +0530 @@ -23,6 +23,7 @@ 'project.scipycon.user', 'tagging', 'robots', + 'south', ) DATABASE_ENGINE = 'mysql' diff -r 483641c2a98a -r 679a9cab4bf1 project/scipycon/registration/forms.py --- a/project/scipycon/registration/forms.py Thu Nov 18 12:42:21 2010 +0530 +++ b/project/scipycon/registration/forms.py Thu Nov 18 16:10:38 2010 +0530 @@ -71,13 +71,14 @@ wifi = Wifi(user=user, scope=scope) wifi.wifi = self.cleaned_data['wifi'] + wifi.registration_id = self.cleaned_data['registration_id'] wifi.save() return wifi class Meta: model = Wifi - fields = ('wifi',) + fields = ('wifi', 'registration_id') class AccommodationForm(forms.ModelForm): diff -r 483641c2a98a -r 679a9cab4bf1 project/scipycon/registration/migrations/0001_initial.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project/scipycon/registration/migrations/0001_initial.py Thu Nov 18 16:10:38 2010 +0530 @@ -0,0 +1,153 @@ +# 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 'Wifi' + db.create_table('registration_wifi', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('scope', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['base.Event'])), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('wifi', self.gf('django.db.models.fields.CharField')(max_length=50)), + )) + db.send_create_signal('registration', ['Wifi']) + + # Adding model 'Accommodation' + db.create_table('registration_accommodation', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('scope', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['base.Event'])), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('sex', self.gf('django.db.models.fields.CharField')(max_length=50, null=True, blank=True)), + ('accommodation_required', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('accommodation_days', self.gf('django.db.models.fields.IntegerField')(default=0, blank=True)), + )) + db.send_create_signal('registration', ['Accommodation']) + + # Adding model 'Registration' + db.create_table('registration_registration', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('scope', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['base.Event'])), + ('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, db_index=True)), + ('registrant', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('organisation', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), + ('occupation', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), + ('city', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), + ('postcode', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)), + ('phone_num', self.gf('django.db.models.fields.CharField')(max_length=14, blank=True)), + ('tshirt', self.gf('django.db.models.fields.CharField')(max_length=3)), + ('conference', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('tutorial', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('sprint', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('final_conference', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('final_tutorial', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('final_sprint', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('allow_contact', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('submitted', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('last_mod', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), + )) + db.send_create_signal('registration', ['Registration']) + + + def backwards(self, orm): + + # Deleting model 'Wifi' + db.delete_table('registration_wifi') + + # Deleting model 'Accommodation' + db.delete_table('registration_accommodation') + + # Deleting model 'Registration' + db.delete_table('registration_registration') + + + 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'}) + }, + 'base.event': { + 'Meta': {'object_name': 'Event'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'scope': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'turn': ('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'}) + }, + 'registration.accommodation': { + 'Meta': {'object_name': 'Accommodation'}, + 'accommodation_days': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'accommodation_required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}), + 'sex': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'registration.registration': { + 'Meta': {'object_name': 'Registration'}, + 'allow_contact': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'conference': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'final_conference': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'final_sprint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'final_tutorial': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_mod': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'organisation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'phone_num': ('django.db.models.fields.CharField', [], {'max_length': '14', 'blank': 'True'}), + 'postcode': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'registrant': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}), + 'sprint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'submitted': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'tshirt': ('django.db.models.fields.CharField', [], {'max_length': '3'}), + 'tutorial': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'registration.wifi': { + 'Meta': {'object_name': 'Wifi'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'wifi': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + } + } + + complete_apps = ['registration'] diff -r 483641c2a98a -r 679a9cab4bf1 project/scipycon/registration/migrations/0002_auto__add_field_wifi_registration_id.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/project/scipycon/registration/migrations/0002_auto__add_field_wifi_registration_id.py Thu Nov 18 16:10:38 2010 +0530 @@ -0,0 +1,107 @@ +# 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 'Wifi.registration_id' + db.add_column('registration_wifi', 'registration_id', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), keep_default=False) + + + def backwards(self, orm): + + # Deleting field 'Wifi.registration_id' + db.delete_column('registration_wifi', 'registration_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'}) + }, + 'base.event': { + 'Meta': {'object_name': 'Event'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'scope': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'status': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'turn': ('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'}) + }, + 'registration.accommodation': { + 'Meta': {'object_name': 'Accommodation'}, + 'accommodation_days': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'accommodation_required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}), + 'sex': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'registration.registration': { + 'Meta': {'object_name': 'Registration'}, + 'allow_contact': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'conference': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'final_conference': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'final_sprint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'final_tutorial': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'last_mod': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'occupation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'organisation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'phone_num': ('django.db.models.fields.CharField', [], {'max_length': '14', 'blank': 'True'}), + 'postcode': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'registrant': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}), + 'sprint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'submitted': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'tshirt': ('django.db.models.fields.CharField', [], {'max_length': '3'}), + 'tutorial': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'registration.wifi': { + 'Meta': {'object_name': 'Wifi'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'registration_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'scope': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['base.Event']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'wifi': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + } + } + + complete_apps = ['registration'] diff -r 483641c2a98a -r 679a9cab4bf1 project/scipycon/registration/migrations/__init__.py diff -r 483641c2a98a -r 679a9cab4bf1 project/scipycon/registration/models.py --- a/project/scipycon/registration/models.py Thu Nov 18 12:42:21 2010 +0530 +++ b/project/scipycon/registration/models.py Thu Nov 18 16:10:38 2010 +0530 @@ -30,6 +30,7 @@ ('Female', 'Female'), ) + class Wifi(base_models.ScopedBase): """Defines wifi options at SciPy.in """ @@ -39,6 +40,17 @@ wifi = models.CharField(max_length=50, choices=WIFI_CHOICES, help_text=WIFI_HELP, verbose_name="Laptop") + registration_id = models.CharField( + max_length=255, verbose_name="Identification Number", + help_text="- Provide the serial or identification number at the " + "back of your laptop using which your laptop can be uniquely " + "identified. Ex: 8BDB8FB (Service Tag on Dell Laptops).
- " + "This is for security reasons and will be used while you enter and " + "leave the venue.
- Please don't provide the model number " + "like Dell Inspiron 1545. There may be many laptops of that model " + "and hence your laptop cannot be uniquely identified.", + blank=True, null=True) + class Accommodation(base_models.ScopedBase): """Defines accommodation information for SciPy.in diff -r 483641c2a98a -r 679a9cab4bf1 project/scipycon/registration/views.py --- a/project/scipycon/registration/views.py Thu Nov 18 12:42:21 2010 +0530 +++ b/project/scipycon/registration/views.py Thu Nov 18 16:10:38 2010 +0530 @@ -121,7 +121,8 @@ wifi_form = WifiForm(initial={ 'user': wifi.user, 'scope': wifi.scope, - 'wifi': wifi.wifi + 'wifi': wifi.wifi, + 'registration_id': wifi.registration_id }) acco_form = AccommodationForm(initial={ 'user': acco.user,