diff options
| -rw-r--r-- | python/Dawn/views.py | 18 |
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() |
