Compare commits

..

7 Commits

17 changed files with 417 additions and 337 deletions

View File

@ -248,15 +248,13 @@ class BoundaryConditionAdisTS(SQLSubModel):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False created = False
if major == "0" and minor == "0": if major == "0" and int(minor) < 2:
if int(release) < 11: if cls.is_table_exists(execute, "boundary_condition_adists"):
cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute) cls._db_create(execute)
created = True created = True
if major == "0" and int(minor) < 2:
if not created:
cls._db_update_to_0_2_0(execute, data)
if not created: if not created:
return cls._update_submodel(execute, version, data) return cls._update_submodel(execute, version, data)

View File

@ -73,15 +73,13 @@ class D90AdisTS(SQLSubModel):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False created = False
if major == "0" and minor == "0": if major == "0" and int(minor) < 2:
if int(release) < 11: if cls.is_table_exists(execute, "d90_adists"):
cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute) cls._db_create(execute)
created = True created = True
if major == "0" and int(minor) < 2:
if not created:
cls._db_update_to_0_2_0(execute, data)
if not created: if not created:
return cls._update_submodel(execute, version, data) return cls._update_submodel(execute, version, data)

View File

@ -70,16 +70,12 @@ class D90AdisTSSpec(SQLSubModel):
@classmethod @classmethod
def _db_update(cls, execute, version, data=None): def _db_update(cls, execute, version, data=None):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False
if major == "0" and minor == "0":
if int(release) < 11:
cls._db_create(execute)
created = True
if major == "0" and int(minor) < 2: if major == "0" and int(minor) < 2:
if not created: if cls.is_table_exists(execute, "d90_spec"):
cls._db_update_to_0_2_0(execute, data) cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute)
return True return True

View File

@ -79,15 +79,13 @@ class DIFAdisTS(SQLSubModel):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False created = False
if major == "0" and minor == "0": if major == "0" and int(minor) < 2:
if int(release) < 11: if cls.is_table_exists(execute, "dif_adists"):
cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute) cls._db_create(execute)
created = True created = True
if major == "0" and int(minor) < 2:
if not created:
cls._db_update_to_0_2_0(execute, data)
if not created: if not created:
return cls._update_submodel(execute, version, data) return cls._update_submodel(execute, version, data)

View File

@ -81,16 +81,12 @@ class DIFAdisTSSpec(SQLSubModel):
@classmethod @classmethod
def _db_update(cls, execute, version, data=None): def _db_update(cls, execute, version, data=None):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False
if major == "0" and minor == "0":
if int(release) < 11:
cls._db_create(execute)
created = True
if major == "0" and int(minor) < 2: if major == "0" and int(minor) < 2:
if not created: if cls.is_table_exists(execute, "dif_spec"):
cls._db_update_to_0_2_0(execute, data) cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute)
return True return True

View File

@ -66,6 +66,11 @@ class PointXYZ(Point):
) )
""") """)
execute(
"CREATE INDEX idx_point " +
"ON geometry_pointXYZ(profile, scenario);"
)
return cls._create_submodel(execute) return cls._create_submodel(execute)
@classmethod @classmethod
@ -90,6 +95,13 @@ class PointXYZ(Point):
"ADD COLUMN deleted BOOLEAN NOT NULL DEFAULT FALSE" "ADD COLUMN deleted BOOLEAN NOT NULL DEFAULT FALSE"
) )
if major == "0" and minor == "2":
if int(release) < 5:
execute(
"CREATE INDEX idx_point " +
"ON geometry_pointXYZ(profile, scenario);"
)
return cls._update_submodel(execute, version, data) return cls._update_submodel(execute, version, data)
@classmethod @classmethod

View File

@ -79,16 +79,12 @@ class InitialConditionsAdisTS(SQLSubModel):
@classmethod @classmethod
def _db_update(cls, execute, version, data=None): def _db_update(cls, execute, version, data=None):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False
if major == "0" and minor == "0":
if int(release) < 11:
cls._db_create(execute)
created = True
if major == "0" and int(minor) < 2: if major == "0" and int(minor) < 2:
if not created: if cls.is_table_exists(execute, "initial_conditions_adists"):
cls._db_update_to_0_2_0(execute, data) cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute)
return True return True

View File

