Support cascade deletion
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from .operation import *
|
||||
from .database import *
|
||||
from .s0_base import *
|
||||
|
||||
MIXING_MODEL_MIXED = 'MIXED'
|
||||
@@ -40,7 +40,7 @@ class Mixing(object):
|
||||
return { 'type': self.type, 'tank': self.tank }
|
||||
|
||||
|
||||
def set_mixing_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
def set_mixing_cmd(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
old = Mixing(get_mixing(name, cs.operations[0]['tank']))
|
||||
raw_new = get_mixing(name, cs.operations[0]['tank'])
|
||||
|
||||
@@ -61,10 +61,10 @@ def set_mixing_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
|
||||
|
||||
def set_mixing(name: str, cs: ChangeSet) -> ChangeSet:
|
||||
return execute_command(name, set_mixing_cache(name, cs))
|
||||
return execute_command(name, set_mixing_cmd(name, cs))
|
||||
|
||||
|
||||
def add_mixing_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
def add_mixing_cmd(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
new = Mixing(cs.operations[0])
|
||||
|
||||
redo_sql = f"insert into mixing (tank, model, value) values ({new.f_tank}, {new.f_model}, {new.f_value});"
|
||||
@@ -77,10 +77,10 @@ def add_mixing_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
|
||||
|
||||
def add_mixing(name: str, cs: ChangeSet) -> ChangeSet:
|
||||
return execute_command(name, add_mixing_cache(name, cs))
|
||||
return execute_command(name, add_mixing_cmd(name, cs))
|
||||
|
||||
|
||||
def delete_mixing_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
def delete_mixing_cmd(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
old = Mixing(get_mixing(name, cs.operations[0]['tank']))
|
||||
|
||||
redo_sql = f"delete from mixing where tank = {old.f_tank};"
|
||||
@@ -93,7 +93,7 @@ def delete_mixing_cache(name: str, cs: ChangeSet) -> DbChangeSet:
|
||||
|
||||
|
||||
def delete_mixing(name: str, cs: ChangeSet) -> ChangeSet:
|
||||
return execute_command(name, delete_mixing_cache(name, cs))
|
||||
return execute_command(name, delete_mixing_cmd(name, cs))
|
||||
|
||||
|
||||
class InpMixing:
|
||||
@@ -129,3 +129,10 @@ def inp_out_mixing(name: str) -> list[str]:
|
||||
value = obj['value'] if obj['value'] != None else ''
|
||||
lines.append(f'{tank} {model} {value}')
|
||||
return lines
|
||||
|
||||
|
||||
def delete_mixing_by_tank(name: str, tank: str) -> ChangeSet:
|
||||
row = try_read(name, f"select * from mixing where tank = '{tank}'")
|
||||
if row == None:
|
||||
return ChangeSet()
|
||||
return ChangeSet(g_delete_prefix | {'type' : 'mixing', 'tank': tank})
|
||||
|
||||
Reference in New Issue
Block a user