05/31 Update investment edit
This commit is contained in:
@@ -37,6 +37,10 @@ class InvestmentForm(FlaskForm):
|
||||
ticker = StringField('Ticker Symbol', validators=[Optional(), Length(max=20)],
|
||||
description='e.g. AAPL, BTC-USD, VNM')
|
||||
asset_type = SelectField('Asset Type', choices=ASSET_TYPES, validators=[DataRequired()])
|
||||
shares = DecimalField('Shares / Units', validators=[Optional(), NumberRange(min=0)],
|
||||
places=8, default=Decimal('0'))
|
||||
avg_cost_basis = DecimalField('Avg Cost per Share', validators=[Optional(), NumberRange(min=0)],
|
||||
places=4, default=Decimal('0'))
|
||||
notes = TextAreaField('Notes', validators=[Optional()])
|
||||
submit = SubmitField('Save')
|
||||
|
||||
@@ -157,9 +161,18 @@ def edit(id):
|
||||
inv.ticker = form.ticker.data.strip().upper() if form.ticker.data else None
|
||||
inv.asset_type = form.asset_type.data
|
||||
inv.notes = form.notes.data
|
||||
# Manual override of shares/cost basis — only update if user provided values
|
||||
if form.shares.data is not None:
|
||||
inv.shares = form.shares.data
|
||||
if form.avg_cost_basis.data is not None:
|
||||
inv.avg_cost_basis = form.avg_cost_basis.data
|
||||
db.session.commit()
|
||||
flash('Investment updated.', 'success')
|
||||
return redirect(url_for('investments.detail', id=inv.id))
|
||||
# Pre-populate shares/cost for edit form
|
||||
if request.method == 'GET':
|
||||
form.shares.data = inv.shares
|
||||
form.avg_cost_basis.data = inv.avg_cost_basis
|
||||
return render_template('investments/form.html', form=form, title='Edit Investment', inv=inv)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user