mirror of https://gitlab.com/pamhyr/pamhyr2
Study: Save study metadata in SQL.
parent
96d03ee41a
commit
3778818b58
|
|
@ -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):
|
||||||
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):
|
||||||
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):
|
||||||
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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue