commit 5d673ce0a2b0b3ac9951bf6b787df7fdd0e966bb
Author: Lucas Bihannic <lucas.bihannic@inrae.fr>
Date:   Wed Mar 19 15:03:10 2025 +0100

    add the startup calibration page

diff --git a/GES_PAC/AppShell.xaml.cs b/GES_PAC/AppShell.xaml.cs
index 533836a..247f806 100644
--- a/GES_PAC/AppShell.xaml.cs
+++ b/GES_PAC/AppShell.xaml.cs
@@ -14,6 +14,7 @@ namespace GES_PAC
             Routing.RegisterRoute(nameof(CreateDayView), typeof(CreateDayView));
             Routing.RegisterRoute(nameof(CreatePersonView), typeof(CreatePersonView));
             Routing.RegisterRoute(nameof(CreatePlaceView), typeof(CreatePlaceView));
+            Routing.RegisterRoute(nameof(CreateCalibrationView), typeof(CreateCalibrationView));
         }
     }
 
diff --git a/GES_PAC/GES_PAC.csproj b/GES_PAC/GES_PAC.csproj
index 71cb290..ea9c8f9 100644
--- a/GES_PAC/GES_PAC.csproj
+++ b/GES_PAC/GES_PAC.csproj
@@ -66,6 +66,9 @@
 	</ItemGroup>
 
 	<ItemGroup>
+	  <Compile Update="View\CreateCalibrationView.xaml.cs">
+	    <DependentUpon>CreateCalibrationView.xaml</DependentUpon>
+	  </Compile>
 	  <Compile Update="View\CreateDayView.xaml.cs">
 	    <DependentUpon>CreateDayView.xaml</DependentUpon>
 	  </Compile>
@@ -75,6 +78,9 @@
 	</ItemGroup>
 
 	<ItemGroup>
+	  <MauiXaml Update="View\CreateCalibrationView.xaml">
+	    <Generator>MSBuild:Compile</Generator>
+	  </MauiXaml>
 	  <MauiXaml Update="View\CreateDayView.xaml">
 	    <Generator>MSBuild:Compile</Generator>
 	  </MauiXaml>
diff --git a/GES_PAC/GES_PAC.csproj.user b/GES_PAC/GES_PAC.csproj.user
index 3b869f9..bb23a41 100644
--- a/GES_PAC/GES_PAC.csproj.user
+++ b/GES_PAC/GES_PAC.csproj.user
@@ -6,6 +6,7 @@
     <ActiveDebugProfile>Xiaomi 23090RA98G (Android 14.0 - API 34)</ActiveDebugProfile>
     <SelectedPlatformGroup>PhysicalDevice</SelectedPlatformGroup>
     <DefaultDevice>pixel_7_-_api_35</DefaultDevice>
+    <SelectedDevice>Xiaomi 23090RA98G</SelectedDevice>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net9.0-android|AnyCPU'">
     <DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
diff --git a/GES_PAC/Model/Calibration.cs b/GES_PAC/Model/Calibration.cs
index 48bd14a..61272e2 100644
--- a/GES_PAC/Model/Calibration.cs
+++ b/GES_PAC/Model/Calibration.cs
@@ -5,12 +5,28 @@ namespace GES_PAC.Model
     {
         public long Id { get; set; }
         public PhaseCalibration Phase { get; set; }
-        public MesureCalibration Mesure { get; set; }
-    }
+        public List<MesureCalibration> Mesures { get; set; }
+        
+        public Calibration(PhaseCalibration Phase, MesureCalibration Mesure)
+        {
+            this.Phase = Phase;
+            Mesures = [];
+            Mesures.Add(Mesure);
+        }
 
-    public enum PhaseCalibration
-    {
-        DEBUT,
-        FIN
+        public void AddMesure(MesureCalibration mesure)
+        {
+            Mesures.Add(mesure);
+        }
+
+        public bool IsComplete()
+        {
+            return Mesures.Count == 3;
+        }
+
+        public List<TypeCalibration> GetTypesDone()
+        {
+            return Mesures.Select(m => m.Type).Distinct().ToList();
+        }
     }
 }
