0001_initial.py 5.3 KB

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