@ -77,16 +77,12 @@ class ICAdisTSSpec(SQLSubModel):
@classmethod @classmethod
def _db_update(cls, execute, version, data=None): def _db_update(cls, execute, version, data=None):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False
if major == "0" and minor == "0":
if int(release) < 11:
cls._db_create(execute)
created = True
if major == "0" and int(minor) < 2: if major == "0" and int(minor) < 2:
if not created: if cls.is_table_exists(execute, "initial_conditions_adists_spec"):
cls._db_update_to_0_2_0(execute, data) cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute)
return True return True

View File

@ -69,14 +69,11 @@ class Data(SQLSubModel):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False created = False
if major == "0" and minor == "0":
if int(release) < 11:
cls._db_create(execute)
created = True
if major == "0" and int(minor) < 2: if major == "0" and int(minor) < 2:
if not created: if cls.is_table_exists(execute, "lateral_contribution_data_adists"):
cls._db_update_to_0_2_0(execute, data) cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute)
return True return True
@ -243,15 +240,13 @@ class LateralContributionAdisTS(SQLSubModel):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False created = False
if major == "0" and minor == "0": if major == "0" and int(minor) < 2:
if int(release) < 11: if cls.is_table_exists(execute, "lateral_contribution_adists"):
cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute) cls._db_create(execute)
created = True created = True
if major == "0" and int(minor) < 2:
if not created:
cls._db_update_to_0_2_0(execute, data)
if not created: if not created:
return cls._update_submodel(execute, version, data) return cls._update_submodel(execute, version, data)

View File

@ -95,16 +95,12 @@ class OutputRKAdists(SQLSubModel):
@classmethod @classmethod
def _db_update(cls, execute, version, data=None): def _db_update(cls, execute, version, data=None):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False
if major == "0" and minor == "0":
if int(release) < 11:
cls._db_create(execute)
created = True
if major == "0" and int(minor) < 2: if major == "0" and int(minor) < 2:
if not created: if cls.is_table_exists(execute, "OutputRKAdists"):
cls._db_update_to_0_2_0(execute, data) cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute)
return True return True

View File

@ -34,18 +34,6 @@ from Model.BoundaryConditionsAdisTS.BoundaryConditionAdisTS import (
logger = logging.getLogger() logger = logging.getLogger()
# Types de polluants: indice -> nom du type
POLLUTANT_TYPES = {
0: "Soluté",
1: "Particules sphériques",
2: "Galets lisses",
3: "Sable naturel",
4: "Sable concassé",
5: "Cylindres longs",
6: "Limon, particules cohésives",
7: "Flocs"
}
class PollutantCharacteristics(SQLSubModel): class PollutantCharacteristics(SQLSubModel):
_sub_classes = [] _sub_classes = []
@ -150,16 +138,12 @@ class PollutantCharacteristics(SQLSubModel):
@classmethod @classmethod
def _db_update(cls, execute, version, data=None): def _db_update(cls, execute, version, data=None):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False
if major == "0" and minor == "0":
if int(release) < 11:
cls._db_create(execute)
created = True
if major == "0" and int(minor) < 2: if major == "0" and int(minor) < 2:
if not created: if cls.is_table_exists(execute, "Pollutants_characteristics"):
cls._db_update_to_0_2_0(execute, data) cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute)
return cls._update_submodel(execute, version, data) return cls._update_submodel(execute, version, data)
@ -382,15 +366,13 @@ class Pollutants(SQLSubModel):
major, minor, release = version.strip().split(".") major, minor, release = version.strip().split(".")
created = False created = False
if major == "0" and minor == "0": if major == "0" and int(minor) < 2:
if int(release) < 11: if cls.is_table_exists(execute, "Pollutants"):
cls._db_update_to_0_2_0(execute, data)
else:
cls._db_create(execute) cls._db_create(execute)
created = True created = True
if major == "0" and int(minor) < 2:
if not created:
cls._db_update_to_0_2_0(execute, data)
if not created: if not created:
return cls._update_submodel(execute, version, data) return cls._update_submodel(execute, version, data)

View File

