Add simple function for uploading OFX-based transactions

The OFX direct connection for my bank isn't working right now. I have a
support ticket in. Until then I'm going to work on doing a manual upload
and parse of transactions from this OFX document
This commit is contained in:
Eli Ribble 2016-08-10 17:20:00 -06:00
parent 8d0d8d72b1
commit 438c073e0f
2 changed files with 25 additions and 0 deletions

View File

@ -29,4 +29,10 @@
{% else %}
<p>This account does not have any transactions yet</p>
{% endif %}
<form method="POST" action="/transactions/" enctype="multipart/form-data">
<p>Want to upload your own transactions? Cool. Do it here.</p>
<input type="hidden" name="account_uuid" value="{{ account.uuid }}">
<input type="file" name="transactions" id="transactions">
<input type="submit">
</form>
{% endblock %}

View File

@ -1,10 +1,14 @@
import logging
import flask
import werkzeug.utils
import vanth.celery
import vanth.pages.tools
import vanth.platform.ofxaccount
import vanth.platform.ofxsource
LOGGER = logging.getLogger()
blueprint = flask.Blueprint('accounts', __name__)
@blueprint.route('/accounts/', methods=['GET'])
@ -40,3 +44,18 @@ def post_account(arguments):
def post_update(arguments):
vanth.celery.update_account.delay(**arguments)
return flask.redirect('/accounts/')
@blueprint.route('/transactions/', methods=['POST'])
@vanth.pages.tools.parse({
'account_uuid' : str,
})
def post_transactions(arguments):
if 'transactions' not in flask.request.files:
return flask.render_template('error.html', error="You did not include the content of the file in your upload")
transactions = flask.request.files['transactions']
if transactions.filename == '':
return flask.redirect('/accounts/{}/'.format(arguments['account_uuid']))
filename = werkzeug.utils.secure_filename(transactions.filename)
LOGGER.info("Saving uploaded file %s to %s", transactions.filename, filename)
transactions.save(filename)
return flask.redirect('/accounts/{}/'.format(arguments['account_uuid']))