From 4f37b8ee2f919786234968cd2f60e04a17e17fea Mon Sep 17 00:00:00 2001 From: mohsentaba Date: Mon, 12 Oct 2026 14:11:48 +0330 Subject: [PATCH] fix(hadis): update category share_link logic for parent vs topic categories --- apps/hadis/models/category.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/apps/hadis/models/category.py b/apps/hadis/models/category.py index c3eaca5..a0a7e21 100644 --- a/apps/hadis/models/category.py +++ b/apps/hadis/models/category.py @@ -115,9 +115,31 @@ class HadisCategory(LowercaseSlugMixin, MPTTModel): @property def share_link(self): - if self.slug: - return f"{settings.DOVODI_DOMAIN}/arguments/category/{self.slug}" - return None + if not self.slug: + return None + has_children = getattr(self, "annotated_has_children", None) + if has_children is None: + if self.pk: + has_children = self.children.exists() + else: + has_children = False + + if has_children: + sect_type = "shia" + if self.sect_id: + try: + if hasattr(self, "sect") and self.sect: + sect_type = getattr(self.sect, "sect_type", "shia") + else: + from .category import HadisSect + sect = HadisSect.objects.filter(id=self.sect_id).first() + if sect: + sect_type = sect.sect_type + except Exception: + sect_type = "shia" + return f"{settings.DOVODI_DOMAIN}/arguments/categories/{sect_type}/{self.slug}" + + return f"{settings.DOVODI_DOMAIN}/arguments/category/{self.slug}" @property def xmind_share_link(self):