class Migration(SchemaMigration):

    def forwards(self, orm):
        # Adding unique constraint on 'CourseReadTracker', fields ['course', 'user']
        db.create_unique('noticeapp_coursereadtracker', ['course_id', 'user_id'])

        # Adding unique constraint on 'NoticeReadTracker', fields ['user', 'notice']
        db.create_unique('noticeapp_noticereadtracker', ['user_id', 'notice_id'])


    def backwards(self, orm):
        # Removing unique constraint on 'NoticeReadTracker', fields ['user', 'notice']
        db.delete_unique('noticeapp_noticereadtracker', ['user_id', 'notice_id'])

        # Removing unique constraint on 'CourseReadTracker', fields ['course', 'user']
        db.delete_unique('noticeapp_coursereadtracker', ['course_id', 'user_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'})
        },
        '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'})
        },
        'noticeapp.attachment': {
            'Meta': {'object_name': 'Attachment'},
            'file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'post': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'attachments'", 'to': "orm['noticeapp.Post']"}),
            'size': ('django.db.models.fields.IntegerField', [], {})
        },
        'noticeapp.category': {
            'Meta': {'ordering': "['position']", 'object_name': 'Category'},
            'hidden': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
            'position': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'})
        },
        'noticeapp.notice': {
            'Meta': {'ordering': "['position']", 'object_name': 'Notice'},
            'category': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'notices'", 'to': "orm['noticeapp.Category']"}),
            'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
            'headline': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
            'hidden': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'moderators': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['%s']"% AUTH_USER, 'null': 'True', 'blank': 'True'}),
            'name': ('django.db.models.fields.CharField', [], {'max_length': '80'}),
            'position': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
            'post_count': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
            'readed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'readed_notices'", 'symmetrical': 'False', 'through': "orm['noticeapp.NoticeReadTracker']", 'to': "orm['%s']"% AUTH_USER}),
            'course_count': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
            'updated': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
        },
        'noticeapp.noticereadtracker': {
            'Meta': {'unique_together': "(('user', 'notice'),)", 'object_name': 'NoticeReadTracker'},
            'notice': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['noticeapp.Notice']", 'null': 'True', 'blank': 'True'}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'time_stamp': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['%s']"% AUTH_USER})
        },
        'noticeapp.pollanswer': {
            'Meta': {'object_name': 'PollAnswer'},
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'text': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
            'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'poll_answers'", 'to': "orm['noticeapp.Course']"})
        },
        'noticeapp.pollansweruser': {
            'Meta': {'unique_together': "(('poll_answer', 'user'),)", 'object_name': 'PollAnswerUser'},
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'poll_answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'users'", 'to': "orm['noticeapp.PollAnswer']"}),
            'timestamp': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'poll_answers'", 'to': "orm['%s']"% AUTH_USER})
        },
        'noticeapp.post': {
            'Meta': {'ordering': "['created']", 'object_name': 'Post'},
            'body': ('django.db.models.fields.TextField', [], {}),
            'body_html': ('django.db.models.fields.TextField', [], {}),
            'body_text': ('django.db.models.fields.TextField', [], {}),
            'created': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'blank': 'True'}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'on_moderation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
            'course': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'posts'", 'to': "orm['noticeapp.Course']"}),
            'updated': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
            'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'posts'", 'to': "orm['%s']"% AUTH_USER}),
            'user_ip': ('django.db.models.fields.IPAddressField', [], {'default': "'0.0.0.0'", 'max_length': '15', 'blank': 'True'})
        },
        'noticeapp.profile': {
            'Meta': {'object_name': 'Profile'},
            'autosubscribe': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
            'avatar': (get_image_field_full_name(), [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'language': ('django.db.models.fields.CharField', [], {'default': "'en-us'", 'max_length': '10', 'blank': 'True'}),
            'post_count': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
            'show_signatures': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
            'signature': ('django.db.models.fields.TextField', [], {'max_length': '1024', 'blank': 'True'}),
            'signature_html': ('django.db.models.fields.TextField', [], {'max_length': '1054', 'blank': 'True'}),
            'time_zone': ('django.db.models.fields.FloatField', [], {'default': '3.0'}),
            'user': ('annoying.fields.AutoOneToOneField', [], {'related_name': "'noticeapp_profile'", 'unique': 'True', 'to': "orm['%s']"% AUTH_USER})
        },
        'noticeapp.course': {
            'Meta': {'ordering': "['-created']", 'object_name': 'Course'},
            'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
            'created': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
            'notice': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'courses'", 'to': "orm['noticeapp.Notice']"}),
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
            'on_moderation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
            'poll_question': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
            'poll_type': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
            'post_count': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
            'readed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'readed_courses'", 'symmetrical': 'False', 'through': "orm['noticeapp.CourseReadTracker']", 'to': "orm['%s']"% AUTH_USER}),
            'sticky': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
            'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'subscriptions'", 'blank': 'True', 'to': "orm['%s']"% AUTH_USER}),
            'updated': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['%s']"% AUTH_USER}),
            'views': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'})
        },
        'noticeapp.coursereadtracker': {
            'Meta': {'unique_together': "(('user', 'course'),)", 'object_name': 'CourseReadTracker'},
            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
            'time_stamp': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
            'course': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['noticeapp.Course']", 'null': 'True', 'blank': 'True'}),
            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['%s']"% AUTH_USER})
        }
    }
    models.update(get_user_frozen_models(AUTH_USER))

    complete_apps = ['noticeapp']
예제 #2
0
class Migration(SchemaMigration):
    def forwards(self, orm):

        # Adding field 'Notice.last_post'
        db.add_column('noticeapp_notice',
                      'last_post',
                      self.gf('django.db.models.fields.related.ForeignKey')(
                          blank=True,
                          related_name='last_post_in_notice',
                          null=True,
                          to=orm['noticeapp.Post']),
                      keep_default=False)

        # Changing field 'Notice.updated'
        db.alter_column(
            'noticeapp_notice', 'updated',
            self.gf('django.db.models.fields.DateTimeField')(null=True,
                                                             blank=True))

        # Adding field 'Course.last_post'
        db.add_column('noticeapp_course',
                      'last_post',
                      self.gf('django.db.models.fields.related.ForeignKey')(
                          blank=True,
                          related_name='last_post_in_course',
                          null=True,
                          to=orm['noticeapp.Post']),
                      keep_default=False)

    def backwards(self, orm):

        # Deleting field 'Notice.last_post'
        db.delete_column('noticeapp_notice', 'last_post_id')

        # Changing field 'Notice.updated'
        db.alter_column(
            'noticeapp_notice', 'updated',
            self.gf('django.db.models.fields.DateTimeField')(null=True))

        # Deleting field 'Course.last_post'
        db.delete_column('noticeapp_course', 'last_post_id')

    models = {
        'auth.group': {
            'Meta': {
                'object_name': 'Group'
            },
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'unique': 'True',
                'max_length': '80'
            }),
            'permissions':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'to': "orm['auth.Permission']",
                'symmetrical': 'False',
                'blank': 'True'
            })
        },
        'auth.permission': {
            'Meta': {
                'unique_together': "(('content_type', 'codename'),)",
                'object_name': 'Permission'
            },
            'codename': ('django.db.models.fields.CharField', [], {
                'max_length': '100'
            }),
            'content_type':
            ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['contenttypes.ContentType']"
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '50'
            })
        },
        'contenttypes.contenttype': {
            'Meta': {
                'unique_together': "(('app_label', 'model'),)",
                'object_name': 'ContentType',
                'db_table': "'django_content_type'"
            },
            'app_label': ('django.db.models.fields.CharField', [], {
                'max_length': '100'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'model': ('django.db.models.fields.CharField', [], {
                'max_length': '100'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '100'
            })
        },
        'noticeapp.attachment': {
            'Meta': {
                'object_name': 'Attachment'
            },
            'content_type': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'hash': ('django.db.models.fields.CharField', [], {
                'db_index': 'True',
                'max_length': '40',
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.TextField', [], {}),
            'path': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'post': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'attachments'",
                'to': "orm['noticeapp.Post']"
            }),
            'size': ('django.db.models.fields.IntegerField', [], {})
        },
        'noticeapp.category': {
            'Meta': {
                'object_name': 'Category'
            },
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '80'
            }),
            'position': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            })
        },
        'noticeapp.notice': {
            'Meta': {
                'object_name': 'Notice'
            },
            'category': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'notices'",
                'to': "orm['noticeapp.Category']"
            }),
            'description': ('django.db.models.fields.TextField', [], {
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'last_post': ('django.db.models.fields.related.ForeignKey', [], {
                'blank': 'True',
                'related_name': "'last_post_in_notice'",
                'null': 'True',
                'to': "orm['noticeapp.Post']"
            }),
            'moderators':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'symmetrical': 'False',
                'to': "orm['%s']" % AUTH_USER,
                'null': 'True',
                'blank': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '80'
            }),
            'position': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'course_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True',
                'blank': 'True'
            })
        },
        'noticeapp.post': {
            'Meta': {
                'object_name': 'Post'
            },
            'body': ('django.db.models.fields.TextField', [], {}),
            'body_html': ('django.db.models.fields.TextField', [], {}),
            'body_text': ('django.db.models.fields.TextField', [], {}),
            'created': ('django.db.models.fields.DateTimeField', [], {
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'markup': ('django.db.models.fields.CharField', [], {
                'default': "'bbcode'",
                'max_length': '15'
            }),
            'course': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'posts'",
                'to': "orm['noticeapp.Course']"
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True',
                'blank': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'posts'",
                'to': "orm['%s']" % AUTH_USER
            }),
            'user_ip': ('django.db.models.fields.IPAddressField', [], {
                'default': "'0.0.0.0'",
                'max_length': '15',
                'blank': 'True'
            })
        },
        'noticeapp.profile': {
            'Meta': {
                'object_name': 'Profile'
            },
            'ban_status': ('django.db.models.fields.SmallIntegerField', [], {
                'default': '0'
            }),
            'ban_till': ('django.db.models.fields.DateTimeField', [], {
                'default': 'None',
                'null': 'True',
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'language': ('django.db.models.fields.CharField', [], {
                'max_length': '10',
                'blank': 'True'
            }),
            'markup': ('django.db.models.fields.CharField', [], {
                'default': "'bbcode'",
                'max_length': '15'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'show_signatures': ('django.db.models.fields.BooleanField', [], {
                'default': 'True',
                'blank': 'True'
            }),
            'signature': ('django.db.models.fields.TextField', [], {
                'max_length': '1024',
                'blank': 'True'
            }),
            'signature_html': ('django.db.models.fields.TextField', [], {
                'max_length': '1054',
                'blank': 'True'
            }),
            'time_zone': ('django.db.models.fields.FloatField', [], {
                'default': '3.0'
            }),
            'user': ('django.db.models.fields.related.OneToOneField', [], {
                'related_name': "'noticeapp_profile'",
                'unique': 'True',
                'to': "orm['%s']" % AUTH_USER
            })
        },
        'noticeapp.readtracking': {
            'Meta': {
                'object_name': 'ReadTracking'
            },
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'last_read': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True'
            }),
            'courses': ('django.db.models.TextField', [], {}),
            'user': ('django.db.models.fields.related.OneToOneField', [], {
                'to': "orm['%s']" % AUTH_USER,
                'unique': 'True'
            })
        },
        'noticeapp.course': {
            'Meta': {
                'object_name': 'Course'
            },
            'closed': ('django.db.models.fields.BooleanField', [], {
                'default': 'False',
                'blank': 'True'
            }),
            'created': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True'
            }),
            'notice': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'courses'",
                'to': "orm['noticeapp.Notice']"
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'last_post': ('django.db.models.fields.related.ForeignKey', [], {
                'blank': 'True',
                'related_name': "'last_post_in_course'",
                'null': 'True',
                'to': "orm['noticeapp.Post']"
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'sticky': ('django.db.models.fields.BooleanField', [], {
                'default': 'False',
                'blank': 'True'
            }),
            'subscribers':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'symmetrical': 'False',
                'related_name': "'subscriptions'",
                'blank': 'True',
                'to': "orm['%s']" % AUTH_USER
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['%s']" % AUTH_USER
            }),
            'views': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            })
        }
    }
    models.update(get_user_frozen_models(AUTH_USER))

    complete_apps = ['noticeapp']
예제 #3
0
class Migration(SchemaMigration):
    depends_on = DEPENDS_ON_CUSTOM_USER_MIGRATION

    def forwards(self, orm):

        # Adding model 'Post'
        db.create_table('noticeapp_post', (
            ('id',
             self.gf('django.db.models.fields.AutoField')(primary_key=True)),
            ('body', self.gf('django.db.models.fields.TextField')()),
            ('body_html', self.gf('django.db.models.fields.TextField')()),
            ('body_text', self.gf('django.db.models.fields.TextField')()),
            ('course', self.gf('django.db.models.fields.related.ForeignKey')(
                related_name='posts', to=orm['noticeapp.Course'])),
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(
                related_name='posts', to=orm[AUTH_USER])),
            ('created', self.gf('django.db.models.fields.DateTimeField')(
                db_index=True, blank=True)),
            ('updated', self.gf('django.db.models.fields.DateTimeField')(
                null=True, blank=True)),
            ('user_ip', self.gf('django.db.models.fields.IPAddressField')(
                default='0.0.0.0', max_length=15, blank=True)),
            ('markup',
             self.gf('django.db.models.fields.CharField')(max_length=15)),
        ))
        db.send_create_signal('noticeapp', ['Post'])

        # Adding model 'Category'
        db.create_table('noticeapp_category', (
            ('id',
             self.gf('django.db.models.fields.AutoField')(primary_key=True)),
            ('name',
             self.gf('django.db.models.fields.CharField')(max_length=80)),
            ('position', self.gf('django.db.models.fields.IntegerField')(
                default=0, blank=True)),
        ))
        db.send_create_signal('noticeapp', ['Category'])

        # Adding model 'Notice'
        db.create_table('noticeapp_notice', (
            ('id',
             self.gf('django.db.models.fields.AutoField')(primary_key=True)),
            ('category', self.gf('django.db.models.fields.related.ForeignKey')(
                related_name='notices', to=orm['noticeapp.Category'])),
            ('name',
             self.gf('django.db.models.fields.CharField')(max_length=80)),
            ('position', self.gf('django.db.models.fields.IntegerField')(
                default=0, blank=True)),
            ('description',
             self.gf('django.db.models.fields.TextField')(blank=True)),
            ('updated', self.gf('django.db.models.fields.DateTimeField')(
                null=True, blank=True)),
            ('post_count', self.gf('django.db.models.fields.IntegerField')(
                default=0, blank=True)),
            ('course_count', self.gf('django.db.models.fields.IntegerField')(
                default=0, blank=True)),
        ))
        db.send_create_signal('noticeapp', ['Notice'])

        # Adding model 'Profile'
        db.create_table('noticeapp_profile', (
            ('id',
             self.gf('django.db.models.fields.AutoField')(primary_key=True)),
            ('signature', self.gf('django.db.models.fields.TextField')(
                max_length=1024, blank=True)),
            ('signature_html', self.gf('django.db.models.fields.TextField')(
                max_length=1054, blank=True)),
            ('time_zone',
             self.gf('django.db.models.fields.FloatField')(default=3.0)),
            ('language', self.gf('django.db.models.fields.CharField')(
                default='en-us', max_length=10, blank=True)),
            ('show_signatures',
             self.gf('django.db.models.fields.BooleanField')(default=True)),
            ('post_count', self.gf('django.db.models.fields.IntegerField')(
                default=0, blank=True)),
            ('avatar', self.gf(get_image_field_full_name())(
                max_length=100, null=True, blank=True)),
            ('user', self.gf('annoying.fields.AutoOneToOneField')(
                related_name='noticeapp_profile',
                unique=True,
                to=orm[AUTH_USER])),
            ('markup',
             self.gf('django.db.models.fields.CharField')(max_length=15)),
            ('ban_status',
             self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
            ('ban_till', self.gf('django.db.models.fields.DateTimeField')(
                default=None, null=True, blank=True)),
        ))
        db.send_create_signal('noticeapp', ['Profile'])

        # Adding model 'Attachment'
        db.create_table('noticeapp_attachment', (
            ('id',
             self.gf('django.db.models.fields.AutoField')(primary_key=True)),
            ('post', self.gf('django.db.models.fields.related.ForeignKey')(
                related_name='attachments', to=orm['noticeapp.Post'])),
            ('size', self.gf('django.db.models.fields.IntegerField')()),
            ('hash', self.gf('django.db.models.fields.CharField')(
                blank=True, default='', max_length=40, db_index=True)),
            ('content_type',
             self.gf('django.db.models.fields.CharField')(max_length=255)),
            ('name', self.gf('django.db.models.fields.TextField')()),
            ('path',
             self.gf('django.db.models.fields.CharField')(max_length=255)),
        ))
        db.send_create_signal('noticeapp', ['Attachment'])

        # Adding model 'ReadTracking'
        db.create_table('noticeapp_readtracking', (
            ('id',
             self.gf('django.db.models.fields.AutoField')(primary_key=True)),
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(
                to=orm[AUTH_USER])),
            ('courses',
             self.gf('django.db.models.fields.TextField')(null=True)),
            ('last_read',
             self.gf('django.db.models.fields.DateTimeField')(null=True)),
        ))
        db.send_create_signal('noticeapp', ['ReadTracking'])

        # Adding model 'Course'
        db.create_table('noticeapp_course', (
            ('id',
             self.gf('django.db.models.fields.AutoField')(primary_key=True)),
            ('notice', self.gf('django.db.models.fields.related.ForeignKey')(
                related_name='courses', to=orm['noticeapp.Notice'])),
            ('name',
             self.gf('django.db.models.fields.CharField')(max_length=255)),
            ('created',
             self.gf('django.db.models.fields.DateTimeField')(null=True)),
            ('updated',
             self.gf('django.db.models.fields.DateTimeField')(null=True)),
            ('user', self.gf('django.db.models.fields.related.ForeignKey')(
                to=orm[AUTH_USER])),
            ('views', self.gf('django.db.models.fields.IntegerField')(
                default=0, blank=True)),
            ('sticky',
             self.gf('django.db.models.fields.BooleanField')(default=False)),
            ('closed',
             self.gf('django.db.models.fields.BooleanField')(default=False)),
            ('post_count', self.gf('django.db.models.fields.IntegerField')(
                default=0, blank=True)),
        ))
        db.send_create_signal('noticeapp', ['Course'])

        # Adding M2M table for field subscribers on 'Course'
        db.create_table(
            'noticeapp_course_subscribers',
            (('id',
              models.AutoField(
                  verbose_name='ID', primary_key=True, auto_created=True)),
             ('course', models.ForeignKey(orm['noticeapp.course'],
                                          null=False)),
             (AUTH_USER_COLUMN, models.ForeignKey(orm[AUTH_USER],
                                                  null=False))))
        db.create_unique('noticeapp_course_subscribers',
                         ['course_id', '%s_id' % AUTH_USER_COLUMN])

        # Adding M2M table for field moderators on 'Notice'
        db.create_table(
            'noticeapp_notice_moderators',
            (('id',
              models.AutoField(
                  verbose_name='ID', primary_key=True, auto_created=True)),
             ('notice', models.ForeignKey(orm['noticeapp.notice'],
                                          null=False)),
             (AUTH_USER_COLUMN, models.ForeignKey(orm[AUTH_USER],
                                                  null=False))))
        db.create_unique('noticeapp_notice_moderators',
                         ['notice_id', '%s_id' % AUTH_USER_COLUMN])

    def backwards(self, orm):

        # Deleting model 'Post'
        db.delete_table('noticeapp_post')

        # Deleting model 'Category'
        db.delete_table('noticeapp_category')

        # Deleting model 'Notice'
        db.delete_table('noticeapp_notice')

        # Deleting model 'Profile'
        db.delete_table('noticeapp_profile')

        # Deleting model 'Attachment'
        db.delete_table('noticeapp_attachment')

        # Deleting model 'ReadTracking'
        db.delete_table('noticeapp_readtracking')

        # Deleting model 'Course'
        db.delete_table('noticeapp_course')

        # Dropping ManyToManyField 'Course.subscribers'
        db.delete_table('noticeapp_course_subscribers')

        # Dropping ManyToManyField 'Notice.moderators'
        db.delete_table('noticeapp_notice_moderators')

    models = {
        'auth.group': {
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '80',
                'unique': 'True'
            }),
            'permissions':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'to': "orm['auth.Permission']",
                'blank': 'True'
            })
        },
        'auth.permission': {
            'Meta': {
                'unique_together': "(('content_type', 'codename'),)"
            },
            'codename': ('django.db.models.fields.CharField', [], {
                'max_length': '100'
            }),
            'content_type':
            ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['contenttypes.ContentType']"
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '50'
            })
        },
        'contenttypes.contenttype': {
            'Meta': {
                'unique_together': "(('app_label', 'model'),)",
                'db_table': "'django_content_type'"
            },
            'app_label': ('django.db.models.fields.CharField', [], {
                'max_length': '100'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'model': ('django.db.models.fields.CharField', [], {
                'max_length': '100'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '100'
            })
        },
        'noticeapp.attachment': {
            'content_type': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'hash': ('django.db.models.fields.CharField', [], {
                'db_index': 'True',
                'max_length': '40',
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.TextField', [], {}),
            'path': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'post': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'attachments'",
                'to': "orm['noticeapp.Post']"
            }),
            'size': ('django.db.models.fields.IntegerField', [], {})
        },
        'noticeapp.category': {
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '80'
            }),
            'position': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            })
        },
        'noticeapp.notice': {
            'category': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'notices'",
                'to': "orm['noticeapp.Category']"
            }),
            'description': ('django.db.models.fields.TextField', [], {
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'moderators':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'to': "orm['%s']" % AUTH_USER,
                'null': 'True',
                'blank': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '80'
            }),
            'position': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'course_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True',
                'blank': 'True'
            })
        },
        'noticeapp.post': {
            'body': ('django.db.models.fields.TextField', [], {}),
            'body_html': ('django.db.models.fields.TextField', [], {}),
            'body_text': ('django.db.models.fields.TextField', [], {}),
            'created': ('django.db.models.fields.DateTimeField', [], {
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'markup': ('django.db.models.fields.CharField', [], {
                'default': "'bbcode'",
                'max_length': '15'
            }),
            'course': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'posts'",
                'to': "orm['noticeapp.Course']"
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True',
                'blank': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'posts'",
                'to': "orm['%s']" % AUTH_USER
            }),
            'user_ip': ('django.db.models.fields.IPAddressField', [], {
                'default': "'0.0.0.0'",
                'max_length': '15',
                'blank': 'True'
            })
        },
        'noticeapp.profile': {
            'avatar': ('django.db.models.fields.files.ImageField', [], {
                'max_length': '100',
                'blank': 'True'
            }),
            'ban_status': ('django.db.models.fields.SmallIntegerField', [], {
                'default': '0'
            }),
            'ban_till': ('django.db.models.fields.DateTimeField', [], {
                'default': 'None',
                'null': 'True',
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'language': ('django.db.models.fields.CharField', [], {
                'max_length': '10',
                'blank': 'True'
            }),
            'markup': ('django.db.models.fields.CharField', [], {
                'default': "'bbcode'",
                'max_length': '15'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'show_signatures': ('django.db.models.fields.BooleanField', [], {
                'default': 'True',
                'blank': 'True'
            }),
            'signature': ('django.db.models.fields.TextField', [], {
                'max_length': '1024',
                'blank': 'True'
            }),
            'signature_html': ('django.db.models.fields.TextField', [], {
                'max_length': '1054',
                'blank': 'True'
            }),
            'time_zone': ('django.db.models.fields.FloatField', [], {
                'default': '3.0'
            }),
            'user': ('django.db.models.fields.related.OneToOneField', [], {
                'to': "orm['%s']" % AUTH_USER,
                'related_name': "'noticeapp_profile'",
                'unique': 'True'
            })
        },
        'noticeapp.readtracking': {
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'last_read': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True'
            }),
            'courses': ('django.db.models.fields.TextField', [], {
                'null': 'True'
            }),
            'user': ('django.db.models.fields.related.OneToOneField', [], {
                'unique': 'True',
                'to': "orm['%s']" % AUTH_USER
            })
        },
        'noticeapp.course': {
            'closed': ('django.db.models.fields.BooleanField', [], {
                'default': 'False',
                'blank': 'True'
            }),
            'created': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True'
            }),
            'notice': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'courses'",
                'to': "orm['noticeapp.Notice']"
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'sticky': ('django.db.models.fields.BooleanField', [], {
                'default': 'False',
                'blank': 'True'
            }),
            'subscribers':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'to': "orm['%s']" % AUTH_USER,
                'blank': 'True'
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'blank': 'True',
                'null': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['%s']" % AUTH_USER
            }),
            'views': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            })
        }
    }
    models.update(get_user_frozen_models(AUTH_USER))

    complete_apps = ['noticeapp']
