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 }}
+
+
+
+
{% 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
+