diff --git a/src/Model/Study.py b/src/Model/Study.py index 50edc5ce0ea7d057d19facde261136690f7a6ffd..32893e3648f725a253d75f9c68af12e953a8b04e 100644 --- a/src/Model/Study.py +++ b/src/Model/Study.py @@ -83,6 +83,7 @@ class Study(SQLModel): def filename(self, filename): self._filename = str(filename) self._init_db_file(filename, is_new = True) + self.status.modified() @property def time_system(self): @@ -136,6 +137,22 @@ class Study(SQLModel): f"INSERT INTO info VALUES ('version', '{self._sql_format(self._version)}')", 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.commit() @@ -159,7 +176,19 @@ class Study(SQLModel): new = cls(init_new = False, filename = filename) # 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 new._river = River._sql_load( @@ -174,5 +203,12 @@ class Study(SQLModel): return new 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.commit()