class Migration(DataMigration):
    def forwards(self, orm):
        try:
            add_post_permission = orm['auth.Permission'].objects.get(
                codename='add_post', content_type__name='Post')
            add_course_permission = orm['auth.Permission'].objects.get(
                codename='add_course', content_type__name='Course')
        except orm['auth.Permission'].DoesNotExist:
            return  # Testing mode?
        for user in orm[AUTH_USER].objects.all():
            user.user_permissions.add(add_post_permission,
                                      add_course_permission)
            user.save()

    def backwards(self, orm):
        "Write your backwards methods here."

    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'
            })
        },
        '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'
            })
        },
        'noticeapp.attachment': {
            'Meta': {
                'object_name': 'Attachment'
            },
            'content_type': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'hash': ('django.db.models.fields.CharField', [], {
                'db_index': 'True',
                'max_length': '40',
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.TextField', [], {}),
            'path': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'post': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'attachments'",
                'to': "orm['noticeapp.Post']"
            }),
            'size': ('django.db.models.fields.IntegerField', [], {})
        },
        'noticeapp.category': {
            'Meta': {
                'ordering': "['position']",
                'object_name': 'Category'
            },
            'hidden': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '80'
            }),
            'position': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            })
        },
        'noticeapp.notice': {
            'Meta': {
                'ordering': "['position']",
                'object_name': 'Notice'
            },
            'category': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'notices'",
                'to': "orm['noticeapp.Category']"
            }),
            'description': ('django.db.models.fields.TextField', [], {
                'blank': 'True'
            }),
            'hidden': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'moderators':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'symmetrical': 'False',
                'to': "orm['%s']" % AUTH_USER,
                'null': 'True',
                'blank': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '80'
            }),
            'position': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'readed_by':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'related_name': "'readed_notices'",
                'symmetrical': 'False',
                'through': "orm['noticeapp.NoticeReadTracker']",
                'to': "orm['%s']" % AUTH_USER
            }),
            'course_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True',
                'blank': 'True'
            })
        },
        'noticeapp.noticereadtracker': {
            'Meta': {
                'object_name': 'NoticeReadTracker'
            },
            'notice': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['noticeapp.Notice']",
                'null': 'True',
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'time_stamp': ('django.db.models.fields.DateTimeField', [], {
                'auto_now': 'True',
                'blank': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['%s']" % AUTH_USER
            })
        },
        'noticeapp.post': {
            'Meta': {
                'ordering': "['created']",
                'object_name': 'Post'
            },
            'body': ('django.db.models.fields.TextField', [], {}),
            'body_html': ('django.db.models.fields.TextField', [], {}),
            'body_text': ('django.db.models.fields.TextField', [], {}),
            'created': ('django.db.models.fields.DateTimeField', [], {
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'markup': ('django.db.models.fields.CharField', [], {
                'default': "'bbcode'",
                'max_length': '15'
            }),
            'course': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'posts'",
                'to': "orm['noticeapp.Course']"
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True',
                'blank': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'posts'",
                'to': "orm['%s']" % AUTH_USER
            }),
            'user_ip': ('django.db.models.fields.IPAddressField', [], {
                'default': "'0.0.0.0'",
                'max_length': '15',
                'blank': 'True'
            })
        },
        'noticeapp.profile': {
            'Meta': {
                'object_name': 'Profile'
            },
            'avatar': (get_image_field_full_name(), [], {
                'max_length': '100',
                'null': 'True',
                'blank': 'True'
            }),
            'ban_status': ('django.db.models.fields.SmallIntegerField', [], {
                'default': '0'
            }),
            'ban_till': ('django.db.models.fields.DateTimeField', [], {
                'default': 'None',
                'null': 'True',
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'language': ('django.db.models.fields.CharField', [], {
                'max_length': '10',
                'blank': 'True'
            }),
            'markup': ('django.db.models.fields.CharField', [], {
                'default': "'bbcode'",
                'max_length': '15'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'show_signatures': ('django.db.models.fields.BooleanField', [], {
                'default': 'True'
            }),
            'signature': ('django.db.models.fields.TextField', [], {
                'max_length': '1024',
                'blank': 'True'
            }),
            'signature_html': ('django.db.models.fields.TextField', [], {
                'max_length': '1054',
                'blank': 'True'
            }),
            'time_zone': ('django.db.models.fields.FloatField', [], {
                'default': '3.0'
            }),
            'user': ('annoying.fields.AutoOneToOneField', [], {
                'related_name': "'noticeapp_profile'",
                'unique': 'True',
                'to': "orm['%s']" % AUTH_USER
            })
        },
        'noticeapp.course': {
            'Meta': {
                'ordering': "['-created']",
                'object_name': 'Course'
            },
            'closed': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'created': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True'
            }),
            'notice': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'courses'",
                'to': "orm['noticeapp.Notice']"
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'readed_by':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'related_name': "'readed_courses'",
                'symmetrical': 'False',
                'through': "orm['noticeapp.CourseReadTracker']",
                'to': "orm['%s']" % AUTH_USER
            }),
            'sticky': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'subscribers':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'symmetrical': 'False',
                'related_name': "'subscriptions'",
                'blank': 'True',
                'to': "orm['%s']" % AUTH_USER
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['%s']" % AUTH_USER
            }),
            'views': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            })
        },
        'noticeapp.coursereadtracker': {
            'Meta': {
                'object_name': 'CourseReadTracker'
            },
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'time_stamp': ('django.db.models.fields.DateTimeField', [], {
                'auto_now': 'True',
                'blank': 'True'
            }),
            'course': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['noticeapp.Course']",
                'null': 'True',
                'blank': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['%s']" % AUTH_USER
            })
        }
    }
    models.update(get_user_frozen_models(AUTH_USER))

    complete_apps = ['noticeapp']
