feature/ add bank attributes

This commit is contained in:
Reena Aheer 2023-04-27 11:08:01 +02:00
parent 3cc3dfc951
commit 4ea5a6e98f
5 changed files with 253 additions and 8 deletions

View File

@ -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)

View File

@ -1,5 +0,0 @@
$(document).ready(function($) {
$('#info').click(function() {
alert("Hello World")
});
});

View File

@ -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 %}

View File

@ -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'),
]

View File

@ -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