0001_initial.py 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. import mptt.fields
  4. from django.conf import settings
  5. from django.contrib.postgres.fields import JSONField
  6. import django.db.models.deletion
  7. from django.db import migrations, models
  8. from misago.acl.models import permissions_default
  9. class Migration(migrations.Migration):
  10. dependencies = [
  11. ('misago_acl', '0001_initial'),
  12. migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  13. ]
  14. operations = [
  15. migrations.CreateModel(
  16. name='Category',
  17. fields=[
  18. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  19. ('special_role', models.CharField(max_length=255, null=True, blank=True)),
  20. ('name', models.CharField(max_length=255)),
  21. ('slug', models.CharField(max_length=255)),
  22. ('description', models.TextField(null=True, blank=True)),
  23. ('is_closed', models.BooleanField(default=False)),
  24. ('threads', models.PositiveIntegerField(default=0)),
  25. ('posts', models.PositiveIntegerField(default=0)),
  26. ('last_thread_title', models.CharField(max_length=255, null=True, blank=True)),
  27. ('last_thread_slug', models.CharField(max_length=255, null=True, blank=True)),
  28. ('last_poster_name', models.CharField(max_length=255, null=True, blank=True)),
  29. ('last_poster_slug', models.CharField(max_length=255, null=True, blank=True)),
  30. ('last_post_on', models.DateTimeField(null=True, blank=True)),
  31. ('prune_started_after', models.PositiveIntegerField(default=0)),
  32. ('prune_replied_after', models.PositiveIntegerField(default=0)),
  33. ('css_class', models.CharField(max_length=255, null=True, blank=True)),
  34. ('lft', models.PositiveIntegerField(editable=False, db_index=True)),
  35. ('rght', models.PositiveIntegerField(editable=False, db_index=True)),
  36. ('tree_id', models.PositiveIntegerField(editable=False, db_index=True)),
  37. ('level', models.PositiveIntegerField(editable=False, db_index=True)),
  38. ('archive_pruned_in', models.ForeignKey(related_name='pruned_archive', on_delete=django.db.models.deletion.SET_NULL, blank=True, to='misago_categories.Category', null=True)),
  39. ('last_poster', models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, blank=True, to=settings.AUTH_USER_MODEL, null=True)),
  40. ('parent', mptt.fields.TreeForeignKey(related_name='children', blank=True, to='misago_categories.Category', null=True)),
  41. ],
  42. options={
  43. 'abstract': False,
  44. },
  45. bases=(models.Model,),
  46. ),
  47. migrations.CreateModel(
  48. name='CategoryRole',
  49. fields=[
  50. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  51. ('name', models.CharField(max_length=255)),
  52. ('special_role', models.CharField(max_length=255, null=True, blank=True)),
  53. ('permissions', JSONField(default=permissions_default)),
  54. ],
  55. options={
  56. 'abstract': False,
  57. },
  58. bases=(models.Model,),
  59. ),
  60. migrations.CreateModel(
  61. name='RoleCategoryACL',
  62. fields=[
  63. ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
  64. ('category', models.ForeignKey(related_name='category_role_set', to='misago_categories.Category')),
  65. ('category_role', models.ForeignKey(to='misago_categories.CategoryRole', to_field='id')),
  66. ('role', models.ForeignKey(related_name='categories_acls', to='misago_acl.Role')),
  67. ],
  68. options={
  69. },
  70. bases=(models.Model,),
  71. ),
  72. ]