diff --git a/GES_PAC/Model/Journee.cs b/GES_PAC/Model/Journee.cs
index 1141297..0717653 100644
--- a/GES_PAC/Model/Journee.cs
+++ b/GES_PAC/Model/Journee.cs
@@ -1,26 +1,71 @@
 
+using System.Diagnostics;
+using System.Linq;
+
 namespace GES_PAC.Model
 {
     public class Journee
     {
+        #region Propriétés
         public Personne Responsable { get; set; }
         public Lieu Lieu { get; set; }
         public long Id { get; set; }
         public DateTime Date { get; set; }
-        public string Espece { get; set; }
         public string Regime { get; set; }
         public List<Serie> Series { get; set; }
         public List<Calibration> Calibrations { get; set; }
-        
-        public Journee(DateTime Date, Personne Responsable, Lieu Lieu, string Espece, string Regime)
+        #endregion
+
+        #region Constructeurs
+        public Journee(DateTime Date, Personne Responsable, Lieu Lieu, string Regime)
         {
             this.Responsable = Responsable;
             this.Lieu = Lieu;
             this.Date = Date;
-            this.Espece = Espece;
             this.Regime = Regime;
-            this.Series = [];
-            this.Calibrations = [];
+            Series = [];
+            Calibrations = [];
+        }
+        #endregion
+
+        #region Méthodes
+
+        public bool AddCalibration(MesureCalibration mesureCalibration)
+        {
+            if (Calibrations.Count == 0 || Calibrations.Last().IsComplete())
+            {
+                Calibrations.Add(new Calibration(Calibrations.Count == 0 ? PhaseCalibration.Debut : PhaseCalibration.Fin, mesureCalibration));
+            }
+            else
+            {
+                Calibrations.Last().Mesures.Add(mesureCalibration);
+                return Calibrations.Last().IsComplete();
+            }
+            return false;
+        }
+
+        public PhaseCalibration GetCurrentPhase()
+        {
+            if (Calibrations.Count == 0 || !Calibrations.Last().IsComplete())
+            {
+                return PhaseCalibration.Debut;
+            }
+            return PhaseCalibration.Fin;
+        }
+
+        public Calibration GetCurrentCalibration()
+        {
+            return Calibrations.FirstOrDefault(c => c.Phase == GetCurrentPhase());
+        }
+
+        public List<TypeCalibration> GetCurrentMissingCalibration()
+        {
+            if (Calibrations.Count == 0 || Calibrations.Last().IsComplete())
+            {
+                return TypeCalibration.All;
+            }
+            return TypeCalibration.All.Except(Calibrations.Last().GetTypesDone()).ToList();
         }
+        #endregion
     }
 }
diff --git a/GES_PAC/Model/Mesure.cs b/GES_PAC/Model/Mesure.cs
index 2a40ec7..b96c4f3 100644
--- a/GES_PAC/Model/Mesure.cs
+++ b/GES_PAC/Model/Mesure.cs
@@ -8,5 +8,13 @@ namespace GES_PAC.Model
         public double Conc_O2 { get; set; }
         public double Conc_CO2 { get; set; }
         public double Conc_CH4 { get; set; }
+
+        public Mesure(DateTime Time, double Conc_O2, double Conc_CO2, double Conc_CH4)
+        {
+            this.Time = Time;
+            this.Conc_O2 = Conc_O2;
+            this.Conc_CO2 = Conc_CO2;
+            this.Conc_CH4 = Conc_CH4;
+        }
     }
 }
