From c36766dc7253f0f9eb4ef8551b571eb1492c9e7e Mon Sep 17 00:00:00 2001 From: Brian Moe <brian.moe@ligo.org> Date: Thu, 8 Nov 2012 14:31:21 -0600 Subject: [PATCH] Misc changes --- gracedb/api.py | 43 ++++++++++++++++++++++++++++++++++++++----- gracedb/urls_rest.py | 17 +++++++++++------ settings/default.py | 18 ++++++++++++++++++ 3 files changed, 67 insertions(+), 11 deletions(-) diff --git a/gracedb/api.py b/gracedb/api.py index ef3c5d0fb..7d81a0832 100644 --- a/gracedb/api.py +++ b/gracedb/api.py @@ -6,14 +6,47 @@ import simplejson from gracedb.models import Event -from piston.handler import BaseHandler - import os -class EventHandler(BaseHandler): - model = Event - allowed_methods = ('GET',) +################################################################## +# Piston + + +################################################################## +# rest_framework +from rest_framework import generics, serializers + +class EventSerializer(serializers.ModelSerializer): + class Meta: + model = Event + +class EventList(generics.ListCreateAPIView): + model = Event + serializer_class = EventSerializer + +class EventDetail(generics.RetrieveUpdateDestroyAPIView): + model = Event + serializer_class = EventSerializer + +def api_root(request): + """the api root""" + return HttpResponse(""" +<html> + <head> + </head> + <body> + O Hai. %s<br/>%s + </body> +</html> +""" % ( + reverse('event-list'), + reverse('event-detail', args=[12]), + )) +#""" % reverse('download', kwargs={"graceid":"G12", "filename":"FLED_THE_FILER"})) +#""" % reverse(download, args=["G12", "FRED_THE_FILE"])) +################################################################## +# Old. Must support this. def download(request, graceid, filename=""): # Do not filename to be None. That messes up later os.path.join filename = filename or "" diff --git a/gracedb/urls_rest.py b/gracedb/urls_rest.py index f640f2d5e..7c19bee4b 100644 --- a/gracedb/urls_rest.py +++ b/gracedb/urls_rest.py @@ -1,13 +1,18 @@ -from django.conf.urls.defaults import * +from django.conf.urls.defaults import patterns, url -from piston.resource import Resource -from gracedb.api import EventHandler - -eventHandler = Resource(EventHandler) +# rest_framework +from gracedb.api import EventList, EventDetail urlpatterns = patterns('gracedb.api', - url (r'^events/[A-Z]?(?P<id>[\w\d]+)$', eventHandler, name="api_event"), + url (r'^$', 'api_root'), + # Piston + + # rest_framework + url (r'^revents/$', EventList.as_view(), name='event-list'), + url (r'^revents/[GEHT](?P<pk>\d+)$', EventDetail.as_view(), name='event-detail'), + + # Legacy url (r'^events/(?P<graceid>[\w\d]+)/files/(?P<filename>.+)?$', 'download', name="download"), url (r'^event/(?P<graceid>[\w\d]+)/files/(?P<filename>.+)?$', 'download', name="download2"), ) diff --git a/settings/default.py b/settings/default.py index 0a03ec565..3a93f89bb 100644 --- a/settings/default.py +++ b/settings/default.py @@ -152,6 +152,7 @@ TEMPLATE_CONTEXT_PROCESSORS = ( "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", + "django.core.context_processors.static", "django.core.context_processors.request", "gracedb.middleware.auth.LigoAuthContext", 'middleware.debug.LigoDebugContext', @@ -183,6 +184,23 @@ INSTALLED_APPS = ( 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', + 'django.contrib.staticfiles', 'gracedb', 'userprofile', + 'rest_framework', ) + +REST_FRAMEWORK = { + 'PAGINATE_BY': 10 +} + + +STATIC_URL = "/gracedb-static/" + +STATICFILES_FINDERS = ( + 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', +# 'django.contrib.staticfiles.finders.DefaultStorageFinder', +) + +STATICFILES_DIRS = () -- GitLab