Update to Django 1.4.13, update django rest framework to 2.3.13

This commit is contained in:
Roberto Rosario
2014-05-19 19:35:07 -04:00
parent dd1c06102f
commit eaea9ec6fc
5 changed files with 52 additions and 49 deletions

View File

@@ -1,15 +1,12 @@
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from djangorestframework.resources import ModelResource from rest_framework import serializers
from documents.models import Document
from converter.exceptions import UnknownFileFormat, UnkownConvertError from converter.exceptions import UnknownFileFormat, UnkownConvertError
from documents.models import Document, DocumentType
class DocumentResourceSimple(ModelResource): class DocumentResourceSimple(serializers.HyperlinkedModelSerializer):
model = Document
fields = ('url', 'pk', 'document_type', 'uuid', 'date_added', 'description', 'tags', 'comments', 'expensive_methods', 'versions')
def versions(self, instance): def versions(self, instance):
return [ return [
{ {
@@ -41,5 +38,6 @@ class DocumentResourceSimple(ModelResource):
for version in instance.versions.all() for version in instance.versions.all()
] ]
def expensive_methods(self, instance): class Meta:
return [] model = Document
fields = ('url', 'uuid', 'date_added', 'description')

View File

@@ -2,17 +2,13 @@ from __future__ import absolute_import
from django.conf.urls.defaults import patterns, url from django.conf.urls.defaults import patterns, url
from djangorestframework.views import ListModelView from .views import APIBase, Version_1, DocumentDetailView, IsZoomable
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
from .views import APIBase, Version_0, ReadOnlyInstanceModelView, IsZoomable
from .resources import DocumentResourceSimple
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^$', APIBase.as_view(), name='api-root'), url(r'^$', APIBase.as_view(), name='api-root'),
url(r'^v0/$', Version_0.as_view(), name='api-version-0'), url(r'^v1/$', Version_1.as_view(), name='api-version-1'),
# Version 0 alpha API calls # Version 1 API calls
url(r'^v0/document/(?P<pk>[0-9]+)/$', ReadOnlyInstanceModelView.as_view(resource=DocumentResourceSimple), name='documents-simple'), url(r'^v1/document/(?P<pk>[0-9]+)/$', DocumentDetailView.as_view(), name='document-detail'),
url(r'^v0/document/(?P<pk>[0-9]+)/version/(?P<version_pk>[0-9]+)/page/(?P<page_number>[0-9]+)/expensive/is_zoomable/$', IsZoomable.as_view(), name='documents-expensive-is_zoomable'), url(r'^v1/document/(?P<pk>[0-9]+)/version/(?P<version_pk>[0-9]+)/page/(?P<page_number>[0-9]+)/expensive/is_zoomable/$', IsZoomable.as_view(), name='documents-expensive-is_zoomable'),
) )

View File

@@ -1,28 +1,27 @@
'''Views file for the rest_api app''' """Views file for the rest_api app"""
import logging import logging
from django.utils.translation import ugettext_lazy as _
from django.shortcuts import get_object_or_404
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext_lazy as _
from documents.models import Document, DocumentVersion, DocumentPage
from converter.exceptions import UnknownFileFormat, UnkownConvertError from converter.exceptions import UnknownFileFormat, UnkownConvertError
from documents.models import Document, DocumentVersion, DocumentPage
from djangorestframework.views import View, ModelView, ListModelView, InstanceModelView from rest_framework import generics
from djangorestframework.mixins import InstanceMixin, ReadModelMixin from rest_framework import permissions
from djangorestframework.response import Response from rest_framework import serializers
from djangorestframework import status from rest_framework.response import Response
from rest_framework.reverse import reverse
from .resources import DocumentResourceSimple
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class ReadOnlyInstanceModelView(InstanceModelView): class APIBase(generics.GenericAPIView):
allowed_methods = ['GET'] """This is the REST API for Mayan EDMS (https://github.com/mayan-edms/mayan-edms).
class APIBase(View):
"""This is the REST API for Mayan EDMS (https://github.com/rosarior/mayan/).
All the API calls can be navigated either through the browser or from the command line... All the API calls can be navigated either through the browser or from the command line...
@@ -31,27 +30,37 @@ class APIBase(View):
""" """
def get(self, request): def get(self, request, format=None):
return [ return Response(
{'name': 'Version 0 Alpha', 'url': reverse('api-version-0')} {'versions': [
] {'name': 'Version 1', 'url': reverse('api-version-1', request=request, format=format), 'number': 1}
]}
)
class Version_0(View): class Version_1(generics.GenericAPIView):
def get(self, request): def get(self, request, format=None):
return [ return Response(
{'name': 'Resources', 'resources': ['document/<pk>']} [
] {'name': 'Resources', 'resources': ['document/<pk>']}
]
)
class IsZoomable(View): class DocumentDetailView(generics.RetrieveAPIView):
allowed_methods = ['GET']
serializer_class = DocumentResourceSimple
queryset = Document.objects.all()
class IsZoomable(generics.GenericAPIView):
def get(self, request, pk, page_number, version_pk): def get(self, request, pk, page_number, version_pk):
logger.info('received is_zoomable call from: %s' % (request.META['REMOTE_ADDR'])) logger.info('received is_zoomable call from: %s' % (request.META['REMOTE_ADDR']))
document_version = get_object_or_404(DocumentVersion, pk=version_pk) document_version = get_object_or_404(DocumentVersion, pk=version_pk)
try: try:
document_version.document.get_image_cache_name(int(page_number), version_pk) document_version.document.get_image_cache_name(int(page_number), version_pk)
return {'result': True} return Response({'result': True})
except (UnknownFileFormat, UnkownConvertError, except (UnknownFileFormat, UnkownConvertError,
DocumentPage.DoesNotExist, Document.DoesNotExist, DocumentPage.DoesNotExist, Document.DoesNotExist,
DocumentVersion.DoesNotExist): DocumentVersion.DoesNotExist):
return {'result': False} return Response({'result': False})

View File

@@ -1,4 +1,4 @@
Django==1.3.5 Django==1.4.13
django-pagination==1.0.7 django-pagination==1.0.7
wsgiref==0.1.2 wsgiref==0.1.2
django-taggit==0.9.3 django-taggit==0.9.3
@@ -12,7 +12,7 @@ Pillow==1.7.8
cssmin==0.1.4 cssmin==0.1.4
django-compressor==1.1.1 django-compressor==1.1.1
-e git+https://github.com/rosarior/django-sendfile.git#egg=django-sendfile -e git+https://github.com/rosarior/django-sendfile.git#egg=django-sendfile
djangorestframework==0.2.3 djangorestframework==2.3.13
South==0.7.6 South==0.7.6
https://github.com/rosarior/python-gnupg/zipball/0.2.8 https://github.com/rosarior/python-gnupg/zipball/0.2.8
python-hkp==0.1.3 python-hkp==0.1.3

View File

@@ -148,7 +148,7 @@ INSTALLED_APPS = (
'taggit', 'taggit',
'mptt', 'mptt',
'compressor', 'compressor',
'djangorestframework', 'rest_framework',
# Base generic # Base generic
'permissions', 'permissions',
'project_setup', 'project_setup',