diff --git a/GES_PAC/Model/MesureCalibration.cs b/GES_PAC/Model/MesureCalibration.cs
index df6bc75..7430c22 100644
--- a/GES_PAC/Model/MesureCalibration.cs
+++ b/GES_PAC/Model/MesureCalibration.cs
@@ -4,14 +4,13 @@ namespace GES_PAC.Model
     public class MesureCalibration : Mesure
     {
         public TypeCalibration Type { get; set; }
-        public String? RefBouteille { get; set; }
+        public string RefBouteille { get; set; }
 
-    }
+        public MesureCalibration(DateTime Time, double Conc_O2, double Conc_CO2, double Conc_CH4, TypeCalibration Type, string RefBouteille) : base(Time, Conc_O2, Conc_CO2, Conc_CH4)
+        {
+            this.Type = Type;
+            this.RefBouteille = RefBouteille;
+        }
 
-    public enum TypeCalibration
-    {
-        AIR,
-        METHANE,
-        MELANGE
     }
 }
diff --git a/GES_PAC/Model/PhaseCalibration.cs b/GES_PAC/Model/PhaseCalibration.cs
new file mode 100644
index 0000000..9fa0343
--- /dev/null
+++ b/GES_PAC/Model/PhaseCalibration.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GES_PAC.Model
+{
+    public class PhaseCalibration
+    {
+        public string Name { get; }
+        public int Value { get; }
+
+        private PhaseCalibration(string name, int value) // a passer en public quand integration webservice
+        {
+            Name = name;
+            Value = value;
+        }
+
+        public static readonly PhaseCalibration Debut = new("Début", 1);
+        public static readonly PhaseCalibration Fin = new("Fin", 2);
+
+        public static readonly List<PhaseCalibration> All = new() { Debut, Fin };
+
+        public override string ToString() => Name;
+
+    }
+}
diff --git a/GES_PAC/Model/TypeCalibration.cs b/GES_PAC/Model/TypeCalibration.cs
new file mode 100644
index 0000000..128949e
--- /dev/null
+++ b/GES_PAC/Model/TypeCalibration.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GES_PAC.Model
+{
+    public class TypeCalibration
+    {
+        public string Name { get; }
+        public int Value { get; }
+
+        private TypeCalibration(string name, int value) // a passer en public quand integration webservice
+        {
+            Name = name;
+            Value = value;
+        }
+
+        public static readonly TypeCalibration Air = new("Air", 1);
+        public static readonly TypeCalibration Methane = new("Methane", 2);
+        public static readonly TypeCalibration Melange = new("Mélange", 3);
+
+        public static readonly List<TypeCalibration> All = new() { Air, Methane, Melange };
+
+        public override string ToString() => Name;
+    }
+
+}
diff --git a/GES_PAC/View/CreateCalibrationView.xaml b/GES_PAC/View/CreateCalibrationView.xaml
new file mode 100644
index 0000000..e48d581
--- /dev/null
+++ b/GES_PAC/View/CreateCalibrationView.xaml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
+             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+             xmlns:vm="clr-namespace:GES_PAC.ViewModel"
+             xmlns:tools="clr-namespace:GES_PAC.View.Tools"
+             x:Class="GES_PAC.View.CreateCalibrationView"
+             x:DataType="vm:CreateCalibrationViewModel">
+
+    <Grid>
+        <StackLayout BackgroundColor="White" Spacing="50">
+            <tools:ConnectionIndicatorView />
+            <ScrollView>
+
+                <VerticalStackLayout Grid.Row="1" Spacing="30">
+
+                    <Label Text="Mesure de calibration"
+                       FontSize="20"
+                       FontAttributes="Bold"
+                       HorizontalOptions="Center" />
+                    <VerticalStackLayout Spacing="15" WidthRequest="300">
+
+                        <!-- Type de calibration -->
+                        <VerticalStackLayout>
+
+                            <Label Text="Type de calibration" FontSize="14" TextColor="Gray" FontAttributes="Bold"/>
+
+                            <Picker Title="Sélectionnez un type de calibration"
+                                ItemsSource="{Binding TypeCalibrations}"
+                                ItemDisplayBinding="{Binding Name}"
+                                SelectedItem="{Binding SelectedType}" />
+
+
+                            <Label Text="Sélectionnez un type de calibration"
+                                FontSize="12"
+                                TextColor="Red"
+                                IsVisible="{Binding TypeError}"/>
+                        </VerticalStackLayout>
+
+                        <!-- O2 -->
+                        <VerticalStackLayout>
+                            <Label Text="O2 (% vol.)" FontSize="14" TextColor="Gray" FontAttributes="Bold"/>
+                            <Entry Text="{Binding ConcO2 , Mode=TwoWay, TargetNullValue=''}" 
+                                   FontSize="16" 
+                                   TextColor="Black" 
+                                   Placeholder="0,0" 
+                                   Keyboard="Numeric"/>
+                            <Label Text="Entrez une valeur"
+                                FontSize="12"
+                                TextColor="Red"
+                                IsVisible="{Binding ConcO2Error}"/>
+                        </VerticalStackLayout>
+
+                        <!-- CO2 -->
+                        <VerticalStackLayout>
+                            <Label Text="CO2 (% vol.)" FontSize="14" TextColor="Gray" FontAttributes="Bold"/>
+                            <Entry Text="{Binding ConcCO2, Mode=TwoWay, TargetNullValue=''}" 
+                                   FontSize="16" 
+                                   TextColor="Black" 
+                                   Placeholder="0,0" 
+                                   Keyboard="Numeric"/>
+                            <Label Text="Entrez une valeur"
+                                FontSize="12"
+                                TextColor="Red"
+                                IsVisible="{Binding ConcCO2Error}"/>
+                        </VerticalStackLayout>
+
+                        <!-- CH4 -->
+                        <VerticalStackLayout>
+                            <Label Text="CH4 (ppm)" FontSize="14" TextColor="Gray" FontAttributes="Bold"/>
+                            <Entry Text="{Binding ConcCH4, Mode=TwoWay, TargetNullValue=''}" 
+                                   FontSize="16" 
+                                   TextColor="Black" 
+                                   Placeholder="0,0" 
+                                   Keyboard="Numeric"/>
+                            <Label Text="Entrez une valeur"
+                                FontSize="12"
+                                TextColor="Red"
+                                IsVisible="{Binding ConcCH4Error}"/>
+                        </VerticalStackLayout>
+
+
+                    </VerticalStackLayout>
+                </VerticalStackLayout>
+            </ScrollView>
+            <StackLayout
+                Margin="10"
+                HorizontalOptions="CenterAndExpand"
+                Orientation="Horizontal"
+                VerticalOptions="FillAndExpand">
+
+                <Button 
+                    Text="Créer une journée"
+                    Command="{Binding CreateCalibrationCommand}"
+                    Style="{StaticResource btnNormal}"
+                    IsEnabled="{Binding IsFormValid}"
+                    VerticalOptions="End"/>
+            </StackLayout>
+        </StackLayout>
+        <Grid Grid.RowSpan="1" IsVisible="{Binding IsBusy}">
+            <Border StrokeThickness="0"
+                            Background="Black"
+                            Opacity="0.5"
+                            Padding="20"
+                            WidthRequest="160"
+                            HeightRequest="160"
+                            HorizontalOptions="Center"
+                            VerticalOptions="Center"
+                            StrokeShape="RoundRectangle 20">
+
+                <VerticalStackLayout HorizontalOptions="Center" VerticalOptions="Center">
+                    <ActivityIndicator IsRunning="True" Color="White" />
+                    <Label Text="Chargement..."
+                            FontSize="14"
+                            TextColor="white"
+                            HorizontalOptions="Center"/>
+                </VerticalStackLayout>
+            </Border>
+        </Grid>
+    </Grid>
+
+</ContentPage>
\ No newline at end of file
diff --git a/GES_PAC/View/CreateCalibrationView.xaml.cs b/GES_PAC/View/CreateCalibrationView.xaml.cs
new file mode 100644
index 0000000..f8f62d5
--- /dev/null
+++ b/GES_PAC/View/CreateCalibrationView.xaml.cs
@@ -0,0 +1,13 @@
+using GES_PAC.ViewModel;
+
+namespace GES_PAC.View
+{
+    public partial class CreateCalibrationView
+    {
+        public CreateCalibrationView()
+        {
+            InitializeComponent();
+            BindingContext = new CreateCalibrationViewModel();
+        }
+    }
+}
diff --git a/GES_PAC/View/CreateDayView.xaml b/GES_PAC/View/CreateDayView.xaml
index 9bfa5c1..9bae749 100644
--- a/GES_PAC/View/CreateDayView.xaml
+++ b/GES_PAC/View/CreateDayView.xaml
@@ -52,16 +52,6 @@
                                 IsVisible="{Binding PersonError}"/>
                         </VerticalStackLayout>
 
