mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Model: Add status versioning and update study version to 0.0.10.
This commit is contained in:
1 parent
bbe127865b
commit
2ee8420b94
2 files changed
+46
-11
No files matched your search
+17
-2
@@ -22,10 +22,19 @@ logger = logging.getLogger()
|
||||
|
||||
|
||||
class SavedStatus(object):
|
||||
def __init__(self):
|
||||
def __init__(self, version=0):
|
||||
super(SavedStatus, self).__init__()
|
||||
self._version = version
|
||||
self._saved = True
|
||||
|
||||
@property
|
||||
def version(self):
|
||||
return self._version
|
||||
|
||||
@version.setter
|
||||
def version(self, version):
|
||||
self._version = version
|
||||
|
||||
def is_saved(self):
|
||||
return self._saved
|
||||
|
||||
@@ -34,5 +43,11 @@ class SavedStatus(object):
|
||||
self._saved = True
|
||||
|
||||
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
|
||||
+29
-9
@@ -41,7 +41,7 @@ class Study(SQLModel):
|
||||
|
||||
def __init__(self, filename=None, init_new=True):
|
||||
# Metadata
|
||||
self._version = "0.0.9"
|
||||
self._version = "0.0.10"
|
||||
self.creation_date = datetime.now()
|
||||
self.last_modification_date = datetime.now()
|
||||
self.last_save_date = datetime.now()
|
||||
@@ -209,7 +209,12 @@ class Study(SQLModel):
|
||||
def _create(self):
|
||||
# Info (metadata)
|
||||
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(
|
||||
"INSERT INTO info VALUES ('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 ('description', '')")
|
||||
self.execute(
|
||||
f"INSERT INTO info VALUES ('time_system', '{self._time_system}')")
|
||||
f"INSERT INTO info VALUES ('time_system', '{self._time_system}')"
|
||||
)
|
||||
self.execute(
|
||||
f"INSERT INTO info VALUES ('date', " +
|
||||
"'{self._date.timestamp()}')"
|
||||
"INSERT INTO info VALUES ('date', " +
|
||||
f"'{self._date.timestamp()}')"
|
||||
)
|
||||
|
||||
self.execute(
|
||||
f"INSERT INTO info VALUES ('creation_date', " +
|
||||
"'{self.creation_time.timestamp()}')"
|
||||
"INSERT INTO info VALUES ('creation_date', " +
|
||||
f"'{self.creation_date.timestamp()}')"
|
||||
)
|
||||
self.execute(
|
||||
f"INSERT INTO info VALUES ('last_save_date', " +
|
||||
"'{self.last_save_time.timestamp()}')"
|
||||
"INSERT INTO info VALUES ('last_save_date', " +
|
||||
f"'{self.last_save_date.timestamp()}')"
|
||||
)
|
||||
|
||||
self._create_submodel()
|
||||
@@ -245,6 +251,12 @@ class Study(SQLModel):
|
||||
|
||||
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]):
|
||||
self.execute(
|
||||
f"UPDATE info SET value='{self._version}' WHERE key='version'"
|
||||
@@ -258,6 +270,9 @@ class Study(SQLModel):
|
||||
def _load(cls, 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
|
||||
new.name = new.execute("SELECT value FROM info WHERE key='name'")[0]
|
||||
new.description = new.execute(
|
||||
@@ -292,6 +307,11 @@ class Study(SQLModel):
|
||||
def _save(self, progress=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(
|
||||
f"UPDATE info SET " +
|
||||
f"value='{self._db_format(self.name)}' WHERE key='name'"
|
||||
|
||||
Reference in new issue
Block a user