From 7c9eb1555a37d8516171697f642aded192d1c9dd Mon Sep 17 00:00:00 2001 From: "WQY\\qiong" Date: Wed, 8 Mar 2023 22:18:28 +0800 Subject: [PATCH] Refine set option to sync v2 & v3 --- api/s23_options.py | 10 ++++++++-- api/s23_options_v3.py | 11 ++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/api/s23_options.py b/api/s23_options.py index ffcb46d..252d50c 100644 --- a/api/s23_options.py +++ b/api/s23_options.py @@ -1,4 +1,5 @@ from .database import * +from .s23_options_v3 import set_option_v3 from .s23_options_util import generate_v3 @@ -107,8 +108,13 @@ def set_option_cmd(name: str, cs: ChangeSet) -> DbChangeSet: return DbChangeSet(redo_sql, undo_sql, [redo_cs], [undo_cs]) -def set_option(name: str, cs: ChangeSet) -> ChangeSet: - return execute_command(name, set_option_cmd(name, cs)) +def set_option(name: str, cs: ChangeSet, update_v3: bool = True) -> ChangeSet: + v2 = set_option_cmd(name, cs) + result = execute_command(name, v2) + if update_v3: + v3 = generate_v3(ChangeSet(v2.redo_cs[0])) + result.merge(set_option_v3(name, v3, False)) + return result #-------------------------------------------------------------- diff --git a/api/s23_options_v3.py b/api/s23_options_v3.py index fdd233f..cb00d15 100644 --- a/api/s23_options_v3.py +++ b/api/s23_options_v3.py @@ -5,7 +5,7 @@ from .s23_options import OPTION_HEADLOSS_HW, OPTION_HEADLOSS_DW, OPTION_HEADLOSS from .s23_options import OPTION_UNBALANCED_STOP, OPTION_UNBALANCED_CONTINUE from .s23_options import OPTION_QUALITY_NONE, OPTION_QUALITY_CHEMICAL, OPTION_QUALITY_AGE, OPTION_QUALITY_TRACE from .s23_options import element_schema -from .s23_options import get_option_schema +from .s23_options import get_option_schema, set_option from .s23_options_util import generate_v2, generate_v3 OPTION_V3_FLOW_UNITS_CFS = OPTION_UNITS_CFS @@ -128,8 +128,13 @@ def set_option_v3_cmd(name: str, cs: ChangeSet) -> DbChangeSet: return DbChangeSet(redo_sql, undo_sql, [redo_cs], [undo_cs]) -def set_option_v3(name: str, cs: ChangeSet) -> ChangeSet: - return execute_command(name, set_option_v3_cmd(name, cs)) +def set_option_v3(name: str, cs: ChangeSet, update_v2: bool = True) -> ChangeSet: + v3 = set_option_v3_cmd(name, cs) + result = execute_command(name, v3) + if update_v2: + v2 = generate_v2(ChangeSet(v3.redo_cs[0])) + result.merge(set_option(name, v2, False)) + return result def _parse_v2(v2_lines: list[str]) -> dict[str, str]: