source: CenterRegistry/trunk/centerregistry/views.py @ 2807

Last change on this file since 2807 was 2807, checked in by BSanchezRZG, 11 years ago

Update from 12.4.2013

File size: 5.8 KB
Line 
1# Create your views here.
2from centerregistry.models import *
3from django.http import HttpResponse
4from django.shortcuts import  get_object_or_404,  render_to_response
5from django.utils import simplejson as json 
6from django.contrib.auth.models import User
7import datetime
8import os
9import xml.etree.cElementTree as ET
10from django.utils import simplejson
11
12###new
13from django.views.defaults import page_not_found as default_page_not_found
14from django.views.defaults import server_error as default_server_error
15
16# Use custom 404 and 500 handlers, just to override template names
17def page_not_found(request, template_name='404.html'):
18    return default_page_not_found(request, template_name=template_name)
19
20def server_error(request, template_name='500.html'):
21    return default_server_error(request, template_name=template_name) 
22
23def index(request):
24    return render_to_response('center/frameset.html')
25
26def error404(request):
27    resp = render_to_response('center/frameset.html')
28    resp.status_code = 404
29    return resp
30
31def menu(request):
32    return render_to_response('center/menu.html')
33
34def topframe(request):
35    return render_to_response('center/Topframe.html')
36
37def elem_to_internal(elem,strip=1):
38    """Convert an Element into an internal dictionary (not JSON!)."""
39    d = {}
40    for key, value in elem.attrib.items():
41        d['@'+key] = value
42
43    # loop over subelements to merge them
44    for subelem in elem:
45        v = elem_to_internal(subelem,strip=strip)
46        tag = subelem.tag
47        value = v[tag]
48        try:
49            # add to existing list for this tag
50            d[tag].append(value)
51        except AttributeError:
52            # turn existing entry into a list
53            d[tag] = [d[tag], value]
54        except KeyError:
55            # add a new non-list entry
56            d[tag] = value
57    text = elem.text
58    tail = elem.tail
59    if strip:
60        # ignore leading and trailing whitespace
61        if text: text = text.strip()
62        if tail: tail = tail.strip()
63
64    if tail:
65        d['#tail'] = tail
66
67    if d:
68        # use #text element if other attributes exist
69        if text: d["#text"] = text
70    else:
71        # text is the value if no attributes
72        d = text or None
73    return {elem.tag: d}
74
75###########
76def home(request):
77    center_list = Center.objects.all()
78    return render_to_response('center/lista.html', {'center_list': center_list })
79 #   return render_to_response('center/home.html', {'center_list': center_list, 'title': "Home Page"})
80
81def centers_all_list(request):
82    center_list = Center.objects.all()
83    return render_to_response('center/lista.html', {'center_list': center_list, 'title': "List of centers"})
84#return render_to_response('center/lista.html', {'center_list': center_list, 'title': "List of centers"})
85def center_detail(request, center_id):
86    mycenter = get_object_or_404(Center, pk=center_id)
87    params = {'center': mycenter, 'title': "Center Detail view",  }   
88    return render_to_response('center/center_detail2.html',  params )
89# return render_to_response('center/center_detail.html',  params )
90def endpoints_all_list(request):
91    center_list = Center.objects.all()
92    return render_to_response('center/EP_list.html', {'center_list': center_list, 'title': "OAI-PMH End Points"})
93
94def federations_list(request):
95    fede_list = ClarinFederations.objects.all()
96    return render_to_response('fede/fede_list.html', {'federations_list': fede_list, 'title': "CLARIN Members"})
97
98def contacts_list(request):
99    center_list = Center.objects.all()
100    return render_to_response('center/Contact_list.html', {'center_list': center_list, 'title': "Center Contacts"})
101
102def contacts_list_tec(request):
103    center_list = Center.objects.all()
104    return render_to_response('center/tt.html', {'center_list': center_list, 'title': "Center Technical Contacts"})
105
106def contacts_list_sec(request):
107    center_list = Center.objects.all()
108    return render_to_response('center/sc.html', {'center_list': center_list, 'title': "Center Security Contacts"})
109
110def restlist(request): 
111    mycenterlist = Center.objects.all()
112    return render_to_response('center/centerxmllist.xml', {'centerlist': mycenterlist, 'title': "Center list"}, mimetype="application/xhtml+xml")
113
114def resttest(request, center_id): 
115    mycenter = get_object_or_404(Center, pk=center_id)
116    return render_to_response('center/centerxmldetail.xml', {'center': mycenter, 'title': "Center Detail view"}, mimetype="application/xhtml+xml") 
117   
118def jsonlist(request): 
119    mycenterlist = Center.objects.all()
120    myteststring = render_to_response('center/centerxmllist.xml', {'center': mycenterlist, 'title': "Center Detail view"}, mimetype="application/xhtml+xml")
121# #   """Convert an XML string into a JSON string."""
122    elem = ET.fromstring(myteststring.content)
123    elem2 = elem_to_internal(elem,strip=1)
124    jsontest = simplejson.dumps(elem_to_internal(elem,strip=1))
125#   return render_to_response( json.dumps(jsontest), mimetype="application/json")
126 #  return HttpResponse("You're looking at the results of poll %s." % myteststring.content )
127    return  HttpResponse("%s" %     elem2 )
128
129def jsondetail(request, center_id): 
130    mycenter = get_object_or_404(Center, pk=center_id)
131 #   mycenterstring = render_to_response('center/centerxmldetail.xml', {'center': mycenter, 'title': "Center Detail view"}, mimetype="application/xhtml+xml")
132    mycenterstring = render_to_response('center/centerxmldetail2.xml', {'center': mycenter, 'title': "Center Detail view"}, mimetype="application/xhtml+xml")
133##   """Convert an XML string into a JSON string."""
134
135    elem = ET.fromstring(mycenterstring.content)
136    elem2 = elem_to_internal(elem,strip=1)
137    jsontest = simplejson.dumps(elem_to_internal(elem,strip=1))
138  # return render_to_response( jsontest, mimetype="application/json")
139    return  HttpResponse("%s" %     elem2 )
140  #  return HttpResponse("You're looking at the results of poll %s." % jsontest )
141
142
143
144
Note: See TracBrowser for help on using the repository browser.