Skip to content

Commit c35fe5b

Browse files
committed
Moved Json Rest into a view dir where they belong.
1 parent c50fa95 commit c35fe5b

File tree

3 files changed

+28
-29
lines changed

3 files changed

+28
-29
lines changed

mainapp/models.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
from django.db import models, connection
32
from django.contrib.gis.db import models
43
from django.contrib.gis.maps.google import GoogleMap, GMarker, GEvent, GPolygon, GIcon
@@ -16,7 +15,6 @@
1615
from contrib.stdimage import StdImageField
1716
import libxml2
1817
from django.utils.encoding import iri_to_uri
19-
from contrib.django_restapi.model_resource import Collection
2018

2119

2220
class Province(models.Model):
@@ -299,18 +297,6 @@ def __unicode__(self):
299297
return mark_safe('GMarker(%s)' % ( self.js_params))
300298

301299

302-
class ReportJSON(Collection):
303-
304-
def read(self, request):
305-
lon = request.GET["lon"]
306-
lat = request.GET["lat"]
307-
radius = int(request.GET.get('r', 4))
308-
point_str = "POINT(%s %s)" %(lon, lat)
309-
pnt = fromstr(point_str, srid=4326)
310-
reports = Report.objects.filter(is_confirmed = True,point__distance_lte=(pnt,D(km=radius))).distance(pnt).order_by('distance')
311-
return self.responder.list(request, reports)
312-
313-
314300
class FixMyStreetMap(GoogleMap):
315301
"""
316302
Overrides the GoogleMap class that comes with GeoDjango. Optionally,

mainapp/views/json.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from contrib.django_restapi.model_resource import Collection
2+
from contrib.django_restapi.responder import JSONResponder
3+
from django.contrib.gis.geos import fromstr
4+
from django.contrib.gis.measure import D
5+
6+
from mainapp.models import Report
7+
8+
class ReportJSON(Collection):
9+
10+
def read(self, request):
11+
lon = request.GET["lon"]
12+
lat = request.GET["lat"]
13+
radius = float(request.GET.get('r', 4))
14+
point_str = "POINT(%s %s)" %(lon, lat)
15+
pnt = fromstr(point_str, srid=4326)
16+
reports = Report.objects.filter(is_confirmed = True,point__distance_lte=(pnt,D(km=radius))).distance(pnt).order_by('distance')
17+
return self.responder.list(request, reports)
18+
19+
reports_resource = ReportJSON(
20+
queryset=Report.objects.all(),
21+
permitted_methods = ('GET', 'POST'),
22+
# expose_fields = ('id','point'),
23+
responder = JSONResponder()
24+
# responder = JSONResponder(paginate_by = 2)
25+
)

urls.py

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
from django.http import HttpResponseRedirect
44
from django.contrib import admin
55
from mainapp.feeds import LatestReports, LatestReportsByCity, LatestReportsByWard, LatestUpdatesByReport
6-
from contrib.django_restapi.responder import JSONResponder
7-
8-
# models
9-
from mainapp.models import Report, ReportJSON
106

117

128
feeds = {
@@ -84,17 +80,9 @@
8480
(r'^ajax/categories/(\d+)', 'category_desc'),
8581
)
8682

87-
# REST
88-
json_report_resource = ReportJSON(
89-
queryset=Report.objects.all(),
90-
permitted_methods = ('GET', 'POST'),
91-
# expose_fields = ('id','point'),
92-
responder = JSONResponder()
93-
# responder = JSONResponder(paginate_by = 2)
94-
)
95-
96-
urlpatterns += patterns('',
97-
url(r'^json/report/?$', json_report_resource),
83+
# REST Urls
84+
urlpatterns += patterns('mainapp.views.json',
85+
url(r'^json/report/?$', 'reports_resource'),
9886
)
9987

10088

0 commit comments

Comments
 (0)