05/31 Update investment edit

This commit is contained in:
2026-05-31 21:39:18 -04:00
parent 842923cb89
commit 04dc35388a
2 changed files with 41 additions and 0 deletions
+13
View File
@@ -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)