-                        <!-- Espèce -->
-                        <VerticalStackLayout>
-                            <Label Text="Espèce" FontSize="14" TextColor="Gray" FontAttributes="Bold"/>
-                            <Entry Text="{Binding Espece}" FontSize="16" TextColor="Black" Placeholder="Entrer l'espèce"/>
-                            <Label Text="Min. 3 caractères"
-                                FontSize="12"
-                                TextColor="Red"
-                                IsVisible="{Binding EspeceError}"/>
-                        </VerticalStackLayout>
-
                         <!-- Régime alimentaire -->
                         <VerticalStackLayout>
                             <Label Text="Régime alimentaire" FontSize="14" TextColor="Gray" FontAttributes="Bold"/>
diff --git a/GES_PAC/ViewModel/CreateCalibrationViewModel.cs b/GES_PAC/ViewModel/CreateCalibrationViewModel.cs
new file mode 100644
index 0000000..63439fe
--- /dev/null
+++ b/GES_PAC/ViewModel/CreateCalibrationViewModel.cs
@@ -0,0 +1,151 @@
+using CommunityToolkit.Maui.Core.Extensions;
+using GES_PAC.Model;
+using GES_PAC.View;
+using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.Windows.Input;
+
+namespace GES_PAC.ViewModel
+{
+    public class CreateCalibrationViewModel : BaseViewModel
+    {
+
+        #region Attributs
+        private TypeCalibration _selectedType;
+        private double? _conc_o2;
+        private double? _conc_co2;
+        private double? _conc_ch4;
+        private string _ref_bouteille;
+        private bool _isFormValid;
+        #endregion
+
+        #region Commandes
+        public ICommand CreateCalibrationCommand { get; }
+        #endregion
+
+        #region Propriétés
+        public ObservableCollection<TypeCalibration> TypeCalibrations { get; }
+        public TypeCalibration SelectedType
+        {
+            get => _selectedType;
+            set
+            {
+                _selectedType = value;
+                OnPropertyChanged();
+                ValidateForm();
+            }
+        }
+
+        public double? ConcO2
+        {
+            get => _conc_o2;
+            set
+            {
+                _conc_o2 = value;
+                OnPropertyChanged();
+                ValidateForm();
+            }
+        }
+
+        public double? ConcCO2
+        {
+            get => _conc_co2;
+            set
+            {
+                _conc_co2 = value;
+                OnPropertyChanged();
+                ValidateForm();
+            }
+        }
+
+        public double? ConcCH4
+        {
+            get => _conc_ch4;
+            set
+            {
+                _conc_ch4 = value;
+                OnPropertyChanged();
+                ValidateForm();
+            }
+        }
+        public string RefBouteille
+        {
+            get => _ref_bouteille;
+            set
+            {
+                _ref_bouteille = value;
+                OnPropertyChanged();
+                ValidateForm();
+            }
+        }
+        public bool IsFormValid
+        {
+            get => _isFormValid;
+            set
+            {
+                _isFormValid = value;
+                OnPropertyChanged();
+            }
+        }
+
+        public bool TypeError { get; private set; } = true;
+        public bool ConcO2Error { get; private set; } = true;
+        public bool ConcCO2Error { get; private set; } = true;
+        public bool ConcCH4Error { get; private set; } = true;
+        #endregion
+
+        #region Constructeurs
+        public CreateCalibrationViewModel()
+        {
+
+            var journeeActuelle = JourneeViewModel.Instance.GetCurrentDay();
+            var typesManquants = journeeActuelle.GetCurrentMissingCalibration();
+
+            TypeCalibrations = new ObservableCollection<TypeCalibration>(typesManquants);
+
+            SelectedType = TypeCalibrations[0];
+
+            CreateCalibrationCommand = new Command(async () => await CreateCalibration());
+        }
+        #endregion
+
+        #region Méthodes
+        private async Task CreateCalibration()
+        {
+            IsBusy = true;
+
+            var date = DateTime.Now;
+            var newCalib = new MesureCalibration(date, ConcO2 ?? 0, ConcCO2 ?? 0, ConcCH4 ?? 0, SelectedType, RefBouteille);
+            var isComplete = JourneeViewModel.Instance.GetCurrentDay().AddCalibration(newCalib);
+
+            if (isComplete)
+            {
+                await Shell.Current.GoToAsync(nameof(MainView));
+            }
+            else
+            {
+                await Shell.Current.GoToAsync(nameof(CreateCalibrationView));
+            }
+
+            IsBusy = false;
+        }
+
+        private void ValidateForm()
+        {
+            TypeError = SelectedType == null;
+            ConcO2Error = ConcO2 == null;
+            ConcCO2Error = ConcCO2 == null;
+            ConcCH4Error = ConcCH4 == null;
+
+            OnPropertyChanged(nameof(TypeError));
+            OnPropertyChanged(nameof(ConcO2Error));
+            OnPropertyChanged(nameof(ConcCO2Error));
+            OnPropertyChanged(nameof(ConcCH4Error));
+
+            IsFormValid = !TypeError && !ConcO2Error && !ConcCO2Error && !ConcCH4Error;
+
+            (CreateCalibrationCommand as Command)?.ChangeCanExecute();
+        }
+        #endregion
+    }
+}
diff --git a/GES_PAC/ViewModel/CreateDayViewModel.cs b/GES_PAC/ViewModel/CreateDayViewModel.cs
index eb4846b..36881e1 100644
--- a/GES_PAC/ViewModel/CreateDayViewModel.cs
+++ b/GES_PAC/ViewModel/CreateDayViewModel.cs
@@ -10,7 +10,6 @@ namespace GES_PAC.ViewModel
 
         #region Attributs
         private Personne _selectedPerson;
