コード例 #1
0
ファイル: views.py プロジェクト: FeodorOtt/finance
def transaction_list(request):
    ctx = {}

    user_id = request.user.id
    user = User.objects.get(id=user_id)

    fltr = request.session.get('filter:transaction_list', None)
    if fltr == "last_month":
        user_transactions = services.get_last_months_transactions(user)
        ctx['fltr'] = fltr
    elif fltr == "this_year":
        user_transactions = services.get_this_years_transactions(user)
        ctx['fltr'] = fltr
    elif fltr == "all_time":
        user_transactions = Transaction.objects.filter(user=user, active=True)
        ctx['fltr'] = fltr
    else:
        # make 'this_month' filter default
        user_transactions = services.get_months_transactions(user)
        ctx['fltr'] = 'this_month'

    user_transactions = user_transactions.order_by('-created')

    ctx['user'] = user
    ctx['transactions'] = user_transactions
    ctx['negative_transaction_sum'] = user_transactions \
        .filter(category=Transaction.EXPENSE) \
        .aggregate(Sum('amount')).get('amount__sum')
    ctx['positive_transaction_sum'] = user_transactions \
        .filter(category=Transaction.INCOME) \
        .aggregate(Sum('amount')).get('amount__sum')

    ctx['list'] = 'transactions'

    return render(request, 'transaction_list.html', context=ctx)
コード例 #2
0
ファイル: views.py プロジェクト: trimailov/finance
def transaction_list(request):
    ctx = {}

    user_id = request.user.id
    user = User.objects.get(id=user_id)

    fltr = request.session.get('filter:transaction_list', None)
    if fltr == "last_month":
        user_transactions = services.get_last_months_transactions(user)
        ctx['fltr'] = fltr
    elif fltr == "this_year":
        user_transactions = services.get_this_years_transactions(user)
        ctx['fltr'] = fltr
    elif fltr == "all_time":
        user_transactions = Transaction.objects.filter(user=user, active=True)
        ctx['fltr'] = fltr
    else:
        # make 'this_month' filter default
        user_transactions = services.get_months_transactions(user)
        ctx['fltr'] = 'this_month'

    user_transactions = user_transactions.order_by('-created')

    ctx['user'] = user
    ctx['transactions'] = user_transactions
    ctx['negative_transaction_sum'] = user_transactions \
        .filter(category=Transaction.EXPENSE) \
        .aggregate(Sum('amount')).get('amount__sum')
    ctx['positive_transaction_sum'] = user_transactions \
        .filter(category=Transaction.INCOME) \
        .aggregate(Sum('amount')).get('amount__sum')

    ctx['list'] = 'transactions'

    return render(request, 'transaction_list.html', context=ctx)
コード例 #3
0
ファイル: test_books.py プロジェクト: trimailov/finance
    def test_this_months_transactions(self):
        with mock.patch('books.services.timezone') as mock_now:
            mock_now.now.return_value = datetime(2015, 4, 23, tzinfo=pytz.utc)

            transactions = services.get_months_transactions(self.user)
            # make test deterministic
            transactions = transactions.order_by("-created")

            self.assertEqual(len(transactions), 1)
            self.assertEqual(transactions[0].title, 'this_month')
コード例 #4
0
    def test_this_months_transactions(self):
        with mock.patch('books.services.timezone') as mock_now:
            mock_now.now.return_value = datetime(2015, 4, 23, tzinfo=pytz.utc)

            transactions = services.get_months_transactions(self.user)
            # make test deterministic
            transactions = transactions.order_by("-created")

            self.assertEqual(len(transactions), 1)
            self.assertEqual(transactions[0].title, 'this_month')