1 | # Create your views here. |
---|
2 | from centerregistry.models import * |
---|
3 | from django.http import HttpResponse |
---|
4 | from django.shortcuts import get_object_or_404, render_to_response |
---|
5 | from django.utils import simplejson as json |
---|
6 | from django.contrib.auth.models import User |
---|
7 | import datetime |
---|
8 | import os |
---|
9 | import xml.etree.cElementTree as ET |
---|
10 | from django.utils import simplejson |
---|
11 | |
---|
12 | ###new |
---|
13 | from django.views.defaults import page_not_found as default_page_not_found |
---|
14 | from django.views.defaults import server_error as default_server_error |
---|
15 | |
---|
16 | # Use custom 404 and 500 handlers, just to override template names |
---|
17 | def page_not_found(request, template_name='404.html'): |
---|
18 | return default_page_not_found(request, template_name=template_name) |
---|
19 | |
---|
20 | def server_error(request, template_name='500.html'): |
---|
21 | return default_server_error(request, template_name=template_name) |
---|
22 | |
---|
23 | def index(request): |
---|
24 | return render_to_response('center/frameset.html') |
---|
25 | |
---|
26 | def error404(request): |
---|
27 | resp = render_to_response('center/frameset.html') |
---|
28 | resp.status_code = 404 |
---|
29 | return resp |
---|
30 | |
---|
31 | def menu(request): |
---|
32 | return render_to_response('center/menu.html') |
---|
33 | |
---|
34 | def topframe(request): |
---|
35 | return render_to_response('center/Topframe.html') |
---|
36 | |
---|
37 | def 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 | ########### |
---|
76 | def 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 | |
---|
81 | def 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"}) |
---|
85 | def 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 ) |
---|
90 | def 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 | |
---|
94 | def 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 | |
---|
98 | def 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 | |
---|
102 | def 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 | |
---|
106 | def 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 | |
---|
110 | def 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 | |
---|
114 | def 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 | |
---|
118 | def 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 | |
---|
129 | def 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 | |
---|