class Migration(SchemaMigration):
    def forwards(self, orm):

        # Deleting field 'Attachment.hash'
        db.delete_column('noticeapp_attachment', 'hash')

        # Deleting field 'Attachment.content_type'
        db.delete_column('noticeapp_attachment', 'content_type')

        # Deleting field 'Attachment.path'
        db.delete_column('noticeapp_attachment', 'path')

        # Deleting field 'Attachment.name'
        db.delete_column('noticeapp_attachment', 'name')

    def backwards(self, orm):

        # Adding field 'Attachment.hash'
        db.add_column(
            'noticeapp_attachment',
            'hash',
            self.gf('django.db.models.fields.CharField')(blank=True,
                                                         default='',
                                                         max_length=40,
                                                         db_index=True),
            keep_default=False)

        # User chose to not deal with backwards NULL issues for 'Attachment.content_type'
        raise RuntimeError(
            "Cannot reverse this migration. 'Attachment.content_type' and its values cannot be restored."
        )

        # User chose to not deal with backwards NULL issues for 'Attachment.path'
        raise RuntimeError(
            "Cannot reverse this migration. 'Attachment.path' and its values cannot be restored."
        )

        # User chose to not deal with backwards NULL issues for 'Attachment.name'
        raise RuntimeError(
            "Cannot reverse this migration. 'Attachment.name' 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'
            })
        },
        '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'
            })
        },
        'noticeapp.attachment': {
            'Meta': {
                'object_name': 'Attachment'
            },
            'file': ('django.db.models.fields.files.FileField', [], {
                'max_length': '100'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'post': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'attachments'",
                'to': "orm['noticeapp.Post']"
            }),
            'size': ('django.db.models.fields.IntegerField', [], {})
        },
        'noticeapp.category': {
            'Meta': {
                'ordering': "['position']",
                'object_name': 'Category'
            },
            'hidden': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '80'
            }),
            'position': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            })
        },
        'noticeapp.notice': {
            'Meta': {
                'ordering': "['position']",
                'object_name': 'Notice'
            },
            'category': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'notices'",
                'to': "orm['noticeapp.Category']"
            }),
            'description': ('django.db.models.fields.TextField', [], {
                'blank': 'True'
            }),
            'headline': ('django.db.models.fields.TextField', [], {
                'null': 'True',
                'blank': 'True'
            }),
            'hidden': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'moderators':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'symmetrical': 'False',
                'to': "orm['%s']" % AUTH_USER,
                'null': 'True',
                'blank': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '80'
            }),
            'position': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'readed_by':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'related_name': "'readed_notices'",
                'symmetrical': 'False',
                'through': "orm['noticeapp.NoticeReadTracker']",
                'to': "orm['%s']" % AUTH_USER
            }),
            'course_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True',
                'blank': 'True'
            })
        },
        'noticeapp.noticereadtracker': {
            'Meta': {
                'object_name': 'NoticeReadTracker'
            },
            'notice': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['noticeapp.Notice']",
                'null': 'True',
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'time_stamp': ('django.db.models.fields.DateTimeField', [], {
                'auto_now': 'True',
                'blank': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['%s']" % AUTH_USER
            })
        },
        'noticeapp.post': {
            'Meta': {
                'ordering': "['created']",
                'object_name': 'Post'
            },
            'body': ('django.db.models.fields.TextField', [], {}),
            'body_html': ('django.db.models.fields.TextField', [], {}),
            'body_text': ('django.db.models.fields.TextField', [], {}),
            'created': ('django.db.models.fields.DateTimeField', [], {
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'on_moderation': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'course': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'posts'",
                'to': "orm['noticeapp.Course']"
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True',
                'blank': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'posts'",
                'to': "orm['%s']" % AUTH_USER
            }),
            'user_ip': ('django.db.models.fields.IPAddressField', [], {
                'default': "'0.0.0.0'",
                'max_length': '15',
                'blank': 'True'
            })
        },
        'noticeapp.profile': {
            'Meta': {
                'object_name': 'Profile'
            },
            'autosubscribe': ('django.db.models.fields.BooleanField', [], {
                'default': 'True'
            }),
            'avatar': (get_image_field_full_name(), [], {
                'max_length': '100',
                'null': 'True',
                'blank': 'True'
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'language': ('django.db.models.fields.CharField', [], {
                'default': "'English'",
                'max_length': '10',
                'blank': 'True'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'show_signatures': ('django.db.models.fields.BooleanField', [], {
                'default': 'True'
            }),
            'signature': ('django.db.models.fields.TextField', [], {
                'max_length': '1024',
                'blank': 'True'
            }),
            'signature_html': ('django.db.models.fields.TextField', [], {
                'max_length': '1054',
                'blank': 'True'
            }),
            'time_zone': ('django.db.models.fields.FloatField', [], {
                'default': '3.0'
            }),
            'user': ('annoying.fields.AutoOneToOneField', [], {
                'related_name': "'noticeapp_profile'",
                'unique': 'True',
                'to': "orm['%s']" % AUTH_USER
            })
        },
        'noticeapp.course': {
            'Meta': {
                'ordering': "['-created']",
                'object_name': 'Course'
            },
            'closed': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'created': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True'
            }),
            'notice': ('django.db.models.fields.related.ForeignKey', [], {
                'related_name': "'courses'",
                'to': "orm['noticeapp.Notice']"
            }),
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'name': ('django.db.models.fields.CharField', [], {
                'max_length': '255'
            }),
            'on_moderation': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'post_count': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            }),
            'readed_by':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'related_name': "'readed_courses'",
                'symmetrical': 'False',
                'through': "orm['noticeapp.CourseReadTracker']",
                'to': "orm['%s']" % AUTH_USER
            }),
            'sticky': ('django.db.models.fields.BooleanField', [], {
                'default': 'False'
            }),
            'subscribers':
            ('django.db.models.fields.related.ManyToManyField', [], {
                'symmetrical': 'False',
                'related_name': "'subscriptions'",
                'blank': 'True',
                'to': "orm['%s']" % AUTH_USER
            }),
            'updated': ('django.db.models.fields.DateTimeField', [], {
                'null': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['%s']" % AUTH_USER
            }),
            'views': ('django.db.models.fields.IntegerField', [], {
                'default': '0',
                'blank': 'True'
            })
        },
        'noticeapp.coursereadtracker': {
            'Meta': {
                'object_name': 'CourseReadTracker'
            },
            'id': ('django.db.models.fields.AutoField', [], {
                'primary_key': 'True'
            }),
            'time_stamp': ('django.db.models.fields.DateTimeField', [], {
                'auto_now': 'True',
                'blank': 'True'
            }),
            'course': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['noticeapp.Course']",
                'null': 'True',
                'blank': 'True'
            }),
            'user': ('django.db.models.fields.related.ForeignKey', [], {
                'to': "orm['%s']" % AUTH_USER
            })
        }
    }
    models.update(get_user_frozen_models(AUTH_USER))

    complete_apps = ['noticeapp']