LIL-177. Add serializer, viewset, route for Lesson model

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent aa7f280a00
commit 54e9841382
  1. 23
      api/v1/serializers.py
  2. 3
      api/v1/urls.py
  3. 21
      api/v1/views.py

@ -1,7 +1,7 @@
from django.contrib.auth import get_user_model
from rest_framework import serializers
from apps.course.models import Category, Course, Material, Like
from apps.course.models import Category, Course, Material, Lesson, Like
from apps.content.models import (
Image, Text, ImageText, Video,
Gallery, GalleryImage,
@ -94,6 +94,27 @@ class CourseSerializer(serializers.ModelSerializer):
)
class LessonSerializer(serializers.ModelSerializer):
class Meta:
model = Lesson
fields = (
'id',
'title',
'short_description',
'course',
'cover',
'created_at',
'update_at',
)
read_only_fields = (
'id',
'created_at',
'update_at',
)
class ImageSerializer(serializers.ModelSerializer):
class Meta:

@ -12,13 +12,14 @@ from .views import (
ImageViewSet, TextViewSet,
ImageTextViewSet, VideoViewSet,
GalleryViewSet, GalleryImageViewSet,
UserViewSet,
UserViewSet, LessonViewSet,
)
router = DefaultRouter()
router.register(r'courses', CourseViewSet, base_name='courses')
router.register(r'categories', CategoryViewSet, base_name='categories')
router.register(r'materials', MaterialViewSet, base_name='materials')
router.register(r'lessons', LessonViewSet, base_name='lessons')
router.register(r'likes', LikeViewSet, base_name='likes')
router.register(r'images', ImageViewSet, base_name='images')

@ -9,10 +9,10 @@ from .serializers import (
ImageSerializer, TextSerializer,
ImageTextSerializer, VideoSerializer,
GallerySerializer, GalleryImageSerializer,
UserSerializer,
UserSerializer, LessonSerializer,
)
from apps.course.models import Category, Course, Material, Like
from apps.course.models import Category, Course, Material, Lesson, Like
from apps.content.models import (
Image, Text, ImageText, Video,
Gallery, GalleryImage,
@ -54,6 +54,14 @@ class CourseViewSet(ExtendedModelViewSet):
ordering_fields = ('title', 'created_at', 'update_at',)
class LessonViewSet(ExtendedModelViewSet):
queryset = Lesson.objects.select_related('course').all()
serializer_class = LessonSerializer
filter_fields = ('course',)
search_fields = ('title', 'short_description',)
ordering_fields = ('title', 'created_at', 'update_at',)
class ImageViewSet(ExtendedModelViewSet):
queryset = Image.objects.select_related(
'course', 'lesson'
@ -106,6 +114,9 @@ class GalleryImageViewSet(ExtendedModelViewSet):
class UserViewSet(ExtendedModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
filter_fields = ('is_staff', 'is_active', 'role', 'gender', 'is_email_proved', 'fb_id',)
search_fields = ('email', 'first_name', 'last_name', 'country', 'city', 'fb_id',)
ordering_fields = ('email', 'first_name', 'last_name', 'country', 'city', 'date_joined',)
filter_fields = ('is_staff', 'is_active', 'role',
'gender', 'is_email_proved', 'fb_id',)
search_fields = ('email', 'first_name', 'last_name',
'country', 'city', 'fb_id',)
ordering_fields = ('email', 'first_name', 'last_name',
'country', 'city', 'date_joined',)

Loading…
Cancel
Save