LIL-224. Add serializer, viewset, route, admin for ImageObject model

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent bed9b3eb98
commit 75d59cf622
  1. 19
      api/v1/serializers.py
  2. 3
      api/v1/urls.py
  3. 10
      api/v1/views.py
  4. 7
      apps/content/admin.py

@ -6,12 +6,29 @@ from . import Base64ImageField
from apps.course.models import Category, Course, Material, Lesson, Like from apps.course.models import Category, Course, Material, Lesson, Like
from apps.content.models import ( from apps.content.models import (
Image, Text, ImageText, Video, Image, Text, ImageText, Video,
Gallery, GalleryImage, Gallery, GalleryImage, ImageObject,
) )
User = get_user_model() User = get_user_model()
class ImageObjectSerializer(serializers.ModelSerializer):
image = Base64ImageField(
required=True, allow_empty_file=False, allow_null=False,
)
class Meta:
model = ImageObject
fields = (
'id',
'image',
)
read_only_fields = (
'id',
)
class MaterialSerializer(serializers.ModelSerializer): class MaterialSerializer(serializers.ModelSerializer):
class Meta: class Meta:

@ -12,7 +12,7 @@ from .views import (
ImageViewSet, TextViewSet, ImageViewSet, TextViewSet,
ImageTextViewSet, VideoViewSet, ImageTextViewSet, VideoViewSet,
GalleryViewSet, GalleryImageViewSet, GalleryViewSet, GalleryImageViewSet,
UserViewSet, LessonViewSet, UserViewSet, LessonViewSet, ImageObjectViewSet,
) )
router = DefaultRouter() router = DefaultRouter()
@ -22,6 +22,7 @@ router.register(r'materials', MaterialViewSet, base_name='materials')
router.register(r'lessons', LessonViewSet, base_name='lessons') router.register(r'lessons', LessonViewSet, base_name='lessons')
router.register(r'likes', LikeViewSet, base_name='likes') router.register(r'likes', LikeViewSet, base_name='likes')
router.register(r'image-objects', ImageObjectViewSet, base_name='image-objects')
router.register(r'images', ImageViewSet, base_name='images') router.register(r'images', ImageViewSet, base_name='images')
router.register(r'texts', TextViewSet, base_name='texts') router.register(r'texts', TextViewSet, base_name='texts')
router.register(r'image-texts', ImageTextViewSet, base_name='image-texts') router.register(r'image-texts', ImageTextViewSet, base_name='image-texts')

@ -15,19 +15,25 @@ from .serializers import (
UserSerializer, UserPhotoSerializer, UserSerializer, UserPhotoSerializer,
LessonSerializer, ContentImageSerializer, LessonSerializer, ContentImageSerializer,
GalleryImageSerializer, CoverImageSerializer, GalleryImageSerializer, CoverImageSerializer,
CourseRetrieveSerializer, CourseRetrieveSerializer, ImageObjectSerializer,
) )
from .permissions import IsAdmin, IsAdminOrIsSelf, IsAuthorOrAdmin, IsAuthorObjectOrAdmin from .permissions import IsAdmin, IsAdminOrIsSelf, IsAuthorOrAdmin, IsAuthorObjectOrAdmin
from apps.course.models import Category, Course, Material, Lesson, Like from apps.course.models import Category, Course, Material, Lesson, Like
from apps.content.models import ( from apps.content.models import (
Image, Text, ImageText, Video, Image, Text, ImageText, Video,
Gallery, GalleryImage, Gallery, GalleryImage, ImageObject,
) )
User = get_user_model() User = get_user_model()
class ImageObjectViewSet(ExtendedModelViewSet):
queryset = ImageObject.objects.all()
serializer_class = ImageObjectSerializer
# permission_classes = (IsAuthorOrAdmin,)
class MaterialViewSet(ExtendedModelViewSet): class MaterialViewSet(ExtendedModelViewSet):
queryset = Material.objects.all() queryset = Material.objects.all()
serializer_class = MaterialSerializer serializer_class = MaterialSerializer

@ -7,10 +7,15 @@ from polymorphic.admin import (
from apps.content.models import ( from apps.content.models import (
Content, Image, Text, ImageText, Video, Content, Image, Text, ImageText, Video,
Gallery, GalleryImage, Gallery, GalleryImage, ImageObject,
) )
@admin.register(ImageObject)
class ImageObjectAdmin(admin.ModelAdmin):
pass
class ContentChildAdmin(PolymorphicChildModelAdmin): class ContentChildAdmin(PolymorphicChildModelAdmin):
base_model = Content base_model = Content

Loading…
Cancel
Save