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