summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsetup.py2
-rw-r--r--talerbank/__init__.py8
-rw-r--r--talerbank/app/history.py6
-rw-r--r--talerbank/app/lib.py10
-rw-r--r--talerbank/app/management/commands/basic_accounts.py6
-rw-r--r--talerbank/app/migrations/0001_initial.py20
-rw-r--r--talerbank/app/startup.py3
-rw-r--r--talerbank/app/templates/error.html2
8 files changed, 49 insertions, 8 deletions
diff --git a/setup.py b/setup.py
index 6ed35d8..6ba1ee7 100755
--- a/setup.py
+++ b/setup.py
@@ -8,7 +8,7 @@ setup(name='talerbank',
author_email='marcello.stanisci@inria.fr',
license='GPL',
packages=find_packages(),
- install_requires=["django",
+ install_requires=["django>=1.9",
"django-simple-math-captcha",
"psycopg2",
"requests",
diff --git a/talerbank/__init__.py b/talerbank/__init__.py
index e69de29..4efb025 100644
--- a/talerbank/__init__.py
+++ b/talerbank/__init__.py
@@ -0,0 +1,8 @@
+import logging
+
+log_conf = {
+ 'format': '%(asctime)-15s %(module)s %(levelname)s %(message)s',
+ 'level': logging.INFO
+}
+
+logging.basicConfig(**log_conf)
diff --git a/talerbank/app/history.py b/talerbank/app/history.py
index bfe80be..6418ea2 100644
--- a/talerbank/app/history.py
+++ b/talerbank/app/history.py
@@ -26,6 +26,7 @@ from .lib import (get_logged_user_account,
from .errors import internal_error_handler
from django.shortcuts import (render,
redirect)
+import logging
def extract_history(bank_account):
@@ -55,6 +56,7 @@ def history_process(request):
@check_db
def public_accounts_process(request):
+ logging.info("calling public_accounts_attempt")
return public_accounts_attempt(request)
@@ -66,8 +68,8 @@ def public_accounts_attempt(request):
if not sel_account_name:
return redirect("/public-accounts/?account=Tor")
sel_account = get_bank_account_from_username(sel_account_name)
- if not sel_account:
- return internal_error_handler(request)
+ if sel_account == False:
+ return internal_error_handler(request, "User '%s' does not exist" % (sel_account_name,))
history = extract_history(sel_account)
return render(request,
'public_histories_reloaded.html',
diff --git a/talerbank/app/lib.py b/talerbank/app/lib.py
index bca4ac7..435ec99 100644
--- a/talerbank/app/lib.py
+++ b/talerbank/app/lib.py
@@ -30,6 +30,7 @@ from os.path import split
from django.contrib.auth.models import User
from django.db.utils import (OperationalError,
ProgrammingError)
+import logging
def get(arr, key, default=False):
@@ -110,6 +111,7 @@ def get_bank_account_from_username(username):
user_account = User.objects.get(username=username)
return user_account.bankaccount
except User.DoesNotExist:
+ logging.warn("user '%s' does not exist", username)
return False
@@ -128,19 +130,23 @@ def write_log_file(data, log_file="/tmp/django.log", flag='a'):
def check_db(fn):
- def fake_query(request):
+ def wrapper(request):
+ logging.error("doing check_db")
try:
User.objects.get(username='Bank')
except User.DoesNotExist:
+ logging.error("user does not exist")
return no_bank_account_handler(request)
except ProgrammingError:
+ logging.error("internal error, db has no tables")
return internal_error_handler(request,
"(db available but no tables in it. Run"
" 'taler-bank-manage --definetables')")
except OperationalError:
+ logging.error("db does not exist")
return non_existent_db_handler(request)
return fn(request)
- return fake_query
+ return wrapper
def is_logged(fn):
diff --git a/talerbank/app/management/commands/basic_accounts.py b/talerbank/app/management/commands/basic_accounts.py
index 78435ba..0d06aab 100644
--- a/talerbank/app/management/commands/basic_accounts.py
+++ b/talerbank/app/management/commands/basic_accounts.py
@@ -21,6 +21,12 @@ from django.db.utils import OperationalError
from ...startup import basic_accounts
+"""
+Create bank and exchange accounts, which are
+necessary for the bank to work correctly.
+"""
+
+
class Command(BaseCommand):
def handle(self, *args, **options):
basic_accounts()
diff --git a/talerbank/app/migrations/0001_initial.py b/talerbank/app/migrations/0001_initial.py
index d92797c..a98a244 100644
--- a/talerbank/app/migrations/0001_initial.py
+++ b/talerbank/app/migrations/0001_initial.py
@@ -1,10 +1,27 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-04-08 14:17
from __future__ import unicode_literals
-
+import logging
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
+from django.contrib.auth.models import User
+from .models import BankAccount
+
+
+def basic_accounts(apps, schema_editor):
+ bank = User.objects.create_user(username='Bank', password='')
+ exchange = User.objects.create_user(username='Exchange', password='')
+ bank_ba = BankAccount(user=bank,
+ currency=get_currency(None),
+ is_public=True)
+ bank_ba.save()
+ logging.info("Creating '" + bank_ba.user.username + "' account, with number " + str(bank_ba.account_no) + "\n")
+ exchange_ba = BankAccount(user=exchange,
+ currency=get_currency(None),
+ is_public=True)
+ exchange_ba.save()
+ logging.info("Creating '" + exchange_ba.user.username + "' account, with number " + str(exchange_ba.account_no) + "\n")
class Migration(migrations.Migration):
@@ -39,4 +56,5 @@ class Migration(migrations.Migration):
('account', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.BankAccount')),
],
),
+ migrations.RunPython(basic_accounts),
]
diff --git a/talerbank/app/startup.py b/talerbank/app/startup.py
index 44fc2a7..3583b12 100644
--- a/talerbank/app/startup.py
+++ b/talerbank/app/startup.py
@@ -22,6 +22,7 @@ from django.contrib.auth.models import User
from django.db.utils import OperationalError
from .lib import get_currency
import sys
+import logging
# Creates basic accounts (bank's and exchange's) if the user didn't manually
@@ -29,7 +30,7 @@ def basic_accounts():
accepted_options = ['--definetables', '--preaccounts', '--bareserver', '--sampledata']
try:
if sys.argv[1] not in accepted_options:
- print("skipping basic_accounts() check")
+ logging.warn("skipping basic_accounts() check")
return
except IndexError:
print("Got IndexError, unmanaged..")
diff --git a/talerbank/app/templates/error.html b/talerbank/app/templates/error.html
index 1878583..adda120 100644
--- a/talerbank/app/templates/error.html
+++ b/talerbank/app/templates/error.html
@@ -64,7 +64,7 @@
{% if type = "wrong_pin" %}
Return to your <a href="/profile">profile page</a>
{% elif type = "internal_error" %}
- Resource unavailable {{ hint }}
+ Internal error: {{ hint }}
{% elif type = "non_supported_method" %}
This bank supports TEST wire method only
{% elif type = "exchange_unknown" %}