From 67af95cb40f63b835c321cdecd0d8391ec705268 Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Thu, 11 May 2023 16:34:29 +0200
Subject: [PATCH] BC: Edit: Add plot display mode 'time' and 'date'.

---
 src/View/BoundaryCondition/Edit/Plot.py   | 31 +++++++++++++++--------
 src/View/BoundaryCondition/Edit/Window.py |  1 +
 2 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/src/View/BoundaryCondition/Edit/Plot.py b/src/View/BoundaryCondition/Edit/Plot.py
index efb039e7..66878b7c 100644
--- a/src/View/BoundaryCondition/Edit/Plot.py
+++ b/src/View/BoundaryCondition/Edit/Plot.py
@@ -14,13 +14,16 @@ from View.BoundaryCondition.Edit.translate import *
 _translate = QCoreApplication.translate
 
 class Plot(APlot):
-    def __init__(self, canvas=None, data=None, toolbar=None):
+    def __init__(self, canvas=None, data=None,
+                 mode = "time", toolbar=None):
         super(Plot, self).__init__(
             canvas=canvas,
             data=data,
             toolbar=toolbar
         )
 
+        self._mode = mode
+
     def custom_ticks(self):
         t0 = datetime.fromtimestamp(0)
         nb = len(self.data.data)
@@ -36,16 +39,24 @@ class Plot(APlot):
             )
         )
         xx = list(map(lambda v: v[0], fx))
-        xt = list(
-            map(
-                lambda v: str(
-                    datetime.fromtimestamp(v[0]) - t0
-                ).split(",")[0]\
-                .replace("days", _translate("BoundaryCondition", "days"))\
-                .replace("day", _translate("BoundaryCondition", "day")),
-                fx
+        if self._mode == "time":
+            xt = list(
+                map(
+                    lambda v: str(
+                        datetime.fromtimestamp(v[0]) - t0
+                    ).split(",")[0]\
+                    .replace("days", _translate("BoundaryCondition", "days"))\
+                    .replace("day", _translate("BoundaryCondition", "day")),
+                    fx
+                )
+            )
+        else:
+            xt = list(
+                map(
+                    lambda v: str(datetime.fromtimestamp(v[0]).date()),
+                    fx
+                )
             )
-        )
 
         self.canvas.axes.set_xticks(ticks=xx, labels=xt, rotation=45)
 
diff --git a/src/View/BoundaryCondition/Edit/Window.py b/src/View/BoundaryCondition/Edit/Window.py
index 24ec9fca..8cd8fbad 100644
--- a/src/View/BoundaryCondition/Edit/Window.py
+++ b/src/View/BoundaryCondition/Edit/Window.py
@@ -96,6 +96,7 @@ class EditBoundaryConditionWindow(ASubMainWindow, ListedSubWindow):
         self.plot = Plot(
             canvas = self.canvas,
             data = self._data,
+            mode = self._study.time_system,
         )
         self.plot.draw()
 
-- 
GitLab