From 1ff895368eab93105ba8fa6da9797db833a5534a Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Tue, 26 Mar 2024 08:36:45 +0100
Subject: [PATCH] pamhyr: Fix save after backup and minor change.

---
 src/Model/Study.py        |  5 +++--
 src/Solver/CommandLine.py | 21 +++++++++++++++++----
 src/Solver/Mage.py        |  2 ++
 3 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/src/Model/Study.py b/src/Model/Study.py
index d9167d19..14bb5c91 100644
--- a/src/Model/Study.py
+++ b/src/Model/Study.py
@@ -103,15 +103,16 @@ class Study(SQLModel):
             except Exception as e:
                 logger.error(e)
 
+        is_new = False
         fname = fname + "." + str(self._old_save_id)
         if os.path.exists(self.filename) and ".backup" not in self.filename:
             filename = os.path.join(fdir, "_PAMHYR_", "__old__", fname)
             logger.debug(f"Backup previous version copy: {filename}")
             shutil.copy(self.filename, filename)
             self._old_save_id += 1
-        else:
-            self._init_db_file(self.filename, is_new=True)
+            is_new = True
 
+        self._init_db_file(self.filename, is_new=is_new)
         self.commit()
 
         # Save
diff --git a/src/Solver/CommandLine.py b/src/Solver/CommandLine.py
index e93d4e98..86b32442 100644
--- a/src/Solver/CommandLine.py
+++ b/src/Solver/CommandLine.py
@@ -131,13 +131,15 @@ class CommandLineSolver(AbstractSolver):
         if qlog is not None:
             qlog.put("Export additional files")
 
-        files = study.river.additional_files.files
-        for add_file in files:
+        add_files = study.river.additional_files.files
+        for add_file in add_files:
             self.export_additional_file(
-                add_file, repertory, files
+                study, add_file, repertory, files
             )
 
-    def export_additional_file(self, add_file, repertory, files):
+        return files
+
+    def export_additional_file(self, study, add_file, repertory, files):
         if add_file.path == "" or not add_file.is_enabled():
             return files
 
@@ -158,6 +160,17 @@ class CommandLineSolver(AbstractSolver):
 
         return files
 
+    def export_study_description(self, study, repertory, qlog, name="0"):
+        files = []
+
+        path = os.path.join(
+            repertory, "pamhyr-study-description.txt"
+        )
+
+        with open(path, "w+") as f:
+            txt = study.description
+            f.write(txt)
+
     #######
     # Run #
     #######
diff --git a/src/Solver/Mage.py b/src/Solver/Mage.py
index 51f7d656..5594e68b 100644
--- a/src/Solver/Mage.py
+++ b/src/Solver/Mage.py
@@ -672,6 +672,7 @@ class Mage(CommandLineSolver):
 
         self._export_ST(study, repertory, qlog, name=name)
         self.export_additional_files(study, repertory, qlog, name=name)
+        self.export_study_description(study, repertory, qlog, name=name)
 
         return True
 
@@ -891,6 +892,7 @@ class Mage8(Mage):
             study, repertory, qlog, name=name
         )
 
+        self.export_study_description(study, repertory, qlog, name=name)
         self._export_REP(study, repertory, files, qlog, name=name)
 
         return True
-- 
GitLab