3 from south.db import db
4 from south.v2 import SchemaMigration
5 from django.db import models
7 class Migration(SchemaMigration):
9 def forwards(self, orm):
11 # Deleting field 'Award.object_id'
12 db.delete_column('forum_award', 'object_id')
14 # Deleting field 'Award.content_type'
15 db.delete_column('forum_award', 'content_type_id')
17 # Adding unique constraint on 'Award', fields ['action']
18 db.create_unique('forum_award', ['action_id'])
20 # Deleting field 'Badge.multiple'
21 db.delete_column('forum_badge', 'multiple')
23 # Deleting field 'Badge.name'
24 db.delete_column('forum_badge', 'name')
26 # Deleting field 'Badge.slug'
27 db.delete_column('forum_badge', 'slug')
29 # Deleting field 'Badge.description'
30 db.delete_column('forum_badge', 'description')
33 def backwards(self, orm):
35 # Adding field 'Award.object_id'
36 db.add_column('forum_award', 'object_id', self.gf('django.db.models.fields.PositiveIntegerField')(default=1), keep_default=False)
38 # Adding field 'Award.content_type'
39 db.add_column('forum_award', 'content_type', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['contenttypes.ContentType']), keep_default=False)
41 # Removing unique constraint on 'Award', fields ['action']
42 db.delete_unique('forum_award', ['action_id'])
44 # Adding field 'Badge.multiple'
45 db.add_column('forum_badge', 'multiple', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
47 # Adding field 'Badge.name'
48 db.add_column('forum_badge', 'name', self.gf('django.db.models.fields.CharField')(default=1, max_length=50), keep_default=False)
50 # Adding field 'Badge.slug'
51 db.add_column('forum_badge', 'slug', self.gf('django.db.models.fields.SlugField')(blank=True, default=1, max_length=50, db_index=True), keep_default=False)
53 # Adding field 'Badge.description'
54 db.add_column('forum_badge', 'description', self.gf('django.db.models.fields.CharField')(default=1, max_length=300), keep_default=False)
59 'Meta': {'object_name': 'Group'},
60 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
61 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
62 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
65 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
66 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
67 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
68 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
69 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
72 'Meta': {'object_name': 'User'},
73 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
74 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
75 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
76 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
77 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
78 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
79 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
80 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
81 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
82 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
83 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
84 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
85 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
87 'contenttypes.contenttype': {
88 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
89 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
90 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
91 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
92 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
95 'Meta': {'object_name': 'Action'},
96 'action_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
97 'action_type': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
98 'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
99 'canceled_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
100 'canceled_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'canceled_actions'", 'null': 'True', 'to': "orm['forum.User']"}),
101 'canceled_ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
102 'extra': ('forum.models.utils.PickledObjectField', [], {'null': 'True'}),
103 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
104 'ip': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
105 'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'null': 'True', 'to': "orm['forum.Node']"}),
106 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actions'", 'to': "orm['forum.User']"})
108 'forum.actionrepute': {
109 'Meta': {'object_name': 'ActionRepute'},
110 'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.Action']"}),
111 'by_canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
112 'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
113 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
114 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
115 'value': ('django.db.models.fields.IntegerField', [], {'default': '0'})
117 'forum.authkeyuserassociation': {
118 'Meta': {'object_name': 'AuthKeyUserAssociation'},
119 'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
120 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
121 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
122 'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
123 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
126 'Meta': {'unique_together': "(('user', 'badge', 'node'),)", 'object_name': 'Award'},
127 'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award'", 'unique': 'True', 'to': "orm['forum.Action']"}),
128 'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
129 'badge': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Badge']"}),
130 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
131 'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
132 'trigger': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'null': 'True', 'to': "orm['forum.Action']"}),
133 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
136 'Meta': {'object_name': 'Badge'},
137 'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
138 'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
139 'cls': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True'}),
140 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
141 'type': ('django.db.models.fields.SmallIntegerField', [], {})
144 'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Flag'},
145 'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flag'", 'unique': 'True', 'to': "orm['forum.Action']"}),
146 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
147 'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
148 'reason': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
149 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
150 'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
153 'Meta': {'object_name': 'KeyValue'},
154 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
155 'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
156 'value': ('forum.models.utils.PickledObjectField', [], {'null': 'True'})
159 'Meta': {'object_name': 'MarkedTag'},
160 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
161 'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
162 'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
163 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
166 'Meta': {'object_name': 'Node'},
167 'abs_parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'all_children'", 'null': 'True', 'to': "orm['forum.Node']"}),
168 'active_revision': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'active'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.NodeRevision']"}),
169 'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
170 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
171 'body': ('django.db.models.fields.TextField', [], {}),
172 'deleted': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'deleted_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
173 'extra_action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'extra_node'", 'null': 'True', 'to': "orm['forum.Action']"}),
174 'extra_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
175 'extra_ref': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']", 'null': 'True'}),
176 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
177 'in_moderation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'moderated_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
178 'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
179 'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
180 'last_edited': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'edited_node'", 'unique': 'True', 'null': 'True', 'to': "orm['forum.Action']"}),
181 'marked': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
182 'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
183 'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'children'", 'null': 'True', 'to': "orm['forum.Node']"}),
184 'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
185 'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
186 'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
187 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
188 'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
190 'forum.noderevision': {
191 'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
192 'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
193 'body': ('django.db.models.fields.TextField', [], {}),
194 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
195 'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
196 'revised_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
197 'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
198 'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
199 'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
200 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
202 'forum.openidassociation': {
203 'Meta': {'object_name': 'OpenIdAssociation'},
204 'assoc_type': ('django.db.models.fields.TextField', [], {'max_length': '64'}),
205 'handle': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
206 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
207 'issued': ('django.db.models.fields.IntegerField', [], {}),
208 'lifetime': ('django.db.models.fields.IntegerField', [], {}),
209 'secret': ('django.db.models.fields.TextField', [], {'max_length': '255'}),
210 'server_url': ('django.db.models.fields.TextField', [], {'max_length': '2047'})
212 'forum.openidnonce': {
213 'Meta': {'object_name': 'OpenIdNonce'},
214 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
215 'salt': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
216 'server_url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
217 'timestamp': ('django.db.models.fields.IntegerField', [], {})
219 'forum.questionsubscription': {
220 'Meta': {'object_name': 'QuestionSubscription'},
221 'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
222 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
223 'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 3, 11, 46, 22, 80000)'}),
224 'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
225 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
227 'forum.subscriptionsettings': {
228 'Meta': {'object_name': 'SubscriptionSettings'},
229 'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
230 'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
231 'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
232 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
233 'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
234 'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
235 'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
236 'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
237 'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
238 'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
239 'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
240 'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
241 'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
242 'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
243 'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
244 'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
245 'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
246 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
249 'Meta': {'object_name': 'Tag'},
250 'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
251 'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
252 'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
253 'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
254 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
255 'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
256 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
257 'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
260 'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
261 'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
262 'bronze': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
263 'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
264 'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
265 'gold': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
266 'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
267 'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
268 'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
269 'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
270 'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
271 'silver': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
272 'subscriptions': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'subscribers'", 'through': "'QuestionSubscription'", 'to': "orm['forum.Node']"}),
273 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
274 'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
276 'forum.validationhash': {
277 'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
278 'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 5, 4, 11, 46, 28, 428000)'}),
279 'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
280 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
281 'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
282 'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
283 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
286 'Meta': {'unique_together': "(('user', 'node'),)", 'object_name': 'Vote'},
287 'action': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'vote'", 'unique': 'True', 'to': "orm['forum.Action']"}),
288 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
289 'node': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Node']"}),
290 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"}),
291 'value': ('django.db.models.fields.SmallIntegerField', [], {}),
292 'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
296 complete_apps = ['forum']