def get(self): if not users.get_current_user(): self.redirect(users.create_login_url(self.request.uri)) account_key = ndb.Key(urlsafe=self.request.get('account')) account = account_key.get() transactions_query = AccountTransaction.query(ancestor=account_key) transactions_query = transactions_query.order(AccountTransaction.transaction_time) transactions = transactions_query.fetch(1000) balance = account.opening_balance # Start off with the opening balance as a transaction. processed_transactions = [{ 'date': account.getFormattedOpenDate(), 'type': 'Opening Balance', 'memo': '', 'amount': '%.2f' % (account.opening_balance / 1000000.0), 'balance': '%.2f' % (balance / 1000000.0), }] for transaction in transactions: if transaction.transaction_type == 'withdrawal': balance -= transaction.amount else: balance += transaction.amount memo = transaction.memo if memo == None: memo = '' processed_transactions.append({ 'date': util.formatShortDate(transaction.transaction_local_date), 'type': transaction.transaction_type, 'memo': memo, 'amount': '%.2f' % (transaction.amount / 1000000.0), 'balance': '%.2f' % (balance / 1000000.0), }) processed_transactions.reverse() template_values = { 'current_user': users.get_current_user(), 'account': account, 'transactions': processed_transactions, 'url': users.create_logout_url('/'), 'url_linktext': 'Logout', } self.response.out.write(template.render( getTemplatePath('transaction_list.html'), template_values))
def get(self): self.response.headers['Content-Type'] = 'text/plain' if not users.get_current_user(): self.redirect(users.create_login_url(self.request.uri)) t_query = AccountTransaction.query() for t in t_query: self.response.out.write('Transaction: %s\n' % t.key) if not t.key.parent(): self.response.out.write('No parent for this transaction, making a copy\n') t2 = AccountTransaction(parent=t.savings_account) t2.savings_account = t.savings_account t2.transaction_type = t.transaction_type t2.transaction_time = t.transaction_time t2.transaction_local_date = t.transaction_local_date t2.amount = t.amount t2.memo = t.memo t2.put() self.response.out.write(' New transaction key: %s\n' % t2.key) self.response.out.write(' Deleting %s\n' % t.key) t.key.delete()