mirror of
https://github.com/OpenBankProject/API-Manager.git
synced 2026-02-06 15:26:46 +00:00
/feature- add create account page
This commit is contained in:
parent
9804b982d9
commit
3268eb621c
0
apimanager/accounts/__init__.py
Normal file
0
apimanager/accounts/__init__.py
Normal file
5
apimanager/accounts/apps.py
Normal file
5
apimanager/accounts/apps.py
Normal file
@ -0,0 +1,5 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class AccountsConfig(AppConfig):
|
||||
name = 'accounts'
|
||||
172
apimanager/accounts/forms.py
Normal file
172
apimanager/accounts/forms.py
Normal file
@ -0,0 +1,172 @@
|
||||
"""
|
||||
Forms of Accounts app
|
||||
"""
|
||||
|
||||
from django import forms
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
import random
|
||||
|
||||
|
||||
class CreateAccountForm(forms.Form):
|
||||
|
||||
account_id = forms.CharField(
|
||||
label=_('Account Id'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': 'account-id-{}'.format(random.randint(1,1000)),
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
initial='account-id-{}'.format(random.randint(1,1000)),
|
||||
)
|
||||
|
||||
user_id = forms.CharField(
|
||||
label=_('User Id'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=True
|
||||
)
|
||||
bank_id = forms.ChoiceField(
|
||||
label=_('Bank Id'),
|
||||
widget=forms.Select(
|
||||
attrs={
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
choices=[],
|
||||
)
|
||||
|
||||
label = forms.CharField(
|
||||
label=_('Label'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': _('Select the label'),
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False
|
||||
)
|
||||
|
||||
product_code = forms.CharField(
|
||||
label=_('Write Product Code'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': "1234BW",
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False
|
||||
)
|
||||
|
||||
balance_currency = forms.CharField(
|
||||
label=_('Currency'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': "EUR",
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=True,
|
||||
)
|
||||
|
||||
balance_amount = forms.FloatField(
|
||||
label=_('Amount'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': "0",
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
)
|
||||
|
||||
branch_id = forms.CharField(
|
||||
label=_('Branch Id'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': 'DERBY6',
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
)
|
||||
|
||||
account_routings_scheme = forms.CharField(
|
||||
label=_('Account Number'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': 'Account Number',
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
)
|
||||
|
||||
account_routings_address = forms.CharField(
|
||||
label=_('Address'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': 'Address',
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
)
|
||||
account_attributes_product_code = forms.CharField(
|
||||
label=_('Account Attribute Product Code'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': '1234BW',
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
)
|
||||
account_attributes_id = forms.CharField(
|
||||
label=_('Account Attribute Id'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': '613c83ea-80f9-4560-8404-b9cd4ec42a7f',
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
)
|
||||
account_attributes_name = forms.CharField(
|
||||
label=_('Account Attribute Name'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': 'OVERDRAFT_START_DATE',
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
)
|
||||
account_attributes_value = forms.CharField(
|
||||
label=_('Thursday'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': '2012-04-23',
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
)
|
||||
account_attributes_instance_code = forms.CharField(
|
||||
label=_('Account Attribute Instance Code'),
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': 'LKJL98769F',
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
required=False,
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs.setdefault('label_suffix', '')
|
||||
super(CreateAccountForm, self).__init__(*args, **kwargs)
|
||||
18
apimanager/accounts/static/accounts/css/accounts.css
Normal file
18
apimanager/accounts/static/accounts/css/accounts.css
Normal file
@ -0,0 +1,18 @@
|
||||
#accounts div {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
/* The actual popup (appears on top) */
|
||||
.popuptext {
|
||||
width: 250px;
|
||||
background-color: #555;
|
||||
color: #fff;
|
||||
text-align: left;
|
||||
border-radius: 6px;
|
||||
padding: 8px 0;
|
||||
z-index: 1;
|
||||
/*bottom: 125%;*/
|
||||
top:100%;
|
||||
left: 50%;
|
||||
margin-left: -80px;
|
||||
}
|
||||
0
apimanager/accounts/static/accounts/js/accounts.js
Normal file
0
apimanager/accounts/static/accounts/js/accounts.js
Normal file
166
apimanager/accounts/templates/accounts/index.html
Normal file
166
apimanager/accounts/templates/accounts/index.html
Normal file
@ -0,0 +1,166 @@
|
||||
{% 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>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 hidden-xs">
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-green">
|
||||
{% trans "Add" %}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{% endblock %} {% block extrajs %} {% endblock extrajs %} {% block extracss %}
|
||||
<link href="{% static 'atms/css/atms.css' %}" rel="stylesheet"/> {% endblock extracss %}
|
||||
223
apimanager/accounts/templates/accounts/update.html
Normal file
223
apimanager/accounts/templates/accounts/update.html
Normal file
@ -0,0 +1,223 @@
|
||||
{% extends 'base.html' %} {% load static %} {% load i18n %}
|
||||
{% block page_title %}{{ block.super }} / Atms{% endblock page_title %} {% block content %}
|
||||
<div id="atms">
|
||||
<h1>{% trans "ATM Detail" %}</h1>
|
||||
<h2>{{ bank_id }} : {{ atm_id }}</h2>
|
||||
<form method="post">
|
||||
{% csrf_token %} {% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
{{ form.non_field_errors }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="row" style="display: None">
|
||||
<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.atm_id.errors %}
|
||||
<div class="alert alert-danger">{{ form.atm_id.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.atm_id.label_tag }} {{ form.atm_id }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.name.errors %}
|
||||
<div class="alert alert-danger">{{ form.name.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.name.label_tag }} {{ form.name }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.services.errors %}
|
||||
<div class="alert alert-danger">{{ form.services.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.services.label_tag }} {{ form.services }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.location_latitude.errors %}
|
||||
<div class="alert alert-danger">{{ form.location_latitude.errors }}
|
||||
</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.location_latitude.label_tag }} {{ form.location_latitude }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.location_longitude.errors %}
|
||||
<div class="alert alert-danger">{{ form.location_longitude.errors }}
|
||||
</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.location_longitude.label_tag }} {{ form.location_longitude }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.meta_license_name.errors %}
|
||||
<div class="alert alert-danger">{{ form.meta_license_name.errors }}
|
||||
</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.meta_license_name.label_tag }} {{ form.meta_license_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.located_at.errors %}
|
||||
<div class="alert alert-danger">{{ form.located_at.errors }}
|
||||
</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.located_at.label_tag }} {{ form.located_at }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.has_deposit_capability.errors %}
|
||||
<div class="alert alert-danger">{{ form.has_deposit_capability.errors }}
|
||||
</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.has_deposit_capability.label_tag }} {{ form.has_deposit_capability }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.is_accessible.errors %}
|
||||
<div class="alert alert-danger">{{ form.is_accessible.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.is_accessible.label_tag }} {{ form.is_accessible }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.accessibility_features.errors %}
|
||||
<div class="alert alert-danger">{{ form.accessibility_features.errors }}</div>
|
||||
{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.accessibility_features.label_tag }} {{ form.accessibility_features }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.more_info.errors %}
|
||||
<div class="alert alert-danger">{{ form.more_info.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.more_info.label_tag }} {{ form.more_info }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.notes.errors %}
|
||||
<div class="alert alert-danger">{{ form.notes.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.notes.label_tag }} {{ form.notes }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.supported_languages.errors %}
|
||||
<div class="alert alert-danger">{{ form.supported_languages.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.supported_languages.label_tag }} {{ form.supported_languages }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.supported_currencies.errors %}
|
||||
<div class="alert alert-danger">{{ form.supported_currencies.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.supported_currencies.label_tag }} {{ form.supported_currencies }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.location_categories.errors %}
|
||||
<div class="alert alert-danger">{{ form.location_categories.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.location_categories.label_tag }} {{ form.location_categories }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.minimum_withdrawal.errors %}
|
||||
<div class="alert alert-danger">{{ form.minimum_withdrawal.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.minimum_withdrawal.label_tag }} {{ form.minimum_withdrawal }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.site_name.errors %}
|
||||
<div class="alert alert-danger">{{ form.site_name.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.site_name.label_tag }} {{ form.site_name }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.branch_identification.errors %}
|
||||
<div class="alert alert-danger">{{ form.branch_identification.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.branch_identification.label_tag }} {{ form.branch_identification }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.site_identification.errors %}
|
||||
<div class="alert alert-danger">{{ form.site_identification.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.site_identification.label_tag }} {{ form.site_identification }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.cash_withdrawal_national_fee.errors %}
|
||||
<div class="alert alert-danger">{{ form.cash_withdrawal_national_fee.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.cash_withdrawal_national_fee.label_tag }} {{ form.cash_withdrawal_national_fee }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.balance_inquiry_fee.errors %}
|
||||
<div class="alert alert-danger">{{ form.balance_inquiry_fee.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.balance_inquiry_fee.label_tag }} {{ form.balance_inquiry_fee }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.cash_withdrawal_international_fee.errors %}
|
||||
<div class="alert alert-danger">{{ form.cash_withdrawal_international_fee.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.cash_withdrawal_international_fee.label_tag }} {{ form.cash_withdrawal_international_fee }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.address.errors %}
|
||||
<div class="alert alert-danger">{{ form.address.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ 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 %}
|
||||
<div class="form-group">
|
||||
{{ form.lobby.label_tag }} {{ form.lobby }}
|
||||
</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 'atms/js/atms.js' %}"></script>
|
||||
<script type="text/javascript">
|
||||
</script>
|
||||
{% endcomment %} {% endblock extrajs %} {% block extracss %}
|
||||
<link href="{% static 'atms/css/atms.css' %}" rel="stylesheet"> {% endblock extracss %}
|
||||
3
apimanager/accounts/tests.py
Normal file
3
apimanager/accounts/tests.py
Normal file
@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
18
apimanager/accounts/urls.py
Normal file
18
apimanager/accounts/urls.py
Normal file
@ -0,0 +1,18 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
URLs for metrics app
|
||||
"""
|
||||
|
||||
from django.conf.urls import url
|
||||
from .views import IndexAccountsView
|
||||
#UpdateAccountsView
|
||||
|
||||
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'),"""
|
||||
242
apimanager/accounts/views.py
Normal file
242
apimanager/accounts/views.py
Normal file
@ -0,0 +1,242 @@
|
||||
|
||||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Views of Accounts app
|
||||
"""
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
import json
|
||||
from django.urls import reverse_lazy
|
||||
from django.views.generic import FormView
|
||||
from obp.api import API, APIError
|
||||
from .forms import CreateAccountForm
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
class IndexAccountsView(LoginRequiredMixin, FormView):
|
||||
|
||||
"""Index view for Accounts"""
|
||||
template_name = "accounts/index.html"
|
||||
form_class = CreateAccountForm
|
||||
success_url = reverse_lazy('accounts-create')
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
self.api = API(request.session.get('obp'))
|
||||
return super(IndexAccountsView, self).dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_form(self, *args, **kwargs):
|
||||
form = super(IndexAccountsView, self).get_form(*args, **kwargs)
|
||||
# Cannot add api in constructor: super complains about unknown kwarg
|
||||
form.api = self.api
|
||||
fields = form.fields
|
||||
try:
|
||||
fields['bank_id'].choices = self.api.get_bank_id_choices()
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except Exception as err:
|
||||
messages.error(self.request, err)
|
||||
return form
|
||||
|
||||
def form_valid(self, form):
|
||||
try:
|
||||
data = form.cleaned_data
|
||||
urlpath = '/banks/{}/accounts/{}'.format(data['bank_id'], data['account_id'])
|
||||
payload ={
|
||||
"user_id": data["user_id"],
|
||||
"label": data["label"],
|
||||
"product_code": data["product_code"],
|
||||
"balance": {
|
||||
"currency": data["balance_currency"] if data["balance_currency"] is not None else "EUR",
|
||||
"amount": data["balance_amount"] if data["balance_amount"] is not None else 0
|
||||
},
|
||||
"account_routings": [{
|
||||
"scheme": data["account_routings_scheme"] if data["account_routings_scheme"] !="" else "scheme",
|
||||
"address": data["account_routings_address"] if data["account_routings_address"]!="" else "address"
|
||||
}],
|
||||
}
|
||||
result = self.api.put(urlpath, payload=payload)
|
||||
except APIError as err:
|
||||
messages.error(self.request, "Unknown Error")
|
||||
return super(IndexAccountsView, self).form_invalid(form)
|
||||
except Exception as err:
|
||||
messages.error(self.request, err, "Unknown Error")
|
||||
return super(IndexAccountsView, self).form_invalid(form)
|
||||
if 'code' in result and result['code']>=400:
|
||||
messages.error(self.request, result['message'])
|
||||
return super(IndexAccountsView, self).form_valid(form)
|
||||
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 = '/atms/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
|
||||
"""
|
||||
@ -51,6 +51,7 @@ INSTALLED_APPS = [
|
||||
'base',
|
||||
'obp',
|
||||
'consumers',
|
||||
'accounts',
|
||||
'systemviews',
|
||||
'users',
|
||||
'branches',
|
||||
|
||||
@ -35,6 +35,7 @@ urlpatterns += i18n_patterns(
|
||||
url(r'^logout$',
|
||||
LogoutView.as_view(), name='oauth-logout'),
|
||||
url(r'^systemviews/', include('systemviews.urls')),
|
||||
url(r'^accounts/', include('accounts.urls')),
|
||||
url(r'^consumers/', include('consumers.urls')),
|
||||
url(r'^entitlementrequests/', include('entitlementrequests.urls')),
|
||||
url(r'^users/', include('users.urls')),
|
||||
|
||||
@ -59,12 +59,13 @@
|
||||
<li {% if metrics_summary_url in request.path %} class="active" {% endif %}><a href="{{ metrics_summary_url }}">{% trans "KPI Dashboard" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% url "system_view" as system_view_url %} {% url "branches_list" as branches_list_url %} {% url "customers-create" as customers_create_url %} {% url "customer-list" as customer_list_url %} {% url "atms_create" as atms_create_url %} {% url "atm-list" as atm_list_url %} {% url "product-list" as product_list_url %} {% url "products-create" as product_create_url %}
|
||||
{% url "system_view" as system_view_url %} {% url "accounts-create" as accounts_create_url %} {% url "branches_list" as branches_list_url %} {% url "customers-create" as customers_create_url %} {% url "customer-list" as customer_list_url %} {% url "atms_create" as atms_create_url %} {% url "atm-list" as atm_list_url %} {% url "product-list" as product_list_url %} {% url "products-create" as product_create_url %}
|
||||
<li class="dropdown{% if customers_create_url in request.path %} active{% endif %}">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">{% trans "Resources" %}</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li {% if system_view_url in request.path %} class="active" {% endif %}><a href="{{ system_view_url }}">{% trans "System View" %}</a></li>
|
||||
<hr class="dropdown-hr">
|
||||
<li {% if accounts_create_url in request.path %} class="active" {% endif %}><a href="{{ accounts_create_url }}">{% trans "Account Create" %}</a></li>
|
||||
<li {% if customers_create_url in request.path %} class="active" {% endif %}><a href="{{ customers_create_url }}">{% trans "Customers" %}</a></li>
|
||||
<li {% if customer_list_url in request.path %} class="active" {% endif %}><a href="{{ customer_list_url }}">{% trans "Customer List" %}</a></li>
|
||||
<li {% if branches_list_url in request.path %} class="active" {% endif %}><a href="{{ branches_list_url }}">{% trans "Branches" %}</a></li>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user