Browse Source

fix: course price

master
mortezaei 1 year ago
parent
commit
3b15b01b8f
  1. 11
      apps/course/serializers/course.py
  2. 2
      apps/course/serializers/lesson.py
  3. 4
      utils/__init__.py

11
apps/course/serializers/course.py

@ -27,7 +27,8 @@ class CourseListSerializer(serializers.ModelSerializer):
price = serializers.SerializerMethodField() price = serializers.SerializerMethodField()
discount_percentage = serializers.SerializerMethodField() discount_percentage = serializers.SerializerMethodField()
final_price = serializers.SerializerMethodField() final_price = serializers.SerializerMethodField()
is_free = serializers.SerializerMethodField()
class Meta: class Meta:
model = Course model = Course
fields = [ fields = [
@ -75,6 +76,9 @@ class CourseListSerializer(serializers.ModelSerializer):
return "0.00" return "0.00"
return str(obj.final_price) return str(obj.final_price)
def get_is_free(self, obj):
return obj.is_free or obj.price == 0
class CourseDetailSerializer(serializers.ModelSerializer): class CourseDetailSerializer(serializers.ModelSerializer):
category = CourseCategorySerializer() category = CourseCategorySerializer()
@ -90,6 +94,8 @@ class CourseDetailSerializer(serializers.ModelSerializer):
price = serializers.SerializerMethodField() price = serializers.SerializerMethodField()
discount_percentage = serializers.SerializerMethodField() discount_percentage = serializers.SerializerMethodField()
final_price = serializers.SerializerMethodField() final_price = serializers.SerializerMethodField()
is_free = serializers.SerializerMethodField()
class Meta: class Meta:
model = Course model = Course
fields = [ fields = [
@ -232,6 +238,9 @@ class CourseDetailSerializer(serializers.ModelSerializer):
if obj.is_free or obj.price == 0: if obj.is_free or obj.price == 0:
return "0.00" return "0.00"
return str(obj.final_price) return str(obj.final_price)
def get_is_free(self, obj):
return obj.is_free or obj.price == 0
class MyCourseListSerializer(serializers.ModelSerializer): class MyCourseListSerializer(serializers.ModelSerializer):

2
apps/course/serializers/lesson.py

@ -58,7 +58,7 @@ class CourseLessonSerializer(serializers.ModelSerializer):
def get_quizs(self, obj): def get_quizs(self, obj):
# Assuming the related_name for quizzes is now on CourseLesson # Assuming the related_name for quizzes is now on CourseLesson
print(f'--> type:{type(obj)} obj:{obj.lesson.quizzes.all()}')
# print(f'--> type:{type(obj)} obj:{obj.lesson.quizzes.all()}')
quizzes = obj.lesson.quizzes.all() if hasattr(obj.lesson, 'quizzes') else [] quizzes = obj.lesson.quizzes.all() if hasattr(obj.lesson, 'quizzes') else []
if quizzes: if quizzes:
return QuizListSerializer(quizzes, many=True, context=self.context).data return QuizListSerializer(quizzes, many=True, context=self.context).data

4
utils/__init__.py

@ -37,7 +37,7 @@ def qs_thumbs():
def get_thumbs(obj, request: HttpRequest = None) -> dict: def get_thumbs(obj, request: HttpRequest = None) -> dict:
print(f'----> {obj}')
# print(f'----> {obj}')
if not obj: if not obj:
return {} return {}
@ -46,7 +46,7 @@ def get_thumbs(obj, request: HttpRequest = None) -> dict:
thumbnail_object = {} thumbnail_object = {}
thumbs = qs_thumbs() thumbs = qs_thumbs()
print(f'--> {thumbs}')
# print(f'--> {thumbs}')
# بررسی نوع فیلد و استفاده از روش مناسب # بررسی نوع فیلد و استفاده از روش مناسب
if hasattr(obj, 'easy_thumbnails_thumbnailer'): if hasattr(obj, 'easy_thumbnails_thumbnailer'):

Loading…
Cancel
Save