mirror of https://gitlab.com/pamhyr/pamhyr2
Model, SQL: Fix solver parameters loading.
parent
1b9115ef87
commit
9cf3177b57
|
|
@ -251,9 +251,7 @@ class River(Graph, SQLSubModel):
|
||||||
)
|
)
|
||||||
|
|
||||||
# Parameters
|
# Parameters
|
||||||
for solver in new._parameters:
|
new._parameters = SolverParametersList._sql_load(
|
||||||
data["solver"] = solver
|
|
||||||
new._parameters[solver] = SolverParametersList(
|
|
||||||
execute,
|
execute,
|
||||||
data
|
data
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
from copy import copy
|
from copy import copy
|
||||||
from tools import trace, timer
|
from tools import trace, timer
|
||||||
|
from Solver.Solvers import solver_type_list
|
||||||
|
|
||||||
from Model.DB import SQLSubModel
|
from Model.DB import SQLSubModel
|
||||||
|
|
||||||
|
|
@ -81,32 +82,33 @@ class SolverParametersList(SQLSubModel):
|
||||||
@classmethod
|
@classmethod
|
||||||
def _sql_load(cls, execute, data = None):
|
def _sql_load(cls, execute, data = None):
|
||||||
status = data["status"]
|
status = data["status"]
|
||||||
solver = data["solver"]
|
solvers = execute("SELECT DISTINCT solver FROM solver_parameter")
|
||||||
|
new = {}
|
||||||
|
|
||||||
new = cls(solver_type = solver, status = status)
|
for solver in solvers:
|
||||||
|
solver = solver[0]
|
||||||
|
if solver not in solver_type_list:
|
||||||
|
continue
|
||||||
|
|
||||||
|
st = solver_type_list[solver]
|
||||||
|
n = cls(solver_type = st, status = status)
|
||||||
|
|
||||||
table = execute(
|
table = execute(
|
||||||
"SELECT ind, name, value " +
|
"SELECT ind, name, value " +
|
||||||
"FROM solver_parameter " +
|
"FROM solver_parameter " +
|
||||||
f"WHERE solver = '{solver.type}'"
|
f"WHERE solver = '{solver}'"
|
||||||
)
|
)
|
||||||
|
|
||||||
for _ in table:
|
|
||||||
new._parameters.append(None)
|
|
||||||
|
|
||||||
for row in table:
|
for row in table:
|
||||||
ind = row[0]
|
ind = row[0]
|
||||||
name = row[1]
|
name = row[1]
|
||||||
value = row[2]
|
value = row[2]
|
||||||
|
|
||||||
p = cls(
|
n.set_value(name, value)
|
||||||
name = name,
|
|
||||||
value = value,
|
|
||||||
status = status
|
|
||||||
)
|
|
||||||
new._parameters[ind] = p
|
|
||||||
|
|
||||||
return stricklers
|
new[solver] = n
|
||||||
|
|
||||||
|
return new
|
||||||
|
|
||||||
def _sql_save(self, execute, data = None):
|
def _sql_save(self, execute, data = None):
|
||||||
t = self._solver._type
|
t = self._solver._type
|
||||||
|
|
@ -146,6 +148,22 @@ class SolverParametersList(SQLSubModel):
|
||||||
self._parameters[index] = new
|
self._parameters[index] = new
|
||||||
self._status.modified()
|
self._status.modified()
|
||||||
|
|
||||||
|
def set_value(self, key, value):
|
||||||
|
for p in self._parameters:
|
||||||
|
if p["name"] == key:
|
||||||
|
p["value"] = value
|
||||||
|
self._status.modified()
|
||||||
|
return
|
||||||
|
|
||||||
|
self._parameters.append(
|
||||||
|
Parameter(
|
||||||
|
name = key,
|
||||||
|
value = value,
|
||||||
|
status = self._status
|
||||||
|
)
|
||||||
|
)
|
||||||
|
self._status.modified()
|
||||||
|
|
||||||
def new(self, index):
|
def new(self, index):
|
||||||
n = Parameter(status = self._status)
|
n = Parameter(status = self._status)
|
||||||
self._parameters.insert(index, n)
|
self._parameters.insert(index, n)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue