diff --git a/passerelle_imio_tax_compute/views.py b/passerelle_imio_tax_compute/views.py
index 380ad92..17a2ff1 100644
--- a/passerelle_imio_tax_compute/views.py
+++ b/passerelle_imio_tax_compute/views.py
@@ -14,8 +14,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-import requests
-import unicodedata
+
+import json
from django.views.generic.detail import SingleObjectMixin, DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
@@ -28,6 +28,7 @@ from passerelle import utils
from .models import ImioTsTaxCompute
from .forms import ImioTsTaxComputeForm
+
class SigCreateView(CreateView):
model = ImioTsTaxCompute
form_class = ImioTsTaxComputeForm
@@ -54,5 +55,15 @@ class EvalView(View, SingleObjectMixin):
model = ImioTsTaxCompute
def get(self, request, *args, **kwargs):
- result = eval(self.get_object().formule)
+ return self.post(request, *args, **kwargs)
+
+ def post(self, request, *args, **kwargs):
+ data = dict([(x, request.GET[x]) for x in request.GET.keys()])
+ if request.body:
+ payload = json.loads(request.body)
+ data.update(payload.get("fields"))
+ expression = self.get_object().formule
+ code_object = compile(expression, "", "exec")
+ eval(code_object, data)
+ result = data.get("result")
return utils.response_for_json(request, {'data': result})