Skip to content

Commit

Permalink
Merge pull request #1469 from makinacorpus/anonymous_report_creation
Browse files Browse the repository at this point in the history
Allow anonymous reports creation
  • Loading branch information
Gaël UTARD committed Jul 24, 2015
2 parents e747540 + 798e8da commit a4ee149
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 11 deletions.
2 changes: 1 addition & 1 deletion conf/buildout.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ zc.buildout = 1.7.1
# From Geotrek
#
Django = 1.6.5
mapentity = 2.4.1
mapentity = 2.4.2
GDAL=1.10.0
tif2geojson=0.1.3
django-extended-choices = 0.3.0
Expand Down
10 changes: 10 additions & 0 deletions geotrek/feedback/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from rest_framework import serializers as rest_serializers

from geotrek.feedback import models as feedback_models


class ReportSerializer(rest_serializers.ModelSerializer):
class Meta:
model = feedback_models.Report
geo_field = 'geom'
id_field = 'id'
13 changes: 3 additions & 10 deletions geotrek/feedback/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,24 +48,17 @@ def login(self):
class CreateReportsAPITest(BaseAPITest):
def setUp(self):
super(CreateReportsAPITest, self).setUp()
self.add_url = '/report/add/'
self.add_url = '/api/en/reports/report'
self.data = {
'geom': '{"type": "Point", "coordinates": [0, 0]}',
'name': 'You Yeah',
'email': 'yeah@you.com'
}
self.login()

def post_report_data(self, data):
response = self.client.get(self.add_url,
allow_redirects=False)
self.assertEqual(response.status_code, 200)
csrf = response.cookies['csrftoken']
data['csrfmiddlewaretoken'] = csrf
response = self.client.post(self.add_url, data=data,
allow_redirects=False)
self.assertEqual(response.status_code, 302)
return response
self.assertEqual(response.status_code, 201)

def test_reports_can_be_created_using_post(self):
self.post_report_data(self.data)
Expand All @@ -83,7 +76,7 @@ def setUp(self):
self.cat = feedback_factories.ReportCategoryFactory(category_it='Obstaculo')

def test_categories_can_be_obtained_as_json(self):
response = self.client.get('/api/fr/feedback/categories.json')
response = self.client.get('/api/en/feedback/categories.json')
self.assertEqual(response.status_code, 200)
data = json.loads(response.content)
self.assertEqual(data[0]['id'], self.cat.id)
Expand Down
13 changes: 13 additions & 0 deletions geotrek/feedback/views.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
from django.views.generic.list import ListView
from rest_framework.decorators import list_route
from rest_framework.permissions import AllowAny
from mapentity import views as mapentity_views

from geotrek.feedback import models as feedback_models
from geotrek.feedback import serializers as feedback_serializers


class ReportLayer(mapentity_views.MapEntityLayer):
Expand Down Expand Up @@ -30,3 +33,13 @@ def dispatch(self, *args, **kwargs):
def get_context_data(self, **kwargs):
return [{'id': c.id,
'label': c.category} for c in self.object_list]


class ReportViewSet(mapentity_views.MapEntityViewSet):
"""Disable permissions requirement"""
model = feedback_models.Report
serializer_class = feedback_serializers.ReportSerializer

@list_route(methods=['post'], permission_classes=[AllowAny])
def report(self, request, lang=None):
return super(ReportViewSet, self).create(request)

0 comments on commit a4ee149

Please sign in to comment.