-        private string _espece;
         private string _regime;
         private bool _isFormValid;
         #endregion
@@ -46,19 +45,6 @@ namespace GES_PAC.ViewModel
                 ValidateForm();
             }
         }
-
-        
-        public string Espece
-        {
-            get => _espece;
-            set
-            {
-                _espece = value;
-                OnPropertyChanged();
-                ValidateForm();
-            }
-        }
-
         
         public string Regime
         {
@@ -83,7 +69,6 @@ namespace GES_PAC.ViewModel
 
         public bool PlaceError { get; private set; } = true;
         public bool PersonError { get; private set; } = true;
-        public bool EspeceError { get; private set; } = true;
         public bool RegimeError { get; private set; } = true;
         #endregion
 
@@ -103,9 +88,9 @@ namespace GES_PAC.ViewModel
         {
             IsBusy = true;
             var date = DateTime.Now;
-            var newDay = new Journee(date, SelectedPerson, SelectedPlace, Espece, Regime);
+            var newDay = new Journee(date, SelectedPerson, SelectedPlace, Regime);
             JourneeViewModel.Instance.Journees.Add(newDay);
-            await Shell.Current.GoToAsync("//Main"); // A changer plus tard
+            await Shell.Current.GoToAsync(nameof(CreateCalibrationView));
             IsBusy = false;
         }
 
@@ -113,15 +98,13 @@ namespace GES_PAC.ViewModel
         {
             PersonError = SelectedPerson == null;
             PlaceError = SelectedPlace == null;
-            EspeceError = string.IsNullOrWhiteSpace(Espece) || Espece.Length < 3;
             RegimeError = string.IsNullOrWhiteSpace(Regime) || Regime.Length < 3;
 
             OnPropertyChanged(nameof(PlaceError));
             OnPropertyChanged(nameof(PersonError));
-            OnPropertyChanged(nameof(EspeceError));
             OnPropertyChanged(nameof(RegimeError));
 
-            IsFormValid = !PlaceError && !PersonError && !EspeceError && !RegimeError;
+            IsFormValid = !PlaceError && !PersonError && !RegimeError;
 
             (CreateDayCommand as Command)?.ChangeCanExecute();
         }
diff --git a/GES_PAC/ViewModel/JourneeViewModel.cs b/GES_PAC/ViewModel/JourneeViewModel.cs
index 5123814..043f0fd 100644
--- a/GES_PAC/ViewModel/JourneeViewModel.cs
+++ b/GES_PAC/ViewModel/JourneeViewModel.cs
@@ -19,8 +19,16 @@ namespace GES_PAC.ViewModel
         public static JourneeViewModel Instance => _instance ??= new JourneeViewModel();
         #endregion
 
-        #region Constructeur
+        #region Constructeurs
         private JourneeViewModel() { }
         #endregion
+
+        #region Méthodes
+        public Journee GetCurrentDay()
+        {
+            DateTime today = DateTime.Today;
+            return Journees.FirstOrDefault(j => j.Date.Date == today);
+        }
+        #endregion
     }
 }
diff --git a/GES_PAC/ViewModel/PersonViewModel.cs b/GES_PAC/ViewModel/PersonViewModel.cs
index 84ed889..5d0c220 100644
--- a/GES_PAC/ViewModel/PersonViewModel.cs
+++ b/GES_PAC/ViewModel/PersonViewModel.cs
@@ -15,7 +15,9 @@ namespace GES_PAC.ViewModel
         #endregion
 
         #region Constructeur
-        private PersonViewModel() { }
+        private PersonViewModel() {
+            Persons.Add(new Personne("Bond", "James", "jamesbond@inrae.fr")); // Ajout d'une personne par défaut pour les tests
+        }
         #endregion
     }
 }
diff --git a/GES_PAC/ViewModel/PlaceViewModel.cs b/GES_PAC/ViewModel/PlaceViewModel.cs
index a4911e0..74a060a 100644
--- a/GES_PAC/ViewModel/PlaceViewModel.cs
+++ b/GES_PAC/ViewModel/PlaceViewModel.cs
@@ -16,7 +16,9 @@ namespace GES_PAC.ViewModel
         #endregion
         
         #region Constructeur
-        private PlaceViewModel() { }
+        private PlaceViewModel() {
+            Places.Add(new Lieu("Ferme du soleil", "Dupont", "Chèvres")); // Ajout d'un lieu par défaut pour les tests
+        }
         #endregion
     }
 }
diff --git a/GES_PAC/ViewModel/TypeCalibrationViewModel.cs b/GES_PAC/ViewModel/TypeCalibrationViewModel.cs
new file mode 100644
index 0000000..a66be31
--- /dev/null
+++ b/GES_PAC/ViewModel/TypeCalibrationViewModel.cs
@@ -0,0 +1,20 @@
+using GES_PAC.Model;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GES_PAC.ViewModel
+{
+    public class TypeCalibrationViewModel
+    {
+        public ObservableCollection<TypeCalibration> Calibrations { get; }
+
+        public TypeCalibrationViewModel()
+        {
+            Calibrations = new ObservableCollection<TypeCalibration>(TypeCalibration.All);
+        }
+    }
+}
