Commit afb4c1b6 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

Friction: Add id to friction and default name to stricklers.

Showing with 26 additions and 12 deletions
+26 -12
...@@ -26,11 +26,21 @@ logger = logging.getLogger() ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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): ...@@ -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
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment