/hyperkitty/migrations/0001_initial.py

https://gitlab.com/mathuin/hyperkitty · Python · 273 lines · 266 code · 5 blank · 2 comment · 1 complexity · a17f698a5c0d15301383dd994cd2a948 MD5 · raw file

  1. # -*- coding: utf-8 -*-
  2. # pylint: skip-file
  3. from __future__ import unicode_literals
  4. from django.db import models, migrations
  5. import django.db.models.deletion
  6. import paintstore.fields
  7. import django.utils.timezone
  8. from django.conf import settings
  9. import pytz
  10. TIMEZONES = sorted([ (tz, tz) for tz in pytz.common_timezones ])
  11. class Migration(migrations.Migration):
  12. dependencies = [
  13. migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  14. ]
  15. operations = [
  16. migrations.CreateModel(
  17. name='Attachment',
  18. fields=[
  19. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  20. ('counter', models.SmallIntegerField()),
  21. ('name', models.CharField(max_length=255)),
  22. ('content_type', models.CharField(max_length=255)),
  23. ('encoding', models.CharField(max_length=255, null=True)),
  24. ('size', models.IntegerField()),
  25. ('content', models.BinaryField()),
  26. ],
  27. options={
  28. },
  29. bases=(models.Model,),
  30. ),
  31. migrations.CreateModel(
  32. name='Email',
  33. fields=[
  34. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  35. ('message_id', models.CharField(max_length=255, db_index=True)),
  36. ('message_id_hash', models.CharField(max_length=255, db_index=True)),
  37. ('subject', models.CharField(max_length='512', db_index=True)),
  38. ('content', models.TextField()),
  39. ('date', models.DateTimeField(db_index=True)),
  40. ('timezone', models.SmallIntegerField()),
  41. ('in_reply_to', models.CharField(max_length=255, null=True, blank=True)),
  42. ('archived_date', models.DateTimeField(auto_now_add=True, db_index=True)),
  43. ('thread_depth', models.IntegerField(default=0)),
  44. ('thread_order', models.IntegerField(default=0, db_index=True)),
  45. ],
  46. options={
  47. },
  48. bases=(models.Model,),
  49. ),
  50. migrations.CreateModel(
  51. name='Favorite',
  52. fields=[
  53. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  54. ],
  55. options={
  56. },
  57. bases=(models.Model,),
  58. ),
  59. migrations.CreateModel(
  60. name='LastView',
  61. fields=[
  62. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  63. ('view_date', models.DateTimeField(auto_now=True)),
  64. ],
  65. options={
  66. },
  67. bases=(models.Model,),
  68. ),
  69. migrations.CreateModel(
  70. name='MailingList',
  71. fields=[
  72. ('name', models.CharField(max_length=254, serialize=False, primary_key=True)),
  73. ('display_name', models.CharField(max_length=255)),
  74. ('description', models.TextField()),
  75. ('subject_prefix', models.CharField(max_length=255)),
  76. ('archive_policy', models.IntegerField(default=2, choices=[(0, b'never'), (1, b'private'), (2, b'public')])),
  77. ('created_at', models.DateTimeField(default=django.utils.timezone.now)),
  78. ],
  79. options={
  80. },
  81. bases=(models.Model,),
  82. ),
  83. migrations.CreateModel(
  84. name='Profile',
  85. fields=[
  86. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  87. ('karma', models.IntegerField(default=1)),
  88. ('timezone', models.CharField(default='', max_length=100, choices=TIMEZONES)),
  89. ('user', models.OneToOneField(related_name='hyperkitty_profile', to=settings.AUTH_USER_MODEL)),
  90. ],
  91. options={
  92. },
  93. bases=(models.Model,),
  94. ),
  95. migrations.CreateModel(
  96. name='Sender',
  97. fields=[
  98. ('address', models.EmailField(max_length=255, serialize=False, primary_key=True)),
  99. ('name', models.CharField(max_length=255)),
  100. ('mailman_id', models.CharField(max_length=255, null=True, db_index=True)),
  101. ],
  102. options={
  103. },
  104. bases=(models.Model,),
  105. ),
  106. migrations.CreateModel(
  107. name='Tag',
  108. fields=[
  109. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  110. ('name', models.CharField(unique=True, max_length=255, db_index=True)),
  111. ],
  112. options={
  113. 'ordering': ['name'],
  114. },
  115. bases=(models.Model,),
  116. ),
  117. migrations.CreateModel(
  118. name='Tagging',
  119. fields=[
  120. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  121. ('tag', models.ForeignKey(to='hyperkitty.Tag')),
  122. ],
  123. options={
  124. },
  125. bases=(models.Model,),
  126. ),
  127. migrations.CreateModel(
  128. name='Thread',
  129. fields=[
  130. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  131. ('thread_id', models.CharField(max_length=255, db_index=True)),
  132. ('date_active', models.DateTimeField(default=django.utils.timezone.now, db_index=True)),
  133. ],
  134. options={
  135. },
  136. bases=(models.Model,),
  137. ),
  138. migrations.CreateModel(
  139. name='ThreadCategory',
  140. fields=[
  141. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  142. ('name', models.CharField(unique=True, max_length=255, db_index=True)),
  143. ('color', paintstore.fields.ColorPickerField(max_length=7)),
  144. ],
  145. options={
  146. 'verbose_name_plural': 'Thread categories',
  147. },
  148. bases=(models.Model,),
  149. ),
  150. migrations.CreateModel(
  151. name='Vote',
  152. fields=[
  153. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  154. ('value', models.SmallIntegerField(db_index=True)),
  155. ('email', models.ForeignKey(related_name='votes', to='hyperkitty.Email')),
  156. ('user', models.ForeignKey(related_name='votes', to=settings.AUTH_USER_MODEL)),
  157. ],
  158. options={
  159. },
  160. bases=(models.Model,),
  161. ),
  162. migrations.AlterUniqueTogether(
  163. name='vote',
  164. unique_together=set([('email', 'user')]),
  165. ),
  166. migrations.AddField(
  167. model_name='thread',
  168. name='category',
  169. field=models.ForeignKey(related_name='threads', to='hyperkitty.ThreadCategory', null=True),
  170. preserve_default=True,
  171. ),
  172. migrations.AddField(
  173. model_name='thread',
  174. name='mailinglist',
  175. field=models.ForeignKey(related_name='threads', to='hyperkitty.MailingList'),
  176. preserve_default=True,
  177. ),
  178. migrations.AlterUniqueTogether(
  179. name='thread',
  180. unique_together=set([('mailinglist', 'thread_id')]),
  181. ),
  182. migrations.AddField(
  183. model_name='tagging',
  184. name='thread',
  185. field=models.ForeignKey(to='hyperkitty.Thread'),
  186. preserve_default=True,
  187. ),
  188. migrations.AddField(
  189. model_name='tagging',
  190. name='user',
  191. field=models.ForeignKey(to=settings.AUTH_USER_MODEL),
  192. preserve_default=True,
  193. ),
  194. migrations.AddField(
  195. model_name='tag',
  196. name='threads',
  197. field=models.ManyToManyField(related_name='tags', through='hyperkitty.Tagging', to='hyperkitty.Thread'),
  198. preserve_default=True,
  199. ),
  200. migrations.AddField(
  201. model_name='tag',
  202. name='users',
  203. field=models.ManyToManyField(related_name='tags', through='hyperkitty.Tagging', to=settings.AUTH_USER_MODEL),
  204. preserve_default=True,
  205. ),
  206. migrations.AddField(
  207. model_name='lastview',
  208. name='thread',
  209. field=models.ForeignKey(related_name='lastviews', to='hyperkitty.Thread'),
  210. preserve_default=True,
  211. ),
  212. migrations.AddField(
  213. model_name='lastview',
  214. name='user',
  215. field=models.ForeignKey(related_name='lastviews', to=settings.AUTH_USER_MODEL),
  216. preserve_default=True,
  217. ),
  218. migrations.AddField(
  219. model_name='favorite',
  220. name='thread',
  221. field=models.ForeignKey(related_name='favorites', to='hyperkitty.Thread'),
  222. preserve_default=True,
  223. ),
  224. migrations.AddField(
  225. model_name='favorite',
  226. name='user',
  227. field=models.ForeignKey(related_name='favorites', to=settings.AUTH_USER_MODEL),
  228. preserve_default=True,
  229. ),
  230. migrations.AddField(
  231. model_name='email',
  232. name='mailinglist',
  233. field=models.ForeignKey(related_name='emails', to='hyperkitty.MailingList'),
  234. preserve_default=True,
  235. ),
  236. migrations.AddField(
  237. model_name='email',
  238. name='parent',
  239. field=models.ForeignKey(related_name='children', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='hyperkitty.Email', null=True),
  240. preserve_default=True,
  241. ),
  242. migrations.AddField(
  243. model_name='email',
  244. name='sender',
  245. field=models.ForeignKey(related_name='emails', to='hyperkitty.Sender'),
  246. preserve_default=True,
  247. ),
  248. migrations.AddField(
  249. model_name='email',
  250. name='thread',
  251. field=models.ForeignKey(related_name='emails', to='hyperkitty.Thread'),
  252. preserve_default=True,
  253. ),
  254. migrations.AlterUniqueTogether(
  255. name='email',
  256. unique_together=set([('mailinglist', 'message_id')]),
  257. ),
  258. migrations.AddField(
  259. model_name='attachment',
  260. name='email',
  261. field=models.ForeignKey(related_name='attachments', to='hyperkitty.Email'),
  262. preserve_default=True,
  263. ),
  264. migrations.AlterUniqueTogether(
  265. name='attachment',
  266. unique_together=set([('email', 'counter')]),
  267. ),
  268. ]