From a0be657226aee0b94c1f0013396348eafa5c7efa Mon Sep 17 00:00:00 2001 From: mohsentaba Date: Mon, 21 Sep 2026 12:26:23 +0330 Subject: [PATCH] fix(hadis): allow blank category description and update serializer validation --- ...lter_hadiscategory_description_and_more.py | 28 +++++++++++++++++++ apps/hadis/models/category.py | 2 +- apps/hadis/serializers/serializers_admin.py | 3 ++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 apps/hadis/migrations/0044_alter_hadiscategory_description_and_more.py diff --git a/apps/hadis/migrations/0044_alter_hadiscategory_description_and_more.py b/apps/hadis/migrations/0044_alter_hadiscategory_description_and_more.py new file mode 100644 index 0000000..408c5d3 --- /dev/null +++ b/apps/hadis/migrations/0044_alter_hadiscategory_description_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 4.2.30 on 2026-09-21 12:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('hadis', '0043_finalize_secondary_quran_translations'), + ] + + operations = [ + migrations.AlterField( + model_name='hadiscategory', + name='description', + field=models.JSONField(blank=True, default=list, verbose_name='Description'), + ), + migrations.AlterField( + model_name='quransecondarytranslation', + name='translation_text', + field=models.TextField(verbose_name='Translation Text'), + ), + migrations.AlterField( + model_name='quransecondarytranslation', + name='translator', + field=models.CharField(max_length=255, verbose_name='Translator Name'), + ), + ] diff --git a/apps/hadis/models/category.py b/apps/hadis/models/category.py index 6dde2ef..03c3739 100644 --- a/apps/hadis/models/category.py +++ b/apps/hadis/models/category.py @@ -76,7 +76,7 @@ class HadisCategory(LowercaseSlugMixin, MPTTModel): sect = models.ForeignKey(HadisSect, on_delete=models.PROTECT, verbose_name=_('Sect'), null=False, blank=False) source_type = models.CharField(max_length=10, choices=SourceType.choices, verbose_name=_('Source Type')) title = models.JSONField(default = list , verbose_name=_('Title')) - description = models.JSONField(default = list , verbose_name=_('Description')) + description = models.JSONField(default = list , blank=True, verbose_name=_('Description')) order = models.IntegerField(default=0, verbose_name=_('order')) xmind_file = models.FileField(upload_to='hadis/xmind_files/', verbose_name=_('xmind file'), null=True, blank=True) slug = models.SlugField(max_length=255, null=True, blank=True,allow_unicode=True) diff --git a/apps/hadis/serializers/serializers_admin.py b/apps/hadis/serializers/serializers_admin.py index a0bfb0e..67a4ade 100644 --- a/apps/hadis/serializers/serializers_admin.py +++ b/apps/hadis/serializers/serializers_admin.py @@ -997,6 +997,9 @@ class AdminHadisCategoryArchiveSerializer(serializers.ModelSerializer): "is_leaf", ] read_only_fields = ["id", "share_link", "xmind_share_link"] + extra_kwargs = { + "description": {"required": False}, + } def to_internal_value(self, data): import json