aboutsummaryrefslogtreecommitdiffstats
path: root/python/Dawn
diff options
context:
space:
mode:
Diffstat (limited to 'python/Dawn')
-rw-r--r--python/Dawn/views.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/python/Dawn/views.py b/python/Dawn/views.py
index b749a715..10a9eaa0 100644
--- a/python/Dawn/views.py
+++ b/python/Dawn/views.py
@@ -185,7 +185,7 @@ def split_direction(g, direction):
else:
raise ValueError("direction can be one of 'outgoing' or 'incoming'")
-def gen_cashflow_deals(form, session):
+def gen_cashflow_deals(form, session, wire_id=None):
action = form.get("action")
to_date = lambda s: datetime.datetime.strptime(s, "%Y-%m-%d")
trade_date = form.get("trade_date", None, to_date)
@@ -204,16 +204,22 @@ def gen_cashflow_deals(form, session):
d['amount'] = float(d['amount'])
else:
raise ValueError("direction needs to be 'outgoing' or 'incoming'")
- cf = CashFlowDeal(trade_date=trade_date,
- action=action,
- **d)
- session.add(cf); yield cf
+ if wire_id:
+ cf = CashFlowDeal.query.get(wire_id)
+ for k, v in d.items():
+ setattr(cf, k, v)
+ yield cf
+ else:
+ cf = CashFlowDeal(trade_date=trade_date,
+ action=action,
+ **d)
+ session.add(cf); yield cf
@app.route('/wires/<int:wire_id>', methods = ['GET', 'POST'])
@app.route('/wires/', defaults={'wire_id': None}, methods=['GET', 'POST'])
def wire_manage(wire_id):
if request.method == 'POST':
- wires = list(gen_cashflow_deals(request.form, db.session))
+ wires = list(gen_cashflow_deals(request.form, db.session, wire_id))
try:
db.session.commit()