diff --git a/core/apps/api/admin/category.py b/core/apps/api/admin/category.py index 8db08cc..4e7c57f 100644 --- a/core/apps/api/admin/category.py +++ b/core/apps/api/admin/category.py @@ -17,10 +17,11 @@ class FilialAdmin(ModelAdmin): @admin.register(CategoryModel) class CategoryAdmin(ModelAdmin): - list_display = ("id", "name", "filial", "image", "created_at") + list_display = ("id", "name", "filial", "order", "image", "active_image", "created_at") list_filter = ("filial", "created_at") search_fields = ("name",) list_select_related = ("filial",) + ordering = ("order",) inlines = [SubcategoryInline] diff --git a/core/apps/api/migrations/0006_alter_categorymodel_options_and_more.py b/core/apps/api/migrations/0006_alter_categorymodel_options_and_more.py new file mode 100644 index 0000000..a0a8141 --- /dev/null +++ b/core/apps/api/migrations/0006_alter_categorymodel_options_and_more.py @@ -0,0 +1,27 @@ +# Generated by Django 5.1.2 on 2026-03-30 14:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("api", "0005_filialmodel_image"), + ] + + operations = [ + migrations.AlterModelOptions( + name="categorymodel", + options={"ordering": ["order"], "verbose_name": "CategoryModel", "verbose_name_plural": "CategoryModels"}, + ), + migrations.AddField( + model_name="categorymodel", + name="active_image", + field=models.ImageField(blank=True, null=True, upload_to="categories/active/", verbose_name="active image"), + ), + migrations.AddField( + model_name="categorymodel", + name="order", + field=models.PositiveIntegerField(default=0, verbose_name="order"), + ), + ] diff --git a/core/apps/api/models/category.py b/core/apps/api/models/category.py index 83c0db6..2c6e482 100644 --- a/core/apps/api/models/category.py +++ b/core/apps/api/models/category.py @@ -42,6 +42,10 @@ class CategoryModel(AbstractBaseModel): default=CategoryType.RESTAURANT, ) image = models.ImageField(verbose_name=_("image"), upload_to="categories/", null=True, blank=True) + active_image = models.ImageField( + verbose_name=_("active image"), upload_to="categories/active/", null=True, blank=True + ) + order = models.PositiveIntegerField(verbose_name=_("order"), default=0) def __str__(self): return f"{self.name} ({self.type})" @@ -54,6 +58,7 @@ class CategoryModel(AbstractBaseModel): db_table = "category" verbose_name = _("CategoryModel") verbose_name_plural = _("CategoryModels") + ordering = ["order"] class SubcategoryModel(AbstractBaseModel): diff --git a/core/apps/api/serializers/category/category.py b/core/apps/api/serializers/category/category.py index 4191486..87f30e6 100644 --- a/core/apps/api/serializers/category/category.py +++ b/core/apps/api/serializers/category/category.py @@ -13,7 +13,9 @@ class BaseCategorySerializer(serializers.ModelSerializer): "id", "name", "type", + "order", "image", + "active_image", "subcategories", ] @@ -24,7 +26,9 @@ class ListCategorySerializer(BaseCategorySerializer): "id", "name", "type", + "order", "image", + "active_image", "subcategories", ] @@ -38,5 +42,7 @@ class CreateCategorySerializer(BaseCategorySerializer): fields = [ "id", "name", + "order", "image", + "active_image", ]