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

Study: Save study metadata in SQL.

Showing with 37 additions and 1 deletion
+37 -1
...@@ -83,6 +83,7 @@ class Study(SQLModel): ...@@ -83,6 +83,7 @@ class Study(SQLModel):
def filename(self, filename): def filename(self, filename):
self._filename = str(filename) self._filename = str(filename)
self._init_db_file(filename, is_new = True) self._init_db_file(filename, is_new = True)
self.status.modified()
@property @property
def time_system(self): def time_system(self):
...@@ -136,6 +137,22 @@ class Study(SQLModel): ...@@ -136,6 +137,22 @@ class Study(SQLModel):
f"INSERT INTO info VALUES ('version', '{self._sql_format(self._version)}')", f"INSERT INTO info VALUES ('version', '{self._sql_format(self._version)}')",
commit = True commit = True
) )
self.execute("INSERT INTO info VALUES ('name', '')")
self.execute("INSERT INTO info VALUES ('description', '')")
self.execute(f"INSERT INTO info VALUES ('time_system', '{self._time_system}')")
self.execute(
f"INSERT INTO info VALUES ('date', " +
"'{self._date.timestamp()}')"
)
self.execute(
f"INSERT INTO info VALUES ('creation_date', " +
"'{self.creation_time.timestamp()}')"
)
self.execute(
f"INSERT INTO info VALUES ('last_save_date', " +
"'{self.last_save_time.timestamp()}')"
)
self._create_submodel() self._create_submodel()
self.commit() self.commit()
...@@ -159,7 +176,19 @@ class Study(SQLModel): ...@@ -159,7 +176,19 @@ class Study(SQLModel):
new = cls(init_new = False, filename = filename) new = cls(init_new = False, filename = filename)
# TODO: Load metadata # TODO: Load metadata
print("TODO: Load metadata") new.name = new.execute("SELECT value FROM info WHERE key='name'")[0]
new.description = new.execute("SELECT value FROM info WHERE key='description'")[0]
new._time_system = new.execute("SELECT value FROM info WHERE key='time_system'")[0]
new._date = datetime.fromtimestamp(
float(new.execute("SELECT value FROM info WHERE key='date'")[0])
)
new.creation_date = datetime.fromtimestamp(
float(new.execute("SELECT value FROM info WHERE key='creation_date'")[0])
)
new.last_save_date = datetime.fromtimestamp(
float(new.execute("SELECT value FROM info WHERE key='last_save_date'")[0])
)
# Load river data # Load river data
new._river = River._sql_load( new._river = River._sql_load(
...@@ -174,5 +203,12 @@ class Study(SQLModel): ...@@ -174,5 +203,12 @@ class Study(SQLModel):
return new return new
def _save(self): def _save(self):
self.execute(f"UPDATE info SET value='{self._sql_format(self.name)}' WHERE key='name'")
self.execute(f"UPDATE info SET value='{self._sql_format(self.description)}' WHERE key='description'")
self.execute(f"UPDATE info SET value='{self._time_system}' WHERE key='time_system'")
self.execute(f"UPDATE info SET value='{self._date.timestamp()}' WHERE key='date'")
self.execute(f"UPDATE info SET value='{self.creation_date.timestamp()}' WHERE key='creation_date'")
self.execute(f"UPDATE info SET value='{self.last_save_date.timestamp()}' WHERE key='last_save_date'")
self._save_submodel([self._river]) self._save_submodel([self._river])
self.commit() self.commit()
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