mirror of
https://github.com/pinry/pinry.git
synced 2025-11-13 16:45:41 +01:00
Feature: Move viewsets to views.py
This commit is contained in:
@@ -1,11 +1,10 @@
|
||||
from rest_framework import serializers, viewsets, routers, mixins
|
||||
from rest_framework.viewsets import GenericViewSet
|
||||
from django.conf import settings
|
||||
from rest_framework import serializers
|
||||
from taggit.models import Tag
|
||||
|
||||
from core.models import Image, Pin
|
||||
from core.permissions import IsOwnerOrReadOnly
|
||||
from core.models import Image
|
||||
from core.models import Pin
|
||||
from django_images.models import Thumbnail
|
||||
from django.conf import settings
|
||||
from users.models import User
|
||||
|
||||
|
||||
@@ -19,11 +18,6 @@ class UserSerializer(serializers.HyperlinkedModelSerializer):
|
||||
)
|
||||
|
||||
|
||||
class UserViewSet(viewsets.ModelViewSet):
|
||||
queryset = User.objects.all()
|
||||
serializer_class = UserSerializer
|
||||
|
||||
|
||||
class ThumbnailSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
model = Thumbnail
|
||||
@@ -62,11 +56,6 @@ class ImageSerializer(serializers.ModelSerializer):
|
||||
return image
|
||||
|
||||
|
||||
class ImageViewSet(mixins.CreateModelMixin, mixins.RetrieveModelMixin, GenericViewSet):
|
||||
queryset = Image.objects.all()
|
||||
serializer_class = ImageSerializer
|
||||
|
||||
|
||||
class TagSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Tag
|
||||
@@ -121,16 +110,3 @@ class PinSerializer(serializers.HyperlinkedModelSerializer):
|
||||
image = Image.objects.create(image=image_file['image'])
|
||||
instance.image = image
|
||||
return super(PinSerializer, self).update(instance, validated_data)
|
||||
|
||||
|
||||
class PinViewSet(viewsets.ModelViewSet):
|
||||
queryset = Pin.objects.all()
|
||||
serializer_class = PinSerializer
|
||||
filter_fields = ('submitter__username',)
|
||||
permission_classes = [IsOwnerOrReadOnly("submitter"), ]
|
||||
|
||||
|
||||
drf_router = routers.DefaultRouter()
|
||||
drf_router.register(r'users', UserViewSet)
|
||||
drf_router.register(r'pins', PinViewSet)
|
||||
drf_router.register(r'images', ImageViewSet)
|
||||
|
||||
@@ -3,10 +3,7 @@ from django.views.generic import TemplateView
|
||||
|
||||
from tastypie.api import Api
|
||||
|
||||
from core.drf_api import drf_router
|
||||
from .api import ImageResource, ThumbnailResource, PinResource, UserResource
|
||||
from .views import CreateImage
|
||||
|
||||
|
||||
v1_api = Api(api_name='v1')
|
||||
v1_api.register(ImageResource())
|
||||
@@ -19,7 +16,6 @@ urlpatterns = [
|
||||
|
||||
url(r'^pins/pin-form/$', TemplateView.as_view(template_name='core/pin_form.html'),
|
||||
name='pin-form'),
|
||||
url(r'^pins/create-image/$', CreateImage.as_view(), name='create-image'),
|
||||
|
||||
url(r'^pins/tag/(?P<tag>(\w|-)+)/$', TemplateView.as_view(template_name='core/pins.html'),
|
||||
name='tag-pins'),
|
||||
|
||||
@@ -1,34 +1,30 @@
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.views.generic import CreateView
|
||||
from django_images.models import Image
|
||||
from rest_framework import viewsets, mixins, routers
|
||||
from rest_framework.viewsets import GenericViewSet
|
||||
|
||||
from braces.views import JSONResponseMixin, LoginRequiredMixin
|
||||
from django_images.models import Thumbnail
|
||||
|
||||
from .forms import ImageForm
|
||||
from core import drf_api as api
|
||||
from core.models import Image, Pin
|
||||
from core.permissions import IsOwnerOrReadOnly
|
||||
from users.models import User
|
||||
|
||||
|
||||
class CreateImage(JSONResponseMixin, LoginRequiredMixin, CreateView):
|
||||
template_name = None # JavaScript-only view
|
||||
model = Image
|
||||
form_class = ImageForm
|
||||
class UserViewSet(viewsets.ModelViewSet):
|
||||
queryset = User.objects.all()
|
||||
serializer_class = api.UserSerializer
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
if not request.is_ajax():
|
||||
return HttpResponseRedirect(reverse('core:recent-pins'))
|
||||
return super(CreateImage, self).get(request, *args, **kwargs)
|
||||
|
||||
def form_valid(self, form):
|
||||
image = form.save()
|
||||
for size in settings.IMAGE_SIZES:
|
||||
Thumbnail.objects.get_or_create_at_size(image.pk, size)
|
||||
return self.render_json_response({
|
||||
'success': {
|
||||
'id': image.id
|
||||
}
|
||||
})
|
||||
class ImageViewSet(mixins.CreateModelMixin, GenericViewSet):
|
||||
queryset = Image.objects.all()
|
||||
serializer_class = api.ImageSerializer
|
||||
|
||||
def form_invalid(self, form):
|
||||
return self.render_json_response({'error': form.errors})
|
||||
|
||||
class PinViewSet(viewsets.ModelViewSet):
|
||||
queryset = Pin.objects.all()
|
||||
serializer_class = api.PinSerializer
|
||||
filter_fields = ('submitter__username',)
|
||||
permission_classes = [IsOwnerOrReadOnly("submitter"), ]
|
||||
|
||||
|
||||
drf_router = routers.DefaultRouter()
|
||||
drf_router.register(r'users', UserViewSet)
|
||||
drf_router.register(r'pins', PinViewSet)
|
||||
drf_router.register(r'images', ImageViewSet)
|
||||
|
||||
@@ -5,7 +5,7 @@ from django.contrib import admin
|
||||
from django.views.static import serve
|
||||
from rest_framework.documentation import include_docs_urls
|
||||
|
||||
from core.drf_api import drf_router
|
||||
from core.views import drf_router
|
||||
|
||||
|
||||
admin.autodiscover()
|
||||
|
||||
Reference in New Issue
Block a user