123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660 |
- import django.db.models.deletion
- import django.utils.timezone
- from django.conf import settings
- from django.contrib.postgres.search import SearchVectorField
- from django.db import migrations, models
- import misago.threads.models.attachment
- class Migration(migrations.Migration):
- initial = True
- dependencies = [
- ("misago_categories", "0001_initial"),
- migrations.swappable_dependency(settings.AUTH_USER_MODEL),
- ]
- operations = [
- migrations.CreateModel(
- name="Post",
- fields=[
- (
- "id",
- models.AutoField(
- verbose_name="ID",
- serialize=False,
- auto_created=True,
- primary_key=True,
- ),
- ),
- ("poster_name", models.CharField(max_length=255)),
- ("poster_ip", models.GenericIPAddressField()),
- ("original", models.TextField()),
- ("parsed", models.TextField()),
- ("checksum", models.CharField(max_length=64, default="-")),
- ("attachments_cache", models.JSONField(null=True, blank=True)),
- ("posted_on", models.DateTimeField()),
- ("updated_on", models.DateTimeField()),
- ("edits", models.PositiveIntegerField(default=0)),
- (
- "last_editor_name",
- models.CharField(max_length=255, null=True, blank=True),
- ),
- (
- "last_editor_slug",
- models.SlugField(max_length=255, null=True, blank=True),
- ),
- (
- "hidden_by",
- models.ForeignKey(
- related_name="+",
- on_delete=django.db.models.deletion.SET_NULL,
- blank=True,
- to=settings.AUTH_USER_MODEL,
- null=True,
- ),
- ),
- (
- "hidden_by_name",
- models.CharField(max_length=255, null=True, blank=True),
- ),
- (
- "hidden_by_slug",
- models.SlugField(max_length=255, null=True, blank=True),
- ),
- ("hidden_on", models.DateTimeField(default=django.utils.timezone.now)),
- ("has_reports", models.BooleanField(default=False)),
- ("has_open_reports", models.BooleanField(default=False)),
- ("is_unapproved", models.BooleanField(default=False, db_index=True)),
- ("is_hidden", models.BooleanField(default=False)),
- ("is_protected", models.BooleanField(default=False)),
- (
- "category",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_categories.Category",
- ),
- ),
- (
- "last_editor",
- models.ForeignKey(
- related_name="+",
- on_delete=django.db.models.deletion.SET_NULL,
- blank=True,
- to=settings.AUTH_USER_MODEL,
- null=True,
- ),
- ),
- (
- "mentions",
- models.ManyToManyField(
- related_name="mention_set", to=settings.AUTH_USER_MODEL
- ),
- ),
- (
- "poster",
- models.ForeignKey(
- on_delete=django.db.models.deletion.SET_NULL,
- blank=True,
- to=settings.AUTH_USER_MODEL,
- null=True,
- ),
- ),
- ("is_event", models.BooleanField(default=False, db_index=True)),
- ("event_type", models.CharField(max_length=255, null=True, blank=True)),
- ("event_context", models.JSONField(null=True, blank=True)),
- ("likes", models.PositiveIntegerField(default=0)),
- ("last_likes", models.JSONField(blank=True, null=True)),
- ("search_document", models.TextField(blank=True, null=True)),
- ("search_vector", SearchVectorField()),
- ],
- options={},
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name="Thread",
- fields=[
- (
- "id",
- models.AutoField(
- verbose_name="ID",
- serialize=False,
- auto_created=True,
- primary_key=True,
- ),
- ),
- ("title", models.CharField(max_length=255)),
- ("slug", models.CharField(max_length=255)),
- ("replies", models.PositiveIntegerField(default=0, db_index=True)),
- ("has_events", models.BooleanField(default=False)),
- ("has_poll", models.BooleanField(default=False)),
- ("has_reported_posts", models.BooleanField(default=False)),
- ("has_open_reports", models.BooleanField(default=False)),
- ("has_unapproved_posts", models.BooleanField(default=False)),
- ("has_hidden_posts", models.BooleanField(default=False)),
- ("started_on", models.DateTimeField(db_index=True)),
- ("starter_name", models.CharField(max_length=255)),
- ("starter_slug", models.CharField(max_length=255)),
- ("last_post_is_event", models.BooleanField(default=False)),
- ("last_post_on", models.DateTimeField(db_index=True)),
- (
- "last_poster_name",
- models.CharField(max_length=255, null=True, blank=True),
- ),
- (
- "last_poster_slug",
- models.CharField(max_length=255, null=True, blank=True),
- ),
- ("weight", models.PositiveIntegerField(default=0)),
- ("is_unapproved", models.BooleanField(default=False, db_index=True)),
- ("is_hidden", models.BooleanField(default=False)),
- ("is_closed", models.BooleanField(default=False)),
- ],
- options={},
- bases=(models.Model,),
- ),
- migrations.CreateModel(
- name="ThreadParticipant",
- fields=[
- (
- "id",
- models.AutoField(
- verbose_name="ID",
- serialize=False,
- auto_created=True,
- primary_key=True,
- ),
- ),
- (
- "thread",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_threads.Thread",
- ),
- ),
- (
- "user",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- ("is_owner", models.BooleanField(default=False)),
- ],
- options={},
- bases=(models.Model,),
- ),
- migrations.AddField(
- model_name="thread",
- name="participants",
- field=models.ManyToManyField(
- related_name="privatethread_set",
- through="misago_threads.ThreadParticipant",
- to=settings.AUTH_USER_MODEL,
- ),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name="post",
- name="thread",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to="misago_threads.Thread"
- ),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name="thread",
- name="first_post",
- field=models.ForeignKey(
- related_name="+",
- on_delete=django.db.models.deletion.SET_NULL,
- blank=True,
- to="misago_threads.Post",
- null=True,
- ),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name="thread",
- name="category",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_categories.Category",
- ),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name="thread",
- name="last_post",
- field=models.ForeignKey(
- related_name="+",
- on_delete=django.db.models.deletion.SET_NULL,
- blank=True,
- to="misago_threads.Post",
- null=True,
- ),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name="thread",
- name="last_poster",
- field=models.ForeignKey(
- related_name="last_poster_set",
- on_delete=django.db.models.deletion.SET_NULL,
- blank=True,
- to=settings.AUTH_USER_MODEL,
- null=True,
- ),
- preserve_default=True,
- ),
- migrations.AddField(
- model_name="thread",
- name="starter",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.SET_NULL,
- blank=True,
- to=settings.AUTH_USER_MODEL,
- null=True,
- ),
- preserve_default=True,
- ),
- migrations.AlterIndexTogether(
- name="thread",
- index_together=set(
- [
- ("category", "id"),
- ("category", "last_post_on"),
- ("category", "replies"),
- ]
- ),
- ),
- migrations.AlterIndexTogether(
- name="post",
- index_together=set(
- [("thread", "id"), ("is_event", "is_hidden"), ("poster", "posted_on")]
- ),
- ),
- migrations.CreateModel(
- name="Subscription",
- fields=[
- (
- "id",
- models.AutoField(
- verbose_name="ID",
- serialize=False,
- auto_created=True,
- primary_key=True,
- ),
- ),
- (
- "last_read_on",
- models.DateTimeField(default=django.utils.timezone.now),
- ),
- ("send_email", models.BooleanField(default=False)),
- (
- "category",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_categories.Category",
- ),
- ),
- (
- "thread",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_threads.Thread",
- ),
- ),
- (
- "user",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- ],
- options={},
- bases=(models.Model,),
- ),
- migrations.AlterIndexTogether(
- name="subscription", index_together=set([("send_email", "last_read_on")])
- ),
- migrations.CreateModel(
- name="PostEdit",
- fields=[
- (
- "id",
- models.AutoField(
- auto_created=True,
- primary_key=True,
- serialize=False,
- verbose_name="ID",
- ),
- ),
- ("edited_on", models.DateTimeField(default=django.utils.timezone.now)),
- ("editor_name", models.CharField(max_length=255)),
- ("editor_slug", models.CharField(max_length=255)),
- ("editor_ip", models.GenericIPAddressField()),
- ("edited_from", models.TextField()),
- ("edited_to", models.TextField()),
- (
- "category",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_categories.Category",
- ),
- ),
- (
- "editor",
- models.ForeignKey(
- blank=True,
- null=True,
- on_delete=django.db.models.deletion.SET_NULL,
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- (
- "post",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- related_name="edits_record",
- to="misago_threads.Post",
- ),
- ),
- (
- "thread",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_threads.Thread",
- ),
- ),
- ],
- options={"ordering": ["-id"]},
- ),
- migrations.CreateModel(
- name="Attachment",
- fields=[
- (
- "id",
- models.AutoField(
- auto_created=True,
- primary_key=True,
- serialize=False,
- verbose_name="ID",
- ),
- ),
- ("secret", models.CharField(max_length=64)),
- (
- "uploaded_on",
- models.DateTimeField(
- default=django.utils.timezone.now, db_index=True
- ),
- ),
- ("uploader_name", models.CharField(max_length=255)),
- ("uploader_slug", models.CharField(max_length=255, db_index=True)),
- ("uploader_ip", models.GenericIPAddressField()),
- ("filename", models.CharField(max_length=255, db_index=True)),
- ("size", models.PositiveIntegerField(default=0, db_index=True)),
- (
- "thumbnail",
- models.ImageField(
- max_length=255,
- blank=True,
- null=True,
- upload_to=misago.threads.models.attachment.upload_to,
- ),
- ),
- (
- "image",
- models.ImageField(
- max_length=255,
- blank=True,
- null=True,
- upload_to=misago.threads.models.attachment.upload_to,
- ),
- ),
- (
- "file",
- models.FileField(
- max_length=255,
- blank=True,
- null=True,
- upload_to=misago.threads.models.attachment.upload_to,
- ),
- ),
- (
- "post",
- models.ForeignKey(
- blank=True,
- null=True,
- on_delete=django.db.models.deletion.SET_NULL,
- to="misago_threads.Post",
- ),
- ),
- ],
- ),
- migrations.CreateModel(
- name="AttachmentType",
- fields=[
- (
- "id",
- models.AutoField(
- auto_created=True,
- primary_key=True,
- serialize=False,
- verbose_name="ID",
- ),
- ),
- ("name", models.CharField(max_length=255)),
- ("extensions", models.CharField(max_length=255)),
- ("mimetypes", models.CharField(blank=True, max_length=255, null=True)),
- ("size_limit", models.PositiveIntegerField(default=1024)),
- (
- "status",
- models.PositiveIntegerField(
- choices=[
- (0, "Allow uploads and downloads"),
- (1, "Allow downloads only"),
- (2, "Disallow both uploading and downloading"),
- ],
- default=0,
- ),
- ),
- (
- "limit_downloads_to",
- models.ManyToManyField(
- blank=True,
- related_name="_attachmenttype_limit_downloads_to_+",
- to="misago_acl.Role",
- ),
- ),
- (
- "limit_uploads_to",
- models.ManyToManyField(
- blank=True,
- related_name="_attachmenttype_limit_uploads_to_+",
- to="misago_acl.Role",
- ),
- ),
- ],
- ),
- migrations.AddField(
- model_name="attachment",
- name="filetype",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_threads.AttachmentType",
- ),
- ),
- migrations.AddField(
- model_name="attachment",
- name="uploader",
- field=models.ForeignKey(
- blank=True,
- null=True,
- on_delete=django.db.models.deletion.SET_NULL,
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- migrations.CreateModel(
- name="Poll",
- fields=[
- (
- "id",
- models.AutoField(
- auto_created=True,
- primary_key=True,
- serialize=False,
- verbose_name="ID",
- ),
- ),
- ("poster_name", models.CharField(max_length=255)),
- ("poster_slug", models.CharField(max_length=255)),
- ("poster_ip", models.GenericIPAddressField()),
- ("posted_on", models.DateTimeField(default=django.utils.timezone.now)),
- ("length", models.PositiveIntegerField(default=0)),
- ("question", models.CharField(max_length=255)),
- ("choices", models.JSONField()),
- ("allowed_choices", models.PositiveIntegerField(default=1)),
- ("allow_revotes", models.BooleanField(default=False)),
- ("votes", models.PositiveIntegerField(default=0)),
- ("is_public", models.BooleanField(default=False)),
- (
- "category",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_categories.Category",
- ),
- ),
- (
- "poster",
- models.ForeignKey(
- blank=True,
- null=True,
- on_delete=django.db.models.deletion.SET_NULL,
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- (
- "thread",
- models.OneToOneField(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_threads.Thread",
- ),
- ),
- ],
- ),
- migrations.CreateModel(
- name="PollVote",
- fields=[
- (
- "id",
- models.AutoField(
- auto_created=True,
- primary_key=True,
- serialize=False,
- verbose_name="ID",
- ),
- ),
- ("voter_name", models.CharField(max_length=255)),
- ("voter_slug", models.CharField(max_length=255)),
- ("voter_ip", models.GenericIPAddressField()),
- ("voted_on", models.DateTimeField(default=django.utils.timezone.now)),
- ("choice_hash", models.CharField(db_index=True, max_length=12)),
- (
- "category",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_categories.Category",
- ),
- ),
- (
- "poll",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_threads.Poll",
- ),
- ),
- (
- "thread",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_threads.Thread",
- ),
- ),
- (
- "voter",
- models.ForeignKey(
- blank=True,
- null=True,
- on_delete=django.db.models.deletion.SET_NULL,
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- ],
- ),
- migrations.AlterIndexTogether(
- name="pollvote", index_together=set([("poll", "voter_name")])
- ),
- migrations.CreateModel(
- name="PostLike",
- fields=[
- (
- "id",
- models.AutoField(
- auto_created=True,
- primary_key=True,
- serialize=False,
- verbose_name="ID",
- ),
- ),
- ("liker_name", models.CharField(max_length=255, db_index=True)),
- ("liker_slug", models.CharField(max_length=255)),
- ("liker_ip", models.GenericIPAddressField()),
- ("liked_on", models.DateTimeField(default=django.utils.timezone.now)),
- (
- "category",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE,
- to="misago_categories.Category",
- ),
- ),
- ],
- options={"ordering": ["-id"]},
- ),
- migrations.AddField(
- model_name="postlike",
- name="post",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to="misago_threads.Post"
- ),
- ),
- migrations.AddField(
- model_name="postlike",
- name="thread",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to="misago_threads.Thread"
- ),
- ),
- migrations.AddField(
- model_name="postlike",
- name="liker",
- field=models.ForeignKey(
- blank=True,
- null=True,
- on_delete=django.db.models.deletion.SET_NULL,
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- migrations.AddField(
- model_name="post",
- name="liked_by",
- field=models.ManyToManyField(
- related_name="liked_post_set",
- through="misago_threads.PostLike",
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- ]
|