0001_initial.py 5.9 KB

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