@ -46,7 +46,7 @@ logger = logging.getLogger()
class Study(SQLModel): class Study(SQLModel):
_version = "0.2.4" _version = "0.2.5"
_sub_classes = [ _sub_classes = [
Scenario, Scenario,

View File

@ -301,6 +301,15 @@ class SQLSubModel(PamhyrID):
""" """
raise NotImplementedMethodeError(cls, cls._db_update) raise NotImplementedMethodeError(cls, cls._db_update)
@classmethod
def is_table_exists(cls, execute, table):
return any(
execute(
"SELECT name FROM sqlite_master " +
f"WHERE type='table' AND name='{table}'"
)
)
@classmethod @classmethod
def _db_update_to_0_2_0_set_node_pid(cls, execute, table, nodes): def _db_update_to_0_2_0_set_node_pid(cls, execute, table, nodes):
els = execute( els = execute(

View File

@ -40,8 +40,6 @@ from View.Pollutants.Edit.UndoCommand import (
SetDataCommand, PasteCommand, SetDataCommand, PasteCommand,
) )
from Model.Pollutants.Pollutants import POLLUTANT_TYPES
_translate = QCoreApplication.translate _translate = QCoreApplication.translate
logger = logging.getLogger() logger = logging.getLogger()
@ -51,17 +49,20 @@ class ComboBoxDelegate(QItemDelegate):
def __init__(self, type_dict=None, trad=None, parent=None): def __init__(self, type_dict=None, trad=None, parent=None):
super(ComboBoxDelegate, self).__init__(parent) super(ComboBoxDelegate, self).__init__(parent)
self._type_dict = type_dict if type_dict else POLLUTANT_TYPES # self._type_dict = type_dict if type_dict else POLLUTANT_TYPES
self._trad = trad self._trad = trad
self.editor = None self.editor = None
self._type = {}
if self._trad is not None:
self._type = self._trad.get_dict("type")
def createEditor(self, parent, option, index): def createEditor(self, parent, option, index):
self.editor = QComboBox(parent) self.editor = QComboBox(parent)
# Ajouter les items du dictionnaire # Ajouter les items du dictionnaire
for key in sorted(self._type_dict.keys()): for key, value in self._type.items():
display_text = self._type_dict[key] self.editor.addItem(value, key)
self.editor.addItem(display_text, userData=key)
self.editor.currentTextChanged.connect(self.currentItemChanged) self.editor.currentTextChanged.connect(self.currentItemChanged)
return self.editor return self.editor
@ -96,6 +97,14 @@ class ComboBoxDelegate(QItemDelegate):
class TableModel(PamhyrTableModel): class TableModel(PamhyrTableModel):
def __init__(self, trad=None, **kwargs):
self._trad = trad
self._types = {}
if self._trad is not None:
self._types = self._trad.get_dict("types")
super(TableModel, self).__init__(trad=trad, **kwargs)
def is_same_data(self, index, value): def is_same_data(self, index, value):
row = index.row() row = index.row()
column = index.column() column = index.column()
@ -122,7 +131,7 @@ class TableModel(PamhyrTableModel):
# Si c'est la colonne "type", convertir l'indice en string # Si c'est la colonne "type", convertir l'indice en string
if self._headers[column] == "type": if self._headers[column] == "type":
return POLLUTANT_TYPES.get(int(value), str(value)) value = self._trad.get_dict("type").get(value, "")
return value return value

View File

@ -24,6 +24,18 @@ from View.Pollutants.Translate import PollutantsTranslate
_translate = QCoreApplication.translate _translate = QCoreApplication.translate
# Types de polluants: indice -> nom du type
POLLUTANT_TYPES = {
0: "Solutes",
1: "Spherical particles",
2: "Smooth pebbles",
3: "Natural sand",
4: "Crushed sand",
5: "Elongated cylinders",
6: "Silts, cohesive particles",
7: "Flocs"
}
class EditPollutantTranslate(PollutantsTranslate): class EditPollutantTranslate(PollutantsTranslate):
def __init__(self): def __init__(self):
@ -44,3 +56,14 @@ class EditPollutantTranslate(PollutantsTranslate):
"ac": self._dict["unit_ac"], "ac": self._dict["unit_ac"],
"bc": self._dict["unit_bc"], "bc": self._dict["unit_bc"],
} }
self._sub_dict["type"] = {
0: _translate("Pollutants", "Solutes"),
1: _translate("Pollutants", "Spherical particles"),
2: _translate("Pollutants", "Smooth pebbles"),
3: _translate("Pollutants", "Natural sand"),
4: _translate("Pollutants", "Crushed sand"),
5: _translate("Pollutants", "Elongated cylinders"),
6: _translate("Pollutants", "Silts, cohesive particles"),
7: _translate("Pollutants", "Flocs"),
}

View File

@ -95,6 +95,7 @@ class EditPolluantWindow(PamhyrWindow):
editable_headers=editable_headers, editable_headers=editable_headers,
delegates={"type": self._delegate_type}, delegates={"type": self._delegate_type},
data=self._data, data=self._data,
trad=self._trad,
undo=self._undo_stack, undo=self._undo_stack,
opt_data=self._study.time_system opt_data=self._study.time_system
) )

File diff suppressed because it is too large Load Diff