From 8016f53908c142b67786dbc77e6952def1120458 Mon Sep 17 00:00:00 2001 From: nwhco Date: Thu, 23 Jan 2025 17:11:26 +0100 Subject: [PATCH] fix course --- apps/course/serializers/course.py | 26 +++++++++++++++++--------- apps/course/views/lesson.py | 2 +- docker-compose.prod.yml | 4 ++-- docker-compose.yml | 4 ++-- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/apps/course/serializers/course.py b/apps/course/serializers/course.py index 6f9639b..bd8cc0f 100644 --- a/apps/course/serializers/course.py +++ b/apps/course/serializers/course.py @@ -3,6 +3,7 @@ from rest_framework import serializers from dj_filer.admin import get_thumbs from apps.course.models import Course, CourseCategory, Attachment, Glossary, LessonCompletion, Participant, Lesson +from apps.chat.models import RoomMessage from apps.account.serializers import UserProfileSerializer @@ -68,6 +69,7 @@ class CourseDetailSerializer(serializers.ModelSerializer): lessons_complated_count = serializers.SerializerMethodField() lessons_count = serializers.SerializerMethodField() last_lesson_id = serializers.SerializerMethodField() + room_id = serializers.SerializerMethodField() class Meta: model = Course @@ -97,9 +99,16 @@ class CourseDetailSerializer(serializers.ModelSerializer): 'final_price', 'timing', 'features', - 'last_lesson_id' + 'last_lesson_id', + 'room_id' ] + def get_room_id(self, obj): + room_message = RoomMessage.objects.filter(course=obj).first() + if room_message: + return room_message.id + return None + def get_last_lesson_id(self, obj): request = self.context.get('request') if request and request.user.is_authenticated: @@ -118,14 +127,13 @@ class CourseDetailSerializer(serializers.ModelSerializer): priority__gt=last_completed_lesson.lesson.priority, is_active=True ).order_by('priority').first() - else: - # اگر هیچ درسی تکمیل نشده باشد، اولین درس را برگردان - next_lesson = Lesson.objects.filter( - course=obj, - is_active=True - ).order_by('priority').first() - if next_lesson: - return next_lesson.id + if not next_lesson: + next_lesson = Lesson.objects.filter( + course=obj, + is_active=True + ).order_by('priority').first() + if next_lesson: + return next_lesson.id return None diff --git a/apps/course/views/lesson.py b/apps/course/views/lesson.py index 6bf42c2..a4958a3 100644 --- a/apps/course/views/lesson.py +++ b/apps/course/views/lesson.py @@ -60,6 +60,7 @@ class LessonDetailView(RetrieveAPIView): lesson_data['current_lesson_number'] = current_lesson_number lesson_data['next_lesson_id'] = next_lesson_id lesson_data['previous_lesson_id'] = previous_lesson_id + lesson_data['can_go_next'] = next_lesson is not None @@ -97,7 +98,6 @@ class LessonDetailView(RetrieveAPIView): # lesson_data['next_lesson_id'] = next_lesson.id if next_lesson else None # lesson_data['previous_lesson_id'] = previous_lesson.id if previous_lesson else None - # lesson_data['can_go_next'] = next_lesson is not None return Response(lesson_data) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index eabe08d..fd8c018 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -11,7 +11,7 @@ services: volumes: - static_volume:/usr/src/app/static ports: - - "8019:8000" + - "8010:8000" env_file: - .env.prod depends_on: @@ -46,7 +46,7 @@ services: container_name: imam-javad_celery build: context: . - dockerfile: Dockerfile.celery.prod + dockerfile: Dockerfile.prod env_file: .env.prod command: celery -A config worker -l info volumes: diff --git a/docker-compose.yml b/docker-compose.yml index 7863ba5..fe820ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,7 @@ services: depends_on: - postgres networks: - - aquilah + - imam-javad postgres: ports: @@ -27,7 +27,7 @@ services: env_file: - .env.dev networks: - - aquilah + - imam-javad volumes: