]> git.openstreetmap.org Git - osqa.git/blob - forum/migrations/0009_convert_revisions.py
resolves OSQA-729, encode OpenID query dict using the django smart unicode utility...
[osqa.git] / forum / migrations / 0009_convert_revisions.py
1 # encoding: utf-8
2 import datetime
3 from south.db import db
4 from south.v2 import DataMigration
5 from django.db import models
6 from forum.migrations import ProgressBar
7
8 class Migration(DataMigration):
9     
10     def forwards(self, orm):
11         #Converting question revisions
12         qr_count = orm.QuestionRevision.objects.all().count()
13         print "\nConverting %d question revisions:" % qr_count
14         progress = ProgressBar(qr_count)
15
16         for q in orm.QuestionRevision.objects.order_by('id'):
17             revision = orm.NodeRevision(
18                 node=q.question.node_ptr,
19                 title=q.title,
20                 summary=q.summary,
21                 tagnames=q.tagnames,
22                 revision=q.revision,
23                 author=q.author,
24                 revised_at=q.revised_at,
25                 body=q.text,
26             )
27
28             revision.save()
29             progress.update()
30
31         print "\n...done\n"
32
33
34         #Converting answer revisions
35         ar_count = orm.AnswerRevision.objects.all().count()
36         print "\nConverting %d answer revisions:" % ar_count
37         progress = ProgressBar(ar_count)
38
39         for a in orm.AnswerRevision.objects.order_by('id'):
40             revision = orm.NodeRevision(
41                 summary=a.summary,
42                 node=a.answer.node_ptr,
43                 revision=a.revision,
44                 author=a.author,
45                 revised_at=a.revised_at,
46                 body=a.text,
47             )
48
49             revision.save()
50             progress.update()
51
52         print "\n...done\n"
53     
54     
55     def backwards(self, orm):
56         "Write your backwards methods here."
57     
58     models = {
59         'auth.group': {
60             'Meta': {'object_name': 'Group'},
61             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
62             'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
63             'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'})
64         },
65         'auth.permission': {
66             'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
67             'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
68             'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
69             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
70             'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
71         },
72         'auth.user': {
73             'Meta': {'object_name': 'User'},
74             'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
75             'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
76             'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
77             'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}),
78             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
79             'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
80             'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
81             'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
82             'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
83             'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
84             'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
85             'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}),
86             'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
87         },
88         'contenttypes.contenttype': {
89             'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
90             'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
91             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
92             'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
93             'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
94         },
95         'forum.activity': {
96             'Meta': {'object_name': 'Activity', 'db_table': "u'activity'"},
97             'active_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
98             'activity_type': ('django.db.models.fields.SmallIntegerField', [], {}),
99             'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
100             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
101             'is_auditted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
102             'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
103             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
104         },
105         'forum.anonymousanswer': {
106             'Meta': {'object_name': 'AnonymousAnswer'},
107             'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
108             'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
109             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
110             'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
111             'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'anonymous_answers'", 'to': "orm['forum.Question']"}),
112             'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
113             'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
114             'text': ('django.db.models.fields.TextField', [], {}),
115             'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
116         },
117         'forum.anonymousquestion': {
118             'Meta': {'object_name': 'AnonymousQuestion'},
119             'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
120             'author': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
121             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
122             'ip_addr': ('django.db.models.fields.IPAddressField', [], {'max_length': '15'}),
123             'session_key': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
124             'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
125             'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
126             'text': ('django.db.models.fields.TextField', [], {}),
127             'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
128             'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'})
129         },
130         'forum.answer': {
131             'Meta': {'object_name': 'Answer', 'db_table': "u'answer'"},
132             'accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
133             'accepted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
134             'accepted_by': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']", 'null': 'True'}),
135             'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
136             'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.User']"}),
137             'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
138             'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
139             'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
140             'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
141             'html': ('django.db.models.fields.TextField', [], {}),
142             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
143             'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
144             'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_answers'", 'null': 'True', 'to': "orm['forum.User']"}),
145             'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
146             'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
147             'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answers'", 'to': "orm['forum.Question']"}),
148             'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
149             'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
150             'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
151             'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
152             'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
153         },
154         'forum.answerrevision': {
155             'Meta': {'object_name': 'AnswerRevision', 'db_table': "u'answer_revision'"},
156             'answer': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Answer']"}),
157             'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'answerrevisions'", 'to': "orm['forum.User']"}),
158             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
159             'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
160             'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
161             'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
162             'text': ('django.db.models.fields.TextField', [], {})
163         },
164         'forum.authkeyuserassociation': {
165             'Meta': {'object_name': 'AuthKeyUserAssociation'},
166             'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
167             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
168             'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
169             'provider': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
170             'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'auth_keys'", 'to': "orm['forum.User']"})
171         },
172         'forum.award': {
173             'Meta': {'unique_together': "(('content_type', 'object_id', 'user', 'badge'),)", 'object_name': 'Award', 'db_table': "u'award'"},
174             'awarded_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
175             'badge': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'award_badge'", 'to': "orm['forum.Badge']"}),
176             'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
177             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
178             'notified': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
179             'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
180             'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'awards'", 'to': "orm['forum.User']"})
181         },
182         'forum.badge': {
183             'Meta': {'unique_together': "(('name', 'type'),)", 'object_name': 'Badge', 'db_table': "u'badge'"},
184             'awarded_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
185             'awarded_to': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'badges'", 'through': "'Award'", 'to': "orm['forum.User']"}),
186             'description': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
187             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
188             'multiple': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
189             'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
190             'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '50', 'blank': 'True'}),
191             'type': ('django.db.models.fields.SmallIntegerField', [], {})
192         },
193         'forum.comment': {
194             'Meta': {'object_name': 'Comment', 'db_table': "u'comment'"},
195             'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
196             'comment': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
197             'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
198             'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
199             'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_comments'", 'null': 'True', 'to': "orm['forum.User']"}),
200             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
201             'liked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'comments_liked'", 'through': "'LikedComment'", 'to': "orm['forum.User']"}),
202             'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'null': 'True', 'to': "orm['forum.Node']"}),
203             'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
204             'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comments'", 'to': "orm['forum.User']"})
205         },
206         'forum.favoritequestion': {
207             'Meta': {'unique_together': "(('question', 'user'),)", 'object_name': 'FavoriteQuestion', 'db_table': "u'favorite_question'"},
208             'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
209             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
210             'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
211             'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_favorite_questions'", 'to': "orm['forum.User']"})
212         },
213         'forum.flaggeditem': {
214             'Meta': {'object_name': 'FlaggedItem', 'db_table': "u'flagged_item'"},
215             'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
216             'flagged_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
217             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
218             'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'null': 'True', 'to': "orm['forum.Node']"}),
219             'reason': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True'}),
220             'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'flaggeditems'", 'to': "orm['forum.User']"})
221         },
222         'forum.keyvalue': {
223             'Meta': {'object_name': 'KeyValue'},
224             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
225             'key': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
226             'value': ('forum.models.utils.PickledObjectField', [], {})
227         },
228         'forum.likedcomment': {
229             'Meta': {'object_name': 'LikedComment'},
230             'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
231             'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
232             'comment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Comment']"}),
233             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
234             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
235         },
236         'forum.markedtag': {
237             'Meta': {'object_name': 'MarkedTag'},
238             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
239             'reason': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
240             'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user_selections'", 'to': "orm['forum.Tag']"}),
241             'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tag_selections'", 'to': "orm['forum.User']"})
242         },
243         'forum.node': {
244             'Meta': {'object_name': 'Node'},
245             'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
246             'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nodes'", 'to': "orm['forum.User']"}),
247             'body': ('django.db.models.fields.TextField', [], {}),
248             'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
249             'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
250             'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
251             'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
252             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
253             'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
254             'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_nodes'", 'null': 'True', 'to': "orm['forum.User']"}),
255             'node_type': ('django.db.models.fields.CharField', [], {'default': "'node'", 'max_length': '16'}),
256             'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
257             'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'childs'", 'null': 'True', 'to': "orm['forum.Node']"}),
258             'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
259             'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
260             'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'nodes'", 'to': "orm['forum.Tag']"}),
261             'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
262             'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
263             'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'})
264         },
265         'forum.noderevision': {
266             'Meta': {'unique_together': "(('node', 'revision'),)", 'object_name': 'NodeRevision'},
267             'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'noderevisions'", 'to': "orm['forum.User']"}),
268             'body': ('django.db.models.fields.TextField', [], {}),
269             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
270             'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Node']"}),
271             'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
272             'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
273             'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
274             'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
275             'summary': ('django.db.models.fields.CharField', [], {'max_length': '300'})
276         },
277         'forum.question': {
278             'Meta': {'object_name': 'Question', 'db_table': "u'question'"},
279             'added_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
280             'answer_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
281             'answer_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
282             'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questions'", 'to': "orm['forum.User']"}),
283             'close_reason': ('django.db.models.fields.SmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
284             'closed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
285             'closed_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
286             'closed_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'closed_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
287             'comment_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
288             'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
289             'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
290             'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
291             'favorited_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'favorite_questions'", 'through': "'FavoriteQuestion'", 'to': "orm['forum.User']"}),
292             'favourite_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
293             'followed_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'followed_questions'", 'to': "orm['forum.User']"}),
294             'html': ('django.db.models.fields.TextField', [], {}),
295             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
296             'last_activity_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
297             'last_activity_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'last_active_in_questions'", 'to': "orm['forum.User']"}),
298             'last_edited_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
299             'last_edited_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'last_edited_questions'", 'null': 'True', 'to': "orm['forum.User']"}),
300             'node_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['forum.Node']", 'unique': 'True', 'null': 'True'}),
301             'offensive_flag_count': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
302             'score': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
303             'summary': ('django.db.models.fields.CharField', [], {'max_length': '180'}),
304             'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
305             'tags': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'questions'", 'to': "orm['forum.Tag']"}),
306             'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
307             'view_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
308             'vote_down_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
309             'vote_up_count': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
310             'wiki': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
311             'wikified_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'})
312         },
313         'forum.questionrevision': {
314             'Meta': {'object_name': 'QuestionRevision', 'db_table': "u'question_revision'"},
315             'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'questionrevisions'", 'to': "orm['forum.User']"}),
316             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
317             'question': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'revisions'", 'to': "orm['forum.Question']"}),
318             'revised_at': ('django.db.models.fields.DateTimeField', [], {}),
319             'revision': ('django.db.models.fields.PositiveIntegerField', [], {}),
320             'summary': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
321             'tagnames': ('django.db.models.fields.CharField', [], {'max_length': '125'}),
322             'text': ('django.db.models.fields.TextField', [], {}),
323             'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
324         },
325         'forum.questionsubscription': {
326             'Meta': {'object_name': 'QuestionSubscription'},
327             'auto_subscription': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
328             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
329             'last_view': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 14, 12, 14, 26, 755000)'}),
330             'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
331             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
332         },
333         'forum.repute': {
334             'Meta': {'object_name': 'Repute', 'db_table': "u'repute'"},
335             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
336             'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.Question']"}),
337             'reputation_type': ('django.db.models.fields.SmallIntegerField', [], {}),
338             'reputed_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
339             'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'reputes'", 'to': "orm['forum.User']"}),
340             'user_previous_rep': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
341             'value': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'})
342         },
343         'forum.subscriptionsettings': {
344             'Meta': {'object_name': 'SubscriptionSettings'},
345             'all_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
346             'all_questions_watched_tags': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
347             'enable_notifications': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
348             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
349             'member_joins': ('django.db.models.fields.CharField', [], {'default': "'n'", 'max_length': '1'}),
350             'new_question': ('django.db.models.fields.CharField', [], {'default': "'d'", 'max_length': '1'}),
351             'new_question_watched_tags': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
352             'notify_accepted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
353             'notify_answers': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
354             'notify_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
355             'notify_comments_own_post': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
356             'notify_reply_to_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
357             'questions_answered': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
358             'questions_asked': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
359             'questions_commented': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
360             'questions_viewed': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
361             'subscribed_questions': ('django.db.models.fields.CharField', [], {'default': "'i'", 'max_length': '1'}),
362             'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'subscription_settings'", 'unique': 'True', 'to': "orm['forum.User']"})
363         },
364         'forum.tag': {
365             'Meta': {'object_name': 'Tag', 'db_table': "u'tag'"},
366             'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created_tags'", 'to': "orm['forum.User']"}),
367             'deleted': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
368             'deleted_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
369             'deleted_by': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'deleted_tags'", 'null': 'True', 'to': "orm['forum.User']"}),
370             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
371             'marked_by': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'marked_tags'", 'through': "'MarkedTag'", 'to': "orm['forum.User']"}),
372             'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
373             'used_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
374         },
375         'forum.user': {
376             'Meta': {'object_name': 'User', '_ormbases': ['auth.User']},
377             'about': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
378             'bronze': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
379             'date_of_birth': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
380             'email_isvalid': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
381             'email_key': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
382             'gold': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
383             'hide_ignored_questions': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
384             'is_approved': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
385             'last_seen': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
386             'location': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
387             'questions_per_page': ('django.db.models.fields.SmallIntegerField', [], {'default': '10'}),
388             'real_name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
389             'reputation': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
390             'silver': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
391             'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}),
392             'website': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
393         },
394         'forum.validationhash': {
395             'Meta': {'unique_together': "(('user', 'type'),)", 'object_name': 'ValidationHash'},
396             'expiration': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2010, 4, 15, 12, 14, 35, 357000)'}),
397             'hash_code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
398             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
399             'seed': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
400             'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
401             'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['forum.User']"})
402         },
403         'forum.vote': {
404             'Meta': {'object_name': 'Vote', 'db_table': "u'vote'"},
405             'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
406             'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
407             'node': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'null': 'True', 'to': "orm['forum.Node']"}),
408             'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'votes'", 'to': "orm['forum.User']"}),
409             'vote': ('django.db.models.fields.SmallIntegerField', [], {}),
410             'voted_at': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'})
411         }
412     }
413     
414     complete_apps = ['forum']