mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
get update_plan working
This commit is contained in:
parent
e0e50d696a
commit
16386173af
1 changed files with 15 additions and 6 deletions
|
|
@ -634,17 +634,26 @@ def get_scenario(scenario_id: int) -> Optional[ScenarioModel]:
|
|||
|
||||
def update_plan(plan_model: PlanModel, scenario_model: ScenarioModel) -> bool:
|
||||
with db_read_session() as session:
|
||||
stmt = (
|
||||
update(PlanModel)
|
||||
.where(PlanModel.id == plan_model.id)
|
||||
.values(**plan_model.model_dump(exclude={"id"}, exclude_unset=True))
|
||||
plan_values = {
|
||||
c.name: getattr(plan_model, c.name)
|
||||
for c in plan_model.__table__.columns
|
||||
if c.name != "id"
|
||||
}
|
||||
scenario_values = {
|
||||
c.name: getattr(scenario_model, c.name)
|
||||
for c in scenario_model.__table__.columns
|
||||
if c.name not in {"id", "portfolio_id"}
|
||||
}
|
||||
|
||||
plan_stmt = (
|
||||
update(PlanModel).where(PlanModel.id == plan_model.id).values(**plan_values)
|
||||
)
|
||||
plan_result = session.exec(stmt)
|
||||
plan_result = session.exec(plan_stmt)
|
||||
|
||||
scenario_stmt = (
|
||||
update(ScenarioModel)
|
||||
.where(ScenarioModel.id == scenario_model.id)
|
||||
.values(**scenario_model.model_dump(exclude={"id"}, exclude_unset=True))
|
||||
.values(**scenario_values)
|
||||
)
|
||||
session.exec(scenario_stmt)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue