diff --git a/passerelle_imio_tax_compute/__init__.py b/passerelle_imio_tax_compute/__init__.py index 02d40ea..e69de29 100644 --- a/passerelle_imio_tax_compute/__init__.py +++ b/passerelle_imio_tax_compute/__init__.py @@ -1,28 +0,0 @@ -# passerelle-imio-tax-compute - passerelle connector to Lisrue webservice -# Copyright (C) 2016 Entr'ouvert -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -import django.apps - -class AppConfig(django.apps.AppConfig): - - name = 'passerelle_imio_tax_compute' - verbose_name = 'Tax compute' - - def get_after_urls(self): - from . import urls - return urls.urlpatterns - -default_app_config = 'passerelle_imio_tax_compute.AppConfig' diff --git a/passerelle_imio_tax_compute/forms.py b/passerelle_imio_tax_compute/forms.py deleted file mode 100644 index ff80ee2..0000000 --- a/passerelle_imio_tax_compute/forms.py +++ /dev/null @@ -1,30 +0,0 @@ -# passerelle-imio-tax-compute - passerelle connector to Lisrue webservice -# Copyright (C) 2016 Entr'ouvert -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -from django.utils.text import slugify -from django import forms - -from .models import ImioTsTaxCompute - -class ImioTsTaxComputeForm(forms.ModelForm): - class Meta: - model = ImioTsTaxCompute - exclude = ('slug', 'users') - - def save(self, commit=True): - if not self.instance.slug: - self.instance.slug = slugify(self.instance.title) - return super(ImioTsTaxComputeForm, self).save(commit=commit) diff --git a/passerelle_imio_tax_compute/models.py b/passerelle_imio_tax_compute/models.py index 98a7c50..2c657c2 100644 --- a/passerelle_imio_tax_compute/models.py +++ b/passerelle_imio_tax_compute/models.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import json import urlparse import requests @@ -22,6 +23,7 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ from passerelle.base.models import BaseResource +from passerelle.utils.api import endpoint class ImioTsTaxCompute(BaseResource): @@ -31,13 +33,6 @@ class ImioTsTaxCompute(BaseResource): class Meta: verbose_name = _('Tax compute Service') - def get_absolute_url(self): - return reverse('imio-tax-compute-view', kwargs={'slug': self.slug}) - - @classmethod - def get_add_url(cls): - return reverse('imio-tax-compute-add') - @classmethod def get_verbose_name(cls): return cls._meta.verbose_name @@ -45,3 +40,19 @@ class ImioTsTaxCompute(BaseResource): @classmethod def get_icon_class(cls): return 'gis' + + @classmethod + def get_connector_slug(cls): + return 'imio-tax-compute' + + @endpoint(methods=['post']) + def eval(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.formule + code_object = compile(expression, "", "exec") + eval(code_object, data) + result = data.get("result") + return {'data': result} diff --git a/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/base.html b/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/base.html deleted file mode 100644 index 1a3f92b..0000000 --- a/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/base.html +++ /dev/null @@ -1,8 +0,0 @@ -{% extends "passerelle/manage.html" %} - -{% block breadcrumb %} -{{ block.super }} -{% if object.id %} -{{ object.title }} -{% endif %} -{% endblock %} diff --git a/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_confirm_delete.html b/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_confirm_delete.html deleted file mode 100644 index 6551050..0000000 --- a/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_confirm_delete.html +++ /dev/null @@ -1,16 +0,0 @@ -{% extends "passerelle_imio_tax_compute/base.html" %} -{% load i18n %} - -{% block appbar %} -

TaxCompute - {{ object.title }}

-{% endblock %} - -{% block content %} -
- {% csrf_token %} -
- - {% trans 'Cancel' %} -
-
-{% endblock %} diff --git a/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_detail.html b/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_detail.html index 1daaa18..68db3f9 100644 --- a/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_detail.html +++ b/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_detail.html @@ -1,41 +1,15 @@ -{% extends "passerelle_imio_tax_compute/base.html" %} +{% extends "passerelle/manage/service_view.html" %} {% load i18n passerelle %} -{% block appbar %} -

TaxCompute - {{ object.title }}

-{% if perms.passerelle_imio_tax_compute.change_passerelle_imio_tax_compute %} -{% trans 'edit' %} -{% endif %} -{% if perms.passerelle_imio_tax_compute.delete_passerelle_imio_tax_compute %} -{% trans 'delete' %} -{% endif %} -{% endblock %} - -{% block content %} -

-Service URLĀ : {{ object.service_url }} -

- -
-

{% trans 'Endpoints' %}

