diff --git a/symposion/reviews/migrations/0001_initial.py b/symposion/reviews/migrations/0001_initial.py new file mode 100644 index 0000000000000000000000000000000000000000..76df4e2f8f571dbcfa382b8764c7131f77cefcb1 --- /dev/null +++ b/symposion/reviews/migrations/0001_initial.py @@ -0,0 +1,316 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as 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 'ReviewAssignment' + db.create_table('reviews_reviewassignment', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('proposal', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['proposals.ProposalBase'])), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('origin', self.gf('django.db.models.fields.IntegerField')()), + ('assigned_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), + ('opted_out', self.gf('django.db.models.fields.BooleanField')(default=False)), + )) + db.send_create_signal('reviews', ['ReviewAssignment']) + + # Adding model 'ProposalMessage' + db.create_table('reviews_proposalmessage', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('proposal', self.gf('django.db.models.fields.related.ForeignKey')(related_name='messages', to=orm['proposals.ProposalBase'])), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('message', self.gf('markitup.fields.MarkupField')(no_rendered_field=True)), + ('submitted_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), + ('_message_rendered', self.gf('django.db.models.fields.TextField')(blank=True)), + )) + db.send_create_signal('reviews', ['ProposalMessage']) + + # Adding model 'Review' + db.create_table('reviews_review', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('proposal', self.gf('django.db.models.fields.related.ForeignKey')(related_name='reviews', to=orm['proposals.ProposalBase'])), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('vote', self.gf('django.db.models.fields.CharField')(max_length=2, blank=True)), + ('comment', self.gf('markitup.fields.MarkupField')(no_rendered_field=True)), + ('submitted_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), + ('_comment_rendered', self.gf('django.db.models.fields.TextField')(blank=True)), + )) + db.send_create_signal('reviews', ['Review']) + + # Adding model 'LatestVote' + db.create_table('reviews_latestvote', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('proposal', self.gf('django.db.models.fields.related.ForeignKey')(related_name='votes', to=orm['proposals.ProposalBase'])), + ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('vote', self.gf('django.db.models.fields.CharField')(max_length=2)), + ('submitted_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), + )) + db.send_create_signal('reviews', ['LatestVote']) + + # Adding unique constraint on 'LatestVote', fields ['proposal', 'user'] + db.create_unique('reviews_latestvote', ['proposal_id', 'user_id']) + + # Adding model 'ProposalResult' + db.create_table('reviews_proposalresult', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('proposal', self.gf('django.db.models.fields.related.OneToOneField')(related_name='result', unique=True, to=orm['proposals.ProposalBase'])), + ('score', self.gf('django.db.models.fields.DecimalField')(default='0.00', max_digits=5, decimal_places=2)), + ('comment_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)), + ('vote_count', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)), + ('plus_one', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)), + ('plus_zero', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)), + ('minus_zero', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)), + ('minus_one', self.gf('django.db.models.fields.PositiveIntegerField')(default=0)), + ('accepted', self.gf('django.db.models.fields.NullBooleanField')(default=None, null=True, blank=True)), + ('status', self.gf('django.db.models.fields.CharField')(default='undecided', max_length=20)), + )) + db.send_create_signal('reviews', ['ProposalResult']) + + # Adding model 'Comment' + db.create_table('reviews_comment', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('proposal', self.gf('django.db.models.fields.related.ForeignKey')(related_name='comments', to=orm['proposals.ProposalBase'])), + ('commenter', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])), + ('text', self.gf('markitup.fields.MarkupField')(no_rendered_field=True)), + ('public', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('commented_at', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), + ('_text_rendered', self.gf('django.db.models.fields.TextField')(blank=True)), + )) + db.send_create_signal('reviews', ['Comment']) + + # Adding model 'NotificationTemplate' + db.create_table('reviews_notificationtemplate', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('label', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('from_address', self.gf('django.db.models.fields.EmailField')(max_length=75)), + ('subject', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('body', self.gf('django.db.models.fields.TextField')()), + )) + db.send_create_signal('reviews', ['NotificationTemplate']) + + # Adding model 'ResultNotification' + db.create_table('reviews_resultnotification', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('proposal', self.gf('django.db.models.fields.related.ForeignKey')(related_name='notifications', to=orm['proposals.ProposalBase'])), + ('template', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['reviews.NotificationTemplate'], null=True, on_delete=models.SET_NULL, blank=True)), + ('timestamp', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), + ('to_address', self.gf('django.db.models.fields.EmailField')(max_length=75)), + ('from_address', self.gf('django.db.models.fields.EmailField')(max_length=75)), + ('subject', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('body', self.gf('django.db.models.fields.TextField')()), + )) + db.send_create_signal('reviews', ['ResultNotification']) + + + def backwards(self, orm): + # Removing unique constraint on 'LatestVote', fields ['proposal', 'user'] + db.delete_unique('reviews_latestvote', ['proposal_id', 'user_id']) + + # Deleting model 'ReviewAssignment' + db.delete_table('reviews_reviewassignment') + + # Deleting model 'ProposalMessage' + db.delete_table('reviews_proposalmessage') + + # Deleting model 'Review' + db.delete_table('reviews_review') + + # Deleting model 'LatestVote' + db.delete_table('reviews_latestvote') + + # Deleting model 'ProposalResult' + db.delete_table('reviews_proposalresult') + + # Deleting model 'Comment' + db.delete_table('reviews_comment') + + # Deleting model 'NotificationTemplate' + db.delete_table('reviews_notificationtemplate') + + # Deleting model 'ResultNotification' + db.delete_table('reviews_resultnotification') + + + 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'}) + }, + 'conference.conference': { + 'Meta': {'object_name': 'Conference'}, + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'timezone': ('timezones.fields.TimeZoneField', [], {'default': "'US/Eastern'", 'max_length': '100', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'conference.section': { + 'Meta': {'ordering': "['start_date']", 'object_name': 'Section'}, + 'conference': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['conference.Conference']"}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}) + }, + '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'}) + }, + 'proposals.additionalspeaker': { + 'Meta': {'unique_together': "(('speaker', 'proposalbase'),)", 'object_name': 'AdditionalSpeaker', 'db_table': "'proposals_proposalbase_additional_speakers'"}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'proposalbase': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['proposals.ProposalBase']"}), + 'speaker': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['speakers.Speaker']"}), + 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}) + }, + 'proposals.proposalbase': { + 'Meta': {'object_name': 'ProposalBase'}, + '_abstract_rendered': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + '_additional_notes_rendered': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'abstract': ('markitup.fields.MarkupField', [], {'no_rendered_field': 'True'}), + 'additional_notes': ('markitup.fields.MarkupField', [], {'no_rendered_field': 'True', 'blank': 'True'}), + 'additional_speakers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['speakers.Speaker']", 'symmetrical': 'False', 'through': "orm['proposals.AdditionalSpeaker']", 'blank': 'True'}), + 'cancelled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'description': ('django.db.models.fields.TextField', [], {'max_length': '400'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'kind': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['proposals.ProposalKind']"}), + 'speaker': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'proposals'", 'to': "orm['speakers.Speaker']"}), + 'submitted': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'proposals.proposalkind': { + 'Meta': {'object_name': 'ProposalKind'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'section': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'proposal_kinds'", 'to': "orm['conference.Section']"}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}) + }, + 'reviews.comment': { + 'Meta': {'object_name': 'Comment'}, + '_text_rendered': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'commented_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'commenter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'proposal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['proposals.ProposalBase']"}), + 'public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'text': ('markitup.fields.MarkupField', [], {'no_rendered_field': 'True'}) + }, + 'reviews.latestvote': { + 'Meta': {'unique_together': "[('proposal', 'user')]", 'object_name': 'LatestVote'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'proposal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['proposals.ProposalBase']"}), + 'submitted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'vote': ('django.db.models.fields.CharField', [], {'max_length': '2'}) + }, + 'reviews.notificationtemplate': { + 'Meta': {'object_name': 'NotificationTemplate'}, + 'body': ('django.db.models.fields.TextField', [], {}), + 'from_address': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'subject': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'reviews.proposalmessage': { + 'Meta': {'ordering': "['submitted_at']", 'object_name': 'ProposalMessage'}, + '_message_rendered': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'message': ('markitup.fields.MarkupField', [], {'no_rendered_field': 'True'}), + 'proposal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'messages'", 'to': "orm['proposals.ProposalBase']"}), + 'submitted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'reviews.proposalresult': { + 'Meta': {'object_name': 'ProposalResult'}, + 'accepted': ('django.db.models.fields.NullBooleanField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'minus_one': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'minus_zero': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'plus_one': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'plus_zero': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'proposal': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'result'", 'unique': 'True', 'to': "orm['proposals.ProposalBase']"}), + 'score': ('django.db.models.fields.DecimalField', [], {'default': "'0.00'", 'max_digits': '5', 'decimal_places': '2'}), + 'status': ('django.db.models.fields.CharField', [], {'default': "'undecided'", 'max_length': '20'}), + 'vote_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}) + }, + 'reviews.resultnotification': { + 'Meta': {'object_name': 'ResultNotification'}, + 'body': ('django.db.models.fields.TextField', [], {}), + 'from_address': ('django.db.models.fields.EmailField', [], {'max_length': '75'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'proposal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'notifications'", 'to': "orm['proposals.ProposalBase']"}), + 'subject': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['reviews.NotificationTemplate']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}), + 'timestamp': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'to_address': ('django.db.models.fields.EmailField', [], {'max_length': '75'}) + }, + 'reviews.review': { + 'Meta': {'object_name': 'Review'}, + '_comment_rendered': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'comment': ('markitup.fields.MarkupField', [], {'no_rendered_field': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'proposal': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reviews'", 'to': "orm['proposals.ProposalBase']"}), + 'submitted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'vote': ('django.db.models.fields.CharField', [], {'max_length': '2', 'blank': 'True'}) + }, + 'reviews.reviewassignment': { + 'Meta': {'object_name': 'ReviewAssignment'}, + 'assigned_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'opted_out': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'origin': ('django.db.models.fields.IntegerField', [], {}), + 'proposal': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['proposals.ProposalBase']"}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}) + }, + 'speakers.speaker': { + 'Meta': {'ordering': "['name']", 'object_name': 'Speaker'}, + '_biography_rendered': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'annotation': ('django.db.models.fields.TextField', [], {}), + 'biography': ('markitup.fields.MarkupField', [], {'no_rendered_field': 'True', 'blank': 'True'}), + 'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'invite_email': ('django.db.models.fields.CharField', [], {'max_length': '200', 'unique': 'True', 'null': 'True', 'db_index': 'True'}), + 'invite_token': ('django.db.models.fields.CharField', [], {'max_length': '40', 'db_index': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'photo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}), + 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'speaker_profile'", 'unique': 'True', 'null': 'True', 'to': "orm['auth.User']"}) + } + } + + complete_apps = ['reviews'] \ No newline at end of file