0001_initial.py 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.conf import settings
  4. from django.db import models, migrations
  5. import django.db.models.deletion
  6. import django.utils.timezone
  7. from misago.core.pgutils import CreatePartialIndex
  8. class Migration(migrations.Migration):
  9. dependencies = [
  10. ('misago_forums', '0001_initial'),
  11. migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  12. ]
  13. operations = [
  14. migrations.CreateModel(
  15. name='Label',
  16. fields=[
  17. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  18. ('name', models.CharField(max_length=255)),
  19. ('slug', models.SlugField(max_length=255)),
  20. ('css_class', models.CharField(max_length=255, null=True, blank=True)),
  21. ('forums', models.ManyToManyField(to='misago_forums.Forum')),
  22. ],
  23. options={
  24. },
  25. bases=(models.Model,),
  26. ),
  27. migrations.CreateModel(
  28. name='Post',
  29. fields=[
  30. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  31. ('poster_name', models.CharField(max_length=255)),
  32. ('poster_ip', models.GenericIPAddressField()),
  33. ('original', models.TextField()),
  34. ('parsed', models.TextField()),
  35. ('checksum', models.CharField(max_length=64, default='-')),
  36. ('has_attachments', models.BooleanField(default=False)),
  37. ('pickled_attachments', models.TextField(null=True, blank=True)),
  38. ('posted_on', models.DateTimeField()),
  39. ('updated_on', models.DateTimeField()),
  40. ('edits', models.PositiveIntegerField(default=0)),
  41. ('last_editor_name', models.CharField(max_length=255, null=True, blank=True)),
  42. ('last_editor_slug', models.SlugField(max_length=255, null=True, blank=True)),
  43. ('hidden_by', models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, blank=True, to=settings.AUTH_USER_MODEL, null=True)),
  44. ('hidden_by_name', models.CharField(max_length=255, null=True, blank=True)),
  45. ('hidden_by_slug', models.SlugField(max_length=255, null=True, blank=True)),
  46. ('hidden_on', models.DateTimeField(default=django.utils.timezone.now)),
  47. ('is_reported', models.BooleanField(default=False)),
  48. ('is_moderated', models.BooleanField(default=False, db_index=True)),
  49. ('is_hidden', models.BooleanField(default=False)),
  50. ('is_protected', models.BooleanField(default=False)),
  51. ('forum', models.ForeignKey(to='misago_forums.Forum')),
  52. ('last_editor', models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, blank=True, to=settings.AUTH_USER_MODEL, null=True)),
  53. ('mentions', models.ManyToManyField(related_name='mention_set', to=settings.AUTH_USER_MODEL)),
  54. ('poster', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, blank=True, to=settings.AUTH_USER_MODEL, null=True)),
  55. ],
  56. options={
  57. },
  58. bases=(models.Model,),
  59. ),
  60. CreatePartialIndex(
  61. field='Post.is_reported',
  62. index_name='misago_post_is_reported_partial',
  63. condition='is_reported = TRUE',
  64. ),
  65. CreatePartialIndex(
  66. field='Post.is_hidden',
  67. index_name='misago_post_is_hidden_partial',
  68. condition='is_hidden = FALSE',
  69. ),
  70. migrations.CreateModel(
  71. name='Thread',
  72. fields=[
  73. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  74. ('title', models.CharField(max_length=255)),
  75. ('slug', models.CharField(max_length=255)),
  76. ('replies', models.PositiveIntegerField(default=0, db_index=True)),
  77. ('has_reported_posts', models.BooleanField(default=False)),
  78. ('has_moderated_posts', models.BooleanField(default=False)),
  79. ('has_hidden_posts', models.BooleanField(default=False)),
  80. ('has_events', models.BooleanField(default=False)),
  81. ('started_on', models.DateTimeField(db_index=True)),
  82. ('starter_name', models.CharField(max_length=255)),
  83. ('starter_slug', models.CharField(max_length=255)),
  84. ('last_post_on', models.DateTimeField(db_index=True)),
  85. ('last_poster_name', models.CharField(max_length=255, null=True, blank=True)),
  86. ('last_poster_slug', models.CharField(max_length=255, null=True, blank=True)),
  87. ('is_pinned', models.BooleanField(default=False, db_index=True)),
  88. ('is_poll', models.BooleanField(default=False)),
  89. ('is_moderated', models.BooleanField(default=False, db_index=True)),
  90. ('is_hidden', models.BooleanField(default=False)),
  91. ('is_closed', models.BooleanField(default=False)),
  92. ],
  93. options={
  94. },
  95. bases=(models.Model,),
  96. ),
  97. migrations.CreateModel(
  98. name='ThreadParticipant',
  99. fields=[
  100. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  101. ('thread', models.ForeignKey(to='misago_threads.Thread')),
  102. ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)),
  103. ('is_owner', models.BooleanField(default=False)),
  104. ],
  105. options={
  106. },
  107. bases=(models.Model,),
  108. ),
  109. migrations.AddField(
  110. model_name='thread',
  111. name='participants',
  112. field=models.ManyToManyField(related_name='private_thread_set', through='misago_threads.ThreadParticipant', through_fields=('thread', 'user'), to=settings.AUTH_USER_MODEL),
  113. preserve_default=True,
  114. ),
  115. migrations.AddField(
  116. model_name='thread',
  117. name='report_for',
  118. field=models.ForeignKey(related_name='report_set', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='misago_threads.Post', null=True),
  119. preserve_default=True,
  120. ),
  121. migrations.AddField(
  122. model_name='thread',
  123. name='report_in',
  124. field=models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='misago_forums.Forum', null=True),
  125. preserve_default=True,
  126. ),
  127. migrations.CreateModel(
  128. name='Event',
  129. fields=[
  130. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  131. ('author_name', models.CharField(max_length=255)),
  132. ('author_slug', models.CharField(max_length=255)),
  133. ('icon', models.CharField(max_length=255)),
  134. ('occured_on', models.DateTimeField(default=django.utils.timezone.now, db_index=True)),
  135. ('message', models.CharField(max_length=255)),
  136. ('checksum', models.CharField(max_length=64, default='-')),
  137. ('is_hidden', models.BooleanField(default=False)),
  138. ('author', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, blank=True, to=settings.AUTH_USER_MODEL, null=True)),
  139. ('forum', models.ForeignKey(to='misago_forums.Forum')),
  140. ('thread', models.ForeignKey(to='misago_threads.Thread')),
  141. ],
  142. options={
  143. },
  144. bases=(models.Model,),
  145. ),
  146. CreatePartialIndex(
  147. field='Thread.has_reported_posts',
  148. index_name='misago_thread_has_reported_posts_partial',
  149. condition='has_reported_posts = TRUE',
  150. ),
  151. CreatePartialIndex(
  152. field='Thread.has_moderated_posts',
  153. index_name='misago_thread_has_moderated_posts_partial',
  154. condition='has_moderated_posts = TRUE',
  155. ),
  156. CreatePartialIndex(
  157. field='Thread.is_hidden',
  158. index_name='misago_thread_is_hidden_partial',
  159. condition='is_hidden = FALSE',
  160. ),
  161. migrations.AddField(
  162. model_name='post',
  163. name='thread',
  164. field=models.ForeignKey(to='misago_threads.Thread'),
  165. preserve_default=True,
  166. ),
  167. migrations.AddField(
  168. model_name='thread',
  169. name='first_post',
  170. field=models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='misago_threads.Post', null=True),
  171. preserve_default=True,
  172. ),
  173. migrations.AddField(
  174. model_name='thread',
  175. name='forum',
  176. field=models.ForeignKey(to='misago_forums.Forum'),
  177. preserve_default=True,
  178. ),
  179. migrations.AddField(
  180. model_name='thread',
  181. name='last_post',
  182. field=models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='misago_threads.Post', null=True),
  183. preserve_default=True,
  184. ),
  185. migrations.AddField(
  186. model_name='thread',
  187. name='last_poster',
  188. field=models.ForeignKey(related_name='last_poster_set', on_delete=django.db.models.deletion.SET_NULL, blank=True, to=settings.AUTH_USER_MODEL, null=True),
  189. preserve_default=True,
  190. ),
  191. migrations.AddField(
  192. model_name='thread',
  193. name='label',
  194. field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, blank=True, to='misago_threads.Label', null=True),
  195. preserve_default=True,
  196. ),
  197. migrations.AddField(
  198. model_name='thread',
  199. name='starter',
  200. field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, blank=True, to=settings.AUTH_USER_MODEL, null=True),
  201. preserve_default=True,
  202. ),
  203. migrations.AlterIndexTogether(
  204. name='thread',
  205. index_together=set([
  206. ('forum', 'id'),
  207. ('forum', 'last_post_on'),
  208. ('forum', 'replies'),
  209. ]),
  210. ),
  211. ]