aboutsummaryrefslogtreecommitdiffstats
path: root/python/Dawn
diff options
context:
space:
mode:
Diffstat (limited to 'python/Dawn')
-rw-r--r--python/Dawn/dawn.py14
-rw-r--r--python/Dawn/models.py12
2 files changed, 18 insertions, 8 deletions
diff --git a/python/Dawn/dawn.py b/python/Dawn/dawn.py
index f227593e..88c09596 100644
--- a/python/Dawn/dawn.py
+++ b/python/Dawn/dawn.py
@@ -1,11 +1,10 @@
from flask import Flask, request, render_template
from models import db, ModelForm, BondDeal, Counterparties
-import pdb
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://dawn_user@debian/dawndb'
app.config['SECRET_KEY'] = 'papa'
-db.init_app(app)
+app.config['UPLOAD_FOLDER'] = 'tickets'
def list_counterparties():
return Counterparties.query.order_by('name').\
@@ -17,6 +16,7 @@ class BondForm(ModelForm):
class Meta:
model = BondDeal
include_foreign_keys = True
+ exclude = ['dealid'] #we generate it with a trigger at the server level
@app.route('/', methods=['GET', 'POST'])
def trade_entry():
@@ -26,13 +26,17 @@ def trade_entry():
if bond_form.validate():
bond = BondDeal()
bond_form.populate_obj(bond)
- bond.dealid = 'uniqid'
- db.session.add(bond)
- db.session.commit()
+ bond.ticket.save('test.pdf')
+ bond.ticket='test.pdf'
+ bond_form.get_session().add(bond)
+ bond_form.get_session().commit()
return "Success!"
else:
print(bond_form.errors)
return render_template("trade_entry.html", form=bond_form)
if __name__=="__main__":
+ #db.drop_all(app=app)
+ #db.create_all(app=app)
+ db.init_app(app)
app.run(debug=True)
diff --git a/python/Dawn/models.py b/python/Dawn/models.py
index 66db7983..b9b6323c 100644
--- a/python/Dawn/models.py
+++ b/python/Dawn/models.py
@@ -41,16 +41,22 @@ BOND_STRAT = ENUM('M_STR_MAV', 'M_STR_SMEZZ', 'CSO_TRANCH',
ASSET_CLASS = ENUM('CSO', 'Subprime', 'CLO', 'Tranches', 'Futures', 'Cash', 'FX', 'Cleared',
name='asset_class')
+def myticket(ctx):
+ return "{0}.{1}".format(ctx.current_parameters['dealid'],
+ str(datetime.datetime.now()))
+
class BondDeal(db.Model):
__tablename__ = 'bonds'
- dealid = db.Column(db.String(28), primary_key=True)
+ id = db.Column('id', db.Integer, primary_key=True)
+ dealid = db.Column(db.String(28))
folder = db.Column(BOND_STRAT, nullable=False)
custodian = db.Column(db.String(12), nullable=False)
cashaccount = db.Column(db.String(10), nullable=False)
counterparty = db.Column(db.String, db.ForeignKey("counterparties.code"),
info={'choices': [(None, None)]})
trade_date = db.Column(db.Date, nullable = False, default = datetime.date.today)
- settle_date = db.Column(db.Date, nullable = False, default = datetime.date.today)
+ settle_date = db.Column(db.Date, nullable = False, default =
+ lambda : datetime.date.today()+datetime.timedelta(3))
cusip = db.Column(db.String(9), info={'validators': Length(9,9)})
isin = db.Column(db.String(12), info={'validator': Length(12, 12)})
description = db.Column(db.String(32))
@@ -60,7 +66,7 @@ class BondDeal(db.Model):
account = db.Column(db.String(10))
accrued = db.Column(db.Float)
asset_class = db.Column(ASSET_CLASS)
- ticket = db.Column(MyBinary, info={'form_field_class': FileField})
+ ticket = db.Column(db.String, info={'form_field_class': FileField})
BaseModelForm = model_form_factory(Form)
class ModelForm(BaseModelForm):