diff --git a/news/migrations/0001_initial.py b/news/migrations/0001_initial.py new file mode 100644 index 0000000..7c4ed56 --- /dev/null +++ b/news/migrations/0001_initial.py @@ -0,0 +1,126 @@ +# Generated by Django 5.2.8 on 2025-11-09 21:45 + +import django.db.models.deletion +import markdownx.models +import tagulous.models.fields +import tagulous.models.models +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name="Category", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("title", models.CharField(max_length=40, unique=True)), + ("slug", models.SlugField(max_length=40, unique=True)), + ], + options={ + "ordering": ["title"], + }, + ), + migrations.CreateModel( + name="Tagulous_NewsItem_tags", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("name", models.CharField(max_length=255, unique=True)), + ("slug", models.SlugField()), + ( + "count", + models.IntegerField( + default=0, + help_text="Internal counter of how many times this tag is in use", + ), + ), + ( + "protected", + models.BooleanField( + default=False, + help_text="Will not be deleted when the count reaches 0", + ), + ), + ], + options={ + "ordering": ("name",), + "abstract": False, + "unique_together": {("slug",)}, + }, + bases=(tagulous.models.models.BaseTagModel, models.Model), + ), + migrations.CreateModel( + name="NewsItem", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("title", models.CharField(max_length=200)), + ("slug", models.SlugField(max_length=200, unique=True)), + ("body", markdownx.models.MarkdownxField()), + ("origin_link", models.URLField(blank=True, null=True)), + ("origin_times_followed", models.PositiveIntegerField()), + ("header_img", models.ImageField(blank=True, null=True, upload_to="")), + ("created_at", models.DateTimeField(auto_now_add=True)), + ("is_published", models.BooleanField(default=False)), + ("is_featured", models.BooleanField(default=False)), + ( + "category", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="news_items", + to="news.category", + ), + ), + ( + "owner", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="news_items", + to=settings.AUTH_USER_MODEL, + ), + ), + ( + "tags", + tagulous.models.fields.TagField( + _set_tag_meta=True, + force_lowercase=True, + help_text="Enter a comma-separated tag string", + to="news.tagulous_newsitem_tags", + ), + ), + ], + options={ + "ordering": ["-created_at"], + }, + ), + ]