diff options
Diffstat (limited to 'python/Dawn')
| -rw-r--r-- | python/Dawn/dawn.py | 14 | ||||
| -rw-r--r-- | python/Dawn/models.py | 12 |
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): |
