From e2b9fe923e89a852ae1801dcb891f788f6b70ed0 Mon Sep 17 00:00:00 2001 From: mohsentaba Date: Tue, 16 Jun 2026 10:26:42 +0330 Subject: [PATCH] course categories default icon returning fixed --- apps/course/models/course.py | 1 + apps/course/serializers/admin.py | 8 ++++++++ apps/course/serializers/course.py | 12 ++++++++++++ 3 files changed, 21 insertions(+) diff --git a/apps/course/models/course.py b/apps/course/models/course.py index fd60594..24abe5f 100644 --- a/apps/course/models/course.py +++ b/apps/course/models/course.py @@ -2,6 +2,7 @@ import os from decimal import Decimal import math from django.db import models +from django.conf import settings from django.db.models import TextChoices from django.utils.text import slugify from django.utils.translation import gettext_lazy as _ diff --git a/apps/course/serializers/admin.py b/apps/course/serializers/admin.py index e00b867..12ba985 100644 --- a/apps/course/serializers/admin.py +++ b/apps/course/serializers/admin.py @@ -110,6 +110,14 @@ class AdminCourseCategorySerializer(serializers.ModelSerializer): lang = get_request_lang(self) ret['name'] = get_localized_field(lang, instance.name) ret['slug'] = get_localized_field(lang, instance.slug) + icon = ret.get('icon') + if icon and icon.startswith('/'): + request = self.context.get('request') + if request: + ret['icon'] = request.build_absolute_uri(icon) + else: + from django.conf import settings + ret['icon'] = f"{settings.SITE_DOMAIN}{icon}" return ret class AdminCourseListSerializer(serializers.ModelSerializer): diff --git a/apps/course/serializers/course.py b/apps/course/serializers/course.py index 7ff1e1e..4ac1488 100644 --- a/apps/course/serializers/course.py +++ b/apps/course/serializers/course.py @@ -59,6 +59,18 @@ class CourseCategorySerializer(serializers.ModelSerializer): def get_course_count(self, obj): return obj.course_count + def to_representation(self, instance): + ret = super().to_representation(instance) + icon = ret.get('icon') + if icon and icon.startswith('/'): + request = self.context.get('request') + if request: + ret['icon'] = request.build_absolute_uri(icon) + else: + from django.conf import settings + ret['icon'] = f"{settings.SITE_DOMAIN}{icon}" + return ret + class CourseListSerializer(serializers.ModelSerializer): category = CourseCategorySerializer()