Browse Source

fix: course list

master
mortezaei 1 year ago
parent
commit
2a023c77c7
  1. 25
      apps/course/serializers/course.py

25
apps/course/serializers/course.py

@ -24,6 +24,9 @@ class CourseListSerializer(serializers.ModelSerializer):
thumbnail = serializers.SerializerMethodField() thumbnail = serializers.SerializerMethodField()
participant_count = serializers.SerializerMethodField() participant_count = serializers.SerializerMethodField()
lessons_count = serializers.SerializerMethodField() lessons_count = serializers.SerializerMethodField()
price = serializers.SerializerMethodField()
discount_percentage = serializers.SerializerMethodField()
final_price = serializers.SerializerMethodField()
class Meta: class Meta:
model = Course model = Course
@ -56,6 +59,15 @@ class CourseListSerializer(serializers.ModelSerializer):
def get_lessons_count(self, obj): def get_lessons_count(self, obj):
lessons_count = obj.lessons.filter(is_active=True).count() lessons_count = obj.lessons.filter(is_active=True).count()
return max(lessons_count, obj.lessons_count) return max(lessons_count, obj.lessons_count)
def get_price(self, obj):
return 0 if obj.is_free else obj.price
def get_discount_percentage(self, obj):
return 0 if obj.is_free else obj.discount_percentage
def get_final_price(self, obj):
return 0 if obj.is_free else obj.final_price
@ -72,6 +84,9 @@ class CourseDetailSerializer(serializers.ModelSerializer):
last_lesson_id = serializers.SerializerMethodField() last_lesson_id = serializers.SerializerMethodField()
room_id = serializers.SerializerMethodField() room_id = serializers.SerializerMethodField()
user_transaction_status = serializers.SerializerMethodField() user_transaction_status = serializers.SerializerMethodField()
price = serializers.SerializerMethodField()
discount_percentage = serializers.SerializerMethodField()
final_price = serializers.SerializerMethodField()
class Meta: class Meta:
model = Course model = Course
fields = [ fields = [
@ -199,7 +214,15 @@ class CourseDetailSerializer(serializers.ModelSerializer):
def get_participant_count(self, obj): def get_participant_count(self, obj):
return obj.participants.count() return obj.participants.count()
def get_price(self, obj):
return 0 if obj.is_free else obj.price
def get_discount_percentage(self, obj):
return 0 if obj.is_free else obj.discount_percentage
def get_final_price(self, obj):
return 0 if obj.is_free else obj.final_price
class MyCourseListSerializer(serializers.ModelSerializer): class MyCourseListSerializer(serializers.ModelSerializer):

Loading…
Cancel
Save