aboutsummaryrefslogtreecommitdiffstats
path: root/python/Dawn/dawn.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/Dawn/dawn.py')
-rw-r--r--python/Dawn/dawn.py113
1 files changed, 0 insertions, 113 deletions
diff --git a/python/Dawn/dawn.py b/python/Dawn/dawn.py
deleted file mode 100644
index c3a88dc8..00000000
--- a/python/Dawn/dawn.py
+++ /dev/null
@@ -1,113 +0,0 @@
-from flask import Flask, request, render_template, redirect, url_for, send_from_directory, g
-from models import db, ModelForm, BondDeal, Counterparties
-from sqlalchemy import create_engine
-from sqlalchemy.exc import IntegrityError
-import pandas as pd
-import os
-import datetime
-import redis
-from utils import load_counterparties, load_trades, add_triggers, bump_rev, simple_serialize
-
-app = Flask(__name__)
-app.config.from_envvar('CONF')
-
-def cp_choices():
- return Counterparties.query.order_by('name').\
- with_entities(Counterparties.code, Counterparties.name)
-
-def get_queue():
- q = getattr(g, 'queue', None)
- if q is None:
- q = g.queue = redis.Redis(host='debian')
- return q
-
-class CounterpartyForm(ModelForm):
- class Meta:
- model = Counterparties
-
-class BondForm(ModelForm):
- class Meta:
- model = BondDeal
- include_foreign_keys = True
- exclude = ['dealid', 'lastupdate'] #we generate it with a trigger at the server level
-
-@app.route('/trades/<int:tradeid>', methods=['GET', 'POST'])
-@app.route('/trades/', defaults={'tradeid': None}, methods=['GET', 'POST'])
-def trade_manage(tradeid):
- if tradeid:
- trade = BondDeal.query.get(tradeid)
- bond_form = BondForm(obj = BondDeal.query.get(tradeid))
- #we change the default to update
- bond_form.action.choices = [('UPDATE', 'UPDATE'), ('CANCEL', 'CANCEL')]
- old_ticket_name = trade.ticket
- else:
- trade = BondDeal()
- bond_form = BondForm()
- bond_form.cp_code.choices = cp_choices()
- if bond_form.is_submitted():
- if bond_form.validate():
- bond_form.populate_obj(trade)
- session = bond_form.get_session()
- ticket_file = trade.ticket
- trade.ticket = None
- if not tradeid:
- session.add(trade)
- if ticket_file.filename == '':
- if tradeid:
- trade.ticket = old_ticket_name
- else:
- if tradeid:
- trade.ticket = bump_rev(old_ticket_name)
- else:
- trade.ticket = "{0} {1}.pdf".format(str(trade.trade_date),
- trade.description)
- ticket_file.save(os.path.join(app.config['TICKETS_FOLDER'],
- trade.ticket))
- try:
- session.commit()
- except IntegrityError:
- print("TODO: fix this")
- finally:
- q = get_queue()
- q.rpush('trades', simple_serialize(trade))
- return redirect(url_for('list_trades'))
- else:
- return str(bond_form.errors)
- return render_template('trade_entry.html', form=bond_form, trade_id=tradeid)
-
-@app.route('/blotter/')
-def list_trades():
- trade_list = BondDeal.query.order_by(BondDeal.trade_date)
- return render_template('blotter.html', trades=trade_list.all())
-
-@app.route('/tickets/<path:filename>')
-def download_ticket(filename):
- return send_from_directory(app.config['TICKETS_FOLDER'],
- filename, as_attachment=True)
-
-@app.route('/counterparties/')
-def list_counterparties():
- cp_list = Counterparties.query.order_by(Counterparties.name)
- return render_template('counterparties.html', counterparties = cp_list.all())
-
-@app.route('/edit_cp/<cpcode>', methods=['GET', 'POST'])
-def edit_counterparty(cpcode):
- cp = Counterparties.query.get(cpcode)
- cp_form = CounterpartyForm(obj = cp)
- if cp_form.is_submitted():
- if cp_form.validate():
- cp_form.populate_obj(cp)
- session = cp_form.get_session()
- session.commit()
- return redirect(url_for('list_counterparties'))
- return render_template('edit_cp.html', form=cp_form, code=cpcode)
-
-if __name__=="__main__":
- db.init_app(app)
- #db.drop_all(app=app)
- #db.create_all(app=app)
- #engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
- #add_triggers(engine)
- #load_counterparties(engine)
- #load_trades(engine)
- app.run(debug=True)