mirror of
https://github.com/OpenBankProject/API-Manager.git
synced 2026-02-06 13:16:52 +00:00
Merge branch 'develop-master-merge' into develop
# Conflicts: # apimanager/apimanager/settings.py # apimanager/apimanager/urls.py # apimanager/atms/templates/atms/update.html # apimanager/base/templates/base.html # apimanager/base/templates/home.html # apimanager/locale/de/LC_MESSAGES/django.mo # apimanager/locale/de/LC_MESSAGES/django.po # apimanager/locale/es/LC_MESSAGES/django.mo # apimanager/locale/es/LC_MESSAGES/django.po # apimanager/locale/fr/LC_MESSAGES/django.mo # apimanager/locale/fr/LC_MESSAGES/django.po # apimanager/locale/hi/LC_MESSAGES/django.mo # apimanager/locale/hi/LC_MESSAGES/django.po # apimanager/metrics/templates/metrics/custom_summary.html
This commit is contained in:
commit
3ae195a7a5
@ -51,22 +51,47 @@ INSTALLED_APPS = [
|
||||
'obp',
|
||||
'consumers',
|
||||
'users',
|
||||
'branches',
|
||||
'atms',
|
||||
'entitlementrequests',
|
||||
'customers',
|
||||
'metrics',
|
||||
'config',
|
||||
'webui',
|
||||
'methodrouting',
|
||||
'dynamicendpoints',
|
||||
'apicollections'
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
# 'django.middleware.cache.UpdateCacheMiddleware',
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
# 'django.middleware.cache.FetchFromCacheMiddleware',
|
||||
]
|
||||
|
||||
#cache the view page, we set 60s = 1m,
|
||||
# CACHE_MIDDLEWARE_SECONDS = 60
|
||||
|
||||
# TIMEOUT is 31104000 seconds = 60*60*24*30*12 (1 year)
|
||||
# MAX_ENTRIES is 1000000 entities
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
|
||||
'LOCATION': 'unique-snowflake',
|
||||
'TIMEOUT': 31104000,
|
||||
'OPTIONS': {
|
||||
'MAX_ENTRIES': 10000000
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ROOT_URLCONF = 'apimanager.urls'
|
||||
|
||||
TEMPLATES = [
|
||||
@ -84,6 +109,9 @@ TEMPLATES = [
|
||||
'base.context_processors.api_username',
|
||||
'base.context_processors.api_user_id',
|
||||
'base.context_processors.api_tester_url',
|
||||
'base.context_processors.portal_page',
|
||||
'base.context_processors.logo_url',
|
||||
'base.context_processors.override_css_url'
|
||||
],
|
||||
},
|
||||
},
|
||||
@ -141,6 +169,17 @@ USE_TZ = True
|
||||
|
||||
STATIC_URL = '/static/'
|
||||
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
#LANGUAGES = (
|
||||
# ("en", _("English")),
|
||||
# ("fr", _("French")),
|
||||
#)
|
||||
|
||||
LOCALE_PATHS = (
|
||||
os.path.join(BASE_DIR, "locale/"),
|
||||
)
|
||||
|
||||
# Set this to your local directory for static files
|
||||
STATIC_ROOT = os.path.join(BASE_DIR, '..', '..', 'static-collected')
|
||||
|
||||
@ -192,15 +231,20 @@ LOGGING = {
|
||||
|
||||
LOGIN_URL = reverse_lazy('home')
|
||||
|
||||
|
||||
#Map Java: yyyy-MM-dd'T'HH:mm'Z'
|
||||
API_DATETIMEFORMAT = '%Y-%m-%dT%H:%M:%SZ'
|
||||
#API_DATEFORMAT = '%Y-%m-%d'
|
||||
API_DATEFORMAT = '%Y-%m-%dT%H:%M:%S'
|
||||
#Map Java: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
|
||||
API_DATEFORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'
|
||||
|
||||
# the API_Manager the web form date format, eg: 2020-10-11
|
||||
API_MANAGER_DATE_FORMAT= '%Y-%m-%d'
|
||||
|
||||
|
||||
API_HOST = 'http://127.0.0.1:8080'
|
||||
# Only override this if you have a separate portal instance
|
||||
API_PORTAL = API_HOST
|
||||
API_BASE_PATH = '/obp/v'
|
||||
API_VERSION = '3.1.0'
|
||||
API_VERSION = '4.0.0'
|
||||
|
||||
# URL to API Tester if it is running on API_HOST
|
||||
API_TESTER_URL = ''
|
||||
@ -223,30 +267,40 @@ DIRECTLOGIN_PATH = '/my/logins/direct'
|
||||
# Set to true if the API is connected to a core banking system
|
||||
GATEWAYLOGIN_HAS_CBS = False
|
||||
|
||||
|
||||
# Use BOOTSTRAP3 if you are using Bootstrap 3
|
||||
BOOTSTRAP4 = {
|
||||
'include_jquery': True,
|
||||
}
|
||||
|
||||
# Apps to exclude when request to OBP-API's api
|
||||
EXCLUDE_APPS = []
|
||||
# Functions to exclude when request to OBP-API's api
|
||||
EXCLUDE_FUNCTIONS = []
|
||||
# Url Patterns to exclude when reqeust to OBP-API's api
|
||||
EXCLUDE_URL_PATTERN = []
|
||||
# App Name to aggregate metrics
|
||||
API_EXPLORER_APP_NAME = 'API Explorer'
|
||||
|
||||
LOGO_URL = 'https://static.openbankproject.com/images/OBP/favicon.png'
|
||||
OVERRIDE_CSS_URL = None
|
||||
|
||||
VERIFY = True
|
||||
|
||||
# Local settings can override anything in here
|
||||
try:
|
||||
from apimanager.local_settings import * # noqa
|
||||
from apimanager.local_settings import * # noqa
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
if not OAUTH_CONSUMER_KEY:
|
||||
raise ImproperlyConfigured('Missing settings for OAUTH_CONSUMER_KEY')
|
||||
if not OAUTH_CONSUMER_SECRET:
|
||||
raise ImproperlyConfigured('Missing settings for OAUTH_CONSUMER_SECRET')
|
||||
# EVERYTHING BELOW HERE WILL NOT BE OVERWRITTEN BY LOCALSETTINGS!
|
||||
# DO NOT TRY TO DO SO YOU WILL BE IGNORED!
|
||||
|
||||
# Settings here might use parts overwritten in local settings
|
||||
API_ROOT = API_HOST + API_BASE_PATH + API_VERSION
|
||||
# For some reason, swagger is not available at the latest API version
|
||||
API_URL_SWAGGER = API_HOST + '/obp/v1.4.0/resource-docs/v' + API_VERSION + '/swagger' # noqa
|
||||
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
||||
'LOCATION': 'unix:/tmp/memcached.sock',
|
||||
}
|
||||
}
|
||||
|
||||
# Use BOOTSTRAP3 if you are using Bootstrap 3
|
||||
BOOTSTRAP4 = {
|
||||
'include_jquery': True,
|
||||
}
|
||||
if not OAUTH_CONSUMER_KEY:
|
||||
raise ImproperlyConfigured('Missing settings for OAUTH_CONSUMER_KEY')
|
||||
if not OAUTH_CONSUMER_SECRET:
|
||||
raise ImproperlyConfigured('Missing settings for OAUTH_CONSUMER_SECRET')
|
||||
|
||||
@ -14,10 +14,7 @@ from obp.views import (
|
||||
LogoutView,
|
||||
)
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
|
||||
# Defining authentication URLs here and not including oauth.urls for
|
||||
# backward compatibility
|
||||
]
|
||||
|
||||
@ -55,7 +55,7 @@ class CreateAtmForm(forms.Form):
|
||||
label='Latitude',
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': 37.0,
|
||||
'placeholder': " ",
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
@ -66,7 +66,7 @@ class CreateAtmForm(forms.Form):
|
||||
label='Longitude',
|
||||
widget=forms.TextInput(
|
||||
attrs={
|
||||
'placeholder': 110.0,
|
||||
'placeholder': " ",
|
||||
'class': 'form-control',
|
||||
}
|
||||
),
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
{% extends 'base.html' %} {% load static %} {% block page_title %}{{ block.super }} / atms{% endblock page_title %} {% block content %}
|
||||
{% extends 'base.html' %} {% load static i18n %}
|
||||
{% block page_title %}{{ block.super }} / atms{% endblock page_title %} {% block content %}
|
||||
<div id="atms_list">
|
||||
<h1>ATMs</h1>
|
||||
<h1>{% trans "ATMs" %}</h1>
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %} {% if form.non_field_errors %}
|
||||
@ -13,21 +14,21 @@
|
||||
{% 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 }}
|
||||
<strong>{% trans "ATM Id" %} </strong>{{ form.atm_id }}
|
||||
</div>
|
||||
</div>
|
||||
<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 }}
|
||||
<strong>{% trans "Bank Id" %}</strong> {{ form.bank_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 }}
|
||||
<strong>{% trans "Name" %}</strong> {{ form.name }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -36,7 +37,7 @@
|
||||
{% if form.services.errors %}
|
||||
<div class="alert alert-danger">{{ form.services.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.services.label_tag }} {{ form.services }}
|
||||
<strong>{% trans "Services" %}</strong> {{ form.services }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
@ -44,7 +45,7 @@
|
||||
<div class="alert alert-danger">{{ form.location_latitude.errors }}
|
||||
</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.location_latitude.label_tag }} {{ form.location_latitude }}
|
||||
<strong>{% trans "Location Latitude" %}</strong> {{ form.location_latitude }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
@ -52,7 +53,7 @@
|
||||
<div class="alert alert-danger">{{ form.location_longitude.errors }}
|
||||
</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.location_longitude.label_tag }} {{ form.location_longitude }}
|
||||
<strong>{% trans "Location Longitude" %}</strong> {{ form.location_longitude }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -62,21 +63,21 @@
|
||||
<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 }}
|
||||
<strong>{% trans "Meta License Name" %}</strong> {{ 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 }}
|
||||
<strong>{% trans "Located At" %}</strong> {{ 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 }}
|
||||
<strong>{% trans "Has Deposit Capability" %}</strong> {{ form.has_deposit_capability }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -86,7 +87,7 @@
|
||||
<div class="alert alert-danger">{{ form.is_accessible.errors }}</div>
|
||||
{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.is_accessible.label_tag }} {{ form.is_accessible }}
|
||||
<strong>{% trans "Is Accessible" %}</strong> {{ form.is_accessible }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
@ -94,14 +95,14 @@
|
||||
<div class="alert alert-danger">{{ form.accessibility_features.errors }}
|
||||
</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.accessibility_features.label_tag }} {{ form.accessibility_features }}
|
||||
<strong>{% trans "Accessibility Features" %}</strong> {{ 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 }}
|
||||
<strong>{% trans "More Info" %}</strong> {{ form.more_info }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -110,21 +111,21 @@
|
||||
{% if form.notes.errors %}
|
||||
<div class="alert alert-danger">{{ form.notes.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.notes.label_tag }} {{ form.notes }}
|
||||
<strong>{% trans "Notes" %}</strong> {{ 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 }}
|
||||
<strong>{% trans "Supported Languages" %}</strong> {{ 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 }}
|
||||
<strong>{% trans "Supported Currencies" %}</strong> {{ form.supported_currencies }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -133,7 +134,7 @@
|
||||
{% 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 }}
|
||||
<strong>{% trans "Location Categories" %}</strong> {{ form.location_categories }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
@ -141,14 +142,14 @@
|
||||
<div class="alert alert-danger">{{ form.minimum_withdrawal.errors }}
|
||||
</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.minimum_withdrawal.label_tag }} {{ form.minimum_withdrawal }}
|
||||
<strong>{% trans "Minimum Withdrawal" %}</strong> {{ 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 }}
|
||||
<strong>{% trans "Site Name" %}</strong> {{ form.site_name }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -157,19 +158,19 @@
|
||||
{% 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 }}
|
||||
<strong>{% trans "Branch Identification" %}</strong> {{ 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 }}
|
||||
<strong>{% trans "Site Identification" %}</strong> {{ 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 class="form-group"><strong>{% trans "Cash Withdrawal National Fee" %}</strong> {{ form.cash_withdrawal_national_fee }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -179,14 +180,14 @@
|
||||
{% 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 }}
|
||||
<strong>{% trans "Balance Inquiry Fee" %}</strong> {{ 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 }}
|
||||
<strong>{% trans "Cash Withdrawal International Fee" %}</strong> {{ form.cash_withdrawal_international_fee }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -195,14 +196,14 @@
|
||||
{% if form.address.errors %}
|
||||
<div class="alert alert-danger">{{ form.address.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.address.label_tag }} {{ form.address }}
|
||||
<strong>{% trans "Address" %}</strong> {{ form.address }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.lobby.errors %}
|
||||
<div class="alert alert-danger">{{ form.lobby.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.lobby.label_tag }} {{ form.lobby }}
|
||||
<strong>{% trans "Lobby" %}</strong> {{ form.lobby }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -218,15 +219,17 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover tablesorter" id="atms-list" aria-describedby="atms list">
|
||||
<thead>
|
||||
<th scope="col">ATM Id</th>
|
||||
<th scope="col">Bank Id</th>
|
||||
<th scope="col">ATM Name</th>
|
||||
<th scope="col">More_info</th>
|
||||
<th scope="col">Update Button</th>
|
||||
<th scope="col">{% trans "ATM Id" %}</th>
|
||||
<th scope="col">{% trans "Bank Id" %}</th>
|
||||
<th scope="col">{% trans "ATM Name" %}</th>
|
||||
<th scope="col">{% trans "More info" %}</th>
|
||||
<!--<th scope="col">{% trans "Update Button" %}</th>-->
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for atm in atms_list %} {% url 'atms_update' atm.id atm.bank_id as url_atm_update %}
|
||||
<tr data-atm-id="{{ branch.id }}">
|
||||
{% for atm in atms_list %}
|
||||
|
||||
{% url 'atms_update' atm.id atm.bank_id as url_atm_update %}
|
||||
<tr data-atm-id="{{ atm.id }}">
|
||||
<td>{{ atm.id }}</td>
|
||||
<td>{{ atm.bank_id }}</td>
|
||||
<td>{{ atm.name }}</td>
|
||||
@ -269,12 +272,13 @@
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
<td><a href="{{ url_branch_update }}" class="btn btn-primary">Update</a></td>
|
||||
<td><a href="{{ url_atm_update }}" class="btn btn-primary">View</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %} {% block extrajs %} {% endblock extrajs %} {% block extracss %}
|
||||
<link href="{% static 'atms/css/atms.css' %}" rel="stylesheet"> {% endblock extracss %}
|
||||
@ -1,6 +1,6 @@
|
||||
{% extends 'base.html' %} {% load static %} {% block page_title %}{{ block.super }} / Atms{% endblock page_title %} {% block content %}
|
||||
<div id="atms">
|
||||
<h1>Update Atm</h1>
|
||||
<h1>ATM Detail</h1>
|
||||
<h2>{{ bank_id }} : {{ atm_id }}</h2>
|
||||
<form method="post">
|
||||
{% csrf_token %} {% if form.non_field_errors %}
|
||||
|
||||
@ -11,7 +11,7 @@ urlpatterns = [
|
||||
url(r'^$',
|
||||
IndexAtmsView.as_view(),
|
||||
name='atms_list'),
|
||||
url(r'^update/(?P<atm_id>[0-9\w\@\.\+-]+)/bank/(?P<bank_id>[0-9\w\@\.\+-]+)/$',
|
||||
url(r'^update/(?P<atm_id>[ 0-9\w|\W\@\.\+-]+)/bank/(?P<bank_id>[0-9\w\@\.\+-]+)/$',
|
||||
UpdateAtmsView.as_view(),
|
||||
name='atms_update')
|
||||
]
|
||||
|
||||
@ -42,44 +42,44 @@ class IndexAtmsView(LoginRequiredMixin, FormView):
|
||||
fields['lobby'].initial = json.dumps({
|
||||
"monday": [
|
||||
{
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
}
|
||||
],
|
||||
"tuesday": [
|
||||
{
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
}
|
||||
],
|
||||
"wednesday": [
|
||||
{
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
}
|
||||
],
|
||||
"thursday": [
|
||||
{
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
}
|
||||
],
|
||||
"friday": [
|
||||
{
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
}
|
||||
],
|
||||
"saturday": [
|
||||
{
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
}
|
||||
],
|
||||
"sunday": [
|
||||
{
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
}
|
||||
]
|
||||
}, indent=4)
|
||||
@ -106,13 +106,13 @@ class IndexAtmsView(LoginRequiredMixin, FormView):
|
||||
data = form.cleaned_data
|
||||
urlpath = '/banks/{}/atms'.format(data['bank_id'])
|
||||
payload ={
|
||||
"id": data["atm_id"],
|
||||
"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 37.0,
|
||||
"longitude": float(data["location_longitude"]) if data["location_longitude"] is not None else 110.0
|
||||
"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": {
|
||||
@ -121,32 +121,32 @@ class IndexAtmsView(LoginRequiredMixin, FormView):
|
||||
}
|
||||
},
|
||||
"monday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
},
|
||||
"tuesday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
},
|
||||
"wednesday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
},
|
||||
"thursday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
},
|
||||
"friday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
},
|
||||
"saturday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
},
|
||||
"sunday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
"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 " ",
|
||||
@ -275,27 +275,26 @@ class UpdateAtmsView(LoginRequiredMixin, FormView):
|
||||
fields['located_at'].initial = result['located_at']
|
||||
fields['more_info'].initial = result['more_info']
|
||||
fields['located_at'].initial = result['located_at']
|
||||
fields['lobby'].initial = json.dumps(result['lobby'], indent=4)
|
||||
if result['supported_languages'].lower()=='en':
|
||||
if result['supported_languages'][0].lower()=='en':
|
||||
fields['supported_languages'].choices = [("en", "en"), ("fr", "fr"), ("de", "de")]
|
||||
elif result['supported_languages'].lower()=='fr':
|
||||
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'].lower()=='eur':
|
||||
if result['supported_currencies'][0].lower()=='eur':
|
||||
fields['supported_currencies'].choices = [("EUR", "EUR"), ("MXN", "MXN"), ("USD", "USD")]
|
||||
elif result['supported_currencies'].lower()=='mxn':
|
||||
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'].lower()=='string1':
|
||||
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'].lower()=='atbi':
|
||||
if result['location_categories'][0].lower()=='atbi':
|
||||
fields['location_categories'].choices = [("ATBI", "ATBI"),("ATBE", "ATBE")]
|
||||
else:
|
||||
fields['location_categories'].choices = [("ATBE", "ATBE"),("ATBI", "ATBI")]
|
||||
@ -309,48 +308,76 @@ class UpdateAtmsView(LoginRequiredMixin, FormView):
|
||||
data = form.cleaned_data
|
||||
urlpath = '/banks/{}/atms/{}'.format(data["bank_id"],data["atm_id"])
|
||||
payload = {
|
||||
#"id": data["atm_id"],
|
||||
"id": data["atm_id"],
|
||||
"bank_id": data["bank_id"],
|
||||
"name": data["name"],
|
||||
"address": json.loads(data['address']),
|
||||
"location": {
|
||||
"latitude": float(data["location_latitude"]),
|
||||
"longitude": float(data["location_longitude"])
|
||||
"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": data["meta_license_id"],
|
||||
"name": data["meta_license_name"]
|
||||
"id": "ODbL-1.0",
|
||||
"name": data["meta_license_name"] if data["meta_license_name"]!="" else "license name"
|
||||
}
|
||||
},
|
||||
"has_deposit_capability": data["has_deposit_capability"],
|
||||
"accessibility_features": data["accessibility_features"],
|
||||
"minimum_withdrawal": data["minimum_withdrawal"],
|
||||
"branch_identification": data["branch_identification"],
|
||||
"site_identification": data["site_identification"],
|
||||
"site_name": data["site_name"],
|
||||
"cash_withdrawal_national_fee": data["cash_withdrawal_national_fee"],
|
||||
"cash_withdrawal_international_fee": data["cash_withdrawal_international_fee"],
|
||||
"balance_inquiry_fee": data["balance_inquiry_fee"],
|
||||
"services": data["services"],
|
||||
"more_info": data["more_info"],
|
||||
"located_at": data["located_at"],
|
||||
"phone_number": data["phone_number"],
|
||||
"supported_languages": data["supported_languages"],
|
||||
"supported_currencies": data["supported_currencies"],
|
||||
"notes": data["notes"],
|
||||
"location_categories": data["location_categories"]
|
||||
"monday": {
|
||||
"opening_time": "",
|
||||
"closing_time": ""
|
||||
},
|
||||
"tuesday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
},
|
||||
"wednesday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
},
|
||||
"thursday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
},
|
||||
"friday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
},
|
||||
"saturday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
},
|
||||
"sunday": {
|
||||
"opening_time": "10:00",
|
||||
"closing_time": "18:00"
|
||||
},
|
||||
"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:
|
||||
error_once_only(self.request, result['message'])
|
||||
messages.error(self.request, result['message'])
|
||||
return super(UpdateAtmsView, self).form_invalid(form)
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
return super(UpdateAtmsView, self).form_invalid(form)
|
||||
except:
|
||||
messages.error(self.request, "Unknown Error")
|
||||
except Exception as e:
|
||||
messages.error(self.request, e)
|
||||
return super(UpdateAtmsView, self).form_invalid(form)
|
||||
msg = 'Atm {} for Bank {} has been created successfully!'.format( # noqa
|
||||
data["atm_id"], data["bank_id"])
|
||||
|
||||
@ -2,144 +2,151 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="An application consuming the Open Bank Project API to manage consumers, users, customers, metrics and config">
|
||||
<meta name="author" content="TESOBE, Sebastian Henschel">
|
||||
<title>{% block page_title %}API Manager{% endblock page_title %}</title>
|
||||
<link rel="icon" type="image/png" href="{% static 'img/favicon.ico' %}" />
|
||||
<link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'css/base.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'css/jsoneditor.min.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'css/obpjsoneditor.css' %}" rel="stylesheet">
|
||||
<link href="{{ override_css_url }}" rel="stylesheet">
|
||||
{% block extracss %}{% endblock extracss %}
|
||||
</head>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="An application consuming the Open Bank Project API to manage consumers, users, customers, metrics and config">
|
||||
<meta name="author" content="TESOBE, Sebastian Henschel">
|
||||
<title>{% block page_title %} {% trans "API Manager" %}{% endblock page_title %}</title>
|
||||
<link rel="icon" type="image/png" href="{% static 'img/favicon.ico' %}" />
|
||||
<link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'css/base.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'css/jsoneditor.min.css' %}" rel="stylesheet">
|
||||
<link href="{% static 'css/obpjsoneditor.css' %}" rel="stylesheet">
|
||||
<link href="{{ override_css_url }}" rel="stylesheet">
|
||||
{% block extracss %}{% endblock extracss %}
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div id="header" >
|
||||
<div id="logo-left" class="logo-box">
|
||||
<a href="{% url 'home' %}" aria-label="Home Page" id="left-logo"><img src="{{ logo_url }}" alt="brand"></a>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li>
|
||||
{% if user.is_authenticated %}
|
||||
<p class="navbar-btn"><span id="navbar-login-username">{{API_USERNAME}}</span> <a
|
||||
href="/logout" class="btn btn-default">Logout </a></p>
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div id="navbar" class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a href="{{ API_PORTAL }}" >{% trans "Home" %}</a></li>
|
||||
{% url "consumers-index" as consumers_index_url %}
|
||||
<li{% if consumers_index_url in request.path %} class="active"{% endif %}><a href="{{ consumers_index_url }}">{% trans "Consumers" %}</a></li>
|
||||
{% url "entitlementrequests-index" as entitlementrequests_index_url %}
|
||||
<li{% if entitlementrequests_index_url in request.path %} class="active"{% endif %}><a href="{{ entitlementrequests_index_url }}">{% trans "Entitlement Requests" %}</a></li>
|
||||
{% url "users-index" as users_index_url %}
|
||||
{% url 'my-user-detail' API_USER_ID as url_users_detail %}
|
||||
{% url "my-user-invitation" as my_user_invitation %}
|
||||
<li class="dropdown{% if users_index_url in request.path or url_users_detail in request.path or my_user_invitation in request.path %} active{% endif %}">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">{% trans "Users" %}</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li{% if users_index_url in request.path %} class="active"{% endif %}><a href="{{ users_index_url }}">{% trans "All" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% ifequal request.path url_users_detail %} class="active" {% endifequal %}><a href="{{ url_users_detail }}">{% trans "My User" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% ifequal request.path my_user_invitation %} class="active" {% endifequal %}><a href="{{ my_user_invitation }}">{% trans "Invite Developer" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% url "api-metrics" as api_metrics_url %}
|
||||
{% url "connector-metrics" as connector_metrics_url %}
|
||||
{% url "metrics-summary" as metrics_summary_url %}
|
||||
<li class="dropdown{% if api_metrics_url in request.path or connector_metrics_url in request.path or metrics_summary_url in request.path %} active{% endif %}">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">{% trans "Metrics" %}</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li{% if api_metrics_url in request.path %} class="active"{% endif %}><a href="{{ api_metrics_url }}">{% trans "API Metrics" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if connector_metrics_url in request.path %} class="active"{% endif %}><a href="{{ connector_metrics_url }}">{% trans "Connector Metrics" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if metrics_summary_url in request.path %} class="active"{% endif %}><a href="{{ metrics_summary_url }}">{% trans "KPI Dashboard" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% url "branches_list" as branches_list_url %}
|
||||
{% url "customers-create" as customers_create_url %}
|
||||
{% url "atms_list" as atms_list_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 customers_create_url in request.path %} class="active"{% endif %}><a href="{{ customers_create_url }}">{% trans "Customers" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if branches_list_url in request.path %} class="active"{% endif %}><a href="{{ branches_list_url }}">{% trans "Branches" %}</a></li>
|
||||
<li{% if atms_list_url in request.path %} class="active"{% endif %}><a href="{{ atms_list_url }}">{% trans "ATMs" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% url "config-index" as config_index_url %}
|
||||
{% url "webui-index" as webui_props_index_url %}
|
||||
{% url "methodrouting-index" as methodrouting_index_url %}
|
||||
{% url "dynamicendpoints-index" as dynamic_endpoints_index_url %}
|
||||
{% url "apicollections-index" as api_collections_index_url %}
|
||||
<li class="dropdown{% if config_index_url in request.path %} active{% endif %}">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">{% trans "Configurations" %}</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li{% if config_index_url in request.path %} class="active"{% endif %}><a href="{{ config_index_url }}">{% trans "Config" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if webui_props_index_url in request.path %} class="active"{% endif %}><a href="{{ webui_props_index_url }}">{% trans "Webui Props" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if methodrouting_index_url in request.path %} class="active"{% endif %}><a href="{{ methodrouting_index_url }}">{% trans "Method Routings" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if dynamic_endpoints_index_url in request.path %} class="active"{% endif %}><a href="{{ dynamic_endpoints_index_url }}">{% trans "Dynamic Endpoints" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if api_collections_index_url in request.path %} class="active"{% endif %}><a href="{{ api_collections_index_url }}">{% trans "My API Collections" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<div class="container">
|
||||
<div id="header" >
|
||||
<div id="logo-left" class="logo-box">
|
||||
<a href="{% url 'home' %}" aria-label="Home Page" id="left-logo"><img src="{{ logo_url }}" alt="brand"></a>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li>
|
||||
{% if user.is_authenticated %}
|
||||
<p class="navbar-btn"><span id="navbar-login-username">{{API_USERNAME}}</span> <a
|
||||
href="/logout" class="btn btn-default">Logout </a></p>
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div id="navbar" class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a href="{{ API_PORTAL }}" >{% trans "Home" %}</a></li>
|
||||
{% url "consumers-index" as consumers_index_url %}
|
||||
<li{% if consumers_index_url in request.path %} class="active"{% endif %}><a href="{{ consumers_index_url }}">{% trans "Consumers" %}</a></li>
|
||||
{% url "entitlementrequests-index" as entitlementrequests_index_url %}
|
||||
<li{% if entitlementrequests_index_url in request.path %} class="active"{% endif %}><a href="{{ entitlementrequests_index_url }}">{% trans "Entitlement Requests" %}</a></li>
|
||||
{% url "users-index" as users_index_url %}
|
||||
{% url 'my-user-detail' API_USER_ID as url_users_detail %}
|
||||
{% url "my-user-invitation" as my_user_invitation %}
|
||||
<li class="dropdown{% if users_index_url in request.path or url_users_detail in request.path or my_user_invitation in request.path %} active{% endif %}">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">{% trans "Users" %}</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li{% if users_index_url in request.path %} class="active"{% endif %}><a href="{{ users_index_url }}">{% trans "All" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% ifequal request.path url_users_detail %} class="active" {% endifequal %}><a href="{{ url_users_detail }}">{% trans "My User" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% ifequal request.path my_user_invitation %} class="active" {% endifequal %}><a href="{{ my_user_invitation }}">{% trans "Invite Developer" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% url "api-metrics" as api_metrics_url %}
|
||||
{% url "connector-metrics" as connector_metrics_url %}
|
||||
{% url "metrics-summary" as metrics_summary_url %}
|
||||
<li class="dropdown{% if api_metrics_url in request.path or connector_metrics_url in request.path or metrics_summary_url in request.path %} active{% endif %}">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">{% trans "Metrics" %}</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li{% if api_metrics_url in request.path %} class="active"{% endif %}><a href="{{ api_metrics_url }}">{% trans "API Metrics" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if connector_metrics_url in request.path %} class="active"{% endif %}><a href="{{ connector_metrics_url }}">{% trans "Connector Metrics" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if metrics_summary_url in request.path %} class="active"{% endif %}><a href="{{ metrics_summary_url }}">{% trans "KPI Dashboard" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% url "branches_list" as branches_list_url %}
|
||||
{% url "customers-create" as customers_create_url %}
|
||||
{% url "atms_list" as atms_list_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 customers_create_url in request.path %} class="active"{% endif %}><a href="{{ customers_create_url }}">{% trans "Customers" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if branches_list_url in request.path %} class="active"{% endif %}><a href="{{ branches_list_url }}">{% trans "Branches" %}</a></li>
|
||||
<li{% if atms_list_url in request.path %} class="active"{% endif %}><a href="{{ atms_list_url }}">{% trans "ATMs" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
{% url "config-index" as config_index_url %}
|
||||
{% url "webui-index" as webui_props_index_url %}
|
||||
{% url "methodrouting-index" as methodrouting_index_url %}
|
||||
{% url "dynamicendpoints-index" as dynamic_endpoints_index_url %}
|
||||
{% url "apicollections-index" as api_collections_index_url %}
|
||||
<li class="dropdown{% if config_index_url in request.path %} active{% endif %}">
|
||||
<a href="#" data-toggle="dropdown" class="dropdown-toggle">{% trans "Configurations" %}</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li{% if config_index_url in request.path %} class="active"{% endif %}><a href="{{ config_index_url }}">{% trans "Config" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if webui_props_index_url in request.path %} class="active"{% endif %}><a href="{{ webui_props_index_url }}">{% trans "Webui Props" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if methodrouting_index_url in request.path %} class="active"{% endif %}><a href="{{ methodrouting_index_url }}">{% trans "Method Routings" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if dynamic_endpoints_index_url in request.path %} class="active"{% endif %}><a href="{{ dynamic_endpoints_index_url }}">{% trans "Dynamic Endpoints" %}</a></li><hr class="dropdown-hr">
|
||||
<li{% if api_collections_index_url in request.path %} class="active"{% endif %}><a href="{{ api_collections_index_url }}">{% trans "My API Collections" %}</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
{% if API_TESTER_URL %}
|
||||
<li>
|
||||
<p class="navbar-btn"><a href="{{ API_TESTER_URL }}" class="btn btn-default">Go to API Tester</a></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="navbar-btn"><a href="{{ API_TESTER_URL }}" class="btn btn-default">Go to API Tester</a></p>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</nav>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{% if messages %}
|
||||
<div class="container messages">
|
||||
<div class="container messages">
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-dismissible{% ifequal message.tags "error" %} alert-danger{% else %}{% ifequal message.tags "debug" %} alert-info{% else %} alert-{{ message.tags }}{% endifequal %}{% endifequal %}" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="container" id="body-container">
|
||||
{% block content %}{% endblock content %}
|
||||
<div class="container" id="body-container">
|
||||
{% block content %}{% endblock content %}
|
||||
<div class="footer-content-wrapper" data-lift="WebUI.homePage">
|
||||
<span>Language </span>
|
||||
<span> | </span>
|
||||
<a id="uk" href="/en" >EN</a>
|
||||
<span> | </span>
|
||||
<a id="es" href="/es" >ES</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<p class="text-muted">
|
||||
<a title="API ROOT" href="{{ API_ROOT }}">API ROOT: {{ API_ROOT }}</a> |
|
||||
<a title="Open Bank Project" href="https://openbankproject.com">Open Bank Project</a> |
|
||||
Powered by <a title="TESOBE" href="http://tesobe.com">TESOBE</a> |
|
||||
<small>Copyright © 2016 - 2020</small>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
<footer>
|
||||
<div class="container">
|
||||
<p class="text-muted">
|
||||
<a title="API ROOT" href="{{ API_ROOT }}">API ROOT: {{ API_ROOT }}</a> |
|
||||
<a title="Open Bank Project" href="https://openbankproject.com">Open Bank Project</a> |
|
||||
Powered by <a title="TESOBE" href="http://tesobe.com">TESOBE</a> |
|
||||
<small>Copyright © 2016 - 2020</small>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script type="text/javascript" src="{% static 'js/jquery.min.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/bootstrap.min.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/jquery.tablesorter.min.js' %}"></script>
|
||||
<script src="{% static 'js/base.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/jsoneditor.min.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/jquery.min.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/bootstrap.min.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/jquery.tablesorter.min.js' %}"></script>
|
||||
<script src="{% static 'js/base.js' %}"></script>
|
||||
<script type="text/javascript" src="{% static 'js/jsoneditor.min.js' %}"></script>
|
||||
{% block extrajs %}{% endblock extrajs %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -1,70 +1,70 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
{% block content %}
|
||||
<div class="home">
|
||||
<h1>{% trans "Welcome to API Manager" %}</h1>
|
||||
<div class="home">
|
||||
<h1>{% trans "Welcome to API Manager" %}</h1>
|
||||
|
||||
<!--<h1>Welcome to API Manager</h1>-->
|
||||
<div class="well" id="intro">
|
||||
<p>
|
||||
This app gives you access to management functionality for the sandbox at <a href="{{ API_HOST }}">{{ API_HOST }}</a>. You have to <a href="{{ API_HOST }}/user_mgt/sign_up" title="Register at {{ API_HOST }}">register</a> an account before being able to proceed. The logged-in user needs to have specific roles granted to use the functionality.
|
||||
</p>
|
||||
</div>
|
||||
<!--<h1>Welcome to API Manager</h1>-->
|
||||
<div class="well" id="intro">
|
||||
<p>
|
||||
{% trans "This app gives you access to management functionality for the OBP instance at" %} <a href="{{ API_HOST }}">{{ API_HOST }}</a>. {% trans "You have to" %}<a href="{{ API_HOST }}/user_mgt/sign_up" title="Register at {{ API_HOST }}"> {% trans "register" %} </a> {% trans "an account before being able to proceed" %}.{% trans "The logged-in user needs to have specific roles granted to use the functionality." %}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{% if not user.is_authenticated %}
|
||||
<div id="login">
|
||||
<label for="authentication-select"><h2>Authenticate</h2></label>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<select class="form-control" id="authentication-select">
|
||||
<option value="">Choose ...</option>
|
||||
<option value="oauth">OAuth 1/OpenID Connect</option>
|
||||
<option value="directlogin">DirectLogin</option>
|
||||
<option value="gatewaylogin">GatewayLogin</option>
|
||||
</select>
|
||||
<div id="login">
|
||||
<label for="authentication-select"><h2>Authenticate</h2></label>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-3">
|
||||
<select class="form-control" id="authentication-select">
|
||||
<option value="">Choose ...</option>
|
||||
<option value="oauth">OAuth 1/OpenID Connect</option>
|
||||
<option value="directlogin">DirectLogin</option>
|
||||
<option value="gatewaylogin">GatewayLogin</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<div class="authentication-method" id="authenticate-oauth">
|
||||
<a class="btn btn-primary" href="{% url 'oauth-initiate' %}{% if request.GET.next %}?next={{ request.GET.next }}{% endif %}">Proceed to authentication server</a>
|
||||
</div>
|
||||
<div class="authentication-method" id="authenticate-directlogin">
|
||||
<form action="{% url 'directlogin' %}" method="post">
|
||||
{% csrf_token %}
|
||||
<div class="form-group">
|
||||
<label for="username">Username:</label>
|
||||
{{ directlogin_form.username }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">Password:</label>
|
||||
{{ directlogin_form.password }}
|
||||
</div>
|
||||
<!--<div class="form-group"style="visibility:hidden">
|
||||
<label for="consumer-key">Consumer Key:</label>
|
||||
{{ directlogin_form.consumer_key }}
|
||||
</div>-->
|
||||
<button class="btn btn-primary">Login</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="authentication-method" id="authenticate-gatewaylogin">
|
||||
<form action="{% url 'gatewaylogin' %}" method="post">
|
||||
{% csrf_token %}
|
||||
<div class="form-group">
|
||||
<label for="username">Username:</label>
|
||||
{{ gatewaylogin_form.username }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="secret">Secret:</label>
|
||||
{{ gatewaylogin_form.secret }}
|
||||
</div>
|
||||
<button class="btn btn-primary">Login</button>
|
||||
</form>
|
||||
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<div class="authentication-method" id="authenticate-oauth">
|
||||
<a class="btn btn-primary" href="{% url 'oauth-initiate' %}{% if request.GET.next %}?next={{ request.GET.next }}{% endif %}">Proceed to authentication server</a>
|
||||
</div>
|
||||
<div class="authentication-method" id="authenticate-directlogin">
|
||||
<form action="{% url 'directlogin' %}" method="post">
|
||||
{% csrf_token %}
|
||||
<div class="form-group">
|
||||
<label for="username">Username:</label>
|
||||
{{ directlogin_form.username }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">Password:</label>
|
||||
{{ directlogin_form.password }}
|
||||
</div>
|
||||
<!--<div class="form-group"style="visibility:hidden">
|
||||
<label for="consumer-key">Consumer Key:</label>
|
||||
{{ directlogin_form.consumer_key }}
|
||||
</div>-->
|
||||
<button class="btn btn-primary">Login</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="authentication-method" id="authenticate-gatewaylogin">
|
||||
<form action="{% url 'gatewaylogin' %}" method="post">
|
||||
{% csrf_token %}
|
||||
<div class="form-group">
|
||||
<label for="username">Username:</label>
|
||||
{{ gatewaylogin_form.username }}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="secret">Secret:</label>
|
||||
{{ gatewaylogin_form.secret }}
|
||||
</div>
|
||||
<button class="btn btn-primary">Login</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / Branches{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
<div id="branches_list">
|
||||
<h1>Branches</h1>
|
||||
<h1>{% trans "Branches" %}</h1>
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
@ -14,26 +15,25 @@
|
||||
{{ form.non_field_errors }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<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 }}
|
||||
<strong>{% trans "Branch_Id" %}</strong>
|
||||
{{ form.branch_id }}
|
||||
</div>
|
||||
</div>
|
||||
<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 }}
|
||||
<strong>{% trans "bank_id" %} </strong>
|
||||
{{ form.bank_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 }}
|
||||
<strong>{% trans "name" %} </strong>
|
||||
{{ form.name }}
|
||||
</div>
|
||||
</div>
|
||||
@ -43,21 +43,21 @@
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.branch_type.errors %}<div class="alert alert-danger">{{ form.branch_type.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.branch_type.label_tag }}
|
||||
<strong>{% trans "branch_type" %} </strong>
|
||||
{{ form.branch_type }}
|
||||
</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 }}
|
||||
<strong>{% trans "location_latitude" %} </strong>
|
||||
{{ 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 }}
|
||||
<strong>{% trans "location_longitude" %} </strong>
|
||||
{{ form.location_longitude }}
|
||||
</div>
|
||||
</div>
|
||||
@ -67,21 +67,21 @@
|
||||
<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 }}
|
||||
<strong>{% trans "meta_license_name" %} </strong>
|
||||
{{ form.meta_license_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.branch_routing_scheme.errors %}<div class="alert alert-danger">{{ form.branch_routing_scheme.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.branch_routing_scheme.label_tag }}
|
||||
<strong>{% trans "branch_routing_scheme" %} </strong>
|
||||
{{ form.branch_routing_scheme }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.branch_routing_address.errors %}<div class="alert alert-danger">{{ form.branch_routing_address.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.branch_routing_address.label_tag }}
|
||||
<strong>{% trans "branch_routing_address" %} </strong>
|
||||
{{ form.branch_routing_address }}
|
||||
</div>
|
||||
</div>
|
||||
@ -91,21 +91,21 @@
|
||||
<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 }}
|
||||
<strong>{% trans "is_accessible" %} </strong>
|
||||
{{ form.is_accessible }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.accessibleFeatures.errors %}<div class="alert alert-danger">{{ form.accessibleFeatures.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.accessibleFeatures.label_tag }}
|
||||
<strong>{% trans "accessibleFeatures" %} </strong>
|
||||
{{ form.accessibleFeatures }}
|
||||
</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 }}
|
||||
<strong>{% trans "more_info" %} </strong>
|
||||
{{ form.more_info }}
|
||||
</div>
|
||||
</div>
|
||||
@ -115,7 +115,7 @@
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.phone_number.errors %}<div class="alert alert-danger">{{ form.phone_number.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.phone_number.label_tag }}
|
||||
<strong>{% trans "phone_number" %} </strong>
|
||||
{{ form.phone_number }}
|
||||
</div>
|
||||
</div>
|
||||
@ -125,21 +125,21 @@
|
||||
<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 }}
|
||||
<strong>{% trans "address" %} </strong>
|
||||
{{ 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 }}
|
||||
<strong>{% trans "lobby" %} </strong>
|
||||
{{ form.lobby }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.drive_up.errors %}<div class="alert alert-danger">{{ form.drive_up.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.drive_up.label_tag }}
|
||||
<strong>{% trans "drive_up" %} </strong>
|
||||
{{ form.drive_up }}
|
||||
</div>
|
||||
</div>
|
||||
@ -148,7 +148,7 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-12 hidden-xs">
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-green">Add</button>
|
||||
<button type="submit" class="btn btn-primary btn-green">{% trans "Add" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -157,11 +157,11 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover tablesorter" id="branches-list" aria-describedby="branches list">
|
||||
<thead>
|
||||
<th scope="col">Branch Id</th>
|
||||
<th scope="col">Bank Id</th>
|
||||
<th scope="col">Branch Name</th>
|
||||
<th scope="col">More_info</th>
|
||||
<th scope="col">Update Button</th>
|
||||
<th scope="col">{% trans "Branch Id" %}</th>
|
||||
<th scope="col">{% trans "Bank Id" %}</th>
|
||||
<th scope="col">{% trans "Branch Name" %}</th>
|
||||
<th scope="col">{% trans "More_info" %}</th>
|
||||
<th scope="col">{% trans "Update Button" %}</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for branch in branches_list %}
|
||||
@ -173,40 +173,40 @@
|
||||
<td>
|
||||
<div class="popuptext">
|
||||
<ul>
|
||||
<li>Address:
|
||||
<li>{% trans "Address" %}:
|
||||
<ul>
|
||||
<li>line1: {{branch.address.line_1}}</li>
|
||||
<li>line2: {{branch.address.line_2}}</li>
|
||||
<li>line3: {{branch.address.line_3}}</li>
|
||||
<li>city: {{branch.address.city}}</li>
|
||||
<li>county: {{branch.address.county}}</li>
|
||||
<li>state: {{branch.address.state}}</li>
|
||||
<li>postcode: {{branch.address.postcode}}</li>
|
||||
<li>country_code: {{branch.address.country_code}}</li>
|
||||
<li>{% trans "line1" %}: {{branch.address.line_1}}</li>
|
||||
<li>{% trans "line2" %}: {{branch.address.line_2}}</li>
|
||||
<li>{% trans "line3" %}: {{branch.address.line_3}}</li>
|
||||
<li>{% trans "city" %}: {{branch.address.city}}</li>
|
||||
<li>{% trans "county" %}: {{branch.address.county}}</li>
|
||||
<li>{% trans "state" %}: {{branch.address.state}}</li>
|
||||
<li>{% trans "postcode" %}: {{branch.address.postcode}}</li>
|
||||
<li>{% trans "country_code" %}: {{branch.address.country_code}}</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Location:
|
||||
<li>{% trans "Location" %}:
|
||||
<ul>
|
||||
<li>latitude: {{branch.location.latitude}}</li>
|
||||
<li>longitude: {{branch.location.longitude}}</li>
|
||||
<li>{% trans "latitude" %}: {{branch.location.latitude}}</li>
|
||||
<li>{% trans "longitude" %}: {{branch.location.longitude}}</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Meta License:
|
||||
<li>{% trans "Meta License" %}:
|
||||
<ul>
|
||||
<li>id: {{branch.meta.license.id}}</li>
|
||||
<li>name: {{branch.meta.license.name}}</li>
|
||||
<li>{% trans "id" %}: {{branch.meta.license.id}}</li>
|
||||
<li>{% trans "name" %}: {{branch.meta.license.name}}</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Branch Routing
|
||||
<li>{% trans "Branch Routing" %}
|
||||
<ul>
|
||||
<li>Scheme: {{branch.branch_routing.scheme}}</li>
|
||||
<li>Address: {{branch.branch_routing.address}}</li>
|
||||
<li>{% trans "Scheme" %}: {{branch.branch_routing.scheme}}</li>
|
||||
<li>{% trans "Address" %}: {{branch.branch_routing.address}}</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Branch Type: {{branch.branch_type}}</li>
|
||||
<li>More Info: {{branch.more_info}}</li>
|
||||
<li>Phone Number: {{branch.phone_number}}</li>
|
||||
<li>Accessible Features: {{branch.accessibleFeatures}}</li>
|
||||
<li>{% trans "Branch Type" %}: {{branch.branch_type}}</li>
|
||||
<li>{% trans "More Info" %}: {{branch.more_info}}</li>
|
||||
<li>{% trans "Phone Number" %}: {{branch.phone_number}}</li>
|
||||
<li>{% trans "Accessible Features" %}: {{branch.accessibleFeatures}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@ -234,7 +234,6 @@ class UpdateBranchesView(LoginRequiredMixin, FormView):
|
||||
urlpath = "/banks/{}/branches/{}".format(self.kwargs['bank_id'], self.kwargs['branch_id'])
|
||||
try:
|
||||
fields['bank_id'].choices = self.api.get_bank_id_choices()
|
||||
|
||||
except APIError as err:
|
||||
messages.error(self.request, err)
|
||||
except:
|
||||
@ -265,9 +264,7 @@ class UpdateBranchesView(LoginRequiredMixin, FormView):
|
||||
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/{}/branches/{}'.format(data["bank_id"], data["branch_id"])
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
<a href="?app_type=Web&time={{ request.GET.time }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_app_type_Web %} active{% endif %}">Web</a>
|
||||
<a href="?app_type=Mobile&time={{ request.GET.time }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_app_type_Mobile %} active{% endif %}">Mobile</a>
|
||||
<a href="?app_type=All&time={{ request.GET.time }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_app_type_all %} active{% endif %}">All</a>
|
||||
{% load i18n %}
|
||||
<a href="?app_type=Web&time={{ request.GET.time }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_app_type_Web %} active{% endif %}">{% trans "Web" %}</a>
|
||||
<a href="?app_type=Mobile&time={{ request.GET.time }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_app_type_Mobile %} active{% endif %}">{% trans "Mobile" %}</a>
|
||||
<a href="?app_type=All&time={{ request.GET.time }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_app_type_all %} active{% endif %}">{% trans "All" %}</a>
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
<a href="?enabled=true&app_type={{ request.GET.app_type }}&time={{ request.GET.time }}" class="btn btn-default{% if active_enabled_true %} active{% endif %}">Enabled</a>
|
||||
<a href="?enabled=false&app_type={{ request.GET.app_type }}&time={{ request.GET.time }}" class="btn btn-default{% if active_enabled_false %} active{% endif %}">Disabled</a>
|
||||
<a href="?enabled=All&app_type={{ request.GET.app_type }}&time={{ request.GET.time }}" class="btn btn-default{% if active_enabled_all %} active{% endif %}">All</a>
|
||||
{% load i18n %}
|
||||
<a href="?enabled=true&app_type={{ request.GET.app_type }}&time={{ request.GET.time }}" class="btn btn-default{% if active_enabled_true %} active{% endif %}">{% trans "Enabled" %}</a>
|
||||
<a href="?enabled=false&app_type={{ request.GET.app_type }}&time={{ request.GET.time }}" class="btn btn-default{% if active_enabled_false %} active{% endif %}">{% trans "Disabled" %}</a>
|
||||
<a href="?enabled=All&app_type={{ request.GET.app_type }}&time={{ request.GET.time }}" class="btn btn-default{% if active_enabled_all %} active{% endif %}">{% trans "All" %}</a>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<a href="?time=hour&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_hour %} active{% endif %}">Last Hour</a>
|
||||
<a href="?time=day&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_day %} active{% endif %}">Last Day</a>
|
||||
<a href="?time=week&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_week %} active{% endif %}">Last Week</a>
|
||||
<a href="?time=month&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_month %} active{% endif %}">Last Month</a>
|
||||
<a href="?time=year&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_year %} active{% endif %}">Last Year</a>
|
||||
<a href="?time=All&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_all %} active{% endif %}">All</a>
|
||||
{% load i18n %}
|
||||
<a href="?time=hour&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_hour %} active{% endif %}">{% trans "Last Hour" %}</a>
|
||||
<a href="?time=day&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_day %} active{% endif %}">{% trans "Last Day" %}</a>
|
||||
<a href="?time=week&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_week %} active{% endif %}">{% trans "Last Week" %}</a>
|
||||
<a href="?time=month&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_month %} active{% endif %}">{% trans "Last Month" %}</a>
|
||||
<a href="?time=year&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_year %} active{% endif %}">{% trans "Last Year" %}</a>
|
||||
<a href="?time=All&app_type={{ request.GET.app_type }}&enabled={{ request.GET.enabled }}" class="btn btn-default{% if active_time_all %} active{% endif %}">{% trans "All" %}</a>
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load i18n %}
|
||||
|
||||
{% load humanize static %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / Consumers{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
<div id="consumers">
|
||||
<h1>Consumers</h1>
|
||||
<h1>{% trans "Consumers" %}</h1>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
@ -42,21 +44,21 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4>Statistics</h4>
|
||||
<h4>{% trans "Statistics" %}</h4>
|
||||
<ul id="statistics">
|
||||
<li>Total number of consumers: {{ statistics.consumers_num }}</li>
|
||||
<li>Total number of unique developer email addresses: {{ statistics.unique_developer_email_num }}</li>
|
||||
<li>Total number of unique consumer names: {{ statistics.unique_name_num }}</li>
|
||||
<li>{% trans "Total number of consumers" %}: {{ statistics.consumers_num }} </li>
|
||||
<li>{% trans "Total number of unique developer email addresses" %}: {{ statistics.unique_developer_email_num }}</li>
|
||||
<li>{% trans "Total number of unique consumer names" %}: {{ statistics.unique_name_num }}</li>
|
||||
</ul>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover tablesorter" id="consumer-list" aria-describedby="consumer list">
|
||||
<thead>
|
||||
<th scope="col">ID</th>
|
||||
<th scope="col">Name</th>
|
||||
<th scope="col">Description</th>
|
||||
<th scope="col">Created</th>
|
||||
<th scope="col">Action</th>
|
||||
<th scope="col">{% trans "ID" %}</th>
|
||||
<th scope="col">{% trans "Name" %}</th>
|
||||
<th scope="col">{% trans "Description" %}</th>
|
||||
<th scope="col">{% trans "Created" %}</th>
|
||||
<th scope="col">{% trans "Action" %}</th>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / Customers{% endblock page_title %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<div id="customers">
|
||||
<h1>Create Customer</h1>
|
||||
<h1>{% trans "Create Customer" %}</h1>
|
||||
|
||||
<form action="{% url 'customers-create' %}" method="post">
|
||||
{% csrf_token %}
|
||||
@ -20,21 +21,21 @@
|
||||
<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 }}
|
||||
<strong>{% trans "bank_id" %}</strong>
|
||||
{{ form.bank_id }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.username.errors %}<div class="alert alert-danger">{{ form.username.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.username.label_tag }}
|
||||
<strong>{% trans "username" %}</strong>
|
||||
{{ form.username }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.customer_number.errors %}<div class="alert alert-danger">{{ form.customer_number.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.customer_number.label_tag }}
|
||||
<strong>{% trans "customer_number" %}</strong>
|
||||
{{ form.customer_number }}
|
||||
</div>
|
||||
</div>
|
||||
@ -44,21 +45,21 @@
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.legal_name.errors %}<div class="alert alert-danger">{{ form.legal_name.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.legal_name.label_tag }}
|
||||
<strong>{% trans "legal_name" %}</strong>
|
||||
{{ form.legal_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.mobile_phone_number.errors %}<div class="alert alert-danger">{{ form.mobile_phone_number.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.mobile_phone_number.label_tag }}
|
||||
<strong>{% trans "mobile_phone_number" %}</strong>
|
||||
{{ form.mobile_phone_number }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.email.errors %}<div class="alert alert-danger">{{ form.email.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.email.label_tag }}
|
||||
<strong>{% trans "email" %}</strong>
|
||||
{{ form.email }}
|
||||
</div>
|
||||
</div>
|
||||
@ -68,14 +69,14 @@
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.face_image_url.errors %}<div class="alert alert-danger">{{ form.face_image_url.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.face_image_url.label_tag }}
|
||||
<strong>{% trans "face_image_url" %}</strong>
|
||||
{{ form.face_image_url }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.face_image_date.errors %}<div class="alert alert-danger">{{ form.face_image_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.face_image_date.label_tag }}
|
||||
<strong>{% trans "face_image_date" %}</strong>
|
||||
{{ form.face_image_date }}
|
||||
</div>
|
||||
</div>
|
||||
@ -85,14 +86,14 @@
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.date_of_birth.errors %}<div class="alert alert-danger">{{ form.date_of_birth.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.date_of_birth.label_tag }}
|
||||
<strong>{% trans "date_of_birth" %}</strong>
|
||||
{{ form.date_of_birth }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.relationship_status.errors %}<div class="alert alert-danger">{{ form.relationship_status.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.relationship_status.label_tag }}
|
||||
<strong>{% trans "relationship_status" %}</strong>
|
||||
{{ form.relationship_status }}
|
||||
</div>
|
||||
</div>
|
||||
@ -102,14 +103,14 @@
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.dependants.errors %}<div class="alert alert-danger">{{ form.dependants.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.dependants.label_tag }}
|
||||
<strong>{% trans "dependants" %}</strong>
|
||||
{{ form.dependants }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.dob_of_dependants.errors %}<div class="alert alert-danger">{{ form.dob_of_dependants.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.dob_of_dependants.label_tag }}
|
||||
<strong>{% trans "dob_of_dependants" %}</strong>
|
||||
{{ form.dob_of_dependants }}
|
||||
</div>
|
||||
</div>
|
||||
@ -119,14 +120,14 @@
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
{% if form.credit_rating_rating.errors %}<div class="alert alert-danger">{{ form.credit_rating_rating.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.credit_rating_rating.label_tag }}
|
||||
<strong>{% trans "credit_rating_rating" %}</strong>
|
||||
{{ form.credit_rating_rating }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
{% if form.credit_rating_source.errors %}<div class="alert alert-danger">{{ form.credit_rating_source.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.credit_rating_source.label_tag }}
|
||||
<strong>{% trans "credit_rating_source" %}</strong>
|
||||
{{ form.credit_rating_source }}
|
||||
</div>
|
||||
</div>
|
||||
@ -134,14 +135,14 @@
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
{% if form.credit_limit_currency.errors %}<div class="alert alert-danger">{{ form.credit_limit_currency.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.credit_limit_currency.label_tag }}
|
||||
<strong>{% trans "credit_limit_currency" %}</strong>
|
||||
{{ form.credit_limit_currency }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-3">
|
||||
{% if form.credit_limit_amount.errors %}<div class="alert alert-danger">{{ form.credit_limit_amount.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.credit_limit_amount.label_tag }}
|
||||
<strong>{% trans "credit_limit_amount" %}</strong>
|
||||
{{ form.credit_limit_amount }}
|
||||
</div>
|
||||
</div>
|
||||
@ -151,14 +152,14 @@
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.highest_education_attained.errors %}<div class="alert alert-danger">{{ form.highest_education_attained.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.highest_education_attained.label_tag }}
|
||||
<strong>{% trans "highest_education_attained" %}</strong>
|
||||
{{ form.highest_education_attained }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.employment_status.errors %}<div class="alert alert-danger">{{ form.employment_status.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.employment_status.label_tag }}
|
||||
<strong>{% trans "employment_status" %}</strong>
|
||||
{{ form.employment_status }}
|
||||
</div>
|
||||
</div>
|
||||
@ -168,14 +169,14 @@
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.kyc_status.errors %}<div class="alert alert-danger">{{ form.kyc_status.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.kyc_status.label_tag }}
|
||||
<strong>{% trans "kyc_status" %}</strong>
|
||||
{{ form.kyc_status }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{% if form.last_ok_date.errors %}<div class="alert alert-danger">{{ form.last_ok_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.last_ok_date.label_tag }}
|
||||
<strong>{% trans "last_ok_date" %}</strong>
|
||||
{{ form.last_ok_date }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<a href="?time=hour" class="btn btn-default{% if active_time_hour %} active{% endif %}">Last Hour</a>
|
||||
<a href="?time=day" class="btn btn-default{% if active_time_day %} active{% endif %}">Last Day</a>
|
||||
<a href="?time=week" class="btn btn-default{% if active_time_week %} active{% endif %}">Last Week</a>
|
||||
<a href="?time=month" class="btn btn-default{% if active_time_month %} active{% endif %}">Last Month</a>
|
||||
<a href="?time=year" class="btn btn-default{% if active_time_year %} active{% endif %}">Last Year</a>
|
||||
<a href="?time=All" class="btn btn-default{% if active_time_all %} active{% endif %}">All</a>
|
||||
{% load i18n %}
|
||||
<a href="?time=hour" class="btn btn-default{% if active_time_hour %} active{% endif %}">{% trans "Last Hour" %}</a>
|
||||
<a href="?time=day" class="btn btn-default{% if active_time_day %} active{% endif %}">{% trans "Last Day" %}</a>
|
||||
<a href="?time=week" class="btn btn-default{% if active_time_week %} active{% endif %}">{% trans "Last Week" %}</a>
|
||||
<a href="?time=month" class="btn btn-default{% if active_time_month %} active{% endif %}">{% trans "Last Month" %}</a>
|
||||
<a href="?time=year" class="btn btn-default{% if active_time_year %} active{% endif %}">{% trans "Last Year" %}</a>
|
||||
<a href="?time=All" class="btn btn-default{% if active_time_all %} active{% endif %}">{% trans "All" %}</a>
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load humanize static %}
|
||||
|
||||
{% load i18n %}
|
||||
{% block page_title %}{{ block.super }} / Entitlement Requests {% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
<div id="entitlementrequests">
|
||||
<h1>Entitlement Requests</h1>
|
||||
<h1>{% trans "Entitlement Requests" %}</h1>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
@ -24,12 +24,12 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover tablesorter" id="entitementrequests-list" aria-describedby="entitlement requests list">
|
||||
<thead>
|
||||
<th scope="col">Role Name</th>
|
||||
<th scope="col">User name</th>
|
||||
<th scope="col">Bank ID</th>
|
||||
<th scope="col">Created</th>
|
||||
<th scope="col">Action</th>
|
||||
<th scope="col">Action</th>
|
||||
<th scope="col">{% trans "Role Name" %}</th>
|
||||
<th scope="col">{% trans "User name" %}</th>
|
||||
<th scope="col">{% trans "Bank ID" %}</th>
|
||||
<th scope="col">{% trans "Created" %}</th>
|
||||
<th scope="col">{% trans "Action" %}</th>
|
||||
<th scope="col">{% trans "Action" %}</th>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
BIN
apimanager/locale/any/de/LC_MESSAGES/django.mo
Normal file
BIN
apimanager/locale/any/de/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
115
apimanager/locale/any/de/LC_MESSAGES/django.po
Normal file
115
apimanager/locale/any/de/LC_MESSAGES/django.po
Normal file
@ -0,0 +1,115 @@
|
||||
# Open Bank Project API Manager i18n files.
|
||||
# Copyright (C) 2022 TESOBE GmbH
|
||||
# This file is distributed under the AGPL. Commercial licences are available from TESOBE.
|
||||
# FIRST AUTHOR <reena AT tesobe DOT com>, 2022.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-05-12 04:46+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: base/templates/base.html:48
|
||||
msgid "Home"
|
||||
msgstr "Startseite"
|
||||
|
||||
#: base/templates/base.html:50 consumers/templates/consumers/index.html:10
|
||||
msgid "Consumers"
|
||||
msgstr "Verbraucher"
|
||||
|
||||
#: base/templates/base.html:52
|
||||
msgid "Entitlement Requests"
|
||||
msgstr "Berechtigungsanfragen"
|
||||
|
||||
#: base/templates/base.html:57
|
||||
msgid "Users"
|
||||
msgstr "Verbindung zu WP-Benutzern"
|
||||
|
||||
#: base/templates/base.html:59
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: base/templates/base.html:60
|
||||
msgid "My User"
|
||||
msgstr "Mein Benutzer"
|
||||
|
||||
#: base/templates/base.html:61
|
||||
msgid "Invite Developer"
|
||||
msgstr "Entwickler einladen"
|
||||
|
||||
#: base/templates/base.html:68
|
||||
msgid "Metrics"
|
||||
msgstr "Metriken"
|
||||
|
||||
#: base/templates/base.html:70
|
||||
msgid "API Metrics"
|
||||
msgstr "API-Metriken"
|
||||
|
||||
#: base/templates/base.html:71
|
||||
msgid "Connector Metrics"
|
||||
msgstr "Konnektor-Metriken"
|
||||
|
||||
#: base/templates/base.html:72
|
||||
msgid "KPI Dashboard"
|
||||
msgstr "KPI Dashboard"
|
||||
|
||||
#: base/templates/base.html:79
|
||||
msgid "Resources"
|
||||
msgstr "Ressourcen"
|
||||
|
||||
#: base/templates/base.html:81
|
||||
msgid "Customers"
|
||||
msgstr "Kunden"
|
||||
|
||||
#: base/templates/base.html:82
|
||||
msgid "Branches"
|
||||
msgstr "Niederlassungen"
|
||||
|
||||
#: base/templates/base.html:83
|
||||
msgid "ATMs"
|
||||
msgstr "ATMs"
|
||||
|
||||
#: base/templates/base.html:92
|
||||
msgid "Configurations"
|
||||
msgstr "Konfigurationen"
|
||||
|
||||
#: base/templates/base.html:94
|
||||
msgid "Config"
|
||||
msgstr "Konfig."
|
||||
|
||||
#: base/templates/base.html:95
|
||||
msgid "Webui Props"
|
||||
msgstr "Webui Requisiten"
|
||||
|
||||
#: base/templates/base.html:96
|
||||
msgid "Method Routings"
|
||||
msgstr "Methoden-Routings"
|
||||
|
||||
#: base/templates/base.html:97
|
||||
msgid "Dynamic Endpoints"
|
||||
msgstr "Dynamische Endpunkte"
|
||||
|
||||
#: base/templates/base.html:98
|
||||
msgid "My API Collections"
|
||||
msgstr "Meine API-Sammlungen"
|
||||
|
||||
#: base/templates/home.html:5
|
||||
msgid "Welcome to API Manager"
|
||||
msgstr "Willkommen bei API Manager"
|
||||
|
||||
#: consumers/templates/consumers/index.html:47
|
||||
msgid "Statistics"
|
||||
msgstr "Statistiken"
|
||||
|
||||
#: consumers/templates/consumers/index.html:49
|
||||
msgid "Total number of consumers"
|
||||
msgstr "Gesamtzahl der Verbraucher"
|
||||
BIN
apimanager/locale/any/es/LC_MESSAGES/django.mo
Normal file
BIN
apimanager/locale/any/es/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
1185
apimanager/locale/any/es/LC_MESSAGES/django.po
Normal file
1185
apimanager/locale/any/es/LC_MESSAGES/django.po
Normal file
File diff suppressed because it is too large
Load Diff
BIN
apimanager/locale/any/fr/LC_MESSAGES/django.mo
Normal file
BIN
apimanager/locale/any/fr/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
231
apimanager/locale/any/fr/LC_MESSAGES/django.po
Normal file
231
apimanager/locale/any/fr/LC_MESSAGES/django.po
Normal file
@ -0,0 +1,231 @@
|
||||
# Open Bank Project API Manager i18n files.
|
||||
# Copyright (C) 2022 TESOBE GmbH
|
||||
# This file is distributed under the AGPL. Commercial licences are available from TESOBE.
|
||||
# FIRST AUTHOR <reena AT tesobe DOT com>, 2022.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-05-20 11:46+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: atms/templates/atms/index.html:4 base/templates/base.html:83
|
||||
msgid "ATMs"
|
||||
msgstr "GAB"
|
||||
|
||||
#: atms/templates/atms/index.html:17 atms/templates/atms/index.html:24
|
||||
msgid "ATM Id"
|
||||
msgstr "N ° GAB"
|
||||
|
||||
#: atms/templates/atms/index.html:31
|
||||
msgid "name"
|
||||
msgstr "nom"
|
||||
|
||||
#: atms/templates/atms/index.html:40
|
||||
msgid "services"
|
||||
msgstr "services"
|
||||
|
||||
#: atms/templates/atms/index.html:48
|
||||
msgid "location_latitude"
|
||||
msgstr "location_latitude"
|
||||
|
||||
#: atms/templates/atms/index.html:56
|
||||
msgid "location_longitude"
|
||||
msgstr "location_longitude"
|
||||
|
||||
#: atms/templates/atms/index.html:66
|
||||
msgid "meta_license_name"
|
||||
msgstr "meta_license_name"
|
||||
|
||||
#: atms/templates/atms/index.html:73
|
||||
msgid "located_at"
|
||||
msgstr "situé à"
|
||||
|
||||
#: atms/templates/atms/index.html:80
|
||||
msgid "has_deposit_capability"
|
||||
msgstr "has_deposit_capability"
|
||||
|
||||
#: atms/templates/atms/index.html:90
|
||||
msgid "is_accessible"
|
||||
msgstr "est accessible."
|
||||
|
||||
#: atms/templates/atms/index.html:98
|
||||
msgid "accessibility_features"
|
||||
msgstr "accessibilité_caractéristiques"
|
||||
|
||||
#: atms/templates/atms/index.html:105
|
||||
msgid "more_info"
|
||||
msgstr "plus_informations"
|
||||
|
||||
#: atms/templates/atms/index.html:114
|
||||
msgid "notes"
|
||||
msgstr "notes"
|
||||
|
||||
#: atms/templates/atms/index.html:121
|
||||
msgid "supported_languages"
|
||||
msgstr "langues_prises en charge"
|
||||
|
||||
#: atms/templates/atms/index.html:128
|
||||
msgid "supported_currencies"
|
||||
msgstr "devises_prises en charge"
|
||||
|
||||
#: atms/templates/atms/index.html:137
|
||||
msgid "location_categories"
|
||||
msgstr "location_categories"
|
||||
|
||||
#: atms/templates/atms/index.html:145
|
||||
msgid "minimum_withdrawal"
|
||||
msgstr "retrait_minimum"
|
||||
|
||||
#: atms/templates/atms/index.html:152
|
||||
msgid "site_name"
|
||||
msgstr "{$site_name}"
|
||||
|
||||
#: atms/templates/atms/index.html:161
|
||||
msgid "branch_identification"
|
||||
msgstr "identification_de_branche"
|
||||
|
||||
#: atms/templates/atms/index.html:168
|
||||
msgid "site_identification"
|
||||
msgstr "identification_du_site"
|
||||
|
||||
#: base/templates/base.html:11
|
||||
#, fuzzy
|
||||
#| msgid "Welcome to API Manager"
|
||||
msgid "API Manager"
|
||||
msgstr "Bienvenue dans API Manager"
|
||||
|
||||
#: base/templates/base.html:48
|
||||
msgid "Home"
|
||||
msgstr "Page d'accueil"
|
||||
|
||||
#: base/templates/base.html:50 consumers/templates/consumers/index.html:10
|
||||
msgid "Consumers"
|
||||
msgstr "Consommateurs"
|
||||
|
||||
#: base/templates/base.html:52
|
||||
msgid "Entitlement Requests"
|
||||
msgstr "Demandes de droits"
|
||||
|
||||
#: base/templates/base.html:57
|
||||
msgid "Users"
|
||||
msgstr "Comptes"
|
||||
|
||||
#: base/templates/base.html:59
|
||||
msgid "All"
|
||||
msgstr "Tous"
|
||||
|
||||
#: base/templates/base.html:60
|
||||
msgid "My User"
|
||||
msgstr "Mon utilisateur"
|
||||
|
||||
#: base/templates/base.html:61
|
||||
msgid "Invite Developer"
|
||||
msgstr "Inviter un développeur"
|
||||
|
||||
#: base/templates/base.html:68
|
||||
msgid "Metrics"
|
||||
msgstr "Indicateurs"
|
||||
|
||||
#: base/templates/base.html:70
|
||||
msgid "API Metrics"
|
||||
msgstr "Métriques API"
|
||||
|
||||
#: base/templates/base.html:71
|
||||
msgid "Connector Metrics"
|
||||
msgstr "Indicateurs du connecteur"
|
||||
|
||||
#: base/templates/base.html:72
|
||||
msgid "KPI Dashboard"
|
||||
msgstr "KPI Tableau de bord"
|
||||
|
||||
#: base/templates/base.html:79
|
||||
msgid "Resources"
|
||||
msgstr "Ressources"
|
||||
|
||||
#: base/templates/base.html:81
|
||||
msgid "Customers"
|
||||
msgstr "Clients"
|
||||
|
||||
#: base/templates/base.html:82
|
||||
msgid "Branches"
|
||||
msgstr "Agences"
|
||||
|
||||
#: base/templates/base.html:92
|
||||
msgid "Configurations"
|
||||
msgstr "Configurations"
|
||||
|
||||
#: base/templates/base.html:94
|
||||
msgid "Config"
|
||||
msgstr "Config"
|
||||
|
||||
#: base/templates/base.html:95
|
||||
msgid "Webui Props"
|
||||
msgstr "Accessoires Webui"
|
||||
|
||||
#: base/templates/base.html:96
|
||||
msgid "Method Routings"
|
||||
msgstr "Acheminement des méthodes"
|
||||
|
||||
#: base/templates/base.html:97
|
||||
msgid "Dynamic Endpoints"
|
||||
msgstr "Points de terminaison dynamiques"
|
||||
|
||||
#: base/templates/base.html:98
|
||||
msgid "My API Collections"
|
||||
msgstr "Mes collections d'API"
|
||||
|
||||
#: base/templates/home.html:5
|
||||
msgid "Welcome to API Manager"
|
||||
msgstr "Bienvenue dans API Manager"
|
||||
|
||||
#: consumers/templates/consumers/includes/filter_time.html:2
|
||||
msgid "Last Hour"
|
||||
msgstr ""
|
||||
|
||||
#: consumers/templates/consumers/index.html:47
|
||||
msgid "Statistics"
|
||||
msgstr "Statistiques"
|
||||
|
||||
#: consumers/templates/consumers/index.html:49
|
||||
msgid "Total number of consumers"
|
||||
msgstr "Nombre total de consommateurs"
|
||||
|
||||
#: consumers/templates/consumers/index.html:50
|
||||
msgid "Total number of unique developer email addresses"
|
||||
msgstr ""
|
||||
|
||||
#: consumers/templates/consumers/index.html:51
|
||||
#, fuzzy
|
||||
#| msgid "Total number of consumers"
|
||||
msgid "Total number of unique consumer names"
|
||||
msgstr "Nombre total de consommateurs"
|
||||
|
||||
#: consumers/templates/consumers/index.html:57
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#: consumers/templates/consumers/index.html:58
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: consumers/templates/consumers/index.html:59
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: consumers/templates/consumers/index.html:60
|
||||
msgid "Created"
|
||||
msgstr "Créé"
|
||||
|
||||
#: consumers/templates/consumers/index.html:61
|
||||
msgid "Action"
|
||||
msgstr "Action"
|
||||
BIN
apimanager/locale/any/hi/LC_MESSAGES/django.mo
Normal file
BIN
apimanager/locale/any/hi/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
115
apimanager/locale/any/hi/LC_MESSAGES/django.po
Normal file
115
apimanager/locale/any/hi/LC_MESSAGES/django.po
Normal file
@ -0,0 +1,115 @@
|
||||
# Open Bank Project API Manager i18n files.
|
||||
# Copyright (C) 2022 TESOBE GmbH
|
||||
# This file is distributed under the AGPL. Commercial licences are available from TESOBE.
|
||||
# FIRST AUTHOR <reena AT tesobe DOT com>, 2022.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-05-12 04:46+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: base/templates/base.html:48
|
||||
msgid "Home"
|
||||
msgstr "होमपेज"
|
||||
|
||||
#: base/templates/base.html:50 consumers/templates/consumers/index.html:10
|
||||
msgid "Consumers"
|
||||
msgstr "उपभोक्ता"
|
||||
|
||||
#: base/templates/base.html:52
|
||||
msgid "Entitlement Requests"
|
||||
msgstr "एंटाइटेलमेंट अनुरोध"
|
||||
|
||||
#: base/templates/base.html:57
|
||||
msgid "Users"
|
||||
msgstr "उपयोगकर्ता"
|
||||
|
||||
#: base/templates/base.html:59
|
||||
msgid "All"
|
||||
msgstr "सभी"
|
||||
|
||||
#: base/templates/base.html:60
|
||||
msgid "My User"
|
||||
msgstr "मेरा उपयोगकर्ता"
|
||||
|
||||
#: base/templates/base.html:61
|
||||
msgid "Invite Developer"
|
||||
msgstr "डेवलपर को आमंत्रित करें"
|
||||
|
||||
#: base/templates/base.html:68
|
||||
msgid "Metrics"
|
||||
msgstr "मेट्रिक्स"
|
||||
|
||||
#: base/templates/base.html:70
|
||||
msgid "API Metrics"
|
||||
msgstr "एपीआई मेट्रिक्स"
|
||||
|
||||
#: base/templates/base.html:71
|
||||
msgid "Connector Metrics"
|
||||
msgstr "कनेक्टर मेट्रिक्स"
|
||||
|
||||
#: base/templates/base.html:72
|
||||
msgid "KPI Dashboard"
|
||||
msgstr "केपीआई डैशबोर्ड"
|
||||
|
||||
#: base/templates/base.html:79
|
||||
msgid "Resources"
|
||||
msgstr "संसाधन"
|
||||
|
||||
#: base/templates/base.html:81
|
||||
msgid "Customers"
|
||||
msgstr "ग्राहक"
|
||||
|
||||
#: base/templates/base.html:82
|
||||
msgid "Branches"
|
||||
msgstr "कार्यालयों की शाखाए"
|
||||
|
||||
#: base/templates/base.html:83
|
||||
msgid "ATMs"
|
||||
msgstr "एटीएम"
|
||||
|
||||
#: base/templates/base.html:92
|
||||
msgid "Configurations"
|
||||
msgstr "कॉन्फ़िगरेशंस"
|
||||
|
||||
#: base/templates/base.html:94
|
||||
msgid "Config"
|
||||
msgstr "कॉन्फ़िग"
|
||||
|
||||
#: base/templates/base.html:95
|
||||
msgid "Webui Props"
|
||||
msgstr "Webui प्रॉप्स"
|
||||
|
||||
#: base/templates/base.html:96
|
||||
msgid "Method Routings"
|
||||
msgstr "विधि रूटिंग"
|
||||
|
||||
#: base/templates/base.html:97
|
||||
msgid "Dynamic Endpoints"
|
||||
msgstr "डायनामिक एंडपॉइंट्स"
|
||||
|
||||
#: base/templates/base.html:98
|
||||
msgid "My API Collections"
|
||||
msgstr "मेरे एपीआई संग्रह"
|
||||
|
||||
#: base/templates/home.html:5
|
||||
msgid "Welcome to API Manager"
|
||||
msgstr "एपीआई प्रबंधक में आपका स्वागत है"
|
||||
|
||||
#: consumers/templates/consumers/index.html:47
|
||||
msgid "Statistics"
|
||||
msgstr "आँकड़े"
|
||||
|
||||
#: consumers/templates/consumers/index.html:49
|
||||
msgid "Total number of consumers"
|
||||
msgstr "उपभोक्ताओं की कुल संख्या"
|
||||
64
apimanager/locale/any/newlatest.py
Normal file
64
apimanager/locale/any/newlatest.py
Normal file
@ -0,0 +1,64 @@
|
||||
from translate import Translator # Convert one language to another
|
||||
from concurrent.futures import ThreadPoolExecutor as tpe # Multithreading
|
||||
from threading import Lock # Locking Purpose
|
||||
|
||||
lock=Lock() # Intializing Lock
|
||||
languages=['de','es','fr','hi'] # Defining languages
|
||||
|
||||
|
||||
# This class is used for converting languages
|
||||
class clsTranslate():
|
||||
def translateText(self, strString, strTolang):
|
||||
"""
|
||||
This function translates one language into another language. It takes two
|
||||
parameters
|
||||
1. strString :=> String that you want to convert
|
||||
2. strTolang :=> Languages(fr,hi,es etc)
|
||||
"""
|
||||
self.strString = strString
|
||||
self.strTolang = strTolang
|
||||
translator = Translator(to_lang=self.strTolang)
|
||||
translation = translator.translate(self.strString)
|
||||
return (str(translation))
|
||||
|
||||
|
||||
# This is method for writing file
|
||||
|
||||
def writeFile(language):
|
||||
print(language,"Started")
|
||||
fileName=f'locale/{language}/LC_MESSAGES/django.po' # Openning a file
|
||||
try:
|
||||
with open(fileName,encoding='utf-8') as f: # Reading from the file
|
||||
a=[i.replace("\n","") for i in f.readlines()] # Reading everyline from a file and store it into a
|
||||
except Exception as e:
|
||||
print(fileName, e)
|
||||
b=0
|
||||
for i in range(len(a)):
|
||||
if 'msgid' in a[i] and a[i]!='msgid ""':
|
||||
b=i
|
||||
break
|
||||
|
||||
if b!=0:
|
||||
trans=clsTranslate() # Creating object for translation class
|
||||
for i in range(b-1,len(a),4):
|
||||
|
||||
comment,msgid,msgstr=a[i],a[i+1],a[i+2]
|
||||
if msgstr == 'msgstr ""':
|
||||
ms=msgid[7:len(msgid)-1]
|
||||
val=trans.translateText(ms,language)
|
||||
a[i+2]=f'msgstr "{val}"'
|
||||
try:
|
||||
lock.acquire()
|
||||
with open(fileName,'w',encoding='utf-8') as f:
|
||||
for i in a:
|
||||
f.write(f"{i}\n")
|
||||
print(language,"is completed")
|
||||
lock.release()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
lock.release()
|
||||
else:
|
||||
print(language,"is completed")
|
||||
|
||||
with tpe() as e:
|
||||
e.map(writeFile,languages)
|
||||
Binary file not shown.
@ -1,14 +1,14 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# Open Bank Project API Manager i18n files.
|
||||
# Copyright (C) 2022 TESOBE GmbH
|
||||
# This file is distributed under the AGPL. Commercial licences are available from TESOBE.
|
||||
# FIRST AUTHOR <reena AT tesobe DOT com>, 2022.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-05-09 11:38+0200\n"
|
||||
"POT-Creation-Date: 2022-05-12 04:46+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -18,18 +18,98 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: apimanager/settings.py:175
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
#: base/templates/base.html:48
|
||||
msgid "Home"
|
||||
msgstr "होमपेज"
|
||||
|
||||
#: apimanager/settings.py:176
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
#: base/templates/base.html:50 consumers/templates/consumers/index.html:10
|
||||
msgid "Consumers"
|
||||
msgstr "उपभोक्ता"
|
||||
|
||||
#: base/templates/home.html:4
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
#: base/templates/base.html:52
|
||||
msgid "Entitlement Requests"
|
||||
msgstr "एंटाइटेलमेंट अनुरोध"
|
||||
|
||||
#: base/templates/home.html:7 base/views.py:39
|
||||
#: base/templates/base.html:57
|
||||
msgid "Users"
|
||||
msgstr "उपयोगकर्ता"
|
||||
|
||||
#: base/templates/base.html:59
|
||||
msgid "All"
|
||||
msgstr "सभी"
|
||||
|
||||
#: base/templates/base.html:60
|
||||
msgid "My User"
|
||||
msgstr "मेरा उपयोगकर्ता"
|
||||
|
||||
#: base/templates/base.html:61
|
||||
msgid "Invite Developer"
|
||||
msgstr "डेवलपर को आमंत्रित करें"
|
||||
|
||||
#: base/templates/base.html:68
|
||||
msgid "Metrics"
|
||||
msgstr "मेट्रिक्स"
|
||||
|
||||
#: base/templates/base.html:70
|
||||
msgid "API Metrics"
|
||||
msgstr "एपीआई मेट्रिक्स"
|
||||
|
||||
#: base/templates/base.html:71
|
||||
msgid "Connector Metrics"
|
||||
msgstr "कनेक्टर मेट्रिक्स"
|
||||
|
||||
#: base/templates/base.html:72
|
||||
msgid "KPI Dashboard"
|
||||
msgstr "केपीआई डैशबोर्ड"
|
||||
|
||||
#: base/templates/base.html:79
|
||||
msgid "Resources"
|
||||
msgstr "संसाधन"
|
||||
|
||||
#: base/templates/base.html:81
|
||||
msgid "Customers"
|
||||
msgstr "ग्राहक"
|
||||
|
||||
#: base/templates/base.html:82
|
||||
msgid "Branches"
|
||||
msgstr "कार्यालयों की शाखाए"
|
||||
|
||||
#: base/templates/base.html:83
|
||||
msgid "ATMs"
|
||||
msgstr "एटीएम"
|
||||
|
||||
#: base/templates/base.html:92
|
||||
msgid "Configurations"
|
||||
msgstr "कॉन्फ़िगरेशंस"
|
||||
|
||||
#: base/templates/base.html:94
|
||||
msgid "Config"
|
||||
msgstr "कॉन्फ़िग"
|
||||
|
||||
#: base/templates/base.html:95
|
||||
msgid "Webui Props"
|
||||
msgstr "Webui प्रॉप्स"
|
||||
|
||||
#: base/templates/base.html:96
|
||||
msgid "Method Routings"
|
||||
msgstr "विधि रूटिंग"
|
||||
|
||||
#: base/templates/base.html:97
|
||||
msgid "Dynamic Endpoints"
|
||||
msgstr "डायनामिक एंडपॉइंट्स"
|
||||
|
||||
#: base/templates/base.html:98
|
||||
msgid "My API Collections"
|
||||
msgstr "मेरे एपीआई संग्रह"
|
||||
|
||||
#: base/templates/home.html:5
|
||||
msgid "Welcome to API Manager"
|
||||
msgstr "एपीआई प्रबंधक में आपका स्वागत है"
|
||||
|
||||
#: consumers/templates/consumers/index.html:47
|
||||
msgid "Statistics"
|
||||
msgstr "आँकड़े"
|
||||
|
||||
#: consumers/templates/consumers/index.html:49
|
||||
msgid "Total number of consumers"
|
||||
msgstr "उपभोक्ताओं की कुल संख्या"
|
||||
|
||||
64
apimanager/locale/newlatest.py
Normal file
64
apimanager/locale/newlatest.py
Normal file
@ -0,0 +1,64 @@
|
||||
from translate import Translator # Convert one language to another
|
||||
from concurrent.futures import ThreadPoolExecutor as tpe # Multithreading
|
||||
from threading import Lock # Locking Purpose
|
||||
|
||||
lock=Lock() # Intializing Lock
|
||||
languages=['de','es','fr','hi'] # Defining languages
|
||||
|
||||
|
||||
# This class is used for converting languages
|
||||
class clsTranslate():
|
||||
def translateText(self, strString, strTolang):
|
||||
"""
|
||||
This function translates one language into another language. It takes two
|
||||
parameters
|
||||
1. strString :=> String that you want to convert
|
||||
2. strTolang :=> Languages(fr,hi,es etc)
|
||||
"""
|
||||
self.strString = strString
|
||||
self.strTolang = strTolang
|
||||
translator = Translator(to_lang=self.strTolang)
|
||||
translation = translator.translate(self.strString)
|
||||
return (str(translation))
|
||||
|
||||
|
||||
# This is method for writing file
|
||||
|
||||
def writeFile(language):
|
||||
print(language,"Started")
|
||||
fileName=f'locale/{language}/LC_MESSAGES/django.po' # Openning a file
|
||||
try:
|
||||
with open(fileName,encoding='utf-8') as f: # Reading from the file
|
||||
a=[i.replace("\n","") for i in f.readlines()] # Reading everyline from a file and store it into a
|
||||
except Exception as e:
|
||||
print(fileName, e)
|
||||
b=0
|
||||
for i in range(len(a)):
|
||||
if 'msgid' in a[i] and a[i]!='msgid ""':
|
||||
b=i
|
||||
break
|
||||
|
||||
if b!=0:
|
||||
trans=clsTranslate() # Creating object for translation class
|
||||
for i in range(b-1,len(a),4):
|
||||
|
||||
comment,msgid,msgstr=a[i],a[i+1],a[i+2]
|
||||
if msgstr == 'msgstr ""':
|
||||
ms=msgid[7:len(msgid)-1]
|
||||
val=trans.translateText(ms,language)
|
||||
a[i+2]=f'msgstr "{val}"'
|
||||
try:
|
||||
lock.acquire()
|
||||
with open(fileName,'w',encoding='utf-8') as f:
|
||||
for i in a:
|
||||
f.write(f"{i}\n")
|
||||
print(language,"is completed")
|
||||
lock.release()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
lock.release()
|
||||
else:
|
||||
print(language,"is completed")
|
||||
|
||||
with tpe() as e:
|
||||
e.map(writeFile,languages)
|
||||
67
apimanager/locale/newlatest1.py
Normal file
67
apimanager/locale/newlatest1.py
Normal file
@ -0,0 +1,67 @@
|
||||
from translate import Translator # Convert one language to another
|
||||
from concurrent.futures import ThreadPoolExecutor as tpe # Multithreading
|
||||
from threading import Lock # Locking Purpose
|
||||
|
||||
lock=Lock() # Intializing Lock
|
||||
languages=['de','es','fr','hi'] # Defining languages
|
||||
|
||||
|
||||
# This class is used for converting languages
|
||||
class clsTranslate():
|
||||
def translateText(self, strString, strTolang):
|
||||
"""
|
||||
This function translates one language into another language. It takes two
|
||||
parameters
|
||||
1. strString :=> String that you want to convert
|
||||
2. strTolang :=> Languages(fr,hi,es etc)
|
||||
"""
|
||||
self.strString = strString
|
||||
self.strTolang = strTolang
|
||||
translator = Translator(to_lang=self.strTolang)
|
||||
translation = translator.translate(self.strString)
|
||||
return (str(translation))
|
||||
|
||||
|
||||
# This is method for writing file
|
||||
|
||||
def writeFile(language):
|
||||
print(language,"Started")
|
||||
fileName=f'locale/{language}/LC_MESSAGES/django.po' # Openning a file
|
||||
try:
|
||||
with open(fileName,encoding='utf-8') as f: # Reading from the file
|
||||
a=[i.replace("\n","") for i in f.readlines()] # Reading everyline from a file and store it into a
|
||||
except Exception as e:
|
||||
print(fileName, e)
|
||||
b=0
|
||||
for i in range(len(a)):
|
||||
if 'msgid' in a[i] and a[i]!='msgid ""':
|
||||
b=i
|
||||
break
|
||||
|
||||
if b!=0:
|
||||
trans=clsTranslate() # Creating object for translation class
|
||||
for i in range(b-1,len(a)):
|
||||
try:
|
||||
if "msgid" in a[i]:
|
||||
msgid,msgstr=a[i],a[i+1]
|
||||
if msgstr == 'msgstr ""':
|
||||
ms=msgid[7:len(msgid)-1]
|
||||
val=trans.translateText(ms,language)
|
||||
a[i+1]=f'msgstr "{val}"'
|
||||
# print(a[i])
|
||||
except: pass
|
||||
try:
|
||||
lock.acquire()
|
||||
with open(fileName,'w',encoding='utf-8') as f:
|
||||
for i in a:
|
||||
f.write(f"{i}\n")
|
||||
print(language,"is completed")
|
||||
lock.release()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
lock.release()
|
||||
else:
|
||||
print(language,"is completed")
|
||||
|
||||
with tpe() as e:
|
||||
e.map(writeFile,languages)
|
||||
@ -1,14 +1,15 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / API Metrics{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
<div id="metrics">
|
||||
<h1>API Metrics</h1>
|
||||
<h1>{% trans "API Metrics" %}</h1>
|
||||
|
||||
<div id="metrics-filter">
|
||||
<h2>Filter</h2>
|
||||
<h2>{% trans "Filter" %}</h2>
|
||||
<form action="" method="get">
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
@ -20,28 +21,28 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.from_date.errors %}<div class="alert alert-danger">{{ form.from_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.from_date.label_tag }}
|
||||
<strong>{% trans "from date" %} </strong>
|
||||
{{ form.from_date }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.to_date.errors %}<div class="alert alert-danger">{{ form.to_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.to_date.label_tag }}
|
||||
<strong>{% trans "to_date" %} </strong>
|
||||
{{ form.to_date }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.limit.errors %}<div class="alert alert-danger">{{ form.limit.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.limit.label_tag }}
|
||||
<strong>{% trans "limit" %} </strong>
|
||||
{{ form.limit }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.offset.errors %}<div class="alert alert-danger">{{ form.offset.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.offset.label_tag }}
|
||||
<strong>{% trans "offset" %} </strong>
|
||||
{{ form.offset }}
|
||||
</div>
|
||||
</div>
|
||||
@ -51,7 +52,7 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.consumer_id.errors %}<div class="alert alert-danger">{{ form.consumer_id.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.consumer_id.label_tag }}
|
||||
<strong>{% trans "consumer id" %} </strong>
|
||||
{{ form.consumer_id }}
|
||||
</div>
|
||||
</div>
|
||||
@ -59,7 +60,7 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% 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 }}
|
||||
<strong>{% trans "user_id" %} </strong>
|
||||
{{ form.user_id }}
|
||||
</div>
|
||||
</div>
|
||||
@ -67,7 +68,7 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.anon.errors %}<div class="alert alert-danger">{{ form.anon.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.anon.label_tag }}
|
||||
<strong>{% trans "anon" %} </strong>
|
||||
{{ form.anon }}
|
||||
</div>
|
||||
</div>
|
||||
@ -75,7 +76,7 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.app_name.errors %}<div class="alert alert-danger">{{ form.app_name.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.app_name.label_tag }}
|
||||
<strong>{% trans "app_name" %} </strong>
|
||||
{{ form.app_name }}
|
||||
</div>
|
||||
</div>
|
||||
@ -86,7 +87,7 @@
|
||||
<div class="col-xs-2">
|
||||
{% if form.verb.errors %}<div class="alert alert-danger">{{ form.verb.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.verb.label_tag }}
|
||||
<strong>{% trans "verb" %} </strong>
|
||||
{{ form.verb }}
|
||||
</div>
|
||||
</div>
|
||||
@ -94,7 +95,7 @@
|
||||
<div class="col-xs-10">
|
||||
{% if form.url.errors %}<div class="alert alert-danger">{{ form.url.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.url.label_tag }}
|
||||
<strong>{% trans "url" %} </strong>
|
||||
{{ form.url }}
|
||||
</div>
|
||||
</div>
|
||||
@ -104,7 +105,7 @@
|
||||
<div class="col-xs-7">
|
||||
{% if form.implemented_by_partial_function.errors %}<div class="alert alert-danger">{{ form.implemented_by_partial_function.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.implemented_by_partial_function.label_tag }}
|
||||
<strong>{% trans "implemented by partial function" %} </strong>
|
||||
{{ form.implemented_by_partial_function }}
|
||||
</div>
|
||||
</div>
|
||||
@ -112,22 +113,22 @@
|
||||
<div class="col-xs-5">
|
||||
{% if form.implemented_in_version.errors %}<div class="alert alert-danger">{{ form.implemented_in_version.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.implemented_in_version.label_tag }}
|
||||
<strong>{% trans "implemented in version" %} </strong>
|
||||
{{ form.implemented_in_version }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary">Update filter</button>
|
||||
<button type="submit" class="btn btn-primary">{% trans "Update filter" %}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="metrics-data">
|
||||
<ul class="nav nav-tabs">
|
||||
{% block nav_tabs %}
|
||||
<li class="active"><a href="{% url 'api-metrics' %}?{{ request.GET.urlencode }}">List</a></li>
|
||||
<li><a href="{% url 'api-metrics-summary-partial-function' %}?{{ request.GET.urlencode }}">Summary by Partial Function</a></li>
|
||||
<li class="active"><a href="{% url 'api-metrics' %}?{{ request.GET.urlencode }}">{% trans "List" %}</a></li>
|
||||
<li><a href="{% url 'api-metrics-summary-partial-function' %}?{{ request.GET.urlencode }}">{% trans "Summary by Partial Function" %}</a></li>
|
||||
{% endblock nav_tabs %}
|
||||
</ul>
|
||||
|
||||
@ -139,11 +140,11 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">#</th>
|
||||
<th scope="col">Verb</th>
|
||||
<th scope="col">URL</th>
|
||||
<th scope="col">Date</th>
|
||||
<th scope="col">Duration(ms)</th>
|
||||
<th scope="col">Details</th>
|
||||
<th scope="col">{% trans "Verb" %}</th>
|
||||
<th scope="col">{% trans "URL" %}</th>
|
||||
<th scope="col">{% trans "Date" %}</th>
|
||||
<th scope="col">{% trans "Duration(ms)" %}</th>
|
||||
<th scope="col">{% trans "Details" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -158,13 +159,13 @@
|
||||
<td>{{ metric.duration }}</td>
|
||||
<td>
|
||||
<ul>
|
||||
<li>User Name: {{ metric.user_name }}</li>
|
||||
<li>User ID: {{ metric.user_id }}</li>
|
||||
<li>Developer Email: {{ metric.developer_email }}</li>
|
||||
<li>App Name: {{ metric.app_name }}</li>
|
||||
<li>Consumer ID: {{ metric.consumer_id }}</li>
|
||||
<li>Implemented by Partial Function: {{ metric.implemented_by_partial_function }}</li>
|
||||
<li>Implemented In Version: {{ metric.implemented_in_version }}</li>
|
||||
<li>{% trans "User Name" %}: {{ metric.user_name }}</li>
|
||||
<li>{% trans "User ID" %}: {{ metric.user_id }}</li>
|
||||
<li>{% trans "Developer Email" %}: {{ metric.developer_email }}</li>
|
||||
<li>{% trans "App Name" %}: {{ metric.app_name }}</li>
|
||||
<li>{% trans "Consumer ID" %}: {{ metric.consumer_id }}</li>
|
||||
<li>{% trans "Implemented by Partial Function" %}: {{ metric.implemented_by_partial_function }}</li>
|
||||
<li>{% trans "Implemented In Version" %}: {{ metric.implemented_in_version }}</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
{% extends 'metrics/api.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block nav_tabs %}
|
||||
<li><a href="{% url 'api-metrics' %}?{{ request.GET.urlencode }}">List</a></li>
|
||||
<li class="active"><a href="{% url 'api-metrics-summary-partial-function' %}?{{ request.GET.urlencode }}">Summary by Partial Function</a></li>
|
||||
<li><a href="{% url 'api-metrics' %}?{{ request.GET.urlencode }}">{% trans "List" %}</a></li>
|
||||
<li class="active"><a href="{% url 'api-metrics-summary-partial-function' %}?{{ request.GET.urlencode }}">{% trans "Summary by Partial Function" %}</a></li>
|
||||
{% endblock nav_tabs %}
|
||||
|
||||
{% block tab_content %}
|
||||
|
||||
@ -1,14 +1,15 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / Connector Metrics{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
<div id="metrics">
|
||||
<h1>Connector Metrics</h1>
|
||||
<h1>{% trans "Connector Metrics" %}</h1>
|
||||
|
||||
<div id="metrics-filter">
|
||||
<h2>Filter</h2>
|
||||
<h2>{% trans "Filter" %}</h2>
|
||||
<form action="{% url 'connector-metrics' %}" method="get">
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
@ -20,28 +21,28 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.from_date.errors %}<div class="alert alert-danger">{{ form.from_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.from_date.label_tag }}
|
||||
<strong>{% trans "from_date" %} </strong>
|
||||
{{ form.from_date }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.to_date.errors %}<div class="alert alert-danger">{{ form.to_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.to_date.label_tag }}
|
||||
<strong>{% trans "to_date" %} </strong>
|
||||
{{ form.to_date }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.limit.errors %}<div class="alert alert-danger">{{ form.limit.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.limit.label_tag }}
|
||||
<strong>{% trans "limit" %} </strong>
|
||||
{{ form.limit }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.offset.errors %}<div class="alert alert-danger">{{ form.offset.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.offset.label_tag }}
|
||||
<strong>{% trans "offset" %} </strong>
|
||||
{{ form.offset }}
|
||||
</div>
|
||||
</div>
|
||||
@ -51,27 +52,27 @@
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.connector_name.errors %}<div class="alert alert-danger">{{ form.connector_name.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.connector_name.label_tag }}
|
||||
<strong>{% trans "connector_name" %} </strong>
|
||||
{{ form.connector_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.function_name.errors %}<div class="alert alert-danger">{{ form.function_name.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.function_name.label_tag }}
|
||||
<strong>{% trans "function_name" %} </strong>
|
||||
{{ form.function_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.correlation_id.errors %}<div class="alert alert-danger">{{ form.correlation_id.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.correlation_id.label_tag }}
|
||||
<strong>{% trans "correlation_id" %} </strong>
|
||||
{{ form.correlation_id }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">Update filter</button>
|
||||
<button type="submit" class="btn btn-primary">{% trans "Update filter" %}</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@ -82,11 +83,11 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">#</th>
|
||||
<th scope="col">Date</th>
|
||||
<th scope="col">Connector Name</th>
|
||||
<th scope="col">Function Name</th>
|
||||
<th scope="col">Correlation ID</th>
|
||||
<th scope="col">Duration (ms)</th>
|
||||
<th scope="col">{% trans "Date" %}</th>
|
||||
<th scope="col">{% trans "Connector Name" %}</th>
|
||||
<th scope="col">{% trans "Function Name" %}</th>
|
||||
<th scope="col">{% trans "Correlation ID" %}</th>
|
||||
<th scope="col">{% trans "Duration (ms)" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@ -1,26 +1,27 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / API Usage Report{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div id="metrics">
|
||||
<h1>API Usage Report</h1>
|
||||
<h2>API instance : {{ api_host_name }}</h2>
|
||||
<h1>{% trans "API Usage Report" %}</h1>
|
||||
<h2>{% trans "API instance" %}: {{ api_host_name }}</h2>
|
||||
|
||||
|
||||
|
||||
<div id="metrics-data">
|
||||
<ul class="nav nav-tabs">
|
||||
{% block nav_tabs %}
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">Year</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">Quarter</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">Month</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">Week</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">Day</a></li>
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">{% trans "Year" %}</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">{% trans "Quarter" %}</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">{% trans "Month" %}</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">{% trans "Week" %}</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">{% trans "Day" %}</a></li>
|
||||
<!--<li><a href="{% url 'hourly-summary' %}?{{ request.GET.urlencode }}">Hour</a></li>-->
|
||||
<li class="active"><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">Custom</a></li>
|
||||
<li class="active"><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">{% trans "Custom" %}</a></li>
|
||||
{% endblock nav_tabs %}
|
||||
</ul>
|
||||
|
||||
@ -34,7 +35,7 @@
|
||||
{{ form.media }} {# Form required JS and CSS #}
|
||||
{% endblock %}
|
||||
|
||||
<h2>Filter</h2>
|
||||
<h2>{% trans "Filter" %}</h2>
|
||||
<form action="{% url 'custom-summary' %}" method="get">
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
@ -46,26 +47,26 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.from_date_custom.errors %}<div class="alert alert-danger">{{ form.from_date_custom.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.from_date_custom.label_tag }}
|
||||
<strong>{% trans "from_date_custom" %} </strong>
|
||||
{{ form.from_date_custom }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.to_date.errors %}<div class="alert alert-danger">{{ form.to_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.to_date.label_tag }}
|
||||
<strong>{% trans "to_date" %} </strong>
|
||||
{{ form.to_date }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="form-group">
|
||||
{{ form.include_obp_apps }} Include System Calls
|
||||
</div>
|
||||
{{ form.include_obp_apps }} {% trans "Include System Calls" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Update filter</button>
|
||||
<button type="submit" class="btn btn-primary">{% trans "Update filter" %}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
@ -81,68 +82,68 @@
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total API calls:</td>
|
||||
<td>{% trans "Total API calls" %}:</td>
|
||||
<td>{{ api_calls }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>API calls made using API Explorer:</td>
|
||||
<td>{% trans "API calls made using API Explorer" %}:</td>
|
||||
<td>{{ calls_by_api_explorer }} ({% widthratio calls_by_api_explorer api_calls 100 %} %)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Calls per day:</td>
|
||||
<td>{% trans "Calls per day (last 30 days)" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ per_day_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average number of calls per day: </td>
|
||||
<td>{% trans "Average number of calls per day" %}: </td>
|
||||
<td>{{ average_calls_per_day }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average response time (ms):</td>
|
||||
<td>{% trans "Average response time (ms)" %}:</td>
|
||||
<td>{{ average_response_time }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Median time from consumer registration to first API call:</td>
|
||||
<td>{% trans "Median time from consumer registration to first API call" %}:</td>
|
||||
<td>{{ median_time_to_first_api_call }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Apps with distinct names:</td>
|
||||
<td>{% trans "Apps with distinct names" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_app_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Distinct developer email addresses:</td>
|
||||
<td>{% trans "Distinct developer email addresses" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_developer_email }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Active Apps (at least one API call in the period):</td>
|
||||
<td>{% trans "Active Apps (at least one API call in the period)" %}:</td>
|
||||
<td>{%for item in active_apps_list%} <p>{{item.app_name}} ({{ item.developer_email }})</p> {% endfor %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 APIs:</td>
|
||||
<td>{% trans "Top 10 APIs" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_apis_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 Consumers:</td>
|
||||
<td>{% trans "Top 10 Consumers" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_consumers_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Warehouse APIs:</td>
|
||||
<td>{% trans "Top Warehouse APIs" %}:</td>
|
||||
<td>{% if top_warehouse_apis %}{%for element in top_warehouse_apis%} <p>{{ element.Implemented_by_partial_function }} : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Apps using data warehouse:</td>
|
||||
<td>{% trans "Top Apps using data warehouse" %}:</td>
|
||||
<td>{% if top_apps_using_warehouse %}{%for element in top_apps_using_warehouse%} <p>{{ element.app_name }} ({{ element.developer_email }}) : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total number of CanSearchWarehouse users:</td>
|
||||
<td>{% trans "Total number of CanSearchWarehouse users" %}:</td>
|
||||
<td>{{number_of_users_with_cansearchwarehouse}}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Users with role CanSearchWarehouse:</td>
|
||||
<td>{% if user_email_cansearchwarehouse %}{% for key, value in user_email_cansearchwarehouse.items %} {{key}}, {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
<td>{% trans "Users with role CanSearchWarehouse" %}:</td>
|
||||
<td>{% if user_email_cansearchwarehouse %}{% for key, value in user_email_cansearchwarehouse.items %} {{key}}, {% endfor %}{% else %} <p>{% trans "N/A" %}</p>{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load mathfilters %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / API Usage Report{% endblock page_title %}
|
||||
@ -7,19 +8,19 @@
|
||||
{% block content %}
|
||||
|
||||
<div id="metrics">
|
||||
<h1>API Usage Report</h1>
|
||||
<h2>API instance : {{ api_host_name }}</h2>
|
||||
<h1>{% trans "API Usage Report" %}</h1>
|
||||
<h2>{% trans "API instance" %}: {{ api_host_name }}</h2>
|
||||
|
||||
<div id="metrics-data">
|
||||
<ul class="nav nav-tabs">
|
||||
{% block nav_tabs %}
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">Year</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">Quarter</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">Month</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">Week</a></li>
|
||||
<li class="active"><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">Day</a></li>
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">{% trans "Year" %}</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">{% trans "Quarter" %}</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">{% trans "Month" %}</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">{% trans "Week" %}</a></li>
|
||||
<li class="active"><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">{% trans "Day" %}</a></li>
|
||||
<!--<li><a href="{% url 'hourly-summary' %}?{{ request.GET.urlencode }}">Hour</a></li>-->
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">Custom</a></li>
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">{% trans "Custom" %}</a></li>
|
||||
{% endblock nav_tabs %}
|
||||
</ul>
|
||||
|
||||
@ -33,7 +34,7 @@
|
||||
{{ form.media }} {# Form required JS and CSS #}
|
||||
{% endblock %}
|
||||
|
||||
<h2>Filter</h2>
|
||||
<h2>{% trans "Filter" %}</h2>
|
||||
<form action="{% url 'daily-summary' %}" method="get">
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
@ -46,19 +47,19 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.to_date.errors %}<div class="alert alert-danger">{{ form.to_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.to_date.label_tag }}
|
||||
<strong>{% trans "to_date" %} </strong>
|
||||
{{ form.to_date }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="form-group">
|
||||
{{ form.include_obp_apps }} Include System Calls
|
||||
{{ form.include_obp_apps }} {% trans "Include System Calls" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Update filter</button>
|
||||
<button type="submit" class="btn btn-primary">{% trans "Update filter" %}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
@ -66,7 +67,7 @@
|
||||
<div class="tab-content">
|
||||
{% block tab_content %}
|
||||
<div class="tab-pane active">
|
||||
<h2>Period : From {{ from_date }} to {{ to_date }}</h2>
|
||||
<h2>{% trans "Period" %} : {% trans "From" %} {{ from_date }} {% trans "to" %} {{ to_date }}</h2>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
@ -74,68 +75,68 @@
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total API calls:</td>
|
||||
<td>{% trans "Total API calls" %}:</td>
|
||||
<td>{{ api_calls }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>API calls made using API Explorer:</td>
|
||||
<td>{% trans "API calls made using API Explorer" %}:</td>
|
||||
<td>{{ calls_by_api_explorer }} ({% widthratio calls_by_api_explorer api_calls 100 %} %)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Calls per hour:</td>
|
||||
<td>{% trans "Calls per hour" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ per_hour_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average number of calls per hour: </td>
|
||||
<td>{% trans "Average number of calls per hour" %}: </td>
|
||||
<td>{{ api_calls|intdiv:24 }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average response time (ms):</td>
|
||||
<td>{% trans "Average response time (ms)" %}:</td>
|
||||
<td>{{ average_response_time }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Median time from consumer registration to first API call:</td>
|
||||
<td>{% trans "Median time from consumer registration to first API call" %}:</td>
|
||||
<td>{{ median_time_to_first_api_call }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Apps with distinct names:</td>
|
||||
<td>{% trans "Apps with distinct names" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_app_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Apps with distinct developer email addresses:</td>
|
||||
<td>{% trans "Apps with distinct developer email addresses" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_developer_email }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Active Apps (at least one API call in the period):</td>
|
||||
<td>{% trans "Active Apps (at least one API call in the period)" %}:</td>
|
||||
<td>{%for item in active_apps_list%} <p>{{item.app_name}} ({{ item.developer_email }})</p> {% endfor %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 APIs:</td>
|
||||
<td>{% trans "Top 10 APIs" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_apis_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 Consumers:</td>
|
||||
<td>{% trans "Top 10 Consumers" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_consumers_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Warehouse APIs:</td>
|
||||
<td>{% trans "Top Warehouse APIs" %}:</td>
|
||||
<td>{% if top_warehouse_apis %}{%for element in top_warehouse_apis%} <p>{{ element.Implemented_by_partial_function }} : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Apps using data warehouse:</td>
|
||||
<td>{% trans "Top Apps using data warehouse" %}:</td>
|
||||
<td>{% if top_apps_using_warehouse %}{%for element in top_apps_using_warehouse%} <p>{{ element.app_name }} ({{ element.developer_email }}) : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total number of CanSearchWarehouse users:</td>
|
||||
<td>{% trans "Total number of CanSearchWarehouse users" %}:</td>
|
||||
<td>{{number_of_users_with_cansearchwarehouse}}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Users with role CanSearchWarehouse:</td>
|
||||
<td>{% trans "Users with role CanSearchWarehouse" %}:</td>
|
||||
<td>{% if user_email_cansearchwarehouse %}{% for key, value in user_email_cansearchwarehouse.items %} {{key}}, {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -6,19 +6,19 @@
|
||||
{% block content %}
|
||||
|
||||
<div id="metrics">
|
||||
<h1>API Usage Report</h1>
|
||||
<h2>API instance : {{ api_host_name }}</h2>
|
||||
<h1>{% trans "API Usage Report" %}</h1>
|
||||
<h2>{% trans "API instance" %}: {{ api_host_name }}</h2>
|
||||
|
||||
<div id="metrics-data">
|
||||
<ul class="nav nav-tabs">
|
||||
{% block nav_tabs %}
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">Year</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">Quarter</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">Month</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">Week</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">Day</a></li>
|
||||
<li class="active"><a href="{% url 'hourly-summary' %}?{{ request.GET.urlencode }}">Hour</a></li>
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">Custom</a></li>
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">{% trans "Year" %}</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">{% trans "Quarter" %}</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">{% trans "Month" %}</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">{% trans "Week" %}</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">{% trans "Day" %}</a></li>
|
||||
<li class="active"><a href="{% url 'hourly-summary' %}?{{ request.GET.urlencode }}">{% trans "Hour" %}</a></li>
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">{% trans "Custom" %}</a></li>
|
||||
{% endblock nav_tabs %}
|
||||
</ul>
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
{{ form.media }} {# Form required JS and CSS #}
|
||||
{% endblock %
|
||||
|
||||
<h2>Filter</h2>
|
||||
<h2>{% trans "Filter" %}</h2>
|
||||
<form action="{% url 'hourly-summary' %}" method="get">
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
@ -45,19 +45,19 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.to_date.errors %}<div class="alert alert-danger">{{ form.to_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.to_date.label_tag }}
|
||||
<strong>{% trans "to_date" %} </strong>
|
||||
{{ form.to_date }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="form-group">
|
||||
{{ form.include_obp_apps }} Include System Calls
|
||||
{{ form.include_obp_apps }} {% trans "Include System Calls" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Update filter</button>
|
||||
<button type="submit" class="btn btn-primary">{% trans "Update filter" %}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
@ -65,7 +65,7 @@
|
||||
<div class="tab-content">
|
||||
{% block tab_content %}
|
||||
<div class="tab-pane active">
|
||||
<h2>Period : From {{ from_date }} to {{ to_date }}</h2>
|
||||
<h2>{% trans "Period" %}: {% trans "From" %}{{ from_date }} {% trans "to" %} {{ to_date }}</h2>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
@ -73,68 +73,68 @@
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>API calls:</td>
|
||||
<td>{% trans "API calls" %}:</td>
|
||||
<td>{{ api_calls }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>API calls made using API Explorer:</td>
|
||||
<td>{% trans "API calls made using API Explorer" %}:</td>
|
||||
<td>{{ calls_by_api_explorer }} ({% widthratio calls_by_api_explorer api_calls 100 %} %)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Calls per minute:</td>
|
||||
<td>{% trans "Calls per minute" %}:</td>
|
||||
<td bgcolor="#FF0000">{%for item in calls_per_hour_list%}<li>{{item}}</li>{% endfor %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Calls per minute:</td>
|
||||
<td>{% trans "Calls per minute" %}:</td>
|
||||
<td bgcolor="#FF0000"><img src="data:image/png;base64, {{ per_hour_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average number of calls hour: </td>
|
||||
<td>{% trans "Average number of calls hour" %}: </td>
|
||||
<td>{{ average_calls_per_hour }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average response time (ms):</td>
|
||||
<td>{% trans "Average response time (ms)" %}:</td>
|
||||
<td>{{ average_response_time }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Median time from consumer registration to first API call:</td>
|
||||
<td>{% trans "Median time from consumer registration to first API call" %}:</td>
|
||||
<td>{{ median_time_to_first_api_call }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Apps with distinct names:</td>
|
||||
<td>{% trans "Apps with distinct names" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_app_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Apps with distinct developer email addresses:</td>
|
||||
<td>{% trans "Apps with distinct developer email addresses" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_developer_email }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Active Apps (at least one API call in the period):</td>
|
||||
<td>{% trans "Active Apps (at least one API call in the period)" %}:</td>
|
||||
<td>{%for item in active_apps_names%}{{item}}, {% endfor %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top APIs:</td>
|
||||
<td>{% trans "Top APIs" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_apis_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Warehouse APIs:</td>
|
||||
<td>{% trans "Top Warehouse APIs" %}:</td>
|
||||
<td>{%for element in top_warehouse_apis%} <p>{{ element.Implemented_by_partial_function }} : {{ element.count }}</p> {% endfor %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top apps using the data warehouse:</td>
|
||||
<td>{% trans "Top apps using the data warehouse" %}:</td>
|
||||
<td>{%for element in top_apps_using_warehouse%} <p>{{ element.app_name }} : {{ element.count }}</p> {% endfor %}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Users with role CanSearchWarehouse:</td>
|
||||
<td>{% trans "Users with role CanSearchWarehouse" %}:</td>
|
||||
<td>{% for key, value in user_email_cansearchwarehouse.items %} {{key}} ({{value}}), {% endfor %}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>CanSearchWarehouse users:</td>
|
||||
<td>{% trans "CanSearchWarehouse users" %}:</td>
|
||||
<td>{{number_of_users_with_cansearchwarehouse}}</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -1,26 +1,27 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / API Usage Report{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div id="metrics">
|
||||
<h1>API Usage Report</h1>
|
||||
<h2>API instance : {{ api_host_name }}</h2>
|
||||
<h1>{% trans "API Usage Report" %}</h1>
|
||||
<h2>{% trans "API instance" %}: {{ api_host_name }}</h2>
|
||||
|
||||
|
||||
|
||||
<div id="metrics-data">
|
||||
<ul class="nav nav-tabs">
|
||||
{% block nav_tabs %}
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">Year</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">Quarter</a></li>
|
||||
<li class="active"><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">Month</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">Week</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">Day</a></li>
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">{% trans "Year" %}</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">{% trans "Quarter" %}</a></li>
|
||||
<li class="active"><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">{% trans "Month" %}</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">{% trans "Week" %}</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">{% trans "Day" %}</a></li>
|
||||
<!--<li><a href="{% url 'hourly-summary' %}?{{ request.GET.urlencode }}">Hour</a></li>-->
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">Custom</a></li>
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">{% trans "Custom" %}</a></li>
|
||||
{% endblock nav_tabs %}
|
||||
</ul>
|
||||
|
||||
@ -34,7 +35,7 @@
|
||||
{{ form.media }} {# Form required JS and CSS #}
|
||||
{% endblock %}
|
||||
|
||||
<h2>Filter</h2>
|
||||
<h2>{% trans "Filter" %}</h2>
|
||||
<form action="{% url 'metrics-summary' %}" method="get">
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
@ -47,14 +48,14 @@
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
{% if form.to_date.errors %}<div class="alert alert-danger">{{ form.to_date.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.to_date.label_tag }}
|
||||
<strong>{% trans "to_date" %} </strong>
|
||||
{{ form.to_date }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="form-group">
|
||||
{{ form.include_obp_apps }} Include System Calls
|
||||
{{ form.include_obp_apps }} {% trans "Include System Calls" %}
|
||||
</div>
|
||||
{% if excluded_apps %}
|
||||
{{ excluded_apps }}
|
||||
@ -68,7 +69,7 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Update filter</button>
|
||||
<button type="submit" class="btn btn-primary">{% trans "Update filter" %}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
@ -76,7 +77,7 @@
|
||||
<div class="tab-content">
|
||||
{% block tab_content %}
|
||||
<div class="tab-pane active">
|
||||
<h2>Period : From {{ from_date }} to {{ to_date }}</h2>
|
||||
<h2>{% trans "Period" %}: {% trans "From" %} {{ from_date }} {% trans "to" %} {{ to_date }}</h2>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
@ -84,67 +85,67 @@
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total API calls:</td>
|
||||
<td>{% trans "Total API calls" %}:</td>
|
||||
<td>{{ api_calls }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>API calls made using API Explorer:</td>
|
||||
<td>{% trans "API calls made using API Explorer" %}:</td>
|
||||
<td>{{ calls_by_api_explorer }} ({% widthratio calls_by_api_explorer api_calls 100 %} %)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Calls per day:</td>
|
||||
<td>{% trans "Calls per day" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ per_day_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average number of calls per day: </td>
|
||||
<td>{% trans "Average number of calls per day" %}: </td>
|
||||
<td>{{ average_calls_per_day }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average response time (ms):</td>
|
||||
<td>{% trans "Average response time (ms)" %}:</td>
|
||||
<td>{{ average_response_time }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Median time from consumer registration to first API call:</td>
|
||||
<td>{% trans "Median time from consumer registration to first API call" %}:</td>
|
||||
<td>{{ median_time_to_first_api_call }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Apps with distinct names:</td>
|
||||
<td>{% trans "Apps with distinct names" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_app_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Distinct developer email addresses:</td>
|
||||
<td>{% trans "Distinct developer email addresses" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_developer_email }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Active Apps (at least one API call in the period):</td>
|
||||
<td>{% trans "Active Apps (at least one API call in the period)" %}:</td>
|
||||
<td>{%for item in active_apps_list%} <p>{{item.app_name}} ({{ item.developer_email }})</p> {% endfor %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 APIs:</td>
|
||||
<td>{% trans "Top 10 APIs" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_apis_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 Consumers:</td>
|
||||
<td>{% trans "Top 10 Consumers" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_consumers_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Warehouse APIs:</td>
|
||||
<td>{% trans "Top Warehouse APIs" %}:</td>
|
||||
<td>{% if top_warehouse_apis %}{%for element in top_warehouse_apis%} <p>{{ element.Implemented_by_partial_function }} : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Apps using data warehouse:</td>
|
||||
<td>{% trans "Top Apps using data warehouse" %}:</td>
|
||||
<td>{% if top_apps_using_warehouse %}{%for element in top_apps_using_warehouse%} <p>{{ element.app_name }} ({{ element.developer_email }}) : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total number of CanSearchWarehouse users:</td>
|
||||
<td>{% trans "Total number of CanSearchWarehouse users" %}:</td>
|
||||
<td>{{number_of_users_with_cansearchwarehouse}}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Users with role CanSearchWarehouse:</td>
|
||||
<td>{% trans "Users with role CanSearchWarehouse" %}:</td>
|
||||
<td>{% if user_email_cansearchwarehouse %}{% for key, value in user_email_cansearchwarehouse.items %} {{key}}, {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -1,24 +1,25 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / API Usage Report{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div id="metrics">
|
||||
<h1>API Usage Report</h1>
|
||||
<h2>API instance : {{ api_host_name }}</h2>
|
||||
<h1>{% trans "API Usage Report" %}</h1>
|
||||
<h2>{% trans "API instance : {{ api_host_name }}</h2>
|
||||
|
||||
<div id="metrics-data">
|
||||
<ul class="nav nav-tabs">
|
||||
{% block nav_tabs %}
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">Year</a></li>
|
||||
<li class="active"><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">Quarter</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">Month</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">Week</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">Day</a></li>
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">{% trans "Year" %}</a></li>
|
||||
<li class="active"><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">{% trans "Quarter" %}</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">{% trans "Month" %}</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">{% trans "Week" %}</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">{% trans "Day" %}</a></li>
|
||||
<!--<li><a href="{% url 'hourly-summary' %}?{{ request.GET.urlencode }}">Hour</a></li>-->
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">Custom</a></li>
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">{% trans "Custom" %}</a></li>
|
||||
{% endblock nav_tabs %}
|
||||
</ul>
|
||||
|
||||
@ -32,7 +33,7 @@
|
||||
{{ form.media }} {# Form required JS and CSS #}
|
||||
{% endblock %}
|
||||
|
||||
<h2>Filter</h2>
|
||||
<h2>{% trans "Filter" %}</h2>
|
||||
<form action="{% url 'quarterly-summary' %}" method="get">
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
@ -52,12 +53,12 @@
|
||||
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="form-group">
|
||||
{{ form.include_obp_apps }} Include System Calls
|
||||
{{ form.include_obp_apps }} {% trans "Include System Calls" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Update filter</button>
|
||||
<button type="submit" class="btn btn-primary">{% trans "Update filter" %}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
@ -65,7 +66,7 @@
|
||||
<div class="tab-content">
|
||||
{% block tab_content %}
|
||||
<div class="tab-pane active">
|
||||
<h2>Period : From {{ from_date }} to {{ to_date }}</h2>
|
||||
<h2>{% trans "Period" %}:{% trans "From" %} {{ from_date }} {% trans "to" %} {{ to_date }}</h2>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
@ -73,72 +74,72 @@
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total API calls:</td>
|
||||
<td>{% trans "Total API calls" %}:</td>
|
||||
<td>{{ api_calls }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>API calls made using API Explorer:</td>
|
||||
<td>{% trans "API calls made using API Explorer" %}:</td>
|
||||
<td>{{ calls_by_api_explorer }} ({% widthratio calls_by_api_explorer api_calls 100 %} %)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Calls per month:</td>
|
||||
<td>{% trans "Calls per month" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ per_month_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
{# <tr>#}
|
||||
{# <td>Calls per day:</td>#}
|
||||
{# <td>{% trans "Calls per day" %}:</td>#}
|
||||
{# <td><img src="data:image/png;base64, {{ per_day_chart }}" alt="somealt" /></td>#}
|
||||
{# </tr>#}
|
||||
<tr>
|
||||
<td>Average number of calls per day: </td>
|
||||
<td>{% trans "Average number of calls per day" %}: </td>
|
||||
<td>{{ average_calls_per_day }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average response time (ms):</td>
|
||||
<td>{% trans "Average response time (ms)" %}:</td>
|
||||
<td>{{ average_response_time }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Median time from consumer registration to first API call:</td>
|
||||
<td>{% trans "Median time from consumer registration to first API call" %}:</td>
|
||||
<td>{{ median_time_to_first_api_call }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Apps with distinct names:</td>
|
||||
<td>{% trans "Apps with distinct names" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_app_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Apps with distinct developer email addresses:</td>
|
||||
<td>{% trans "Apps with distinct developer email addresses" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_developer_email }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Active Apps (at least one API call in the period):</td>
|
||||
<td>{% trans "Active Apps (at least one API call in the period)" %}:</td>
|
||||
<td>{%for item in active_apps_list%} <p>{{item.app_name}} ({{ item.developer_email }})</p> {% endfor %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 APIs:</td>
|
||||
<td>{% trans "Top 10 APIs" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_apis_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 Consumers:</td>
|
||||
<td>{% trans "Top 10 Consumers" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_consumers_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Warehouse APIs:</td>
|
||||
<td>{% trans "Top Warehouse APIs" %}:</td>
|
||||
<td>{% if top_warehouse_apis %}{%for element in top_warehouse_apis%} <p>{{ element.Implemented_by_partial_function }} : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Apps using data warehouse:</td>
|
||||
<td>{% trans "Top Apps using data warehouse" %}:</td>
|
||||
<td>{% if top_apps_using_warehouse %}{%for element in top_apps_using_warehouse%} <p>{{ element.app_name }} ({{ element.developer_email }}) : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total number of CanSearchWarehouse users:</td>
|
||||
<td>{% trans "Total number of CanSearchWarehouse users" %}:</td>
|
||||
<td>{{number_of_users_with_cansearchwarehouse}}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Users with role CanSearchWarehouse:</td>
|
||||
<td>{% trans "Users with role CanSearchWarehouse" %}:</td>
|
||||
<td>{% if user_email_cansearchwarehouse %}{% for key, value in user_email_cansearchwarehouse.items %} {{key}}, {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -1,26 +1,27 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / API Usage Report{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div id="metrics">
|
||||
<h1>API Usage Report</h1>
|
||||
<h2>API instance : {{ api_host_name }}</h2>
|
||||
<h1>{% trans "API Usage Report" %}</h1>
|
||||
<h2>{% trans "API instance" %}: {{ api_host_name }}</h2>
|
||||
|
||||
|
||||
|
||||
<div id="metrics-data">
|
||||
<ul class="nav nav-tabs">
|
||||
{% block nav_tabs %}
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">Year</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">Quarter</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">Month</a></li>
|
||||
<li class="active"><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">Week</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">Day</a></li>
|
||||
<li><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">{% trans "Year" %}</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">{% trans "Quarter" %}</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">{% trans "Month" %}</a></li>
|
||||
<li class="active"><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">{% trans "Week" %}</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">{% trans "Day" %}</a></li>
|
||||
<!--<li><a href="{% url 'hourly-summary' %}?{{ request.GET.urlencode }}">Hour</a></li>-->
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">Custom</a></li>
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">{% trans "Custom" %}</a></li>
|
||||
{% endblock nav_tabs %}
|
||||
</ul>
|
||||
|
||||
@ -54,12 +55,12 @@
|
||||
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="form-group">
|
||||
{{ form.include_obp_apps }} Include System Calls
|
||||
{{ form.include_obp_apps }} {% trans "Include System Calls" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Update filter</button>
|
||||
<button type="submit" class="btn btn-primary">{% trans "Update filter" %}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
@ -67,7 +68,7 @@
|
||||
<div class="tab-content">
|
||||
{% block tab_content %}
|
||||
<div class="tab-pane active">
|
||||
<h2>Period : From {{ from_date }} to {{ to_date }}</h2>
|
||||
<h2>{% trans "Period" %} : {% trans "From" %} {{ from_date }} {% trans "to" %} {{ to_date }}</h2>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
@ -75,68 +76,68 @@
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total API calls:</td>
|
||||
<td>{% trans "Total API calls" %}:</td>
|
||||
<td>{{ api_calls }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>API calls made using API Explorer:</td>
|
||||
<td>{% trans "API calls made using API Explorer" %}:</td>
|
||||
<td>{{ calls_by_api_explorer }} ({% widthratio calls_by_api_explorer api_calls 100 %} %)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Calls per day:</td>
|
||||
<td>{% trans "Calls per day" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ per_day_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average number of calls per day: </td>
|
||||
<td>{% trans "Average number of calls per day" %}: </td>
|
||||
<td>{{ average_calls_per_day }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average response time (ms):</td>
|
||||
<td>{% trans "Average response time (ms)" %}:</td>
|
||||
<td>{{ average_response_time }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Median time from consumer registration to first API call:</td>
|
||||
<td>{% trans "Median time from consumer registration to first API call" %}:</td>
|
||||
<td>{{ median_time_to_first_api_call }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Apps with distinct names:</td>
|
||||
<td>{% trans "Apps with distinct names" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_app_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Apps with distinct developer email addresses:</td>
|
||||
<td>{% trans "Apps with distinct developer email addresses" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_developer_email }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Active Apps (at least one API call in the period):</td>
|
||||
<td>{% trans "Active Apps (at least one API call in the period)" %}:</td>
|
||||
<td>{%for item in active_apps_list%} <p>{{item.app_name}} ({{ item.developer_email }})</p> {% endfor %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 APIs:</td>
|
||||
<td>{% trans "Top 10 APIs" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_apis_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 Consumers:</td>
|
||||
<td>{% trans "Top 10 Consumers" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_consumers_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Warehouse APIs:</td>
|
||||
<td>{% trans "Top Warehouse APIs" %}:</td>
|
||||
<td>{% if top_warehouse_apis %}{%for element in top_warehouse_apis%} <p>{{ element.Implemented_by_partial_function }} : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Apps using data warehouse:</td>
|
||||
<td>{% trans "Top Apps using data warehouse" %}:</td>
|
||||
<td>{% if top_apps_using_warehouse %}{%for element in top_apps_using_warehouse%} <p>{{ element.app_name }} ({{ element.developer_email }}) : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total number of CanSearchWarehouse users:</td>
|
||||
<td>{% trans "Total number of CanSearchWarehouse users" %}:</td>
|
||||
<td>{{number_of_users_with_cansearchwarehouse}}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Users with role CanSearchWarehouse:</td>
|
||||
<td>{% trans "Users with role CanSearchWarehouse" %}:</td>
|
||||
<td>{% if user_email_cansearchwarehouse %}{% for key, value in user_email_cansearchwarehouse.items %} {{key}}, {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -1,26 +1,27 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_title %}{{ block.super }} / API Usage Report{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div id="metrics">
|
||||
<h1>API Usage Report</h1>
|
||||
<h2>API instance : {{ api_host_name }}</h2>
|
||||
<h1>{% trans "API Usage Report" %}</h1>
|
||||
<h2>{% trans "API instance" %}: {{ api_host_name }}</h2>
|
||||
|
||||
|
||||
|
||||
<div id="metrics-data">
|
||||
<ul class="nav nav-tabs">
|
||||
{% block nav_tabs %}
|
||||
<li class="active"><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">Year</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">Quarter</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">Month</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">Week</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">Day</a></li>
|
||||
<li class="active"><a href="{% url 'yearly-summary' %}?{{ request.GET.urlencode }}">{% trans "Year" %}</a></li>
|
||||
<li><a href="{% url 'quarterly-summary' %}?{{ request.GET.urlencode }}">{% trans "Quarter" %}</a></li>
|
||||
<li><a href="{% url 'metrics-summary' %}?{{ request.GET.urlencode }}">{% trans "Month" %}</a></li>
|
||||
<li><a href="{% url 'weekly-summary' %}?{{ request.GET.urlencode }}">{% trans "Week" %}</a></li>
|
||||
<li><a href="{% url 'daily-summary' %}?{{ request.GET.urlencode }}">{% trans "Day" %}</a></li>
|
||||
<!--<li><a href="{% url 'hourly-summary' %}?{{ request.GET.urlencode }}">Hour</a></li>-->
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">Custom</a></li>
|
||||
<li><a href="{% url 'custom-summary' %}?{{ request.GET.urlencode }}">{% trans "Custom" %}</a></li>
|
||||
{% endblock nav_tabs %}
|
||||
</ul>
|
||||
|
||||
@ -34,7 +35,7 @@
|
||||
{{ form.media }} {# Form required JS and CSS #}
|
||||
{% endblock %}
|
||||
|
||||
<h2>Filter</h2>
|
||||
<h2>{% trans "Filter" %}</h2>
|
||||
<form action="{% url 'yearly-summary' %}" method="get">
|
||||
{% if form.non_field_errors %}
|
||||
<div class="alert alert-danger">
|
||||
@ -54,12 +55,12 @@
|
||||
|
||||
<div class="col-xs-6 col-sm-3">
|
||||
<div class="form-group">
|
||||
{{ form.include_obp_apps }} Include System Calls
|
||||
{{ form.include_obp_apps }} {% trans "Include System Calls" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Update filter</button>
|
||||
<button type="submit" class="btn btn-primary">{% trans "Update filter" %}</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
@ -67,7 +68,7 @@
|
||||
<div class="tab-content">
|
||||
{% block tab_content %}
|
||||
<div class="tab-pane active">
|
||||
<h2>Period : From {{ from_date }} to {{ to_date }}</h2>
|
||||
<h2>{% trans "Period" %} : {% trans "From" %} {{ from_date }} {% trans "to" %} {{ to_date }}</h2>
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
@ -75,68 +76,68 @@
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total API calls:</td>
|
||||
<td>{% trans "Total API calls" %}:</td>
|
||||
<td>{{ api_calls }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>API calls made using API Explorer:</td>
|
||||
<td>{% trans "API calls made using API Explorer" %}:</td>
|
||||
<td>{{ calls_by_api_explorer }} ({% widthratio calls_by_api_explorer api_calls 100 %} %)</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Calls per month:</td>
|
||||
<td>{% trans "Calls per month" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ per_month_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average number of calls per day: </td>
|
||||
<td>{% trans "Average number of calls per day" %}: </td>
|
||||
<td>{{ average_calls_per_day }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Average response time (ms):</td>
|
||||
<td>{% trans "Average response time (ms)" %}:</td>
|
||||
<td>{{ average_response_time }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Median time from consumer registration to first API call:</td>
|
||||
<td>{% trans "Median time from consumer registration to first API call" %}:</td>
|
||||
<td>{{ median_time_to_first_api_call }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Apps with distinct names:</td>
|
||||
<td>{% trans "Apps with distinct names" %}:</td>
|
||||
<td>{{ number_of_apps_with_unique_app_name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Apps with distinct developer email addresses:</td>
|
||||
<td>{% trans "Apps with distinct developer email addresses:</td>
|
||||
<td>{{ number_of_apps_with_unique_developer_email }}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Active Apps (at least one API call in the period):</td>
|
||||
<td>{% trans "Active Apps (at least one API call in the period)" %}:</td>
|
||||
<td>{%for item in active_apps_list%} <p>{{item.app_name}} ({{ item.developer_email }})</p> {% endfor %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 APIs:</td>
|
||||
<td>{% trans "Top 10 APIs" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_apis_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top 10 Consumers:</td>
|
||||
<td>{% trans "Top 10 Consumers" %}:</td>
|
||||
<td><img src="data:image/png;base64, {{ top_consumers_bar_chart }}" alt="somealt" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Warehouse APIs:</td>
|
||||
<td>{% trans "Top Warehouse APIs" %}:</td>
|
||||
<td>{% if top_warehouse_apis %}{%for element in top_warehouse_apis%} <p>{{ element.Implemented_by_partial_function }} : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Top Apps using data warehouse:</td>
|
||||
<td>{% trans "Top Apps using data warehouse" %}:</td>
|
||||
<td>{% if top_apps_using_warehouse %}{%for element in top_apps_using_warehouse%} <p>{{ element.app_name }} ({{ element.developer_email }}) : {{ element.count }}</p> {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Total number of CanSearchWarehouse users:</td>
|
||||
<td>{% trans "Total number of CanSearchWarehouse users" %}:</td>
|
||||
<td>{{number_of_users_with_cansearchwarehouse}}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Users with role CanSearchWarehouse:</td>
|
||||
<td>{% trans "Users with role CanSearchWarehouse" %}:</td>
|
||||
<td>{% if user_email_cansearchwarehouse %}{% for key, value in user_email_cansearchwarehouse.items %} {{key}}, {% endfor %}{% else %} <p>N/A</p>{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -1,39 +1,39 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% load i18n %}
|
||||
{% block page_title %}{{ block.super }} / {{ apiuser.username }}{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
<div id="users-detail">
|
||||
<h1>User {{ apiuser.username }}</h1>
|
||||
<h1>{% trans "User" %} {{ apiuser.username }}</h1>
|
||||
|
||||
<div id="users-detail-user_id">
|
||||
<strong>User ID</strong><br />
|
||||
<strong>{% trans "User ID" %}</strong><br />
|
||||
<span>{{ apiuser.user_id }}</span>
|
||||
</div>
|
||||
|
||||
<div id="users-detail-email">
|
||||
<strong>Email</strong><br />
|
||||
<strong>{% trans "Email" %}</strong><br />
|
||||
<span>{{ apiuser.email }}</span>
|
||||
</div>
|
||||
|
||||
<div id="users-detail-provider">
|
||||
<strong>Provider</strong><br />
|
||||
<strong>{% trans "Provider" %}</strong><br />
|
||||
<span>{{ apiuser.provider }}</span>
|
||||
</div>
|
||||
|
||||
<div id="users-detail-provider_id">
|
||||
<strong>Provider ID</strong><br />
|
||||
<strong>{% trans "Provider ID" %}</strong><br />
|
||||
<span>{{ apiuser.provider_id }}</span>
|
||||
</div>
|
||||
|
||||
<div id="users-detail-deleted">
|
||||
<strong>Deleted</strong><br />
|
||||
<strong>{% trans "Deleted" %}</strong><br />
|
||||
<span>{{ apiuser.is_deleted }}</span>
|
||||
</div>
|
||||
|
||||
<div id="users-detail-locked">
|
||||
<strong>Locked</strong><br />
|
||||
<strong>{% trans "Locked" %}</strong><br />
|
||||
<span>{{ apiuser.is_locked }}</span>
|
||||
</div>
|
||||
|
||||
@ -44,11 +44,11 @@
|
||||
{% if apiuser.is_deleted %}
|
||||
|
||||
{% else %}
|
||||
<button type="submit" class="btn btn-primary btn-red" value ="Delete" name ="Delete">Delete User</button>
|
||||
<button type="submit" class="btn btn-primary btn-red" value ="Delete" name ="Delete">{% trans "Delete User" %}</button>
|
||||
{% endif %}
|
||||
|
||||
{% if apiuser.is_locked %}
|
||||
<button type="submit" class="btn btn-primary btn-green" value ="Unlock" name ="Unlock">Unlock User</button>
|
||||
<button type="submit" class="btn btn-primary btn-green" value ="Unlock" name ="Unlock">{% trans "Unlock User" %}</button>
|
||||
{% else %}
|
||||
|
||||
{% endif %}
|
||||
@ -59,20 +59,20 @@
|
||||
|
||||
{% if apiuser.user_id %}
|
||||
<div id="users-detail-entitlements">
|
||||
<h2>Add Entitlement</h2>
|
||||
<h2>{% trans "Add Entitlement" %}</h2>
|
||||
<form class="form" action="" method="post">
|
||||
{% csrf_token %}
|
||||
{{ form.user_id }}
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<div class="form-group">
|
||||
{{ form.role_name.label_tag}}
|
||||
<strong>{% trans "Role name" %}</strong>
|
||||
{{ form.role_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-8">
|
||||
<div class="form-group">
|
||||
{{ form.bank_id.label_tag }}
|
||||
<strong>{% trans "bank_id" %}</strong>
|
||||
{{ form.bank_id }}
|
||||
</div>
|
||||
</div>
|
||||
@ -80,24 +80,24 @@
|
||||
<div class="row">
|
||||
<div class="col-xs-12 hidden-sm hidden-md hidden-lg">
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-green form-control">Add</button>
|
||||
<button type="submit" class="btn btn-primary btn-green form-control">{% trans "Add" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 hidden-xs">
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-green">Add</button>
|
||||
<button type="submit" class="btn btn-primary btn-green">{% trans "Add" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h2>Entitlements</h2>
|
||||
<h2>{% trans "Entitlements" %}</h2>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped" aria-describedby="uses table">
|
||||
<thead>
|
||||
<th scope="col">Role name</th>
|
||||
<th scope="col">Bank Id</th>
|
||||
<th scope="col">Action</th>
|
||||
<th scope="col">{% trans "Role name" %}</th>
|
||||
<th scope="col">{% trans "Bank Id" %}</th>
|
||||
<th scope="col">{% trans "Action" %}</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for entitlement in apiuser.entitlements.list %}
|
||||
@ -111,7 +111,7 @@
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="next" value="{{ request.path }}" />
|
||||
<input type="hidden" name="role_name" value="{{ entitlement.role_name }}" />
|
||||
<button type="submit" class="btn btn-primary btn-red">Delete</button>
|
||||
<button type="submit" class="btn btn-primary btn-red">{% trans "Delete" %}</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
</td>
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
<a href="?locked_status=active&role_name={{ request.GET.role_name }}" class="btn btn-default{% if locked_status == "active" %} active{% endif %}">Active</a>
|
||||
<a href="?locked_status=locked&role_name={{ request.GET.role_name }}" class="btn btn-default{% if locked_status == "locked" %} active{% endif %}">Locked</a>
|
||||
<a href="?locked_status=all&role_name={{ request.GET.role_name }}" class="btn btn-default{% if locked_status == "all" %} active{% endif %}">All</a>
|
||||
{% load i18n %}
|
||||
<a href="?locked_status=active&role_name={{ request.GET.role_name }}" class="btn btn-default{% if locked_status == "active" %} active{% endif %}">{% trans "Active" %}</a>
|
||||
<a href="?locked_status=locked&role_name={{ request.GET.role_name }}" class="btn btn-default{% if locked_status == "locked" %} active{% endif %}">{% trans "Locked" %}</a>
|
||||
<a href="?locked_status=all&role_name={{ request.GET.role_name }}" class="btn btn-default{% if locked_status == "all" %} active{% endif %}">{% trans "All" %}</a>
|
||||
@ -1,10 +1,11 @@
|
||||
{% load i18n %}
|
||||
<form class="form-inline" method="get">
|
||||
<div class="form-group">
|
||||
<label for="offset">Offset:</label>
|
||||
<label for="offset">{% trans "Offset" %}:</label>
|
||||
<input type="number" class="form-control" name="offset" id="offset" placeholder="0" value="{{ offset }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="limit">Limit:</label>
|
||||
<label for="limit">{% trans "Limit" %}:</label>
|
||||
<input type="number" class="form-control" name="limit" id="limit" placeholder="50" value="{{ limit }}">
|
||||
</div>
|
||||
<input type="submit" class="btn btn-default" value ="Refresh" onclick="javascript: form.action='';"></input>
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
{% load i18n %}
|
||||
<div id="filter-role" class="filter">
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
{% if active_role_name_all %}All Roles{% else %}{{ active_role_name }}{% endif %} <span class="caret"></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="?email={{ active_email }}&username={{ active_username }}&locked_status={{ active_locked_status }}&role_name=All">All Roles</a></li>
|
||||
<li><a href="?email={{ active_email }}&username={{ active_username }}&locked_status={{ active_locked_status }}&role_name=All">{% trans "All Roles" %}</a></li>
|
||||
<li role="separator" class="divider"></li>
|
||||
{% for role_name in role_names %}
|
||||
<li><a href="?email={{ active_email }}&username={{ active_username }}&role_name={{ role_name }}&locked_status={{ active_locked_status }}">{{ role_name }}</a></li>
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% load i18n %}
|
||||
{% block page_title %}{{ block.super }} / Users{% endblock page_title %}
|
||||
|
||||
{% block content %}
|
||||
<div id="users">
|
||||
<h1>Users</h1>
|
||||
<h1>{% trans "Users" %}</h1>
|
||||
|
||||
<div id="users-filters">
|
||||
<h4>Filters</h4>
|
||||
<h4>{% trans "Filters" %}</h4>
|
||||
<div class="hidden-xs">
|
||||
{% include "users/includes/filter_role.html" %}
|
||||
{% include "users/includes/filter_email.html" %}
|
||||
@ -41,23 +41,23 @@
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
|
||||
<h4>Pagination</h4>
|
||||
<h4>{% trans "Pagination" %}</h4>
|
||||
{% include "users/includes/filter_pagination.html" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h4>Statistics</h4>
|
||||
<h4>{% trans "Statistics" %}</h4>
|
||||
<ul id="statistics">
|
||||
<li>Total number of users: {{ statistics.users_num }}
|
||||
<li>{% trans "Total number of users" %}: {{ statistics.users_num }}
|
||||
</ul>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover tablesorter" id="users-list" aria-describedby="users list">
|
||||
<thead>
|
||||
<th scope="col">User Id</th>
|
||||
<th scope="col">Username</th>
|
||||
<th scope="col">Email</th>
|
||||
<th scope="col">Action</th>
|
||||
<th scope="col">{% trans "User Id" %}</th>
|
||||
<th scope="col">{% trans "Username" %}</th>
|
||||
<th scope="col">{% trans "Email" %}</th>
|
||||
<th scope="col">{% trans "Action" %}</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for user in users %}
|
||||
@ -66,7 +66,7 @@
|
||||
<td><a href="{{ url_users_detail }}">{{ user.user_id }}</td>
|
||||
<td>{{ user.username }}</td>
|
||||
<td>{{ user.email }}</td>
|
||||
<td><a href="{{ url_users_detail }}" class="btn btn-primary">View</a></td>
|
||||
<td><a href="{{ url_users_detail }}" class="btn btn-primary">{% trans "View" %}</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% load i18n %}
|
||||
{% block page_title %}{{ block.super }} / Users{% endblock page_title %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<div id="user-invitation">
|
||||
<h1>Invite Developer</h1>
|
||||
<h1>{% trans "Invite Developer" %}</h1>
|
||||
|
||||
<form action="{% url 'my-user-invitation' %}" method="post">
|
||||
{% csrf_token %}
|
||||
@ -20,21 +19,21 @@
|
||||
<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 }}
|
||||
<strong>{% trans "Bank Id" %} </strong>
|
||||
{{ form.bank_id }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.first_name.errors %}<div class="alert alert-danger">{{ form.first_name.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.first_name.label_tag }}
|
||||
<strong>{% trans "First Name" %} </strong>
|
||||
{{ form.first_name }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.last_name.errors %}<div class="alert alert-danger">{{ form.last_name.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.last_name.label_tag }}
|
||||
<strong>{% trans "Last Name" %} </strong>
|
||||
{{ form.last_name }}
|
||||
</div>
|
||||
</div>
|
||||
@ -43,21 +42,21 @@
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.email.errors %}<div class="alert alert-danger">{{ form.email.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.email.label_tag }}
|
||||
<strong>{% trans "email" %} </strong>
|
||||
{{ form.email }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.company.errors %}<div class="alert alert-danger">{{ form.company.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.company.label_tag }}
|
||||
<strong>{% trans "company" %} </strong>
|
||||
{{ form.company }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
{% if form.country.errors %}<div class="alert alert-danger">{{ form.country.errors }}</div>{% endif %}
|
||||
<div class="form-group">
|
||||
{{ form.country.label_tag }}
|
||||
<strong>{% trans "country" %} </strong>
|
||||
{{ form.country }}
|
||||
</div>
|
||||
</div>
|
||||
@ -67,12 +66,12 @@
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover tablesorter" id="invitation-list" aria-describedby="invitation list">
|
||||
<thead>
|
||||
<th scope="col">First Name</th>
|
||||
<th scope="col">Last Name</th>
|
||||
<th scope="col">Email</th>
|
||||
<th scope="col">company</th>
|
||||
<th scope="col">country</th>
|
||||
<th scope="col">status</th>
|
||||
<th scope="col">{% trans "First Name" %}</th>
|
||||
<th scope="col">{% trans "Last Name" %}</th>
|
||||
<th scope="col">{% trans "Email" %}</th>
|
||||
<th scope="col">{% trans "company" %}</th>
|
||||
<th scope="col">{% trans "country" %}</th>
|
||||
<th scope="col">{% trans "status" %}</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for invitation in invitations %}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user