Mercurial > personas_backend
comparison PersonasBackend/personas/views.py @ 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 | 5d8ad63be9cf |
children | 197b05fbd4cc |
comparison
equal
deleted
inserted
replaced
19:d1de96f09287 | 20:ccb027c6862a |
---|---|
1 # Create your views here. | 1 from django.http import HttpResponse |
2 from django.utils import simplejson | |
3 from PersonasBackend.personas import models | |
4 | |
5 JSON_CATEGORY_ID_TEMPLATE = "personas-category-%d" | |
6 JSON_PERSONA_ID_TEMPLATE = "persona-%d" | |
7 | |
8 def _makeJsonResponse( obj ): | |
9 json = simplejson.dumps( obj, indent=4 ) | |
10 response = HttpResponse( json ) | |
11 response["Content-Type"] = "text/plain" | |
12 return response | |
13 | |
14 def categories_json( request ): | |
15 categoryDicts = [ | |
16 {"label": "Most Popular", "id" : "personas-popular-menu", | |
17 "type" : "list", "parent" : "top" }, | |
18 {"label": "Recent", "id" : "personas-recent-menu", | |
19 "type" : "recent", "parent" : "top" }, | |
20 {"label": "New", "id" : "personas-new-menu", | |
21 "type" : "list", "parent" : "top" }, | |
22 {"label": "All", "id" : "personas-category-menu", | |
23 "type" : "category", "parent" : "top" }, | |
24 ] | |
25 | |
26 for category in models.Category.objects.all(): | |
27 categoryDicts.append( | |
28 {"label" : category.name, | |
29 "id" : JSON_CATEGORY_ID_TEMPLATE % category.id, | |
30 "type" : "list", | |
31 "parent" : "personas-category-menu"} | |
32 ) | |
33 | |
34 return _makeJsonResponse( {"categories" : categoryDicts} ) | |
35 | |
36 def personas_json( request ): | |
37 personaDicts = [] | |
38 | |
39 for persona in models.Persona.objects.all(): | |
40 # TODO: Make sure the Persona is marked as published. | |
41 personaDicts.append( | |
42 {"label" : persona.name, | |
43 "id" : JSON_PERSONA_ID_TEMPLATE % persona.id, | |
44 "dark" : ( persona.color_scheme == "dark" ), | |
45 "baseURL" : "", | |
46 "headerURL" : persona.header_img, | |
47 "footerURL" : persona.footer_img, | |
48 "menu" : JSON_CATEGORY_ID_TEMPLATE % persona.category.id, | |
49 "preview" : "yes"} | |
50 ) | |
51 | |
52 return _makeJsonResponse( {"personas" : personaDicts} ) |