aboutsummaryrefslogtreecommitdiffstats
path: root/python/Dawn
diff options
context:
space:
mode:
Diffstat (limited to 'python/Dawn')
-rw-r--r--python/Dawn/views.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/python/Dawn/views.py b/python/Dawn/views.py
index 96157bd7..f61e5308 100644
--- a/python/Dawn/views.py
+++ b/python/Dawn/views.py
@@ -1,5 +1,5 @@
from flask import (request, render_template, redirect,
- url_for, send_from_directory, send_file, g)
+ url_for, send_from_directory, send_file, g, jsonify)
from .models import ModelForm, BondDeal, CDSDeal, Counterparties
from sqlalchemy.exc import IntegrityError
from wtforms.fields import BooleanField
@@ -13,6 +13,7 @@ from PyPDF2 import PdfFileMerger
from io import BytesIO
from Dawn import app
import socket
+import psycopg2
def cp_choices():
return Counterparties.query.order_by('name').\
@@ -28,6 +29,14 @@ def get_queue():
q = g.queue = redis.Redis(host='debian')
return q
+def get_db():
+ db = getattr(g, '_database', None)
+ if db is None:
+ db = g._database = psycopg2.connect(database="serenitasdb",
+ user="serenitas_user",
+ host="debian")
+ return db
+
class CounterpartyForm(ModelForm):
class Meta:
model = Counterparties
@@ -176,3 +185,21 @@ def edit_counterparty(cpcode):
session.commit()
return redirect(url_for('list_counterparties'))
return render_template('edit_cp.html', form=cp_form, code=cpcode)
+
+@app.route('/_ajax', methods=['GET'])
+def get_bbg_id():
+ bbg_id = request.args.get('bbg_id')
+ _, indextype, _, series, tenor = bbg_id.split()
+ indextype = indextype[:2]
+ tenor = tenor[:-1] + 'yr'
+ series = int(series[1:])
+ sqlstr1 = "SELECT * FROM index_redcode(%s::index_type, %s::smallint, %s)"
+ sqlstr2 = "SELECT maturity, coupon FROM index_maturity WHERE index=%s and series=%s and tenor=%s"
+ db = get_db()
+ with db.cursor() as c:
+ print(indextype, series)
+ c.execute(sqlstr1, (indextype, series, datetime.datetime(2015,10, 25).date()))
+ (redcode,) = c.fetchone()
+ c.execute(sqlstr2, (indextype, series, tenor))
+ maturity, coupon = c.fetchone()
+ return jsonify({'maturity': maturity.strftime('%Y-%m-%d'), 'redcode': redcode, 'coupon': coupon})