From baf3fcc49772e6de35e08733e44467727d2b3195 Mon Sep 17 00:00:00 2001 From: Josue Kouka Date: Thu, 26 May 2016 15:47:07 +0200 Subject: [PATCH] csv datasource: add POST method support --- passerelle/apps/csvdatasource/views.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/passerelle/apps/csvdatasource/views.py b/passerelle/apps/csvdatasource/views.py index 0cc3106..4a80823 100644 --- a/passerelle/apps/csvdatasource/views.py +++ b/passerelle/apps/csvdatasource/views.py @@ -4,6 +4,9 @@ from django.core.urlresolvers import reverse from django.views.generic.edit import CreateView, UpdateView, DeleteView from django.views.generic.detail import DetailView, SingleObjectMixin from django.views.generic.base import View +from django.utils.decorators import method_decorator +from django.views.decorators.csrf import csrf_exempt + from passerelle import utils @@ -38,6 +41,10 @@ class CsvDataSourceDeleteView(DeleteView): class CsvDataView(View, SingleObjectMixin): model = CsvDataSource + @method_decorator(csrf_exempt) + def dispatch(self, request, *args, **kwargs): + return super(CsvDataView, self).dispatch(request, *args, **kwargs) + @utils.protected_api('can_access') @utils.to_json('api') def get(self, request, *args, **kwargs): @@ -49,3 +56,11 @@ class CsvDataView(View, SingleObjectMixin): if column_title in request.GET: filters[column_title] = request.GET[column_title] return obj.get_data(filters, query=query, case_insensitive=case_insensitive) + + @utils.protected_api('can_access') + @utils.to_json('api') + def post(self, request, *args, **kwargs): + filters = json.loads(request.body) + query = filters.pop('q', None) + case_insensitive = filters.pop('case-insensitive', False) + return obj.get_data(filters, query=query, case_insensitive=case_insensitive) -- 2.8.1