diff --git a/api/s11_patterns.py b/api/s11_patterns.py index d7d1417..96e6ce2 100644 --- a/api/s11_patterns.py +++ b/api/s11_patterns.py @@ -7,7 +7,7 @@ def get_pattern_schema(name: str) -> dict[str, dict[str, Any]]: def get_pattern(name: str, id: str) -> dict[str, Any]: - pas = read_all(name, f"select * from patterns where id = '{id}'") + pas = read_all(name, f"select * from patterns where id = '{id}' order by _order") ps = [] for r in pas: ps.append(float(r['factor'])) diff --git a/api/s12_curves.py b/api/s12_curves.py index a10299b..4edc159 100644 --- a/api/s12_curves.py +++ b/api/s12_curves.py @@ -9,7 +9,7 @@ def get_curve_schema(name: str) -> dict[str, dict[str, Any]]: def get_curve(name: str, id: str) -> dict[str, Any]: - cus = read_all(name, f"select * from curves where id = '{id}'") + cus = read_all(name, f"select * from curves where id = '{id}' order by _order") cs = [] for r in cus: cs.append({ 'x': float(r['x']), 'y': float(r['y']) }) diff --git a/api/s7_valves.py b/api/s7_valves.py index 8c21447..4a24b1a 100644 --- a/api/s7_valves.py +++ b/api/s7_valves.py @@ -119,15 +119,4 @@ def delete_valve_cache(name: str, cs: ChangeSet) -> SqlChangeSet: def delete_valve(name: str, cs: ChangeSet) -> ChangeSet: - old = Valve(get_valve(name, cs.operations[0]['id'])) - - redo_sql = f"delete from valves where id = {old.f_id};" - redo_sql += f"\ndelete from _link where id = {old.f_id};" - - undo_sql = f"insert into _link (id, type) values ({old.f_id}, {old.f_type});" - undo_sql += f"\ninsert into valves (id, node1, node2, diameter, type, setting, minor_loss) values ({old.f_id}, {old.f_node1}, {old.f_node2}, {old.f_diameter}, {old.f_v_type}, {old.f_setting}, {old.f_minor_loss});" - - redo_cs = g_delete_prefix | old.as_id_dict() - undo_cs = g_add_prefix | old.as_dict() - return execute_command(name, delete_valve_cache(name, cs)) diff --git a/api/s9_demands.py b/api/s9_demands.py index 07cc262..77518c1 100644 --- a/api/s9_demands.py +++ b/api/s9_demands.py @@ -10,7 +10,7 @@ def get_demand_schema(name: str) -> dict[str, dict[str, Any]]: def get_demand(name: str, junction: str) -> dict[str, Any]: - des = read_all(name, f"select * from demands where junction = '{junction}'") + des = read_all(name, f"select * from demands where junction = '{junction}' order by _order") ds = [] for r in des: d = {} diff --git a/script/sql/create/11.patterns.sql b/script/sql/create/11.patterns.sql index 8835fa2..d77671f 100644 --- a/script/sql/create/11.patterns.sql +++ b/script/sql/create/11.patterns.sql @@ -2,6 +2,7 @@ create table patterns ( - id varchar(32) references _pattern(id) not null + _order serial primary key +, id varchar(32) references _pattern(id) not null , factor numeric not null ); diff --git a/script/sql/create/12.curves.sql b/script/sql/create/12.curves.sql index 11ae78b..bbc05a1 100644 --- a/script/sql/create/12.curves.sql +++ b/script/sql/create/12.curves.sql @@ -2,7 +2,8 @@ create table curves ( - id varchar(32) references _curve(id) not null + _order serial primary key +, id varchar(32) references _curve(id) not null , x numeric not null , y numeric not null ); diff --git a/script/sql/create/9.demands.sql b/script/sql/create/9.demands.sql index d2d2943..13c5b5e 100644 --- a/script/sql/create/9.demands.sql +++ b/script/sql/create/9.demands.sql @@ -2,7 +2,8 @@ create table demands ( - junction varchar(32) references junctions(id) not null + _order serial primary key +, junction varchar(32) references junctions(id) not null , demand numeric not null , pattern varchar(32) references _pattern(id) , category text