diff options
-rwxr-xr-x | setup.py | 2 | ||||
-rw-r--r-- | talerbank/__init__.py | 8 | ||||
-rw-r--r-- | talerbank/app/history.py | 6 | ||||
-rw-r--r-- | talerbank/app/lib.py | 10 | ||||
-rw-r--r-- | talerbank/app/management/commands/basic_accounts.py | 6 | ||||
-rw-r--r-- | talerbank/app/migrations/0001_initial.py | 20 | ||||
-rw-r--r-- | talerbank/app/startup.py | 3 | ||||
-rw-r--r-- | talerbank/app/templates/error.html | 2 |
8 files changed, 49 insertions, 8 deletions
@@ -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" %} |