diff --git a/apimanager/atmlist/forms.py b/apimanager/atmlist/forms.py
index 348195a..e69de29 100644
--- a/apimanager/atmlist/forms.py
+++ b/apimanager/atmlist/forms.py
@@ -1,346 +0,0 @@
-"""
-Forms of ATMs app
-"""
-
-from django import forms
-from django.utils.translation import ugettext_lazy as _
-
-import random
-
-
-class CreateAtmForm(forms.Form):
-
- atm_id = forms.CharField(
- label=_('ATM Id'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'atm-id-{}'.format(random.randint(1,1000)),
- 'class': 'form-control',
- }
- ),
- initial='atm-id-{}'.format(random.randint(1,1000)),
- )
-
- bank_id = forms.ChoiceField(
- label=_('Bank Id'),
- widget=forms.Select(
- attrs={
- 'class': 'form-control',
- }
- ),
- choices=[],
- )
-
- name = forms.CharField(
- label=_('Name'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('The name of the ATM'),
- 'class': 'form-control',
- }
- ),
- required=True
- )
-
- address = forms.CharField(
- label=_('Address'),
- widget=forms.Textarea(
- attrs={
- 'class': 'form-control',
- }
- ),
- required=False
- )
-
- location_latitude = forms.FloatField(
- label=_('Latitude'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': " ",
- 'class': 'form-control',
- }
- ),
- required=False,
- )
-
- location_longitude = forms.FloatField(
- label=_('Longitude'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': " ",
- 'class': 'form-control',
- }
- ),
- required=False,
- )
-
- meta_license_id = forms.CharField(
- label=_('Meta License Id'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'PDDL',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
-
- meta_license_name = forms.CharField(
- label=_('Meta License Name'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'Open Data Commons Public Domain Dedication and License',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
-
- lobby = forms.CharField(
- label=_('Opening Hours'),
- widget=forms.Textarea(
- attrs={
- 'placeholder': 'None',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- monday = forms.CharField(
- label=_('Monday'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'None',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- tuesday = forms.CharField(
- label=_('Tuesday'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'None',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- wednesday = forms.CharField(
- label=_('Wednesday'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'None',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- thursday = forms.CharField(
- label=_('Thursday'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'None',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- friday = forms.CharField(
- label=_('Friday'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'None',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- saturday = forms.CharField(
- label=_('Saturday'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'None',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- sunday = forms.CharField(
- label=_('Sunday'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'None',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- is_accessible = forms.ChoiceField(
- label=_('Is Accessible'),
- widget=forms.Select(
- attrs={
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- located_at = forms.CharField(
- label=_('ATM location'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': 'OBP',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- more_info = forms.CharField(
- label=_('More information'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('short walk to the lake from here'),
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- has_deposit_capability = forms.ChoiceField(
- label=_('Deposit Capabilities'),
- widget=forms.Select(
- attrs={
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- supported_languages = forms.ChoiceField(
- label=_('Supported Languages'),
- widget=forms.Select(
- attrs={
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- services = forms.CharField(
- label=_('Services'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('Service store'),
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- accessibility_features = forms.CharField(
- label=_('Accessible Features'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('wheelchair, atm usuable by the visually impaired'),
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- supported_currencies = forms.ChoiceField(
- label=_('Supported Currencies'),
- widget=forms.Select(
- attrs={
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- notes = forms.ChoiceField(
- label=_('Write Notes'),
- widget=forms.Select(
- attrs={
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- location_categories = forms.ChoiceField(
- label=_('Write location Category'),
- widget=forms.Select(
- attrs={
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- minimum_withdrawal = forms.CharField(
- label=_('Minimum Withdrawal'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': '5',
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- branch_identification = forms.CharField(
- label=_('Branch Identification'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('Enter your Branch Identification'),
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- site_identification = forms.CharField(
- label=_('Site Identification'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('Enter your Site Identification'),
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- site_name = forms.CharField(
- label=_('Site Name'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('Enter your Site Name '),
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- cash_withdrawal_national_fee = forms.CharField(
- label=_('Cash Withdrawal National fee'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('Cash withdrawal national fee'),
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- cash_withdrawal_international_fee = forms.CharField(
- label=_('Cash Withdrawal international fee'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('Cash withdrawal international fee'),
- 'class': 'form-control',
- }
- ),
- required=False,
- )
- balance_inquiry_fee = forms.CharField(
- label=_('Balance Inquiry Fee'),
- widget=forms.TextInput(
- attrs={
- 'placeholder': _('Balance Inquiry Fee'),
- 'class': 'form-control',
- }
- ),
- required=False,
- )
-
- def __init__(self, *args, **kwargs):
- kwargs.setdefault('label_suffix', '')
- super(CreateAtmForm, self).__init__(*args, **kwargs)
diff --git a/apimanager/atms/static/atms/css/atms.css b/apimanager/atms/static/atms/css/atms.css
index 587b75c..0718557 100644
--- a/apimanager/atms/static/atms/css/atms.css
+++ b/apimanager/atms/static/atms/css/atms.css
@@ -1,4 +1,4 @@
-#atms_list div {
+#atms div {
margin: 5px 0;
}
diff --git a/apimanager/atms/views.py b/apimanager/atms/views.py
index 9dc2f58..7b2fa78 100644
--- a/apimanager/atms/views.py
+++ b/apimanager/atms/views.py
@@ -20,7 +20,7 @@ class IndexAtmsView(LoginRequiredMixin, FormView):
"""Index view for ATMs"""
template_name = "atms/index.html"
form_class = CreateAtmForm
- success_url = reverse_lazy('atms_list')
+ success_url = reverse_lazy('atms_create')
def dispatch(self, request, *args, **kwargs):
self.api = API(request.session.get('obp'))
diff --git a/apimanager/base/templates/base.html b/apimanager/base/templates/base.html
index a35c1ca..4a29508 100644
--- a/apimanager/base/templates/base.html
+++ b/apimanager/base/templates/base.html
@@ -30,7 +30,7 @@
-
+
-

- {% trans "Home" %}
{% url "consumers-index" as consumers_index_url %}
diff --git a/apimanager/productlist/__init__.py b/apimanager/productlist/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/apimanager/productlist/admin.py b/apimanager/productlist/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/apimanager/productlist/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/apimanager/productlist/apps.py b/apimanager/productlist/apps.py
new file mode 100644
index 0000000..2c7234f
--- /dev/null
+++ b/apimanager/productlist/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class ProductsConfig(AppConfig):
+ name = 'products_list'
diff --git a/apimanager/productlist/forms.py b/apimanager/productlist/forms.py
new file mode 100644
index 0000000..348195a
--- /dev/null
+++ b/apimanager/productlist/forms.py
@@ -0,0 +1,346 @@
+"""
+Forms of ATMs app
+"""
+
+from django import forms
+from django.utils.translation import ugettext_lazy as _
+
+import random
+
+
+class CreateAtmForm(forms.Form):
+
+ atm_id = forms.CharField(
+ label=_('ATM Id'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'atm-id-{}'.format(random.randint(1,1000)),
+ 'class': 'form-control',
+ }
+ ),
+ initial='atm-id-{}'.format(random.randint(1,1000)),
+ )
+
+ bank_id = forms.ChoiceField(
+ label=_('Bank Id'),
+ widget=forms.Select(
+ attrs={
+ 'class': 'form-control',
+ }
+ ),
+ choices=[],
+ )
+
+ name = forms.CharField(
+ label=_('Name'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('The name of the ATM'),
+ 'class': 'form-control',
+ }
+ ),
+ required=True
+ )
+
+ address = forms.CharField(
+ label=_('Address'),
+ widget=forms.Textarea(
+ attrs={
+ 'class': 'form-control',
+ }
+ ),
+ required=False
+ )
+
+ location_latitude = forms.FloatField(
+ label=_('Latitude'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': " ",
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+
+ location_longitude = forms.FloatField(
+ label=_('Longitude'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': " ",
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+
+ meta_license_id = forms.CharField(
+ label=_('Meta License Id'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'PDDL',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+
+ meta_license_name = forms.CharField(
+ label=_('Meta License Name'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'Open Data Commons Public Domain Dedication and License',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+
+ lobby = forms.CharField(
+ label=_('Opening Hours'),
+ widget=forms.Textarea(
+ attrs={
+ 'placeholder': 'None',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ monday = forms.CharField(
+ label=_('Monday'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'None',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ tuesday = forms.CharField(
+ label=_('Tuesday'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'None',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ wednesday = forms.CharField(
+ label=_('Wednesday'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'None',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ thursday = forms.CharField(
+ label=_('Thursday'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'None',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ friday = forms.CharField(
+ label=_('Friday'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'None',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ saturday = forms.CharField(
+ label=_('Saturday'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'None',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ sunday = forms.CharField(
+ label=_('Sunday'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'None',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ is_accessible = forms.ChoiceField(
+ label=_('Is Accessible'),
+ widget=forms.Select(
+ attrs={
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ located_at = forms.CharField(
+ label=_('ATM location'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': 'OBP',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ more_info = forms.CharField(
+ label=_('More information'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('short walk to the lake from here'),
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ has_deposit_capability = forms.ChoiceField(
+ label=_('Deposit Capabilities'),
+ widget=forms.Select(
+ attrs={
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ supported_languages = forms.ChoiceField(
+ label=_('Supported Languages'),
+ widget=forms.Select(
+ attrs={
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ services = forms.CharField(
+ label=_('Services'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('Service store'),
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ accessibility_features = forms.CharField(
+ label=_('Accessible Features'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('wheelchair, atm usuable by the visually impaired'),
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ supported_currencies = forms.ChoiceField(
+ label=_('Supported Currencies'),
+ widget=forms.Select(
+ attrs={
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ notes = forms.ChoiceField(
+ label=_('Write Notes'),
+ widget=forms.Select(
+ attrs={
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ location_categories = forms.ChoiceField(
+ label=_('Write location Category'),
+ widget=forms.Select(
+ attrs={
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ minimum_withdrawal = forms.CharField(
+ label=_('Minimum Withdrawal'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': '5',
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ branch_identification = forms.CharField(
+ label=_('Branch Identification'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('Enter your Branch Identification'),
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ site_identification = forms.CharField(
+ label=_('Site Identification'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('Enter your Site Identification'),
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ site_name = forms.CharField(
+ label=_('Site Name'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('Enter your Site Name '),
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ cash_withdrawal_national_fee = forms.CharField(
+ label=_('Cash Withdrawal National fee'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('Cash withdrawal national fee'),
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ cash_withdrawal_international_fee = forms.CharField(
+ label=_('Cash Withdrawal international fee'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('Cash withdrawal international fee'),
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+ balance_inquiry_fee = forms.CharField(
+ label=_('Balance Inquiry Fee'),
+ widget=forms.TextInput(
+ attrs={
+ 'placeholder': _('Balance Inquiry Fee'),
+ 'class': 'form-control',
+ }
+ ),
+ required=False,
+ )
+
+ def __init__(self, *args, **kwargs):
+ kwargs.setdefault('label_suffix', '')
+ super(CreateAtmForm, self).__init__(*args, **kwargs)
diff --git a/apimanager/productlist/models.py b/apimanager/productlist/models.py
new file mode 100644
index 0000000..3b5ea8d
--- /dev/null
+++ b/apimanager/productlist/models.py
@@ -0,0 +1,4 @@
+from django.db import models
+
+# Create your models here.
+# -*- coding: utf-8 -*-
diff --git a/apimanager/productlist/static/productlist/css/productlist.css b/apimanager/productlist/static/productlist/css/productlist.css
new file mode 100644
index 0000000..32f6735
--- /dev/null
+++ b/apimanager/productlist/static/productlist/css/productlist.css
@@ -0,0 +1,18 @@
+#product_list div {
+ margin: 5px 0;
+}
+
+/* The actual popup (appears on top) */
+.popuptext {
+ width: 250px;
+ background-color: #555;
+ color: #fff;
+ text-align: left;
+ border-radius: 6px;
+ padding: 8px 0;
+ z-index: 1;
+ /*bottom: 125%;*/
+ top:100%
+ left: 50%;
+ margin-left: -80px;
+}
diff --git a/apimanager/productlist/static/productlist/js/productlist.js b/apimanager/productlist/static/productlist/js/productlist.js
new file mode 100644
index 0000000..338fe9e
--- /dev/null
+++ b/apimanager/productlist/static/productlist/js/productlist.js
@@ -0,0 +1,5 @@
+$(document).ready(function($) {
+ $('#info').click(function() {
+ alert("Hello World")
+ });
+});
diff --git a/apimanager/productlist/templates/productlist/productlist.html b/apimanager/productlist/templates/productlist/productlist.html
new file mode 100644
index 0000000..b7614ce
--- /dev/null
+++ b/apimanager/productlist/templates/productlist/productlist.html
@@ -0,0 +1,45 @@
+{% extends 'base.html' %} {% load static %} {% load i18n %}
+{% block page_title %} {{ block.super }} / {% trans "Product List" %}{% endblock page_title %} {% block content %}
+
+
{% trans "Product List" %}
+
+
+
+
+ | {% trans "ATM Id" %} |
+ {% trans "Bank Id" %} |
+ {% trans "ATM Name" %} |
+ {% trans "More info" %} |
+
+
+ {% for atm in atms_list %}
+
+ {% url 'atms_update' atm.id atm.bank_id as url_atm_update %}
+
+ | {{ atm.id }} |
+ {{ atm.bank_id }} |
+ {{ atm.name }} |
+
+
+ |
+ {% trans "View" %} |
+
+ {% endfor %}
+
+
+
+
+
+{% endblock %} {% block extrajs %} {% endblock extrajs %} {% block extracss %}
+ {% endblock extracss %}
\ No newline at end of file
diff --git a/apimanager/productlist/tests.py b/apimanager/productlist/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/apimanager/productlist/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/apimanager/productlist/urls.py b/apimanager/productlist/urls.py
new file mode 100644
index 0000000..7a1aad4
--- /dev/null
+++ b/apimanager/productlist/urls.py
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+"""
+URLs for metrics app
+"""
+
+from django.conf.urls import url
+from .views import AtmListView, ExportCsvView
+
+urlpatterns = [
+ url(r'^$',
+ AtmListView.as_view(),
+ name='atm-list'),
+ url(r'^export_csv$',
+ ExportCsvView.as_view(),
+ name='export-csv')
+]
diff --git a/apimanager/productlist/views.py b/apimanager/productlist/views.py
new file mode 100644
index 0000000..4af7ab6
--- /dev/null
+++ b/apimanager/productlist/views.py
@@ -0,0 +1,103 @@
+from django.shortcuts import render
+
+# Create your views here.
+# -*- coding: utf-8 -*-
+"""
+Views of atms app
+"""
+import datetime
+from django.contrib import messages
+from django.contrib.auth.mixins import LoginRequiredMixin
+import json
+from django.urls import reverse_lazy
+from django.http import HttpResponse
+from django.views.generic import FormView,TemplateView, View
+from atms.views import IndexAtmsView
+from obp.api import API, APIError
+import csv
+
+
+
+class AtmListView(IndexAtmsView, LoginRequiredMixin, FormView ):
+ template_name = "atmlist/atmlist.html"
+ success_url = '/atms/list'
+ def get_banks(self):
+ api = API(self.request.session.get('obp'))
+ try:
+ urlpath = '/banks'
+ result = api.get(urlpath)
+ if 'banks' in result:
+ return [bank['id'] for bank in sorted(result['banks'], key=lambda d: d['id'])]
+ else:
+ return []
+ except APIError as err:
+ messages.error(self.request, err)
+ return []
+
+ def get_atms(self, context):
+ api = API(self.request.session.get('obp'))
+ try:
+ self.bankids = self.get_banks()
+ atms_list = []
+ for bank_id in self.bankids:
+ urlpath = '/banks/{}/atms'.format(bank_id)
+ result = api.get(urlpath)
+ #print(result)
+ if 'atms' in result:
+ atms_list.extend(result['atms'])
+ except APIError as err:
+ messages.error(self.request, err)
+ return []
+ except Exception as inst:
+ messages.error(self.request, "Unknown Error {}".format(type(inst).__name__))
+ return []
+
+ return atms_list
+ def get_context_data(self, **kwargs):
+ context = super(IndexAtmsView, self).get_context_data(**kwargs)
+ atms_list = self.get_atms(context)
+ context.update({
+ 'atms_list': atms_list,
+ 'bankids': self.bankids
+ })
+ return context
+class ExportCsvView(LoginRequiredMixin, View):
+ """View to export the user to csv"""
+ def get_banks(self):
+ api = API(self.request.session.get('obp'))
+ try:
+ urlpath = '/banks'
+ result = api.get(urlpath)
+ if 'banks' in result:
+ return [bank['id'] for bank in sorted(result['banks'], key=lambda d: d['id'])]
+ else:
+ return []
+ except APIError as err:
+ messages.error(self.request, err)
+ return []
+ def get(self, request, *args, **kwargs):
+ api = API(self.request.session.get('obp'))
+ try:
+ self.bankids = self.get_banks()
+ atms_list = []
+ for bank_id in self.bankids:
+ urlpath = '/banks/{}/atms'.format(bank_id)
+ result = api.get(urlpath)
+ #print(result)
+ if 'atms' in result:
+ atms_list.extend(result['atms'])
+ except APIError as err:
+ messages.error(self.request, err)
+ except Exception as inst:
+ messages.error(self.request, "Unknown Error {}".format(type(inst).__name__))
+ response = HttpResponse(content_type = 'text/csv')
+ response['Content-Disposition'] = 'attachment;filename= Atms'+ str(datetime.datetime.now())+'.csv'
+ writer = csv.writer(response)
+ writer.writerow(["id","name","notes","line_1","line_2","line_3","city", "county", "state", "postcode","country_code", "longitude","latitude","more_info"])
+ for user in atms_list:
+ writer.writerow([user['id'],user['name'], user['notes'], user["address"]['line_1'], user["address"]['line_2'],
+ user["address"]['line_3'], user["address"]['city'], user["address"]['county'], user["address"]['state'], user["address"]['postcode'], user["address"]['country_code'], user["location"]['longitude'], user["location"]['latitude'], user['more_info']])
+ return response
+
+ #print(atms_list)
+