mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Scenarios: Add scenarios table in db and default scenario in study.
This commit is contained in:
1 parent
4c25355be9
commit
3ecf97ac82
4 files changed
+268
-14
No files matched your search
@@ -0,0 +1,60 @@
|
||||
# Scenarios.py -- Pamhyr
|
||||
# Copyright (C) 2024 INRAE
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from tools import logger_exception
|
||||
|
||||
from Model.Tools.PamhyrDict import PamhyrModelDict
|
||||
from Model.Scenario import Scenario
|
||||
|
||||
class Scenarios(PamhyrModelDict):
|
||||
_sub_classes = [
|
||||
Scenario,
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def _db_load(cls, execute, data=None):
|
||||
new = cls(status=data["status"])
|
||||
|
||||
new._dict = Scenario._db_load(
|
||||
execute,
|
||||
data=data
|
||||
)
|
||||
|
||||
return new
|
||||
|
||||
def _db_save(self, execute, data=None):
|
||||
ok = True
|
||||
if data is None:
|
||||
data = {}
|
||||
|
||||
scenarios = self._dict
|
||||
for sid in scenarios:
|
||||
ok &= scenarios[sid]._db_save(execute, data)
|
||||
|
||||
return ok
|
||||
|
||||
def get(self, key):
|
||||
if key in self._dict:
|
||||
return self._dict[key]
|
||||
|
||||
return None
|
||||
|
||||
def new(self, parent):
|
||||
new = Scenario(parent=parent, status=self._status)
|
||||
self.set(new._id, new)
|
||||
return new
|
||||
Reference in new issue
Block a user