Correction in Account Page

This commit is contained in:
Reena-cell 2022-10-24 15:16:26 +02:00
parent 28604a3a9b
commit dbfc48da16
3 changed files with 3 additions and 338 deletions

View File

@ -1,162 +0,0 @@
{% extends 'base.html' %} {% load static %} {% load i18n %} {% block page_title %}{{ block.super }} / Account{% endblock page_title %} {% block content %}
<div id="atms">
<h1>{% trans "Account Create" %}</h1>
<form method="post">
{% csrf_token %} {% if form.non_field_errors %}
<div class="alert alert-danger">{{ form.non_field_errors }}</div>
{% endif %}
<div class="row">
<div class="col-xs-12 col-sm-4">
{% if form.account_id.errors %}
<div class="alert alert-danger">{{ form.account_id.errors }}</div>
{% endif %}
<div class="form-group">
{{ form.account_id.label_tag }} {{ form.account_id }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.user_id.errors %}
<div class="alert alert-danger">{{ form.user_id.errors }}</div>
{% endif %}
<div class="form-group">
{{ form.user_id.label_tag }} {{ form.user_id }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.label.errors %}
<div class="alert alert-danger">{{ form.label.errors }}</div>
{% endif %}
<div class="form-group">
{{ form.label.label_tag }} {{ form.label }}
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-4">
{% if form.product_code.errors %}
<div class="alert alert-danger">
{{ form.product_code.errors }}
</div>
{% endif %}
<div class="form-group">
{{ form.product_code.label_tag }} {{ form.product_code }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.balance_currency.errors %}
<div class="alert alert-danger">
{{ form.balance_currency.errors }}
</div>
{% endif %}
<div class="form-group">
{{ form.balance_currency.label_tag }} {{ form.balance_currency }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.balance_amount.errors %}
<div class="alert alert-danger">
{{ form.balance_amount.errors }}
</div>
{% endif %}
<div class="form-group">
{{ form.balance_amount.label_tag }} {{ form.balance_amount }}
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-4">
{% if form.branch_id.errors %}
<div class="alert alert-danger">{{ form.branch_id.errors }}</div>
{% endif %}
<div class="form-group">
{{ form.branch_id.label_tag }} {{ form.branch_id }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.account_routings_scheme.errors %}
<div class="alert alert-danger">
{{ form.account_routings_scheme.errors }}
</div>
{% endif %}
<div class="form-group">
{{ form.account_routings_scheme.label_tag }} {{ form.account_routings_scheme }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.account_routings_address.errors %}
<div class="alert alert-danger">{{ form.account_routings_address.errors }}</div>
{% endif %}
<div class="form-group">
{{ form.account_routings_address.label_tag }} {{ form.account_routings_address }}
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-4">
{% if form.account_attributes_product_code.errors %}
<div class="alert alert-danger">
{{ form.account_attributes_product_code.errors }}
</div>
{% endif %}
<div class="form-group">
{{ form.account_attributes_product_code.label_tag }} {{ form.account_attributes_product_code }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.account_attributes_id.errors %}
<div class="alert alert-danger">{{ form.account_attributes_id.errors }}</div>
{% endif %}
<div class="form-group">
{{ form.account_attributes_id.label_tag }} {{ form.account_attributes_id }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.account_attributes_name.errors %}
<div class="alert alert-danger">{{ form.account_attributes_name.errors }}</div>
{% endif %}
<div class="form-group">
{{ form.account_attributes_name.label_tag }} {{ form.account_attributes_name }}
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-4">
{% if form.bank_id.errors %}
<div class="alert alert-danger">{{ form.bank_id.errors }}</div>
{% endif %}
<div class="form-group">
{{ form.bank_id.label_tag }} {{ form.bank_id }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.account_attributes_value.errors %}
<div class="alert alert-danger">
{{ form.account_attributes_value.errors }}
</div>
{% endif %}
<div class="form-group">
{{ form.account_attributes_value.label_tag }} {{ form.account_attributes_value }}
</div>
</div>
<div class="col-xs-12 col-sm-4">
{% if form.account_attributes_instance_code.errors %}
<div class="alert alert-danger">
{{ form.account_attributes_instance_code.errors }}
</div>
{% endif %}
<div class="form-group">
{{ form.account_attributes_instance_code.label_tag }} {{ form.account_attributes_instance_code }}
</div>
</div>
</div>
<input type="submit" value="Update" class="btn btn-primary" />
</form>
</div>
{% endblock content %} {% block extrajs %} {% comment %}
<script type="text/javascript" src="{% static 'accounts/js/accounts.js' %}"></script>
{% endcomment %} {% endblock extrajs %} {% block extracss %}
<link href="{% static 'accounts/css/accounts.css' %}" rel="stylesheet"> {% endblock extracss %}

