Add simple page for showing details about a single account
For now this just includes the transactions that we know about on the account. It'll grow. Give it time
This commit is contained in:
parent
2cc0cfb2bb
commit
ccdd03b04b
|
@ -0,0 +1,25 @@
|
|||
{% extends 'layout.html' %}
|
||||
{% block main_content %}
|
||||
<h1>{{ account.name }}</h1>
|
||||
{% if records %}
|
||||
<table class="table">
|
||||
<tr><th>Name</th><th>Type</th><th>Amount</th><th>Posted</th><th></th></tr>
|
||||
{% for record in records %}
|
||||
<tr>
|
||||
<td>{{ record.name }}</a></td>
|
||||
<td>{{ record.type }}</td>
|
||||
<td>{{ record.amount }}</td>
|
||||
<td>{{ account.posted }}</td>
|
||||
<td>
|
||||
<form method="POST" action="/update/">
|
||||
<input type="hidden" name="account_uuid" value="{{ account.uuid }}"></input>
|
||||
<input type="submit" value="Update" class="btn btn-primary"></input>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% else %}
|
||||
<p>This account does not have any transactions yet</p>
|
||||
{% endif %}
|
||||
{% endblock %}
|
|
@ -6,7 +6,7 @@
|
|||
<tr><th>Name</th><th>Type</th><th>Institution</th><th>Last Update</th><th></th></tr>
|
||||
{% for account in accounts %}
|
||||
<tr>
|
||||
<td>{{ account.name }}</td>
|
||||
<td><a href="/accounts/{{ account.uuid }}/">{{ account.name }}</a></td>
|
||||
<td>{{ account.type }}</td>
|
||||
<td>{{ account.source.name }}</td>
|
||||
<td>{{ account.last_updated }}</td>
|
||||
|
|
|
@ -13,6 +13,12 @@ def get_accounts():
|
|||
sources = vanth.platform.ofxsource.get()
|
||||
return flask.render_template('accounts.html', accounts=my_accounts, sources=sources)
|
||||
|
||||
@blueprint.route('/accounts/<uuid:account_uuid>/', methods=['GET'])
|
||||
def get_account(account_uuid):
|
||||
account = vanth.platform.ofxaccount.by_uuid(account_uuid)
|
||||
records = vanth.platform.ofxrecord.by_account(account_uuid)
|
||||
return flask.render_template('account.html', account=account, records=records)
|
||||
|
||||
@blueprint.route('/account/', methods=['POST'])
|
||||
@vanth.pages.tools.parse({
|
||||
'account_id' : str,
|
||||
|
|
|
@ -32,3 +32,17 @@ def ensure_exists(account, transactions):
|
|||
if to_insert:
|
||||
engine.execute(vanth.tables.OFXRecord.insert(), to_insert) # pylint: disable=no-value-for-parameter
|
||||
LOGGER.debug("Done inserting %d records", len(new_records))
|
||||
|
||||
def by_account(account_uuid):
|
||||
engine = chryso.connection.get()
|
||||
query = sqlalchemy.select([
|
||||
vanth.tables.OFXRecord.c.amount,
|
||||
vanth.tables.OFXRecord.c.available,
|
||||
vanth.tables.OFXRecord.c.fid,
|
||||
vanth.tables.OFXRecord.c.name,
|
||||
vanth.tables.OFXRecord.c.memo,
|
||||
vanth.tables.OFXRecord.c.posted,
|
||||
vanth.tables.OFXRecord.c.type,
|
||||
]).where(vanth.tables.OFXRecord.c.ofxaccount == account_uuid)
|
||||
rows = engine.execute(query).fetchall()
|
||||
return [dict(row) for row in rows]
|
||||
|
|
Loading…
Reference in New Issue