Skip to content
This repository was archived by the owner on Apr 19, 2024. It is now read-only.

Commit 2c9e533

Browse files
committed
Merge pull request #37 from tomkralidis/master
Implement data.json feed (#31)
2 parents 7e052cd + 1ab5825 commit 2c9e533

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

OpenDataCatalog/catalog/views.py

+26
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
import json
12
import os.path
23

34
from django.conf import settings
45
from django.http import HttpResponse
56
from django.views.decorators.csrf import csrf_exempt
67

8+
from OpenDataCatalog.opendata.models import Resource
79
from pycsw import server
810

911
CONFIGURATION = {
@@ -22,6 +24,30 @@
2224
}
2325
}
2426

27+
28+
@csrf_exempt
29+
def data_json(request):
30+
"""Return data.json representation of site catalog"""
31+
json_data = []
32+
for resource in Resource.objects.all():
33+
record = {}
34+
record['title'] = resource.name
35+
record['description'] = resource.description
36+
record['keyword'] = resource.csw_keywords.split(',')
37+
record['modified'] = resource.last_updated
38+
record['publisher'] = resource.organization
39+
record['contactPoint'] = resource.metadata_contact
40+
record['mbox'] = resource.contact_email
41+
record['identifier'] = resource.csw_identifier
42+
if resource.is_published:
43+
record['accessLevel'] = 'public'
44+
else:
45+
record['accessLevel'] = 'non-public'
46+
47+
json_data.append(record)
48+
49+
return HttpResponse(json.dumps(json_data), 'application/json')
50+
2551
@csrf_exempt
2652
def csw(request):
2753
"""CSW WSGI wrapper"""

OpenDataCatalog/templates/sidebar.html

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ <h2 class="grid">About</h2>
2525
<li id="terms"><a href="{{SITE_ROOT}}/terms/">Terms</a></li>
2626
<li id="feeds"><a href="{{SITE_ROOT}}/feeds/">RSS Feeds</a></li>
2727
<li id="feeds"><a href="{{SITE_ROOT}}/catalog/csw?service=CSW&amp;version=2.0.2&amp;request=GetCapabilities">OGC Catalog Service</a></li>
28+
<li id="feeds"><a href="{{SITE_ROOT}}/data.json">Open Data Catalog JSON</a></li>
2829
{% if perms.opendata.change_resource %}
2930
<li class="separator"></li>
3031
<li id="admin"><a href="{{SITE_ROOT}}/_admin_">Administration</a></li>

OpenDataCatalog/urls.py

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
(r'^api/submit/$', 'OpenDataCatalog.api.views.submit'),
7777

7878
url(r'^catalog/', include("OpenDataCatalog.catalog.urls")),
79+
url(r'^data.json$', "OpenDataCatalog.catalog.views.data_json"),
7980

8081
# Uncomment the next line to enable the admin:
8182
url(r'^_admin_/', include(admin.site.urls)),

0 commit comments

Comments
 (0)