diff options
Diffstat (limited to 'python/Dawn/dawn.py')
| -rw-r--r-- | python/Dawn/dawn.py | 42 |
1 files changed, 4 insertions, 38 deletions
diff --git a/python/Dawn/dawn.py b/python/Dawn/dawn.py index 7b465e36..c937a88b 100644 --- a/python/Dawn/dawn.py +++ b/python/Dawn/dawn.py @@ -1,11 +1,11 @@ from flask import Flask, request, render_template, redirect, url_for, send_from_directory from models import db, ModelForm, BondDeal, Counterparties -from sqlalchemy.sql import text from sqlalchemy import create_engine from sqlalchemy.exc import IntegrityError import pandas as pd import os import datetime +from utils import load_counterparties, add_triggers, bump_rev, simple_serialize app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://dawn_user@debian/dawndb' @@ -16,40 +16,10 @@ def cp_choices(): return Counterparties.query.order_by('name').\ with_entities(Counterparties.code, Counterparties.name) -def load_counterparties(): - counterparties = pd.read_csv("/home/share/CorpCDOs/data/counterparties.csv") - counterparties[['city', 'state']] = counterparties.Location.str.split(", ", expand=True) - counterparties.drop(['Location', 'Valuation Contact4', 'Valuation Contact4 Email'], axis=1, inplace=True) - counterparties.rename(columns ={'CODE': 'code', - 'DTC Number': 'dtc_number', - 'Email1': 'sales_email', - 'FIRM': 'name', - 'Phone': 'sales_phone', - 'Sales Contact': 'sales_contact', - 'Valuation Contact1': 'valuation_contact1', - 'Valuation Contact1 Email': 'valuation_email1', - 'Valuation Contact2': 'valuation_contact2', - 'Valuation Contact2 Email': 'valuation_email2', - 'Valuation Contact3': 'valuation_contact3', - 'Valuation Contact3 Email': 'valuation_email3', - 'Valuation Note': 'notes'}, inplace=True) - engine = create_engine('postgresql://dawn_user@debian/dawndb') - counterparties.to_sql('counterparties', engine, if_exists='append', index=False) -def add_triggers(): - engine = create_engine('postgresql://dawn_user@debian/dawndb') - engine.execute(text(""" - CREATE OR REPLACE FUNCTION mydealid() - RETURNS TRIGGER AS $$ - BEGIN - UPDATE bonds SET dealid = 'SC_' ||left(asset_class::text,3)||id WHERE bonds.id = NEW.id; - RETURN NEW; - END; - $$ language plpgsql""")) - engine.execute(text("""CREATE TRIGGER dealid - AFTER INSERT ON bonds - FOR EACH ROW - EXECUTE PROCEDURE mydealid()""")) +class CounterpartyForm(ModelForm): + class Meta: + model = Counterparties class BondForm(ModelForm): class Meta: @@ -57,10 +27,6 @@ class BondForm(ModelForm): include_foreign_keys = True exclude = ['dealid', 'lastupdate'] #we generate it with a trigger at the server level -class CounterpartyForm(ModelForm): - class Meta: - model = Counterparties - @app.route('/trades/<int:tradeid>', methods=['GET', 'POST']) @app.route('/trades/', defaults={'tradeid': None}, methods=['GET', 'POST']) def trade_manage(tradeid): |
