mirror of
https://github.com/OpenBankProject/API-Manager.git
synced 2026-02-06 18:36:51 +00:00
Merge pull request #312 from Reena-cell/develop
feature add ATM Attribute in update ATM
This commit is contained in:
commit
b2257de8ca
@ -258,7 +258,7 @@ API_EXPLORER_HOST = 'http://127.0.0.1:8082'
|
||||
# Only override this if you have a separate portal instance
|
||||
API_PORTAL = API_HOST
|
||||
API_BASE_PATH = '/obp/v'
|
||||
API_VERSION = '5.0.0'
|
||||
API_VERSION = '5.1.0'
|
||||
|
||||
# URL to API Tester
|
||||
API_TESTER_URL = 'https://www.example.com'
|
||||
|
||||
@ -263,6 +263,36 @@ class CreateAtmForm(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,
|
||||
)
|
||||
location_categories = forms.CharField(
|
||||
label=_('Location Category'),
|
||||
widget=forms.TextInput(
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
<div id="atms">
|
||||
<h1>{% trans "ATM Detail" %}</h1>
|
||||
<h2>{{ bank_id }} : {{ atm_id }}</h2>
|
||||
<input type="hidden" value="{{bank_id}}" id="current_bank_id" />
|
||||
<input type="hidden" value="{{atm_id}}" id="current_atm_id" />
|
||||
<form method="post">
|
||||
{% csrf_token %} {% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
@ -202,7 +204,6 @@
|
||||
{{ form.address.label_tag }} {{ form.address }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.lobby.errors %}
|
||||
<div class="alert alert-danger">{{ form.lobby.errors }}</div>{% endif %}
|
||||
@ -211,13 +212,164 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="submit" value="Update" class="btn btn-primary" />
|
||||
<input type="submit" value="Update" class="btn btn-primary"/>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock content %} {% block extrajs %} {% comment %}
|
||||
<script type="text/javascript" src="{% static 'atms/js/atms.js' %}"></script>
|
||||
<script type="text/javascript">
|
||||
<form method ="POST">
|
||||
{% csrf_token %}
|
||||
<div class="row">
|
||||
<h1>Hello ATM Attribute</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="atm_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="atm_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="atm_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-atm-attribute-detail' attribute.atm_attribute_id as url_atm_attribute_detail %}
|
||||
<div class="runner">
|
||||
|
||||
<div class="row">
|
||||
|
||||
{% if attribute.atm_attribute_id %}
|
||||
<input type ="hidden" class="atm_attribute_id" value="{{ attribute.atm_attribute_id }}">
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<div class="form-group" cols="1" rows="1">
|
||||
<div>
|
||||
<input class="atm_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="atm_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="atm_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();
|
||||
var atm_id = $('#current_atm_id').val();
|
||||
console.log(bank_id, atm_id)
|
||||
$('.runner button.forSave').click(function(e) {
|
||||
e.preventDefault();
|
||||
let runner = $(this).parent().parent().parent();
|
||||
let name = $(runner).find('.atm_attribute_name').val();
|
||||
let type = $(runner).find('.atm_attribute_type').val();
|
||||
let value = $(runner).find('.atm_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('save/attribute', {
|
||||
'name': name,
|
||||
'type': type,
|
||||
'value': value,
|
||||
'bank_id': bank_id,
|
||||
'atm_id' : atm_id
|
||||
}, function (response) {
|
||||
location.reload();
|
||||
|
||||
});
|
||||
});
|
||||
$('.runner button.forUpdate').click(function(e) {
|
||||
e.preventDefault();
|
||||
let runner = $(this).parent().parent().parent();
|
||||
let atm_attribute_id = $(runner).find('.atm_attribute_id').attr("value");
|
||||
console.log(atm_attribute_id)
|
||||
let name = $(runner).find('.atm_attribute_name').val();
|
||||
let type = $(runner).find('.atm_attribute_type').val();
|
||||
let value = $(runner).find('.atm_attribute_value').val();
|
||||
console.log(name, type, value, bank_id, atm_id)
|
||||
$('.runner button.forUpdate').attr("disabled","disabled");
|
||||
$('.runner button.forSave').attr("disabled","disabled");
|
||||
$('.runner button.forDelete').attr("disabled","disabled");
|
||||
$.post('updateattribute/attribute', {
|
||||
'atm_attribute_id': atm_attribute_id,
|
||||
'name': name,
|
||||
'type': type,
|
||||
'value': value,
|
||||
'bank_id': bank_id,
|
||||
'atm_id' : atm_id
|
||||
}, function (response) {
|
||||
location.reload();
|
||||
});
|
||||
});
|
||||
|
||||
$('.runner button.forDelete').click(function(e) {
|
||||
e.preventDefault();
|
||||
let runner = $(this).parent().parent().parent();
|
||||
let atm_attribute_id = $(runner).find('.atm_attribute_id').attr("value");
|
||||
console.log(atm_attribute_id)
|
||||
$('.runner button.forUpdate').attr("disabled","disabled");
|
||||
$('.runner button.forSave').attr("disabled","disabled");
|
||||
$('.runner button.forDelete').attr("disabled","disabled");
|
||||
$.post('delete/attribute', {
|
||||
'atm_attribute_id': atm_attribute_id,
|
||||
'bank_id': bank_id,
|
||||
'atm_id' : atm_id
|
||||
}, function (response) {
|
||||
location.reload();
|
||||
});
|
||||
});});
|
||||
</script>
|
||||
{% endblock content %}
|
||||
|
||||
{% block extrajs %} {% comment %}
|
||||
|
||||
<script type="text/javascript" src="{% static 'atms/js/atms.js' %}"></script>
|
||||
|
||||
{% endcomment %} {% endblock extrajs %} {% block extracss %}
|
||||
<link href="{% static 'atms/css/atms.css' %}" rel="stylesheet"> {% endblock extracss %}
|
||||
@ -4,7 +4,7 @@ URLs for metrics app
|
||||
"""
|
||||
|
||||
from django.conf.urls import url
|
||||
from .views import IndexAtmsView, UpdateAtmsView
|
||||
from atms.views import IndexAtmsView, UpdateAtmsView, atm_attribute_save, atm_attribute_delete, atm_attribute_update
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^create',
|
||||
@ -13,4 +13,10 @@ urlpatterns = [
|
||||
url(r'^update/(?P<atm_id>[ 0-9\w|\W\@\.\+-]+)/bank/(?P<bank_id>[0-9\w\@\.\+-]+)/$',
|
||||
UpdateAtmsView.as_view(),
|
||||
name='atms_update'),
|
||||
url(r'save/attribute', atm_attribute_save,
|
||||
name='atm_attribute_save'),
|
||||
url(r'delete/attribute', atm_attribute_delete,
|
||||
name='atm_attribute_delete'),
|
||||
url(r'updateattribute/attribute', atm_attribute_update,
|
||||
name='atm_attribute_update'),
|
||||
]
|
||||
|
||||
@ -14,6 +14,9 @@ from django.views.generic import FormView
|
||||
from obp.api import API, APIError
|
||||
from .forms import CreateAtmForm
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.urls import reverse, reverse_lazy
|
||||
from base.utils import exception_handle, error_once_only
|
||||
|
||||
CHOOSE = "Choose..."
|
||||
|
||||
@ -103,7 +106,6 @@ class IndexAtmsView(LoginRequiredMixin, FormView):
|
||||
def form_valid(self, form):
|
||||
try:
|
||||
data = form.cleaned_data
|
||||
print(data, "This is a data")
|
||||
urlpath = '/banks/{}/atms'.format(data['bank_id'])
|
||||
payload ={
|
||||
"id": data["atm_id"],
|
||||
@ -211,7 +213,9 @@ class UpdateAtmsView(LoginRequiredMixin, FormView):
|
||||
# Cannot add api in constructor: super complains about unknown kwarg
|
||||
form.api = self.api
|
||||
fields = form.fields
|
||||
urlpath = "/banks/{}/atms/{}".format(self.kwargs['bank_id'], self.kwargs['atm_id'])
|
||||
urlpath = "/banks/{}/atms/{}".format(self.kwargs['bank_id'], self.kwargs['atm_id']) #Add new attribute urlpath
|
||||
atm_attributes_url_path = "/banks/{}/atms/{}/attributes".format(self.kwargs['bank_id'], self.kwargs['atm_id'])
|
||||
|
||||
try:
|
||||
fields['bank_id'].choices = self.api.get_bank_id_choices()
|
||||
except APIError as err:
|
||||
@ -261,10 +265,6 @@ class UpdateAtmsView(LoginRequiredMixin, FormView):
|
||||
my_accessibility_features = result['accessibility_features']
|
||||
my_accessibility_features_initial = ','.join(my_accessibility_features)
|
||||
fields['accessibility_features'].initial = my_accessibility_features_initial
|
||||
|
||||
self._paylod_choices(result, fields)
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except Exception as err:
|
||||
messages.error(self.request, "Unknown Error {}".format(err))
|
||||
return form
|
||||
@ -370,13 +370,76 @@ class UpdateAtmsView(LoginRequiredMixin, FormView):
|
||||
"balance_inquiry_fee": data["balance_inquiry_fee"] if data["balance_inquiry_fee"]!="" else "false"
|
||||
}
|
||||
|
||||
def bank_attributes(self, **kwargs):
|
||||
atm_attributes_url_path = "/banks/{}/atms/{}/attributes".format(self.kwargs['bank_id'], self.kwargs['atm_id'])
|
||||
try:
|
||||
atm_attributes_result = self.api.get(atm_attributes_url_path)["bank_attributes"]
|
||||
return atm_attributes_result
|
||||
except Exception as err:
|
||||
messages.error(self.request, "Unknown Error {}".format(err))
|
||||
return " "
|
||||
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(UpdateAtmsView, self).get_context_data(**kwargs)
|
||||
self.bank_id = self.kwargs['bank_id']
|
||||
self.atm_id = self.kwargs['atm_id']
|
||||
context.update({
|
||||
'atm_id': self.atm_id,
|
||||
'bank_id': self.bank_id
|
||||
'bank_id': self.bank_id,
|
||||
"bank_attributes_list": self.bank_attributes(**kwargs)
|
||||
})
|
||||
return context
|
||||
|
||||
|
||||
@exception_handle
|
||||
@csrf_exempt
|
||||
def atm_attribute_save(request):
|
||||
api = API(request.session.get('obp'))
|
||||
#urlpath = '/my/api-collections'
|
||||
bank_id = request.POST.get('bank_id').strip()
|
||||
atm_id = request.POST.get('atm_id').strip()
|
||||
urlpath_save = '/banks/{}/atms/{}/attributes'.format(bank_id, atm_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)
|
||||
return result
|
||||
|
||||
|
||||
@exception_handle
|
||||
@csrf_exempt
|
||||
def atm_attribute_update(request):
|
||||
bank_id = request.POST.get('bank_id').strip()
|
||||
atm_id = request.POST.get('atm_id').strip()
|
||||
atm_attribute_id = request.POST.get('atm_attribute_id').strip()
|
||||
api = API(request.session.get('obp'))
|
||||
urlpath_update = '/banks/{}/atms/{}/attributes/{}'.format(bank_id, atm_id, atm_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)
|
||||
return result
|
||||
|
||||
|
||||
@exception_handle
|
||||
@csrf_exempt
|
||||
def atm_attribute_delete(request):
|
||||
bank_id = request.POST.get('bank_id').strip()
|
||||
atm_id = request.POST.get('atm_id').strip()
|
||||
atm_attribute_id = request.POST.get('atm_attribute_id').strip()
|
||||
|
||||
api = API(request.session.get('obp'))
|
||||
urlpath_delete = '/banks/{}/atms/{}/attributes/{}'.format(bank_id, atm_id, atm_attribute_id)
|
||||
result = api.delete(urlpath_delete)
|
||||
return result
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user