mirror of https://gitlab.com/pamhyr/pamhyr2
Model: Add status versioning and update study version to 0.0.10.
parent
bbe127865b
commit
2ee8420b94
|
|
@ -22,10 +22,19 @@ logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class SavedStatus(object):
|
class SavedStatus(object):
|
||||||
def __init__(self):
|
def __init__(self, version=0):
|
||||||
super(SavedStatus, self).__init__()
|
super(SavedStatus, self).__init__()
|
||||||
|
self._version = version
|
||||||
self._saved = True
|
self._saved = True
|
||||||
|
|
||||||
|
@property
|
||||||
|
def version(self):
|
||||||
|
return self._version
|
||||||
|
|
||||||
|
@version.setter
|
||||||
|
def version(self, version):
|
||||||
|
self._version = version
|
||||||
|
|
||||||
def is_saved(self):
|
def is_saved(self):
|
||||||
return self._saved
|
return self._saved
|
||||||
|
|
||||||
|
|
@ -34,5 +43,11 @@ class SavedStatus(object):
|
||||||
self._saved = True
|
self._saved = True
|
||||||
|
|
||||||
def modified(self):
|
def modified(self):
|
||||||
# logger.debug("model status set as modified")
|
if self._saved:
|
||||||
|
self._version += 1
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
"STATUS: Model status set as modified " +
|
||||||
|
f"at version {self._version}"
|
||||||
|
)
|
||||||
self._saved = False
|
self._saved = False
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ class Study(SQLModel):
|
||||||
|
|
||||||
def __init__(self, filename=None, init_new=True):
|
def __init__(self, filename=None, init_new=True):
|
||||||
# Metadata
|
# Metadata
|
||||||
self._version = "0.0.9"
|
self._version = "0.0.10"
|
||||||
self.creation_date = datetime.now()
|
self.creation_date = datetime.now()
|
||||||
self.last_modification_date = datetime.now()
|
self.last_modification_date = datetime.now()
|
||||||
self.last_save_date = datetime.now()
|
self.last_save_date = datetime.now()
|
||||||
|
|
@ -209,7 +209,12 @@ class Study(SQLModel):
|
||||||
def _create(self):
|
def _create(self):
|
||||||
# Info (metadata)
|
# Info (metadata)
|
||||||
self.execute(
|
self.execute(
|
||||||
"CREATE TABLE info(key TEXT NOT NULL UNIQUE, value TEXT NOT NULL)")
|
"INSERT INTO info VALUES ('study_release', '0')"
|
||||||
|
)
|
||||||
|
|
||||||
|
self.execute(
|
||||||
|
"CREATE TABLE info(key TEXT NOT NULL UNIQUE, value TEXT NOT NULL)"
|
||||||
|
)
|
||||||
self.execute(
|
self.execute(
|
||||||
"INSERT INTO info VALUES ('version', " +
|
"INSERT INTO info VALUES ('version', " +
|
||||||
f"'{self._db_format(self._version)}')",
|
f"'{self._db_format(self._version)}')",
|
||||||
|
|
@ -218,19 +223,20 @@ class Study(SQLModel):
|
||||||
self.execute("INSERT INTO info VALUES ('name', '')")
|
self.execute("INSERT INTO info VALUES ('name', '')")
|
||||||
self.execute("INSERT INTO info VALUES ('description', '')")
|
self.execute("INSERT INTO info VALUES ('description', '')")
|
||||||
self.execute(
|
self.execute(
|
||||||
f"INSERT INTO info VALUES ('time_system', '{self._time_system}')")
|
f"INSERT INTO info VALUES ('time_system', '{self._time_system}')"
|
||||||
|
)
|
||||||
self.execute(
|
self.execute(
|
||||||
f"INSERT INTO info VALUES ('date', " +
|
"INSERT INTO info VALUES ('date', " +
|
||||||
"'{self._date.timestamp()}')"
|
f"'{self._date.timestamp()}')"
|
||||||
)
|
)
|
||||||
|
|
||||||
self.execute(
|
self.execute(
|
||||||
f"INSERT INTO info VALUES ('creation_date', " +
|
"INSERT INTO info VALUES ('creation_date', " +
|
||||||
"'{self.creation_time.timestamp()}')"
|
f"'{self.creation_date.timestamp()}')"
|
||||||
)
|
)
|
||||||
self.execute(
|
self.execute(
|
||||||
f"INSERT INTO info VALUES ('last_save_date', " +
|
"INSERT INTO info VALUES ('last_save_date', " +
|
||||||
"'{self.last_save_time.timestamp()}')"
|
f"'{self.last_save_date.timestamp()}')"
|
||||||
)
|
)
|
||||||
|
|
||||||
self._create_submodel()
|
self._create_submodel()
|
||||||
|
|
@ -245,6 +251,12 @@ class Study(SQLModel):
|
||||||
|
|
||||||
logger.debug("Update database")
|
logger.debug("Update database")
|
||||||
|
|
||||||
|
major, minor, release = version[0].split('.')
|
||||||
|
if major == "0" and minor == "0" and int(release) < 10:
|
||||||
|
self.execute(
|
||||||
|
"INSERT INTO info VALUES ('study_release', '0')"
|
||||||
|
)
|
||||||
|
|
||||||
if self._update_submodel(version[0]):
|
if self._update_submodel(version[0]):
|
||||||
self.execute(
|
self.execute(
|
||||||
f"UPDATE info SET value='{self._version}' WHERE key='version'"
|
f"UPDATE info SET value='{self._version}' WHERE key='version'"
|
||||||
|
|
@ -258,6 +270,9 @@ class Study(SQLModel):
|
||||||
def _load(cls, filename):
|
def _load(cls, filename):
|
||||||
new = cls(init_new=False, filename=filename)
|
new = cls(init_new=False, filename=filename)
|
||||||
|
|
||||||
|
version = new.execute("SELECT value FROM info WHERE key='study_release'")[0]
|
||||||
|
new.status.version = int(version)
|
||||||
|
|
||||||
# TODO: Load metadata
|
# TODO: Load metadata
|
||||||
new.name = new.execute("SELECT value FROM info WHERE key='name'")[0]
|
new.name = new.execute("SELECT value FROM info WHERE key='name'")[0]
|
||||||
new.description = new.execute(
|
new.description = new.execute(
|
||||||
|
|
@ -292,6 +307,11 @@ class Study(SQLModel):
|
||||||
def _save(self, progress=None):
|
def _save(self, progress=None):
|
||||||
progress = progress if progress is not None else lambda: None
|
progress = progress if progress is not None else lambda: None
|
||||||
|
|
||||||
|
self.execute(
|
||||||
|
"INSERT INTO info VALUES ('study_release', "+
|
||||||
|
f"'{self.status.version}')"
|
||||||
|
)
|
||||||
|
|
||||||
self.execute(
|
self.execute(
|
||||||
f"UPDATE info SET " +
|
f"UPDATE info SET " +
|
||||||
f"value='{self._db_format(self.name)}' WHERE key='name'"
|
f"value='{self._db_format(self.name)}' WHERE key='name'"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue