commit 63244bd19b0aacfe1e41495886b0aa5d6362409f
Author: Julian Binder <jabinder@andrew.cmu.edu>
Date:   Sun Jan 27 16:57:15 2013 -0500

    jeff made changes to model and added migrations

diff --git a/crm/.gitignore b/crm/.gitignore
new file mode 100644
index 0000000..0d20b64
--- /dev/null
+++ b/crm/.gitignore
@@ -0,0 +1 @@
+*.pyc
diff --git a/crm/manage.py b/crm/manage.py
old mode 100644
new mode 100755
diff --git a/crm/robocrm/migrations/0003_auto__chg_field_machine_dstart__chg_field_machine_dend__chg_field_robo.py b/crm/robocrm/migrations/0003_auto__chg_field_machine_dstart__chg_field_machine_dend__chg_field_robo.py
new file mode 100644
index 0000000..e4d207a
--- /dev/null
+++ b/crm/robocrm/migrations/0003_auto__chg_field_machine_dstart__chg_field_machine_dend__chg_field_robo.py
@@ -0,0 +1,134 @@
+# -*- 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):
+
+        # Changing field 'Machine.dstart'
+        db.alter_column('robocrm_machine', 'dstart', self.gf('django.db.models.fields.DateTimeField')(null=True))
+
+        # Changing field 'Machine.dend'
+        db.alter_column('robocrm_machine', 'dend', self.gf('django.db.models.fields.DateTimeField')(null=True))
+
+        # Changing field 'RoboResource.time_due'
+        db.alter_column('robocrm_roboresource', 'time_due', self.gf('django.db.models.fields.DateTimeField')(null=True))
+
+        # Changing field 'RoboResource.time_out'
+        db.alter_column('robocrm_roboresource', 'time_out', self.gf('django.db.models.fields.DateTimeField')(null=True))
+
+    def backwards(self, orm):
+
+        # Changing field 'Machine.dstart'
+        db.alter_column('robocrm_machine', 'dstart', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2013, 1, 5, 0, 0)))
+
+        # Changing field 'Machine.dend'
+        db.alter_column('robocrm_machine', 'dend', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2013, 1, 5, 0, 0)))
+
+        # Changing field 'RoboResource.time_due'
+        db.alter_column('robocrm_roboresource', 'time_due', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2013, 1, 5, 0, 0)))
+
+        # User chose to not deal with backwards NULL issues for 'RoboResource.time_out'
+        raise RuntimeError("Cannot reverse this migration. 'RoboResource.time_out' and its values cannot be restored.")
+
+    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'})
+        },
+        'robocrm.event': {
+            'Meta': {'object_name': 'Event'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'imgurl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'machine': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Machine']"}),
+            'matuse': ('django.db.models.fields.TextField', [], {}),
+            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Project']"}),
+            'succ': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'tend': ('django.db.models.fields.DateTimeField', [], {}),
+            'tstart': ('django.db.models.fields.DateTimeField', [], {}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.machine': {
+            'Meta': {'object_name': 'Machine'},
+            'dend': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'dstart': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '10', 'primary_key': 'True'}),
+            'maint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '20'})
+        },
+        'robocrm.project': {
+            'Meta': {'object_name': 'Project'},
+            'charge': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'primuser': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pri+'", 'to': "orm['robocrm.RoboUser']"}),
+            'users': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'u+'", 'symmetrical': 'False', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.roboresource': {
+            'Meta': {'object_name': 'RoboResource'},
+            'checked_out': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'primary_key': 'True'}),
+            'officer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'o+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"}),
+            'time_due': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'time_out': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'u+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.robouser': {
+            'Meta': {'object_name': 'RoboUser'},
+            'bench_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'cell': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '0', 'blank': 'True'}),
+            'class_level': ('django.db.models.fields.CharField', [], {'default': "'FR'", 'max_length': '2'}),
+            'club_rank': ('django.db.models.fields.CharField', [], {'default': "'JM'", 'max_length': '2'}),
+            'dues_paid': ('django.db.models.fields.DateField', [], {}),
+            'grad_year': ('django.db.models.fields.DecimalField', [], {'max_digits': '4', 'decimal_places': '0'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'machines': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['robocrm.Machine']", 'symmetrical': 'False'}),
+            'major': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
+            'rfid': ('django.db.models.fields.DecimalField', [], {'max_digits': '10', 'decimal_places': '0', 'blank': 'True'}),
+            'sec_major_one': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
+            'sec_major_two': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
+            'shop_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'tshirt_rec': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
+        }
+    }
+
+    complete_apps = ['robocrm']
\ No newline at end of file
diff --git a/crm/robocrm/migrations/0004_auto__chg_field_robouser_sec_major_one__chg_field_robouser_cell__chg_f.py b/crm/robocrm/migrations/0004_auto__chg_field_robouser_sec_major_one__chg_field_robouser_cell__chg_f.py
new file mode 100644
index 0000000..c86024a
--- /dev/null
+++ b/crm/robocrm/migrations/0004_auto__chg_field_robouser_sec_major_one__chg_field_robouser_cell__chg_f.py
@@ -0,0 +1,128 @@
+# -*- 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):
+
+        # Changing field 'RoboUser.sec_major_one'
+        db.alter_column('robocrm_robouser', 'sec_major_one', self.gf('django.db.models.fields.CharField')(max_length=20, null=True))
+
+        # Changing field 'RoboUser.cell'
+        db.alter_column('robocrm_robouser', 'cell', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=10, decimal_places=0))
+
+        # Changing field 'RoboUser.sec_major_two'
+        db.alter_column('robocrm_robouser', 'sec_major_two', self.gf('django.db.models.fields.CharField')(max_length=20, null=True))
+
+    def backwards(self, orm):
+
+        # Changing field 'RoboUser.sec_major_one'
+        db.alter_column('robocrm_robouser', 'sec_major_one', self.gf('django.db.models.fields.CharField')(default='', max_length=20))
+
+        # User chose to not deal with backwards NULL issues for 'RoboUser.cell'
+        raise RuntimeError("Cannot reverse this migration. 'RoboUser.cell' and its values cannot be restored.")
+
+        # Changing field 'RoboUser.sec_major_two'
+        db.alter_column('robocrm_robouser', 'sec_major_two', self.gf('django.db.models.fields.CharField')(default='', max_length=20))
+
+    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'})
+        },
+        'robocrm.event': {
+            'Meta': {'object_name': 'Event'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'imgurl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'machine': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Machine']"}),
+            'matuse': ('django.db.models.fields.TextField', [], {}),
+            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Project']"}),
+            'succ': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'tend': ('django.db.models.fields.DateTimeField', [], {}),
+            'tstart': ('django.db.models.fields.DateTimeField', [], {}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.machine': {
+            'Meta': {'object_name': 'Machine'},
+            'dend': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'dstart': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '10', 'primary_key': 'True'}),
+            'maint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '20'})
+        },
+        'robocrm.project': {
+            'Meta': {'object_name': 'Project'},
+            'charge': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'primuser': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pri+'", 'to': "orm['robocrm.RoboUser']"}),
+            'users': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'u+'", 'symmetrical': 'False', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.roboresource': {
+            'Meta': {'object_name': 'RoboResource'},
+            'checked_out': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'primary_key': 'True'}),
+            'officer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'o+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"}),
+            'time_due': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'time_out': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'u+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.robouser': {
+            'Meta': {'object_name': 'RoboUser'},
+            'bench_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'cell': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '0', 'blank': 'True'}),
+            'class_level': ('django.db.models.fields.CharField', [], {'default': "'FR'", 'max_length': '2'}),
+            'club_rank': ('django.db.models.fields.CharField', [], {'default': "'JM'", 'max_length': '2'}),
+            'dues_paid': ('django.db.models.fields.DateField', [], {}),
+            'grad_year': ('django.db.models.fields.DecimalField', [], {'max_digits': '4', 'decimal_places': '0'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'machines': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['robocrm.Machine']", 'symmetrical': 'False'}),
+            'major': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
+            'rfid': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '10', 'decimal_places': '0', 'blank': 'True'}),
+            'sec_major_one': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'sec_major_two': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'shop_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'tshirt_rec': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
+        }
+    }
+
+    complete_apps = ['robocrm']
\ No newline at end of file
diff --git a/crm/robocrm/migrations/0005_auto__chg_field_robouser_rfid.py b/crm/robocrm/migrations/0005_auto__chg_field_robouser_rfid.py
new file mode 100644
index 0000000..9acfe9a
--- /dev/null
+++ b/crm/robocrm/migrations/0005_auto__chg_field_robouser_rfid.py
@@ -0,0 +1,116 @@
+# -*- 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):
+
+        # Changing field 'RoboUser.rfid'
+        db.alter_column('robocrm_robouser', 'rfid', self.gf('django.db.models.fields.CharField')(max_length=10))
+
+    def backwards(self, orm):
+
+        # Changing field 'RoboUser.rfid'
+        db.alter_column('robocrm_robouser', 'rfid', self.gf('django.db.models.fields.DecimalField')(max_digits=10, decimal_places=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'})
+        },
+        'robocrm.event': {
+            'Meta': {'object_name': 'Event'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'imgurl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'machine': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Machine']"}),
+            'matuse': ('django.db.models.fields.TextField', [], {}),
+            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Project']"}),
+            'succ': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'tend': ('django.db.models.fields.DateTimeField', [], {}),
+            'tstart': ('django.db.models.fields.DateTimeField', [], {}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.machine': {
+            'Meta': {'object_name': 'Machine'},
+            'dend': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'dstart': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '10', 'primary_key': 'True'}),
+            'maint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '20'})
+        },
+        'robocrm.project': {
+            'Meta': {'object_name': 'Project'},
+            'charge': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'primuser': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pri+'", 'to': "orm['robocrm.RoboUser']"}),
+            'users': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'u+'", 'symmetrical': 'False', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.roboresource': {
+            'Meta': {'object_name': 'RoboResource'},
+            'checked_out': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'primary_key': 'True'}),
+            'officer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'o+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"}),
+            'time_due': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'time_out': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'u+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.robouser': {
+            'Meta': {'object_name': 'RoboUser'},
+            'bench_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'cell': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '0', 'blank': 'True'}),
+            'class_level': ('django.db.models.fields.CharField', [], {'default': "'FR'", 'max_length': '2'}),
+            'club_rank': ('django.db.models.fields.CharField', [], {'default': "'JM'", 'max_length': '2'}),
+            'dues_paid': ('django.db.models.fields.DateField', [], {}),
+            'grad_year': ('django.db.models.fields.DecimalField', [], {'max_digits': '4', 'decimal_places': '0'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'machines': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['robocrm.Machine']", 'null': 'True', 'blank': 'True'}),
+            'major': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
+            'rfid': ('django.db.models.fields.CharField', [], {'default': '0', 'max_length': '10', 'blank': 'True'}),
+            'sec_major_one': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'sec_major_two': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'shop_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'tshirt_rec': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
+        }
+    }
+
+    complete_apps = ['robocrm']
\ No newline at end of file
diff --git a/crm/robocrm/migrations/0006_auto__chg_field_robouser_grad_year.py b/crm/robocrm/migrations/0006_auto__chg_field_robouser_grad_year.py
new file mode 100644
index 0000000..ef1f7cf
--- /dev/null
+++ b/crm/robocrm/migrations/0006_auto__chg_field_robouser_grad_year.py
@@ -0,0 +1,116 @@
+# -*- 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):
+
+        # Changing field 'RoboUser.grad_year'
+        db.alter_column('robocrm_robouser', 'grad_year', self.gf('django.db.models.fields.IntegerField')())
+
+    def backwards(self, orm):
+
+        # Changing field 'RoboUser.grad_year'
+        db.alter_column('robocrm_robouser', 'grad_year', self.gf('django.db.models.fields.DecimalField')(max_digits=4, decimal_places=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'})
+        },
+        'robocrm.event': {
+            'Meta': {'object_name': 'Event'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'imgurl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'machine': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Machine']"}),
+            'matuse': ('django.db.models.fields.TextField', [], {}),
+            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Project']"}),
+            'succ': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'tend': ('django.db.models.fields.DateTimeField', [], {}),
+            'tstart': ('django.db.models.fields.DateTimeField', [], {}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.machine': {
+            'Meta': {'object_name': 'Machine'},
+            'dend': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'dstart': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '10', 'primary_key': 'True'}),
+            'maint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '20'})
+        },
+        'robocrm.project': {
+            'Meta': {'object_name': 'Project'},
+            'charge': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'primuser': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pri+'", 'to': "orm['robocrm.RoboUser']"}),
+            'users': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'u+'", 'symmetrical': 'False', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.roboresource': {
+            'Meta': {'object_name': 'RoboResource'},
+            'checked_out': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'primary_key': 'True'}),
+            'officer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'o+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"}),
+            'time_due': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'time_out': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'u+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.robouser': {
+            'Meta': {'object_name': 'RoboUser'},
+            'bench_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'cell': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '0', 'blank': 'True'}),
+            'class_level': ('django.db.models.fields.CharField', [], {'default': "'UG'", 'max_length': '2'}),
+            'club_rank': ('django.db.models.fields.CharField', [], {'default': "'JM'", 'max_length': '2'}),
+            'dues_paid': ('django.db.models.fields.DateField', [], {}),
+            'grad_year': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'machines': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['robocrm.Machine']", 'null': 'True', 'blank': 'True'}),
+            'major': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
+            'rfid': ('django.db.models.fields.CharField', [], {'default': '0', 'max_length': '10', 'blank': 'True'}),
+            'sec_major_one': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'sec_major_two': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'shop_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'tshirt_rec': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
+        }
+    }
+
+    complete_apps = ['robocrm']
\ No newline at end of file
diff --git a/crm/robocrm/migrations/0007_auto__chg_field_robouser_grad_year.py b/crm/robocrm/migrations/0007_auto__chg_field_robouser_grad_year.py
new file mode 100644
index 0000000..569e3aa
--- /dev/null
+++ b/crm/robocrm/migrations/0007_auto__chg_field_robouser_grad_year.py
@@ -0,0 +1,116 @@
+# -*- 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):
+
+        # Changing field 'RoboUser.grad_year'
+        db.alter_column('robocrm_robouser', 'grad_year', self.gf('django.db.models.fields.IntegerField')(null=True))
+
+    def backwards(self, orm):
+
+        # Changing field 'RoboUser.grad_year'
+        db.alter_column('robocrm_robouser', 'grad_year', self.gf('django.db.models.fields.IntegerField')(default=2013))
+
+    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'})
+        },
+        'robocrm.event': {
+            'Meta': {'object_name': 'Event'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'imgurl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'machine': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Machine']"}),
+            'matuse': ('django.db.models.fields.TextField', [], {}),
+            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Project']"}),
+            'succ': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'tend': ('django.db.models.fields.DateTimeField', [], {}),
+            'tstart': ('django.db.models.fields.DateTimeField', [], {}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.machine': {
+            'Meta': {'object_name': 'Machine'},
+            'dend': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'dstart': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '10', 'primary_key': 'True'}),
+            'maint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '20'})
+        },
+        'robocrm.project': {
+            'Meta': {'object_name': 'Project'},
+            'charge': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'primuser': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pri+'", 'to': "orm['robocrm.RoboUser']"}),
+            'users': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'u+'", 'symmetrical': 'False', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.roboresource': {
+            'Meta': {'object_name': 'RoboResource'},
+            'checked_out': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'primary_key': 'True'}),
+            'officer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'o+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"}),
+            'time_due': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'time_out': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'u+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.robouser': {
+            'Meta': {'object_name': 'RoboUser'},
+            'bench_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'cell': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '0', 'blank': 'True'}),
+            'class_level': ('django.db.models.fields.CharField', [], {'default': "'UG'", 'max_length': '2'}),
+            'club_rank': ('django.db.models.fields.CharField', [], {'default': "'JM'", 'max_length': '2'}),
+            'dues_paid': ('django.db.models.fields.DateField', [], {}),
+            'grad_year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'machines': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['robocrm.Machine']", 'null': 'True', 'blank': 'True'}),
+            'major': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
+            'rfid': ('django.db.models.fields.CharField', [], {'default': '0', 'max_length': '10', 'blank': 'True'}),
+            'sec_major_one': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'sec_major_two': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'shop_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'tshirt_rec': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
+        }
+    }
+
+    complete_apps = ['robocrm']
\ No newline at end of file
diff --git a/crm/robocrm/migrations/0008_auto__chg_field_robouser_dues_paid.py b/crm/robocrm/migrations/0008_auto__chg_field_robouser_dues_paid.py
new file mode 100644
index 0000000..3908e55
--- /dev/null
+++ b/crm/robocrm/migrations/0008_auto__chg_field_robouser_dues_paid.py
@@ -0,0 +1,116 @@
+# -*- 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):
+
+        # Changing field 'RoboUser.dues_paid'
+        db.alter_column('robocrm_robouser', 'dues_paid', self.gf('django.db.models.fields.DateField')(null=True))
+
+    def backwards(self, orm):
+
+        # Changing field 'RoboUser.dues_paid'
+        db.alter_column('robocrm_robouser', 'dues_paid', self.gf('django.db.models.fields.DateField')(default=datetime.datetime(2013, 1, 27, 0, 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'})
+        },
+        'robocrm.event': {
+            'Meta': {'object_name': 'Event'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'imgurl': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
+            'machine': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Machine']"}),
+            'matuse': ('django.db.models.fields.TextField', [], {}),
+            'project': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.Project']"}),
+            'succ': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'tend': ('django.db.models.fields.DateTimeField', [], {}),
+            'tstart': ('django.db.models.fields.DateTimeField', [], {}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.machine': {
+            'Meta': {'object_name': 'Machine'},
+            'dend': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'dstart': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '10', 'primary_key': 'True'}),
+            'maint': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '20'})
+        },
+        'robocrm.project': {
+            'Meta': {'object_name': 'Project'},
+            'charge': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'primuser': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pri+'", 'to': "orm['robocrm.RoboUser']"}),
+            'users': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'u+'", 'symmetrical': 'False', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.roboresource': {
+            'Meta': {'object_name': 'RoboResource'},
+            'checked_out': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '20', 'primary_key': 'True'}),
+            'officer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'o+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"}),
+            'time_due': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'time_out': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'u+'", 'blank': 'True', 'to': "orm['robocrm.RoboUser']"})
+        },
+        'robocrm.robouser': {
+            'Meta': {'object_name': 'RoboUser'},
+            'bench_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'cell': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '10', 'decimal_places': '0', 'blank': 'True'}),
+            'class_level': ('django.db.models.fields.CharField', [], {'default': "'UG'", 'max_length': '2'}),
+            'club_rank': ('django.db.models.fields.CharField', [], {'default': "'JM'", 'max_length': '2'}),
+            'dues_paid': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'grad_year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'machines': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['robocrm.Machine']", 'null': 'True', 'blank': 'True'}),
+            'major': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
+            'rfid': ('django.db.models.fields.CharField', [], {'default': '0', 'max_length': '10', 'blank': 'True'}),
+            'sec_major_one': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'sec_major_two': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'shop_status': ('django.db.models.fields.CharField', [], {'default': "'GD'", 'max_length': '2'}),
+            'tshirt_rec': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
+        }
+    }
+
+    complete_apps = ['robocrm']
\ No newline at end of file
diff --git a/crm/robocrm/models.py b/crm/robocrm/models.py
index 2a31052..1ff1cf4 100644
--- a/crm/robocrm/models.py
+++ b/crm/robocrm/models.py
@@ -28,26 +28,23 @@ class RoboUser(models.Model):
   cell = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True)
 
   # Class Level
-  FRESHMAN = 'FR'
-  SOPHOMORE = 'SO'
-  JUNIOR = 'JR'
-  SENIOR = 'SR'
-  MASTERS = 'MS'
-  DOCTORAL = 'DR'
+  UNDERGRAD = 'UG'
+  GRADUATE = 'GR'
+  AFFILIATE = 'AF'
+  OTHER = 'OH'
   CLASS_LEVEL_CHOICES = (
-      (FRESHMAN, 'Freshman'),
-      (SOPHOMORE, 'Sophomore'),
-      (JUNIOR, 'Junior'),
-      (SENIOR, 'Senior'),
-      (MASTERS, 'Masters'),
-      (DOCTORAL, 'Doctoral'),
+	(UNDERGRAD, 'Undergraduate'),
+	(GRADUATE, 'Graduate Student'),
+	(AFFILIATE, 'Non-Student CMU Affiliate'),
+	(OTHER, 'Other User'),
   )
   class_level = models.CharField(max_length=2, 
                                  choices=CLASS_LEVEL_CHOICES,
-                                 default=FRESHMAN)
+                                 default=UNDERGRAD)
 
   # Graduation Year
-  grad_year = models.DecimalField(max_digits=4, decimal_places=0)
+  #grad_year = models.DecimalField(max_digits=4, decimal_places=0)
+  grad_year = models.IntegerField(blank=True, null=True)
 
   # Primary and Secondary Major/Minors
   major = models.CharField(max_length=20)
@@ -68,7 +65,7 @@ class RoboUser(models.Model):
                                default=JUNIOR_MEM)
   
   # Roboclub Transaction Info
-  dues_paid = models.DateField()
+  dues_paid = models.DateField(blank=True, null=True)
   tshirt_rec = models.BooleanField(default=False)
   
   # Shop and E-Bench Status
diff --git a/crm/robocrm/models.pyc b/crm/robocrm/models.pyc
index aa8f527..ffb9bde 100644
Binary files a/crm/robocrm/models.pyc and b/crm/robocrm/models.pyc differ
