diff --git a/apimanager/banks/forms.py b/apimanager/banks/forms.py index 2449582..6fb1898 100644 --- a/apimanager/banks/forms.py +++ b/apimanager/banks/forms.py @@ -87,6 +87,37 @@ class CreateBankForm(forms.Form): required=False, ) + type_attribute = forms.CharField( + label=_('Type'), + widget=forms.TextInput( + attrs={ + 'placeholder': _('Type'), + 'class': 'form-control', + } + ), + required=False, + ) + name_attribute = forms.CharField( + label=_('Attribute Name'), + widget=forms.TextInput( + attrs={ + 'placeholder': _('Name'), + 'class': 'form-control', + } + ), + required=False, + ) + value_attribute = forms.CharField( + label=_('Value'), + widget=forms.TextInput( + attrs={ + 'placeholder': _('2012-04-23'), + 'class': 'form-control', + } + ), + required=False, + ) + def __init__(self, *args, **kwargs): kwargs.setdefault('label_suffix', '') super(CreateBankForm, self).__init__(*args, **kwargs) diff --git a/apimanager/banks/static/banks/js/banks.js b/apimanager/banks/static/banks/js/banks.js index 338fe9e..e69de29 100644 --- a/apimanager/banks/static/banks/js/banks.js +++ b/apimanager/banks/static/banks/js/banks.js @@ -1,5 +0,0 @@ -$(document).ready(function($) { - $('#info').click(function() { - alert("Hello World") - }); -}); diff --git a/apimanager/banks/templates/banks/update.html b/apimanager/banks/templates/banks/update.html index a62c415..b1d4192 100644 --- a/apimanager/banks/templates/banks/update.html +++ b/apimanager/banks/templates/banks/update.html @@ -2,6 +2,7 @@

{% trans "Bank Detail" %}

{{ bank_id }}

+
{% csrf_token %} {% if form.non_field_errors %}
{{ form.non_field_errors }}
@@ -74,7 +75,149 @@
+
+ {% csrf_token %} +
+

Bank Attributes

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ {% for attribute in bank_attributes_list %} + {% url 'my-bank-attribute-detail' attribute.bank_attribute_id as url_bank_attribute_detail %} +
+
+ {% if attribute.bank_attribute_id %} + +
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+ {% endif %} +
+
+ +
+
+
+
+ +
+
+
+
+ {% endfor %} +
+ + {% endblock content %} {% block extrajs %} {% endblock extrajs %} {% block extracss %} {% endblock extracss %} diff --git a/apimanager/banks/urls.py b/apimanager/banks/urls.py index dd40fa9..12c7250 100644 --- a/apimanager/banks/urls.py +++ b/apimanager/banks/urls.py @@ -4,7 +4,7 @@ URLs for Bank app """ from django.conf.urls import url -from .views import IndexBanksView, UpdateBanksView +from banks.views import IndexBanksView, UpdateBanksView, bank_attribute_save, bank_attribute_update, bank_attribute_delete urlpatterns = [ url(r'^create', @@ -12,5 +12,11 @@ urlpatterns = [ name='banks_create'), url(r'^update/bank/(?P[0-9\w\@\.\+-]+)/$', UpdateBanksView.as_view(), - name='banks_update') + name='banks_update'), + url(r'save/attribute', bank_attribute_save, + name='bank_attribute_save'), + url(r'updateattribute/attribute', bank_attribute_update, + name='bank_attribute_update'), + url(r'delete/attribute', bank_attribute_delete, + name='bank_attribute_delete'), ] \ No newline at end of file diff --git a/apimanager/banks/views.py b/apimanager/banks/views.py index aebdf38..aca23df 100644 --- a/apimanager/banks/views.py +++ b/apimanager/banks/views.py @@ -9,12 +9,15 @@ Views of banks app from django.contrib import messages from django.contrib.auth.mixins import LoginRequiredMixin import json -from django.urls import reverse_lazy +from django.urls import reverse, reverse_lazy from django.views.generic import FormView from obp.api import API, APIError from .forms import CreateBankForm from django.utils.translation import ugettext_lazy as _ from apimanager.settings import DEBUG +from django.views.decorators.csrf import csrf_exempt +from base.utils import exception_handle, error_once_only +from django.conf import settings class IndexBanksView(LoginRequiredMixin, FormView): @@ -78,6 +81,7 @@ class UpdateBanksView(LoginRequiredMixin, FormView): template_name = "banks/update.html" form_class = CreateBankForm success_url = '/banks/list' + v510 = settings.API_ROOT['v510'] def dispatch(self, request, *args, **kwargs): self.api = API(request.session.get('obp')) @@ -147,3 +151,69 @@ class UpdateBanksView(LoginRequiredMixin, FormView): data["bank_id"]) messages.success(self.request, msg) return super(UpdateBanksView, self).form_valid(form) + + def bank_attributes(self, **kwargs): + bank_attributes_url_path = "/banks/{}/attributes".format(self.kwargs['bank_id']) + try: + bank_attributes_result = self.api.get(bank_attributes_url_path, version=self.v510)["bank_attributes"] + return bank_attributes_result + except Exception as err: + messages.error(self.request, "Unknown Error {}".format(err)) + return " " + + def get_context_data(self, **kwargs): + context = super(UpdateBanksView, self).get_context_data(**kwargs) + self.bank_id = self.kwargs['bank_id'] + context.update({ + 'bank_id': self.bank_id, + "bank_attributes_list": self.bank_attributes(**kwargs) + }) + return context + +@exception_handle +@csrf_exempt +def bank_attribute_save(request): + api = API(request.session.get('obp')) + #urlpath = '/my/api-collections' + bank_id = request.POST.get('bank_id').strip() + urlpath_save = '/banks/{}/attribute'.format(bank_id) + + payload = { + 'name': request.POST.get('name').strip(), + 'type': request.POST.get('type').strip(), + 'value': request.POST.get('value').strip(), + 'is_active': True + } + result = api.post(urlpath_save, payload = payload, version=settings.API_ROOT['v510']) + print("result", result) + return result + + +@exception_handle +@csrf_exempt +def bank_attribute_update(request): + bank_id = request.POST.get('bank_id').strip() + bank_attribute_id = request.POST.get('bank_attribute_id').strip() + api = API(request.session.get('obp')) + urlpath_update = '/banks/{}/attributes/{}'.format(bank_id, bank_attribute_id) + + payload = { + 'name': request.POST.get('name').strip(), + 'type': request.POST.get('type').strip(), + 'value': request.POST.get('value').strip(), + 'is_active': True + } + result = api.put(urlpath_update, payload=payload, version=settings.API_ROOT['v510']) + return result + + +@exception_handle +@csrf_exempt +def bank_attribute_delete(request): + bank_id = request.POST.get('bank_id').strip() + bank_attribute_id = request.POST.get('bank_attribute_id').strip() + api = API(request.session.get('obp')) + urlpath_delete = '/banks/{}/attributes/{}'.format(bank_id, bank_attribute_id) + result = api.delete(urlpath_delete, version=settings.API_ROOT['v510']) + return result +