+{% block endpoints %} +{% url "generic-endpoint" connector="imio-tax-compute" slug=object.slug endpoint="eval" as eval_url %} -
- -{% if perms.base.view_accessright %} -
-

{% trans "Security" %}

- -

-{% trans 'Accessing the listings is open.' %} -

- -{% endif %} - -
- {% endblock %} + +{% block security %} +{% endblock %} + diff --git a/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_form.html b/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_form.html deleted file mode 100644 index 830eb69..0000000 --- a/passerelle_imio_tax_compute/templates/passerelle_imio_tax_compute/imiotstaxcompute_form.html +++ /dev/null @@ -1,34 +0,0 @@ -{% extends "passerelle_imio_tax_compute/base.html" %} -{% load i18n %} - -{% block more-user-links %} -{{ block.super }} -{% if not object.id %} -{% trans 'Add Tax compute Connector' %} -{% endif %} -{% endblock %} - -{% block appbar %} -

TaxCompute - {% if object.id %}{{ object.title }}{% else %}{% trans 'New' %}{% endif %}

-{% endblock %} - -{% block content %} - -
-
- {% csrf_token %} - {{ form.as_p }} -
- {% block buttons %} -
- - {% if object.id %} - {% trans 'Cancel' %} - {% else %} - {% trans 'Cancel' %} - {% endif %} -
- {% endblock %} -
- -{% endblock %} diff --git a/passerelle_imio_tax_compute/urls.py b/passerelle_imio_tax_compute/urls.py deleted file mode 100644 index 7ae6879..0000000 --- a/passerelle_imio_tax_compute/urls.py +++ /dev/null @@ -1,45 +0,0 @@ -# passerelle-imio-tax-compute - passerelle connector to Lisrue webservice -# Copyright (C) 2016 Entr'ouvert -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -from django.conf.urls import patterns, include, url -from django.views.decorators.csrf import csrf_exempt -from django.contrib.auth.decorators import login_required - -from passerelle.urls_utils import decorated_includes, required, app_enabled - -from views import * - - -public_urlpatterns = patterns('', - url(r'^(?P[\w,-]+)/$', SigDetailView.as_view(), name='imio-tax-compute-view'), - - url(r'^(?P[\w,-]+)/eval/$', csrf_exempt(EvalView.as_view()), name='imio-tax-compute-eval'), -) - -management_urlpatterns = patterns('', - url(r'^add$', SigCreateView.as_view(), name='imio-tax-compute-add'), - url(r'^(?P[\w,-]+)/edit$', SigUpdateView.as_view(), name='imio-tax-compute-edit'), - url(r'^(?P[\w,-]+)/delete$', SigDeleteView.as_view(), name='imio-tax-compute-delete'), -) - -urlpatterns = required( - app_enabled('passerelle_imio_tax_compute'), - patterns('', - url(r'^imio-tax-compute/', include(public_urlpatterns)), - url(r'^manage/imio-tax-compute/', - decorated_includes(login_required, include(management_urlpatterns))), - ) -) diff --git a/passerelle_imio_tax_compute/views.py b/passerelle_imio_tax_compute/views.py deleted file mode 100644 index 17a2ff1..0000000 --- a/passerelle_imio_tax_compute/views.py +++ /dev/null @@ -1,69 +0,0 @@ -# passerelle-imio-tax-compute - passerelle connector to Lisrue webservice -# Copyright (C) 2016 Entr'ouvert -# -# This program is free software: you can redistribute it and/or modify it -# under the terms of the GNU Affero General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - - -import json - -from django.views.generic.detail import SingleObjectMixin, DetailView -from django.views.generic.edit import CreateView, UpdateView, DeleteView -from django.views.generic.base import View, RedirectView -from django.core.urlresolvers import reverse -from django.http import HttpResponseBadRequest - -from passerelle import utils - -from .models import ImioTsTaxCompute -from .forms import ImioTsTaxComputeForm - - -class SigCreateView(CreateView): - model = ImioTsTaxCompute - form_class = ImioTsTaxComputeForm - template_name = 'passerelle/manage/service_form.html' - - -class SigUpdateView(UpdateView): - model = ImioTsTaxCompute - form_class = ImioTsTaxComputeForm - - -class SigDeleteView(DeleteView): - model = ImioTsTaxCompute - - def get_success_url(self): - return reverse('manage-home') - - -class SigDetailView(DetailView): - model = ImioTsTaxCompute - - -class EvalView(View, SingleObjectMixin): - model = ImioTsTaxCompute - - def get(self, request, *args, **kwargs): - 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})