0001_initial.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. import mptt.fields
  2. import django.db.models.deletion
  3. from django.conf import settings
  4. from django.contrib.postgres.fields import JSONField
  5. from django.db import migrations, models
  6. from misago.acl.models import permissions_default
  7. class Migration(migrations.Migration):
  8. initial = True
  9. dependencies = [
  10. ('misago_acl', '0001_initial'),
  11. migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  12. ]
  13. operations = [
  14. migrations.CreateModel(
  15. name='Category',
  16. fields=[
  17. (
  18. 'id', models.AutoField(
  19. verbose_name='ID', serialize=False, auto_created=True, primary_key=True
  20. )
  21. ),
  22. ('special_role', models.CharField(max_length=255, null=True, blank=True)),
  23. ('name', models.CharField(max_length=255)),
  24. ('slug', models.CharField(max_length=255)),
  25. ('description', models.TextField(null=True, blank=True)),
  26. ('is_closed', models.BooleanField(default=False)),
  27. ('threads', models.PositiveIntegerField(default=0)),
  28. ('posts', models.PositiveIntegerField(default=0)),
  29. ('last_thread_title', models.CharField(max_length=255, null=True, blank=True)),
  30. ('last_thread_slug', models.CharField(max_length=255, null=True, blank=True)),
  31. ('last_poster_name', models.CharField(max_length=255, null=True, blank=True)),
  32. ('last_poster_slug', models.CharField(max_length=255, null=True, blank=True)),
  33. ('last_post_on', models.DateTimeField(null=True, blank=True)),
  34. ('prune_started_after', models.PositiveIntegerField(default=0)),
  35. ('prune_replied_after', models.PositiveIntegerField(default=0)),
  36. ('css_class', models.CharField(max_length=255, null=True, blank=True)),
  37. ('lft', models.PositiveIntegerField(editable=False, db_index=True)),
  38. ('rght', models.PositiveIntegerField(editable=False, db_index=True)),
  39. ('tree_id', models.PositiveIntegerField(editable=False, db_index=True)),
  40. ('level', models.PositiveIntegerField(editable=False, db_index=True)),
  41. (
  42. 'archive_pruned_in', models.ForeignKey(
  43. related_name='pruned_archive',
  44. on_delete=django.db.models.deletion.SET_NULL,
  45. blank=True,
  46. to='misago_categories.Category',
  47. null=True
  48. )
  49. ),
  50. (
  51. 'last_poster', models.ForeignKey(
  52. related_name='+',
  53. on_delete=django.db.models.deletion.SET_NULL,
  54. blank=True,
  55. to=settings.AUTH_USER_MODEL,
  56. null=True
  57. )
  58. ),
  59. (
  60. 'parent', mptt.fields.TreeForeignKey(
  61. related_name='children',
  62. on_delete=django.db.models.deletion.CASCADE,
  63. blank=True,
  64. to='misago_categories.Category',
  65. null=True
  66. )
  67. ),
  68. ],
  69. options={
  70. 'abstract': False,
  71. },
  72. bases=(models.Model, ),
  73. ),
  74. migrations.CreateModel(
  75. name='CategoryRole',
  76. fields=[
  77. (
  78. 'id', models.AutoField(
  79. verbose_name='ID', serialize=False, auto_created=True, primary_key=True
  80. )
  81. ),
  82. ('name', models.CharField(max_length=255)),
  83. ('special_role', models.CharField(max_length=255, null=True, blank=True)),
  84. ('permissions', JSONField(default=permissions_default)),
  85. ],
  86. options={
  87. 'abstract': False,
  88. },
  89. bases=(models.Model, ),
  90. ),
  91. migrations.CreateModel(
  92. name='RoleCategoryACL',
  93. fields=[
  94. (
  95. 'id', models.AutoField(
  96. verbose_name='ID', serialize=False, auto_created=True, primary_key=True
  97. )
  98. ),
  99. (
  100. 'category', models.ForeignKey(
  101. related_name='category_role_set',
  102. on_delete=django.db.models.deletion.CASCADE,
  103. to='misago_categories.Category',
  104. )
  105. ),
  106. (
  107. 'category_role', models.ForeignKey(
  108. on_delete=django.db.models.deletion.CASCADE,
  109. to='misago_categories.CategoryRole',
  110. to_field='id',
  111. )
  112. ),
  113. (
  114. 'role', models.ForeignKey(
  115. related_name='categories_acls',
  116. on_delete=django.db.models.deletion.CASCADE,
  117. to='misago_acl.Role',
  118. )
  119. ),
  120. ],
  121. options={},
  122. bases=(models.Model, ),
  123. ),
  124. ]