Mercurial > personas_backend
changeset 20:ccb027c6862a
Added simple JSON views that generate personas_categories.dat and personas_all.dat.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Tue, 26 Feb 2008 18:45:53 -0800 |
parents | d1de96f09287 |
children | 962c99a1375b |
files | PersonasBackend/personas/views.py PersonasBackend/urls.py |
diffstat | 2 files changed, 55 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/PersonasBackend/personas/views.py Tue Feb 26 11:21:49 2008 -0800 +++ b/PersonasBackend/personas/views.py Tue Feb 26 18:45:53 2008 -0800 @@ -1,1 +1,52 @@ -# Create your views here. +from django.http import HttpResponse +from django.utils import simplejson +from PersonasBackend.personas import models + +JSON_CATEGORY_ID_TEMPLATE = "personas-category-%d" +JSON_PERSONA_ID_TEMPLATE = "persona-%d" + +def _makeJsonResponse( obj ): + json = simplejson.dumps( obj, indent=4 ) + response = HttpResponse( json ) + response["Content-Type"] = "text/plain" + return response + +def categories_json( request ): + categoryDicts = [ + {"label": "Most Popular", "id" : "personas-popular-menu", + "type" : "list", "parent" : "top" }, + {"label": "Recent", "id" : "personas-recent-menu", + "type" : "recent", "parent" : "top" }, + {"label": "New", "id" : "personas-new-menu", + "type" : "list", "parent" : "top" }, + {"label": "All", "id" : "personas-category-menu", + "type" : "category", "parent" : "top" }, + ] + + for category in models.Category.objects.all(): + categoryDicts.append( + {"label" : category.name, + "id" : JSON_CATEGORY_ID_TEMPLATE % category.id, + "type" : "list", + "parent" : "personas-category-menu"} + ) + + return _makeJsonResponse( {"categories" : categoryDicts} ) + +def personas_json( request ): + personaDicts = [] + + for persona in models.Persona.objects.all(): + # TODO: Make sure the Persona is marked as published. + personaDicts.append( + {"label" : persona.name, + "id" : JSON_PERSONA_ID_TEMPLATE % persona.id, + "dark" : ( persona.color_scheme == "dark" ), + "baseURL" : "", + "headerURL" : persona.header_img, + "footerURL" : persona.footer_img, + "menu" : JSON_CATEGORY_ID_TEMPLATE % persona.category.id, + "preview" : "yes"} + ) + + return _makeJsonResponse( {"personas" : personaDicts} )
--- a/PersonasBackend/urls.py Tue Feb 26 11:21:49 2008 -0800 +++ b/PersonasBackend/urls.py Tue Feb 26 18:45:53 2008 -0800 @@ -1,9 +1,11 @@ from django.conf.urls.defaults import * -urlpatterns = patterns('', +urlpatterns = patterns('PersonasBackend.personas.views', # Example: # (r'^PersonasBackend/', include('PersonasBackend.foo.urls')), # Uncomment this for admin: (r'^admin/', include('django.contrib.admin.urls')), + (r'^en-US/personas_categories.dat', 'categories_json'), + (r'^en-US/personas_all.dat', 'personas_json'), )