Browse Source

fix course

master
nwhco 1 year ago
parent
commit
8016f53908
  1. 26
      apps/course/serializers/course.py
  2. 2
      apps/course/views/lesson.py
  3. 4
      docker-compose.prod.yml
  4. 4
      docker-compose.yml

26
apps/course/serializers/course.py

@ -3,6 +3,7 @@ from rest_framework import serializers
from dj_filer.admin import get_thumbs from dj_filer.admin import get_thumbs
from apps.course.models import Course, CourseCategory, Attachment, Glossary, LessonCompletion, Participant, Lesson from apps.course.models import Course, CourseCategory, Attachment, Glossary, LessonCompletion, Participant, Lesson
from apps.chat.models import RoomMessage
from apps.account.serializers import UserProfileSerializer from apps.account.serializers import UserProfileSerializer
@ -68,6 +69,7 @@ class CourseDetailSerializer(serializers.ModelSerializer):
lessons_complated_count = serializers.SerializerMethodField() lessons_complated_count = serializers.SerializerMethodField()
lessons_count = serializers.SerializerMethodField() lessons_count = serializers.SerializerMethodField()
last_lesson_id = serializers.SerializerMethodField() last_lesson_id = serializers.SerializerMethodField()
room_id = serializers.SerializerMethodField()
class Meta: class Meta:
model = Course model = Course
@ -97,9 +99,16 @@ class CourseDetailSerializer(serializers.ModelSerializer):
'final_price', 'final_price',
'timing', 'timing',
'features', '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): def get_last_lesson_id(self, obj):
request = self.context.get('request') request = self.context.get('request')
if request and request.user.is_authenticated: if request and request.user.is_authenticated:
@ -118,14 +127,13 @@ class CourseDetailSerializer(serializers.ModelSerializer):
priority__gt=last_completed_lesson.lesson.priority, priority__gt=last_completed_lesson.lesson.priority,
is_active=True is_active=True
).order_by('priority').first() ).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 return None

2
apps/course/views/lesson.py

@ -60,6 +60,7 @@ class LessonDetailView(RetrieveAPIView):
lesson_data['current_lesson_number'] = current_lesson_number lesson_data['current_lesson_number'] = current_lesson_number
lesson_data['next_lesson_id'] = next_lesson_id lesson_data['next_lesson_id'] = next_lesson_id
lesson_data['previous_lesson_id'] = previous_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['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['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) return Response(lesson_data)

4
docker-compose.prod.yml

@ -11,7 +11,7 @@ services:
volumes: volumes:
- static_volume:/usr/src/app/static - static_volume:/usr/src/app/static
ports: ports:
- "8019:8000"
- "8010:8000"
env_file: env_file:
- .env.prod - .env.prod
depends_on: depends_on:
@ -46,7 +46,7 @@ services:
container_name: imam-javad_celery container_name: imam-javad_celery
build: build:
context: . context: .
dockerfile: Dockerfile.celery.prod
dockerfile: Dockerfile.prod
env_file: .env.prod env_file: .env.prod
command: celery -A config worker -l info command: celery -A config worker -l info
volumes: volumes:

4
docker-compose.yml

@ -15,7 +15,7 @@ services:
depends_on: depends_on:
- postgres - postgres
networks: networks:
- aquilah
- imam-javad
postgres: postgres:
ports: ports:
@ -27,7 +27,7 @@ services:
env_file: env_file:
- .env.dev - .env.dev
networks: networks:
- aquilah
- imam-javad
volumes: volumes:

Loading…
Cancel
Save