View File

@ -1,16 +1,14 @@
# -*- coding: utf-8 -*-
"""
URLs for metrics app
URLs for Account app
"""
from django.conf.urls import url
from .views import IndexAccountsView, UpdateAccountsView
from .views import IndexAccountsView
urlpatterns = [
url(r'^create',
IndexAccountsView.as_view(),
name='accounts-create'),
url(r'^update/(?P<account_id>[ 0-9\w|\W\@\.\+-]+)/bank/(?P<bank_id>[0-9\w\@\.\+-]+)/$',
UpdateAccountsView.as_view(),
name='accounts_update'),
]

View File

@ -69,174 +69,3 @@ class IndexAccountsView(LoginRequiredMixin, FormView):
msg = 'Account has been created successfully!'
messages.success(self.request, msg)
return super(IndexAccountsView, self).form_valid(form)
class UpdateAccountsView(LoginRequiredMixin, FormView):
template_name = "accounts/update.html"
success_url = '/accounts/list'
form_class = CreateAccountForm
def dispatch(self, request, *args, **kwargs):
self.api = API(request.session.get('obp'))
return super(UpdateAccountsView, self).dispatch(request, *args, **kwargs)
def get_form(self, *args, **kwargs):
form = super(UpdateAccountsView, self).get_form(*args, **kwargs)
# 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'])
try:
fields['bank_id'].choices = self.api.get_bank_id_choices()
except APIError as err:
messages.error(self.request, err)
except:
messages.error(self.request, "Unknown Error")
try:
result = self.api.get(urlpath)
fields['bank_id'].initial = self.kwargs['bank_id']
fields['atm_id'].initial = self.kwargs['atm_id']
fields['name'].initial = result['name']
fields['address'].initial = json.dumps(result['address'], indent=4)
fields['location_latitude'].initial = result['location']['latitude']
fields['location_longitude'].initial = result['location']['longitude']
fields['meta_license_id'].initial = result['meta']['license']['id']
fields['meta_license_name'].initial = result['meta']['license']['name']
fields['minimum_withdrawal'].initial = result['minimum_withdrawal']
fields['branch_identification'].initial = result['branch_identification']
if result['is_accessible'].lower()=='true':
fields['is_accessible'].choices = [(True, True), (False, False)]
else:
fields['is_accessible'].choices = [(False, False), (True, True)]
if result['has_deposit_capability'].lower()=='true':
fields['has_deposit_capability'].choices = [(True, True), (False, False)]
else:
fields['has_deposit_capability'].choices = [(False, False), (True, True)]
fields['has_deposit_capability'].initial = result['accessibility_features']
fields['site_identification'].initial = result['site_identification']
fields['site_name'].initial = result['site_name']
fields['cash_withdrawal_national_fee'].initial = result['cash_withdrawal_national_fee']
fields['cash_withdrawal_international_fee'].initial = result['cash_withdrawal_international_fee']
fields['balance_inquiry_fee'].initial = result['balance_inquiry_fee']
fields['services'].initial = result['services']
fields['located_at'].initial = result['located_at']
fields['more_info'].initial = result['more_info']
fields['located_at'].initial = result['located_at']
if result['supported_languages'][0].lower()=='en':
fields['supported_languages'].choices = [("en", "en"), ("fr", "fr"), ("de", "de")]
elif result['supported_languages'][0].lower()=='fr':
fields['supported_languages'].choices = [("fr", "fr"), ("en", "en"), ("de", "de")]
else:
fields['supported_languages'].choices = [("de", "de"),("fr", "fr"), ("en", "en")]
fields['supported_languages'].initial = result['supported_languages']
if result['supported_currencies'][0].lower()=='EUR':
fields['supported_currencies'].choices = [("EUR", "EUR"), ("MXN", "MXN"), ("USD", "USD")]
elif result['supported_currencies'][0].lower()=='MXN':
fields['supported_currencies'].choices = [("MXN", "MXN"), ("EUR", "EUR"), ("USD", "USD")]
else:
fields['supported_currencies'].choices = [("USD", "USD"),("MXN", "MXN"), ("EUR", "EUR")]
fields['supported_currencies'].initial = result['supported_currencies']
if result['notes'][0].lower()=='string1':
fields['notes'].choices = [("String1", "String1"),("String2", "String2")]
else:
fields['notes'].choices = [("String2", "String2"),("String1", "String1")]
fields['notes'].initial = result['notes']
if result['location_categories'][0].lower()=='atbi':
fields['location_categories'].choices = [("ATBI", "ATBI"),("ATBE", "ATBE")]
else:
fields['location_categories'].choices = [("ATBE", "ATBE"),("ATBI", "ATBI")]
fields['location_categories'].initial = result['location_categories']
except APIError as err:
messages.error(self.request, err)
except Exception as err:
messages.error(self.request, "Unknown Error {}".format(err))
return form
def form_valid(self, form):
data = form.cleaned_data
urlpath = '/banks/{}/atms/{}'.format(data["bank_id"],data["atm_id"])
payload = {
"id": data["atm_id"],
"bank_id": data["bank_id"],
"name": data["name"],
"address": json.loads(data['address']),
"location": {
"latitude": float(data["location_latitude"]) if data["location_latitude"] is not None else "",
"longitude": float(data["location_longitude"]) if data["location_longitude"] is not None else ""
},
"meta": {
"license": {
"id": "ODbL-1.0",
"name": data["meta_license_name"] if data["meta_license_name"]!="" else "license name"
}
},
"monday": {
"opening_time": " ",
"closing_time": " "
},
"tuesday": {
"opening_time": " ",
"closing_time": " "
},
"wednesday": {
"opening_time": " ",
"closing_time": " "
},
"thursday": {
"opening_time": " ",
"closing_time": " "
},
"friday": {
"opening_time": " ",
"closing_time": " "
},
"saturday": {
"opening_time": " ",
"closing_time": " "
},
"sunday": {
"opening_time": " ",
"closing_time": " "
},
"is_accessible": data["is_accessible"] if data["is_accessible"]!="" else "false",
"located_at": data["located_at"] if data["located_at"]!="no-example-provided" else " ",
"more_info": data["more_info"] if data["more_info"]!="" else "false",
"has_deposit_capability": data["has_deposit_capability"] if data["has_deposit_capability"]!="" else "false",
"supported_languages":[data["supported_languages"]],
"services":[data["services"]],
"accessibility_features":[data["accessibility_features"]],
"supported_currencies":[data["supported_currencies"]],
"notes":[data["notes"]],
"location_categories":[data["location_categories"]],
"minimum_withdrawal": data["minimum_withdrawal"] if data["minimum_withdrawal"]!="" else "false",
"branch_identification": data["branch_identification"] if data["branch_identification"]!="" else "false",
"site_identification": data["site_identification"] if data["site_identification"]!="" else "false",
"site_name": data["site_name"] if data["site_name"]!="" else "false",
"cash_withdrawal_national_fee": data["cash_withdrawal_national_fee"] if data["cash_withdrawal_national_fee"]!="" else "false",
"cash_withdrawal_international_fee": data["cash_withdrawal_international_fee"] if data["cash_withdrawal_international_fee"]!="" else "false",
"balance_inquiry_fee": data["balance_inquiry_fee"] if data["balance_inquiry_fee"]!="" else "false",
}
try:
result = self.api.put(urlpath, payload=payload)
if 'code' in result and result['code']>=400:
messages.error(self.request, result['message'])
return super(UpdateAccountsView, self).form_invalid(form)
except APIError as err:
messages.error(self.request, err)
return super(UpdateAccountsView, self).form_invalid(form)
except Exception as e:
messages.error(self.request, e)
return super(UpdateAccountsView, self).form_invalid(form)
msg = 'Atm {} for Bank {} has been updated successfully!'.format( # noqa
data["atm_id"], data["bank_id"])
messages.success(self.request, msg)
return super(UpdateAccountsView, self).form_valid(form)
def get_context_data(self, **kwargs):
context = super(UpdateAccountsView, 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
})
return context