mirror of https://gitlab.com/pamhyr/pamhyr2
AdisTS AdisTT: fix initial conditions in scenario mode, now correctly saved in database, and load correctly, not creating duplicata when two datas have same ID with different scenario_id
parent
afe0217655
commit
252ac257fe
|
|
@ -31,10 +31,11 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
_sub_classes = []
|
_sub_classes = []
|
||||||
|
|
||||||
def __init__(self, id: int = -1, name: str = "",
|
def __init__(self, id: int = -1, name: str = "",
|
||||||
status=None, owner_scenario=None):
|
status=None, owner_scenario=-1):
|
||||||
super(ICAdisTSSpec, self).__init__()
|
super(ICAdisTSSpec, self).__init__(
|
||||||
|
id=id, status=status,
|
||||||
self._status = status
|
owner_scenario=owner_scenario
|
||||||
|
)
|
||||||
|
|
||||||
self._name_section = name
|
self._name_section = name
|
||||||
self._reach = None
|
self._reach = None
|
||||||
|
|
@ -190,7 +191,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
new_spec.rate = rate
|
new_spec.rate = rate
|
||||||
new_spec.enabled = enabled
|
new_spec.enabled = enabled
|
||||||
|
|
||||||
# loaded.add(pid)
|
loaded.add(id)
|
||||||
new.append(new_spec)
|
new.append(new_spec)
|
||||||
|
|
||||||
data["scenario"] = scenario.parent
|
data["scenario"] = scenario.parent
|
||||||
|
|
@ -234,7 +235,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@name.setter
|
@name.setter
|
||||||
def name(self, name):
|
def name(self, name):
|
||||||
self._name_section = name
|
self._name_section = name
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def reach(self):
|
def reach(self):
|
||||||
|
|
@ -243,7 +244,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@reach.setter
|
@reach.setter
|
||||||
def reach(self, reach):
|
def reach(self, reach):
|
||||||
self._reach = reach
|
self._reach = reach
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def start_rk(self):
|
def start_rk(self):
|
||||||
|
|
@ -252,7 +253,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@start_rk.setter
|
@start_rk.setter
|
||||||
def start_rk(self, start_rk):
|
def start_rk(self, start_rk):
|
||||||
self._start_rk = start_rk
|
self._start_rk = start_rk
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def end_rk(self):
|
def end_rk(self):
|
||||||
|
|
@ -261,7 +262,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@end_rk.setter
|
@end_rk.setter
|
||||||
def end_rk(self, end_rk):
|
def end_rk(self, end_rk):
|
||||||
self._end_rk = end_rk
|
self._end_rk = end_rk
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def concentration(self):
|
def concentration(self):
|
||||||
|
|
@ -270,7 +271,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@concentration.setter
|
@concentration.setter
|
||||||
def concentration(self, concentration):
|
def concentration(self, concentration):
|
||||||
self._concentration = concentration
|
self._concentration = concentration
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def eg(self):
|
def eg(self):
|
||||||
|
|
@ -279,7 +280,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@eg.setter
|
@eg.setter
|
||||||
def eg(self, eg):
|
def eg(self, eg):
|
||||||
self._eg = eg
|
self._eg = eg
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def em(self):
|
def em(self):
|
||||||
|
|
@ -288,7 +289,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@em.setter
|
@em.setter
|
||||||
def em(self, em):
|
def em(self, em):
|
||||||
self._em = em
|
self._em = em
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def ed(self):
|
def ed(self):
|
||||||
|
|
@ -297,7 +298,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@ed.setter
|
@ed.setter
|
||||||
def ed(self, ed):
|
def ed(self, ed):
|
||||||
self._ed = ed
|
self._ed = ed
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def rate(self):
|
def rate(self):
|
||||||
|
|
@ -306,7 +307,7 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@rate.setter
|
@rate.setter
|
||||||
def rate(self, rate):
|
def rate(self, rate):
|
||||||
self._rate = rate
|
self._rate = rate
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def enabled(self):
|
def enabled(self):
|
||||||
|
|
@ -315,4 +316,4 @@ class ICAdisTSSpec(SQLSubModel):
|
||||||
@enabled.setter
|
@enabled.setter
|
||||||
def enabled(self, enabled):
|
def enabled(self, enabled):
|
||||||
self._enabled = enabled
|
self._enabled = enabled
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
|
||||||
|
|
@ -31,10 +31,11 @@ class ICTemperatureSpec(SQLSubModel):
|
||||||
_sub_classes = []
|
_sub_classes = []
|
||||||
|
|
||||||
def __init__(self, id: int = -1, name: str = "",
|
def __init__(self, id: int = -1, name: str = "",
|
||||||
status=None, owner_scenario=None):
|
status=None, owner_scenario=-1):
|
||||||
super(ICTemperatureSpec, self).__init__()
|
super(ICTemperatureSpec, self).__init__(
|
||||||
|
id=id, status=status,
|
||||||
self._status = status
|
owner_scenario=owner_scenario
|
||||||
|
)
|
||||||
|
|
||||||
self._name_section = name
|
self._name_section = name
|
||||||
self._reach = None
|
self._reach = None
|
||||||
|
|
@ -122,7 +123,7 @@ class ICTemperatureSpec(SQLSubModel):
|
||||||
new_spec.end_rk = end_rk
|
new_spec.end_rk = end_rk
|
||||||
new_spec.temperature = temperature
|
new_spec.temperature = temperature
|
||||||
|
|
||||||
# loaded.add(pid)
|
loaded.add(id)
|
||||||
new.append(new_spec)
|
new.append(new_spec)
|
||||||
|
|
||||||
data["scenario"] = scenario.parent
|
data["scenario"] = scenario.parent
|
||||||
|
|
@ -163,7 +164,7 @@ class ICTemperatureSpec(SQLSubModel):
|
||||||
@name.setter
|
@name.setter
|
||||||
def name(self, name):
|
def name(self, name):
|
||||||
self._name_section = name
|
self._name_section = name
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def reach(self):
|
def reach(self):
|
||||||
|
|
@ -172,7 +173,7 @@ class ICTemperatureSpec(SQLSubModel):
|
||||||
@reach.setter
|
@reach.setter
|
||||||
def reach(self, reach):
|
def reach(self, reach):
|
||||||
self._reach = reach
|
self._reach = reach
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def start_rk(self):
|
def start_rk(self):
|
||||||
|
|
@ -181,7 +182,7 @@ class ICTemperatureSpec(SQLSubModel):
|
||||||
@start_rk.setter
|
@start_rk.setter
|
||||||
def start_rk(self, start_rk):
|
def start_rk(self, start_rk):
|
||||||
self._start_rk = start_rk
|
self._start_rk = start_rk
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def end_rk(self):
|
def end_rk(self):
|
||||||
|
|
@ -190,7 +191,7 @@ class ICTemperatureSpec(SQLSubModel):
|
||||||
@end_rk.setter
|
@end_rk.setter
|
||||||
def end_rk(self, end_rk):
|
def end_rk(self, end_rk):
|
||||||
self._end_rk = end_rk
|
self._end_rk = end_rk
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def temperature(self):
|
def temperature(self):
|
||||||
|
|
@ -199,4 +200,4 @@ class ICTemperatureSpec(SQLSubModel):
|
||||||
@temperature.setter
|
@temperature.setter
|
||||||
def temperature(self, temperature):
|
def temperature(self, temperature):
|
||||||
self._temperature = temperature
|
self._temperature = temperature
|
||||||
self._status.modified()
|
self.modified()
|
||||||
|
|
|
||||||
|
|
@ -198,13 +198,14 @@ class InitialConditionTableModel(PamhyrTableModel):
|
||||||
if self._headers[column] != "reach":
|
if self._headers[column] != "reach":
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetCommandSpec(
|
SetCommandSpec(
|
||||||
self._lst, row, self._headers[column], value
|
self._data, self._lst, row,
|
||||||
|
self._headers[column], value
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
elif self._headers[column] == "reach":
|
elif self._headers[column] == "reach":
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetCommandSpec(
|
SetCommandSpec(
|
||||||
self._lst, row, self._headers[column],
|
self._data, self._lst, row, self._headers[column],
|
||||||
self._river.edge(value).id
|
self._river.edge(value).id
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -80,31 +80,31 @@ class SetCommand(QUndoCommand):
|
||||||
|
|
||||||
|
|
||||||
class SetCommandSpec(QUndoCommand):
|
class SetCommandSpec(QUndoCommand):
|
||||||
def __init__(self, data, row, column, new_value):
|
def __init__(self, parent, data, row, column, new_value):
|
||||||
QUndoCommand.__init__(self)
|
QUndoCommand.__init__(self)
|
||||||
|
|
||||||
self._data = data
|
self._parent = parent
|
||||||
self._row = row
|
self._value = data[row]
|
||||||
self._column = column
|
self._column = column
|
||||||
|
|
||||||
if self._column == "name":
|
if self._column == "name":
|
||||||
self._old = self._data[self._row].name
|
self._old = self._value.name
|
||||||
elif self._column == "reach":
|
elif self._column == "reach":
|
||||||
self._old = self._data[self._row].reach
|
self._old = self._value.reach
|
||||||
elif self._column == "start_rk":
|
elif self._column == "start_rk":
|
||||||
self._old = self._data[self._row].start_rk
|
self._old = self._value.start_rk
|
||||||
elif self._column == "end_rk":
|
elif self._column == "end_rk":
|
||||||
self._old = self._data[self._row].end_rk
|
self._old = self._value.end_rk
|
||||||
elif self._column == "concentration":
|
elif self._column == "concentration":
|
||||||
self._old = self._data[self._row].concentration
|
self._old = self._value.concentration
|
||||||
elif self._column == "eg":
|
elif self._column == "eg":
|
||||||
self._old = self._data[self._row].eg
|
self._old = self._value.eg
|
||||||
elif self._column == "em":
|
elif self._column == "em":
|
||||||
self._old = self._data[self._row].em
|
self._old = self._value.em
|
||||||
elif self._column == "ed":
|
elif self._column == "ed":
|
||||||
self._old = self._data[self._row].ed
|
self._old = self._value.ed
|
||||||
elif self._column == "rate":
|
elif self._column == "rate":
|
||||||
self._old = self._data[self._row].rate
|
self._old = self._value.rate
|
||||||
|
|
||||||
_type = float
|
_type = float
|
||||||
if column == "name":
|
if column == "name":
|
||||||
|
|
@ -115,44 +115,12 @@ class SetCommandSpec(QUndoCommand):
|
||||||
self._new = _type(new_value)
|
self._new = _type(new_value)
|
||||||
|
|
||||||
def undo(self):
|
def undo(self):
|
||||||
if self._column == "name":
|
setattr(self._value, self._column, self._old)
|
||||||
self._data[self._row].name = self._old
|
self._parent.modified()
|
||||||
elif self._column == "reach":
|
|
||||||
self._data[self._row].reach = self._old
|
|
||||||
elif self._column == "start_rk":
|
|
||||||
self._data[self._row].start_rk = self._old
|
|
||||||
elif self._column == "end_rk":
|
|
||||||
self._data[self._row].end_rk = self._old
|
|
||||||
elif self._column == "concentration":
|
|
||||||
self._data[self._row].concentration = self._old
|
|
||||||
elif self._column == "eg":
|
|
||||||
self._data[self._row].eg = self._old
|
|
||||||
elif self._column == "em":
|
|
||||||
self._data[self._row].em = self._old
|
|
||||||
elif self._column == "ed":
|
|
||||||
self._data[self._row].ed = self._old
|
|
||||||
elif self._column == "rate":
|
|
||||||
self._data[self._row].rate = self._old
|
|
||||||
|
|
||||||
def redo(self):
|
def redo(self):
|
||||||
if self._column == "name":
|
setattr(self._value, self._column, self._new)
|
||||||
self._data[self._row].name = self._new
|
self._parent.modified()
|
||||||
elif self._column == "reach":
|
|
||||||
self._data[self._row].reach = self._new
|
|
||||||
elif self._column == "start_rk":
|
|
||||||
self._data[self._row].start_rk = self._new
|
|
||||||
elif self._column == "end_rk":
|
|
||||||
self._data[self._row].end_rk = self._new
|
|
||||||
elif self._column == "concentration":
|
|
||||||
self._data[self._row].concentration = self._new
|
|
||||||
elif self._column == "eg":
|
|
||||||
self._data[self._row].eg = self._new
|
|
||||||
elif self._column == "em":
|
|
||||||
self._data[self._row].em = self._new
|
|
||||||
elif self._column == "ed":
|
|
||||||
self._data[self._row].ed = self._new
|
|
||||||
elif self._column == "rate":
|
|
||||||
self._data[self._row].rate = self._new
|
|
||||||
|
|
||||||
|
|
||||||
class AddCommand(QUndoCommand):
|
class AddCommand(QUndoCommand):
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ from PyQt5.QtWidgets import (
|
||||||
from View.Tools.PamhyrTable import PamhyrTableModel
|
from View.Tools.PamhyrTable import PamhyrTableModel
|
||||||
|
|
||||||
from View.InitialConditionsTemperature.UndoCommand import (
|
from View.InitialConditionsTemperature.UndoCommand import (
|
||||||
SetCommand, AddCommand, SetCommandSpec,
|
AddCommand, SetCommandSpec,
|
||||||
DelCommand,
|
DelCommand,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -214,16 +214,9 @@ class InitialConditionTableModel(PamhyrTableModel):
|
||||||
column = index.column()
|
column = index.column()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if self._headers[column] in ["name", "temperature"]:
|
|
||||||
self._undo.push(
|
|
||||||
SetCommand(
|
|
||||||
self._lst, row, self._headers[column], value
|
|
||||||
)
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetCommandSpec(
|
SetCommandSpec(
|
||||||
self._lst, row, self._headers[column],
|
self._data, self._lst, row, self._headers[column],
|
||||||
(self._river.edge(value).id
|
(self._river.edge(value).id
|
||||||
if self._headers[column] == "reach"
|
if self._headers[column] == "reach"
|
||||||
else value
|
else value
|
||||||
|
|
|
||||||
|
|
@ -62,21 +62,21 @@ class SetCommand(QUndoCommand):
|
||||||
|
|
||||||
|
|
||||||
class SetCommandSpec(QUndoCommand):
|
class SetCommandSpec(QUndoCommand):
|
||||||
def __init__(self, data, row, column, new_value):
|
def __init__(self, parent, data, row, column, new_value):
|
||||||
QUndoCommand.__init__(self)
|
QUndoCommand.__init__(self)
|
||||||
|
|
||||||
self._data = data
|
self._parent = parent
|
||||||
self._row = row
|
self._value = data[row]
|
||||||
self._column = column
|
self._column = column
|
||||||
|
|
||||||
if self._column == "name":
|
if self._column == "name":
|
||||||
self._old = self._data[self._row].name
|
self._old = self._value.name
|
||||||
elif self._column == "reach":
|
elif self._column == "reach":
|
||||||
self._old = self._data[self._row].reach
|
self._old = self._value.reach
|
||||||
elif self._column == "rk":
|
elif self._column == "rk":
|
||||||
self._old = self._data[self._row].start_rk
|
self._old = self._value.start_rk
|
||||||
elif self._column == "temperature":
|
elif self._column == "temperature":
|
||||||
self._old = self._data[self._row].temperature
|
self._old = self._value.temperature
|
||||||
|
|
||||||
_type = float
|
_type = float
|
||||||
if column == "name":
|
if column == "name":
|
||||||
|
|
@ -88,25 +88,27 @@ class SetCommandSpec(QUndoCommand):
|
||||||
|
|
||||||
def undo(self):
|
def undo(self):
|
||||||
if self._column == "name":
|
if self._column == "name":
|
||||||
self._data[self._row].name = self._old
|
self._value.name = self._old
|
||||||
elif self._column == "reach":
|
elif self._column == "reach":
|
||||||
self._data[self._row].reach = self._old
|
self._value.reach = self._old
|
||||||
elif self._column == "rk":
|
elif self._column == "rk":
|
||||||
self._data[self._row].start_rk = self._old
|
self._value.start_rk = self._old
|
||||||
self._data[self._row].end_rk = self._old
|
self._value.end_rk = self._old
|
||||||
elif self._column == "temperature":
|
elif self._column == "temperature":
|
||||||
self._data[self._row].temperature = self._old
|
self._value.temperature = self._old
|
||||||
|
self._parent.modified()
|
||||||
|
|
||||||
def redo(self):
|
def redo(self):
|
||||||
if self._column == "name":
|
if self._column == "name":
|
||||||
self._data[self._row].name = self._new
|
self._value.name = self._new
|
||||||
elif self._column == "reach":
|
elif self._column == "reach":
|
||||||
self._data[self._row].reach = self._new
|
self._value.reach = self._new
|
||||||
elif self._column == "rk":
|
elif self._column == "rk":
|
||||||
self._data[self._row].start_rk = self._new
|
self._value.start_rk = self._new
|
||||||
self._data[self._row].end_rk = self._new
|
self._value.end_rk = self._new
|
||||||
elif self._column == "temperature":
|
elif self._column == "temperature":
|
||||||
self._data[self._row].temperature = self._new
|
self._value.temperature = self._new
|
||||||
|
self._parent.modified()
|
||||||
|
|
||||||
|
|
||||||
class AddCommand(QUndoCommand):
|
class AddCommand(QUndoCommand):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue