Support cascade deletion
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from .operation import *
|
||||
from .database import *
|
||||
|
||||
|
||||
element_schema = {'type': 'str' , 'optional': True , 'readonly': False}
|
||||
@@ -19,7 +19,7 @@ def get_energy(name: str) -> dict[str, Any]:
|
||||
return d
|
||||
|
||||
|
||||
def set_energy_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
def set_energy_cmd(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
raw_old = get_energy(name)
|
||||
|
||||
old = {}
|
||||
@@ -54,7 +54,7 @@ def set_energy_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
|
||||
|
||||
def set_energy(name: str, cs: ChangeSet) -> ChangeSet:
|
||||
return execute_command(name, set_energy_cache(name, cs))
|
||||
return execute_command(name, set_energy_cmd(name, cs))
|
||||
|
||||
|
||||
def get_pump_energy_schema(name: str) -> dict[str, dict[str, Any]]:
|
||||
@@ -94,7 +94,7 @@ class PumpEnergy(object):
|
||||
return { 'type': self.type, 'pump': self.pump, 'price': self.price, 'pattern': self.pattern, 'effic': self.effic }
|
||||
|
||||
|
||||
def set_pump_energy_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
def set_pump_energy_cmd(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
old = PumpEnergy(get_pump_energy(name, cs.operations[0]['pump']))
|
||||
raw_new = get_pump_energy(name, cs.operations[0]['pump'])
|
||||
|
||||
@@ -128,7 +128,7 @@ def set_pump_energy_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
|
||||
|
||||
def set_pump_energy(name: str, cs: ChangeSet) -> ChangeSet:
|
||||
return execute_command(name, set_pump_energy_cache(name, cs))
|
||||
return execute_command(name, set_pump_energy_cmd(name, cs))
|
||||
|
||||
|
||||
def inp_in_energy(section: list[str]) -> ChangeSet:
|
||||
@@ -192,3 +192,42 @@ def inp_out_energy(name: str) -> list[str]:
|
||||
lines.append(f'PUMP {pump} EFFIC {value}')
|
||||
|
||||
return lines
|
||||
|
||||
|
||||
def delete_pump_energy_by_pump(name: str, pump: str) -> ChangeSet:
|
||||
row1 = try_read(name, f"select * from energy_pump_price where pump = '{pump}'")
|
||||
row2 = try_read(name, f"select * from energy_pump_pattern where pump = '{pump}'")
|
||||
row3 = try_read(name, f"select * from energy_pump_effic where pump = '{pump}'")
|
||||
if row1 == None and row2 == None and row3 == None:
|
||||
return ChangeSet()
|
||||
return ChangeSet(g_update_prefix | {'type': 'pump_energy', 'pump' : pump, 'price': None, 'pattern': None, 'effic': None})
|
||||
|
||||
|
||||
def unset_pump_energy_by_pattern(name: str, pattern: str) -> ChangeSet:
|
||||
cs = ChangeSet()
|
||||
|
||||
rows = read_all(name, f"select * from energy_pump_pattern where pattern = '{pattern}'")
|
||||
for row in rows:
|
||||
pump = row['pump']
|
||||
row1 = try_read(name, f"select * from energy_pump_price where pump = '{pump}'")
|
||||
price = float(row1['price']) if row1 != None else None
|
||||
row2 = try_read(name, f"select * from energy_pump_effic where pump = '{pump}'")
|
||||
effic = str(row2['effic']) if row2 != None else None
|
||||
cs.append(g_update_prefix | {'type': 'pump_energy', 'pump' : pump, 'price': price, 'pattern': None, 'effic': effic})
|
||||
|
||||
return ChangeSet()
|
||||
|
||||
|
||||
def unset_pump_energy_by_curve(name: str, curve: str) -> ChangeSet:
|
||||
cs = ChangeSet()
|
||||
|
||||
rows = read_all(name, f"select * from energy_pump_effic where effic = '{curve}'")
|
||||
for row in rows:
|
||||
pump = row['pump']
|
||||
row1 = try_read(name, f"select * from energy_pump_price where pump = '{pump}'")
|
||||
price = float(row1['price']) if row1 != None else None
|
||||
row2 = try_read(name, f"select * from energy_pump_pattern where pump = '{pump}'")
|
||||
pattern = str(row2['pattern']) if row2 != None else None
|
||||
cs.append(g_update_prefix | {'type': 'pump_energy', 'pump' : pump, 'price': price, 'pattern': pattern, 'effic': None})
|
||||
|
||||
return ChangeSet()
|
||||
|
||||
Reference in New Issue
Block a user