mirror of https://gitlab.com/pamhyr/pamhyr2
Friction: Add id to friction and default name to stricklers.
parent
28bea42b15
commit
afb4c1b61e
|
|
@ -26,11 +26,21 @@ logger = logging.getLogger()
|
|||
|
||||
|
||||
class Friction(SQLSubModel):
|
||||
def __init__(self, name: str = "", status=None):
|
||||
_id_cnt = 0
|
||||
|
||||
def __init__(self, id: int = -1, name: str = "",
|
||||
status=None):
|
||||
super(Friction, self).__init__()
|
||||
|
||||
self._status = status
|
||||
|
||||
if id == -1:
|
||||
self.id = Friction._id_cnt
|
||||
else:
|
||||
self.id = id
|
||||
|
||||
Friction._id_cnt = max(self.id, Friction._id_cnt+1)
|
||||
|
||||
self._name = name
|
||||
self._edge = None
|
||||
self._begin_kp = 0.0
|
||||
|
|
@ -42,7 +52,7 @@ class Friction(SQLSubModel):
|
|||
def _db_create(cls, execute):
|
||||
execute("""
|
||||
CREATE TABLE friction(
|
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
id INTEGER NOT NULL PRIMARY KEY,
|
||||
ind INTEGER NOT NULL,
|
||||
begin_kp REAL NOT NULL,
|
||||
end_kp REAL NOT NULL,
|
||||
|
|
@ -70,28 +80,29 @@ class Friction(SQLSubModel):
|
|||
stricklers = data["stricklers"].stricklers
|
||||
|
||||
table = execute(
|
||||
"SELECT ind, begin_kp, end_kp, begin_strickler, end_strickler " +
|
||||
"SELECT id, ind, begin_kp, end_kp, begin_strickler, end_strickler " +
|
||||
f"FROM friction WHERE reach = {reach.id}"
|
||||
)
|
||||
|
||||
for row in table:
|
||||
ind = row[0]
|
||||
id = row[0]
|
||||
ind = row[1]
|
||||
# Get stricklers
|
||||
if int(row[3]) == -1:
|
||||
if int(row[4]) == -1:
|
||||
bs = None
|
||||
else:
|
||||
bs = next(filter(lambda s: s.id == row[3], stricklers))
|
||||
bs = next(filter(lambda s: s.id == row[4], stricklers))
|
||||
|
||||
if int(row[4]) == -1:
|
||||
if int(row[5]) == -1:
|
||||
es = None
|
||||
else:
|
||||
es = next(filter(lambda s: s.id == row[4], stricklers))
|
||||
es = next(filter(lambda s: s.id == row[5], stricklers))
|
||||
|
||||
# Create friction
|
||||
sec = cls(status=status)
|
||||
sec.edge = reach
|
||||
sec.begin_kp = row[1]
|
||||
sec.end_kp = row[2]
|
||||
sec.begin_kp = row[2]
|
||||
sec.end_kp = row[3]
|
||||
sec.begin_strickler = bs
|
||||
sec.end_strickler = es
|
||||
|
||||
|
|
@ -112,10 +123,11 @@ class Friction(SQLSubModel):
|
|||
|
||||
execute(
|
||||
"INSERT INTO " +
|
||||
"friction(ind, begin_kp, end_kp, " +
|
||||
"friction(id, ind, begin_kp, end_kp, " +
|
||||
"reach, begin_strickler, end_strickler) " +
|
||||
"VALUES (" +
|
||||
f"{ind}, {self._begin_kp}, {self._end_kp}, " +
|
||||
f"{self.id}, {ind}, " +
|
||||
f"{self._begin_kp}, {self._end_kp}, " +
|
||||
f"{self._edge.id}, " +
|
||||
f"{b_s_id}, {e_s_id}" +
|
||||
")"
|
||||
|
|
|
|||
|
|
@ -120,6 +120,8 @@ class Stricklers(SQLSubModel):
|
|||
|
||||
@property
|
||||
def name(self):
|
||||
if self._name == "":
|
||||
return f"K{self.id + 1}"
|
||||
return self._name
|
||||
|
||||
@name.setter
|
||||
|
|
|
|||
Loading…
Reference in New Issue