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):
|
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__()
|
super(Friction, self).__init__()
|
||||||
|
|
||||||
self._status = status
|
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._name = name
|
||||||
self._edge = None
|
self._edge = None
|
||||||
self._begin_kp = 0.0
|
self._begin_kp = 0.0
|
||||||
|
|
@ -42,7 +52,7 @@ class Friction(SQLSubModel):
|
||||||
def _db_create(cls, execute):
|
def _db_create(cls, execute):
|
||||||
execute("""
|
execute("""
|
||||||
CREATE TABLE friction(
|
CREATE TABLE friction(
|
||||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
id INTEGER NOT NULL PRIMARY KEY,
|
||||||
ind INTEGER NOT NULL,
|
ind INTEGER NOT NULL,
|
||||||
begin_kp REAL NOT NULL,
|
begin_kp REAL NOT NULL,
|
||||||
end_kp REAL NOT NULL,
|
end_kp REAL NOT NULL,
|
||||||
|
|
@ -70,28 +80,29 @@ class Friction(SQLSubModel):
|
||||||
stricklers = data["stricklers"].stricklers
|
stricklers = data["stricklers"].stricklers
|
||||||
|
|
||||||
table = execute(
|
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}"
|
f"FROM friction WHERE reach = {reach.id}"
|
||||||
)
|
)
|
||||||
|
|
||||||
for row in table:
|
for row in table:
|
||||||
ind = row[0]
|
id = row[0]
|
||||||
|
ind = row[1]
|
||||||
# Get stricklers
|
# Get stricklers
|
||||||
if int(row[3]) == -1:
|
if int(row[4]) == -1:
|
||||||
bs = None
|
bs = None
|
||||||
else:
|
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
|
es = None
|
||||||
else:
|
else:
|
||||||
es = next(filter(lambda s: s.id == row[4], stricklers))
|
es = next(filter(lambda s: s.id == row[5], stricklers))
|
||||||
|
|
||||||
# Create friction
|
# Create friction
|
||||||
sec = cls(status=status)
|
sec = cls(status=status)
|
||||||
sec.edge = reach
|
sec.edge = reach
|
||||||
sec.begin_kp = row[1]
|
sec.begin_kp = row[2]
|
||||||
sec.end_kp = row[2]
|
sec.end_kp = row[3]
|
||||||
sec.begin_strickler = bs
|
sec.begin_strickler = bs
|
||||||
sec.end_strickler = es
|
sec.end_strickler = es
|
||||||
|
|
||||||
|
|
@ -112,10 +123,11 @@ class Friction(SQLSubModel):
|
||||||
|
|
||||||
execute(
|
execute(
|
||||||
"INSERT INTO " +
|
"INSERT INTO " +
|
||||||
"friction(ind, begin_kp, end_kp, " +
|
"friction(id, ind, begin_kp, end_kp, " +
|
||||||
"reach, begin_strickler, end_strickler) " +
|
"reach, begin_strickler, end_strickler) " +
|
||||||
"VALUES (" +
|
"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"{self._edge.id}, " +
|
||||||
f"{b_s_id}, {e_s_id}" +
|
f"{b_s_id}, {e_s_id}" +
|
||||||
")"
|
")"
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,8 @@ class Stricklers(SQLSubModel):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def name(self):
|
def name(self):
|
||||||
|
if self._name == "":
|
||||||
|
return f"K{self.id + 1}"
|
||||||
return self._name
|
return self._name
|
||||||
|
|
||||||
@name.setter
|
@name.setter
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue