mirror of https://gitlab.com/pamhyr/pamhyr2
Compare commits
2 Commits
6dfa876809
...
3a78d6d6f7
| Author | SHA1 | Date |
|---|---|---|
|
|
3a78d6d6f7 | |
|
|
bbf85a6048 |
|
|
@ -37,6 +37,8 @@ logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class Study(SQLModel):
|
class Study(SQLModel):
|
||||||
|
_version = "0.2.0"
|
||||||
|
|
||||||
_sub_classes = [
|
_sub_classes = [
|
||||||
Scenario,
|
Scenario,
|
||||||
River,
|
River,
|
||||||
|
|
@ -44,7 +46,6 @@ class Study(SQLModel):
|
||||||
|
|
||||||
def __init__(self, filename=None, init_new=True):
|
def __init__(self, filename=None, init_new=True):
|
||||||
# Metadata
|
# Metadata
|
||||||
self._version = "0.2.0"
|
|
||||||
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()
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,7 @@ class TableModel(PamhyrTableModel):
|
||||||
)
|
)
|
||||||
|
|
||||||
self.endRemoveRows()
|
self.endRemoveRows()
|
||||||
|
self.update()
|
||||||
|
|
||||||
def sort(self, _reverse, parent=QModelIndex()):
|
def sort(self, _reverse, parent=QModelIndex()):
|
||||||
self.layoutAboutToBeChanged.emit()
|
self.layoutAboutToBeChanged.emit()
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ from platformdirs import user_cache_dir
|
||||||
|
|
||||||
from Solver.AdisTS import AdisTS
|
from Solver.AdisTS import AdisTS
|
||||||
from Solver.Mage import Mage8
|
from Solver.Mage import Mage8
|
||||||
from tools import logger_exception
|
from tools import logger_exception, pamhyr_db_need_update
|
||||||
|
|
||||||
from PyQt5 import QtGui
|
from PyQt5 import QtGui
|
||||||
from PyQt5.QtGui import (
|
from PyQt5.QtGui import (
|
||||||
|
|
@ -1087,10 +1087,13 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||||
dialog.setDirectory(os.path.dirname(self.conf.last_study))
|
dialog.setDirectory(os.path.dirname(self.conf.last_study))
|
||||||
|
|
||||||
if dialog.exec_():
|
if dialog.exec_():
|
||||||
file_name = dialog.selectedFiles()
|
file_name = dialog.selectedFiles()[0]
|
||||||
|
|
||||||
|
if pamhyr_db_need_update(file_name, Study._version):
|
||||||
|
shutil.copyfile(file_name, file_name + ".old")
|
||||||
|
|
||||||
def fn():
|
def fn():
|
||||||
self._tmp_study = Study.open(file_name[0])
|
self._tmp_study = Study.open(file_name)
|
||||||
|
|
||||||
dlg = WaitingDialog(
|
dlg = WaitingDialog(
|
||||||
payload_fn=fn,
|
payload_fn=fn,
|
||||||
|
|
|
||||||
20
src/tools.py
20
src/tools.py
|
|
@ -19,6 +19,7 @@
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import logging
|
import logging
|
||||||
|
import sqlite3
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
|
|
@ -456,3 +457,22 @@ def _parse_word_up_to_next_sep(words, sep=" "):
|
||||||
|
|
||||||
rest = words[i+1:]
|
rest = words[i+1:]
|
||||||
return word, rest
|
return word, rest
|
||||||
|
|
||||||
|
|
||||||
|
######
|
||||||
|
# DB #
|
||||||
|
######
|
||||||
|
|
||||||
|
def pamhyr_db_need_update(db_file, expected_version):
|
||||||
|
db = sqlite3.connect(db_file, check_same_thread=False)
|
||||||
|
cur = db.cursor()
|
||||||
|
|
||||||
|
data = cur.execute(
|
||||||
|
"SELECT value FROM info WHERE key='version'"
|
||||||
|
).fetchall()
|
||||||
|
|
||||||
|
db.close()
|
||||||
|
if len(data) == 0:
|
||||||
|
return True
|
||||||
|
|
||||||
|
return expected_version != data[0]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue