mirror of
https://github.com/OpenBankProject/API-Manager.git
synced 2026-02-06 10:59:00 +00:00
feature/ add bank attributes
This commit is contained in:
parent
3cc3dfc951
commit
4ea5a6e98f
@ -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)
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
$(document).ready(function($) {
|
||||
$('#info').click(function() {
|
||||
alert("Hello World")
|
||||
});
|
||||
});
|
||||
@ -2,6 +2,7 @@
|
||||
<div id="banks">
|
||||
<h1>{% trans "Bank Detail" %}</h1>
|
||||
<h2>{{ bank_id }}</h2>
|
||||
<input type="hidden" value="{{bank_id}}" id="current_bank_id" />
|
||||
<form method="post">
|
||||
{% csrf_token %} {% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">{{ form.non_field_errors }}</div>
|
||||
@ -74,7 +75,149 @@
|
||||
</div>
|
||||
<input type="submit" value="Update" class="btn btn-primary"/>
|
||||
</form>
|
||||
<form method ="POST">
|
||||
{% csrf_token %}
|
||||
<div class="row">
|
||||
<h1>Bank Attributes</h1>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<label class="form-group">{% trans "Attribute Name" %}:</label> <br>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<label class="form-group">{% trans "Attribute Type" %}:</label> <br>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<label class="form-group">{% trans "Attribute Value" %}:</label> <br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="runner">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<div class="form-group" cols="1" rows="1">
|
||||
<input class="bank_attribute_name" value="Attribute Name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<div class="form-group" cols="1" rows="1">
|
||||
<input class="bank_attribute_type" value="Attribute Type">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="form-group" cols="1" rows="1">
|
||||
<input class="bank_attribute_value" value="Attribute Value">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6 col-sm-3">
|
||||
<div class="form-group">
|
||||
<button class="btn btn-primary btn-green forSave">{% trans "Create" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% for attribute in bank_attributes_list %}
|
||||
{% url 'my-bank-attribute-detail' attribute.bank_attribute_id as url_bank_attribute_detail %}
|
||||
<div class="runner">
|
||||
<div class="row">
|
||||
{% if attribute.bank_attribute_id %}
|
||||
<input type ="hidden" class="bank_attribute_id" value="{{ attribute.bank_attribute_id }}">
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<div class="form-group" cols="1" rows="1">
|
||||
<div>
|
||||
<input class="bank_attribute_name form-control" value="{{ attribute.name }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<div class="form-group" cols="1" rows="1">
|
||||
<div>
|
||||
<input class="bank_attribute_type form-control" value="{{ attribute.type }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="form-group" cols="1" rows="1">
|
||||
<div>
|
||||
<input class="bank_attribute_value form-control" value="{{ attribute.value }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col-sm-3 col-sm-1">
|
||||
<div class="form-group">
|
||||
<button class="btn btn-primary forUpdate">{% trans "Update" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3 col-sm-1">
|
||||
<div class="form-group">
|
||||
<button class="btn btn-primary btn-red forDelete">{% trans "Delete" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript" src="{% static 'js/jquery.min.js' %}"></script>
|
||||
<script>
|
||||
$(document).ready(function($) {
|
||||
var bank_id = $('#current_bank_id').val();
|
||||
$('.runner button.forSave').click(function(e) {
|
||||
e.preventDefault();
|
||||
let runner = $(this).parent().parent().parent();
|
||||
let name = $(runner).find('.bank_attribute_name').val();
|
||||
let type = $(runner).find('.bank_attribute_type').val();
|
||||
let value = $(runner).find('.bank_attribute_value').val();
|
||||
$('.runner button.forUpdate').attr("disabled", "disabled");
|
||||
$('.runner button.forSave').attr("disabled", "disabled");
|
||||
$('.runner button.forDelete').attr("disabled", "disabled");
|
||||
|
||||
$.post('save/attribute', {
|
||||
'name': name,
|
||||
'type': type,
|
||||
'value': value,
|
||||
'bank_id': bank_id,
|
||||
}, function (response) {
|
||||
location.reload();
|
||||
|
||||
});
|
||||
});
|
||||
$('.runner button.forUpdate').click(function(e) {
|
||||
e.preventDefault();
|
||||
let runner = $(this).parent().parent().parent();
|
||||
let bank_attribute_id = $(runner).find('.bank_attribute_id').attr("value");
|
||||
console.log(bank_attribute_id)
|
||||
let name = $(runner).find('.bank_attribute_name').val();
|
||||
let type = $(runner).find('.bank_attribute_type').val();
|
||||
let value = $(runner).find('.bank_attribute_value').val();
|
||||
$('.runner button.forUpdate').attr("disabled", "disabled");
|
||||
$('.runner button.forSave').attr("disabled", "disabled");
|
||||
$('.runner button.forDelete').attr("disabled", "disabled");
|
||||
console.log(name, type, value, bank_id)
|
||||
$.post('updateattribute/attribute', {
|
||||
'bank_attribute_id': bank_attribute_id,
|
||||
'name': name,
|
||||
'type': type,
|
||||
'value': value,
|
||||
'bank_id': bank_id,
|
||||
}, function(response) {
|
||||
location.reload();
|
||||
});
|
||||
});
|
||||
|
||||
$('.runner button.forDelete').click(function(e) {
|
||||
e.preventDefault();
|
||||
let runner = $(this).parent().parent().parent();
|
||||
let bank_attribute_id = $(runner).find('.bank_attribute_id').attr("value");
|
||||
$('.runner button.forUpdate').attr("disabled", "disabled");
|
||||
$('.runner button.forSave').attr("disabled", "disabled");
|
||||
$('.runner button.forDelete').attr("disabled", "disabled");
|
||||
$.post('delete/attribute', {
|
||||
'bank_attribute_id': bank_attribute_id,
|
||||
'bank_id': bank_id,
|
||||
}, function(response) {
|
||||
location.reload();
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% endblock content %} {% block extrajs %} {% endblock extrajs %} {% block extracss %}
|
||||
<link href="{% static 'banks/css/banks.css' %}" rel="stylesheet"/> {% endblock extracss %}
|
||||
|
||||
@ -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<bank_id>[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'),
|
||||
]
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user