diff --git a/models/sale_project.py b/models/sale_project.py
index 31d3f5553afe8305aa342a318d4331c55d4e9e83..9edc026416bf92388003aa5792453582e8a732cb 100644
--- a/models/sale_project.py
+++ b/models/sale_project.py
@@ -53,13 +53,14 @@ class SaleProject(models.Model):
         tracking=1,
         default=_get_default_admin_state_id,
     )
-    sale_project_suivi_ids = fields.One2many(
+    sale_project_suivi_ids = fields.Many2many(
         comodel_name="sale.project.suivi",
-        inverse_name="sale_project_id",
-        string="Suivi étape",
-        related="admin_state_id.sale_project_suivi_ids",
-        tracking=2,
+        string="Suivi étape", tracking=2,
     )
+    is_sale_project_suivi_empty = fields.Boolean(
+        string='Pas de suivi pour cette étape',
+        compute='_compute_is_sale_project_suivi_empty',
+        required=False)
     sale_project_advancement_ids = fields.Many2many(
         comodel_name="sale.project.advancement",
         string="Avancement", tracking=3
@@ -114,7 +115,19 @@ class SaleProject(models.Model):
     @api.depends('intervention_ids')
     def _compute_intervention_counter(self):
         for res in self:
-            res.intervention_counter = self.env['sale.intervention'].search_count([('project_id', '=', self.id)])
+            res.intervention_counter = \
+                self.env['sale.intervention'].search_count(
+                    [('project_id', '=', self.id)])
+
+    def _compute_is_sale_project_suivi_empty(self):
+        for r in self:
+            sale_project_suivi_count = \
+                self.env['sale.project.suivi'].search_count(
+                    [('sale_project_admin_state_id',
+                      '=', self.admin_state_id.id)])
+            r.is_sale_project_suivi_empty = True \
+                if sale_project_suivi_count == 0 else False
+
     # ------------------------------------------------------
     # Onchange / Constraints
     # ------------------------------------------------------
@@ -178,9 +191,9 @@ class SaleProjectSuivi(models.Model):
     _name = "sale.project.suivi"
     _description = "Suivi étape"
 
+    sale_project_admin_state_id = fields.Many2one(
+        string="Étape", comodel_name="sale.project.admin.state", required=True)
     name = fields.Char(string="Suivi étape", required=True)
-    sale_project_admin_state_id = fields.Many2one("sale.project.admin.state")
-    sale_project_id = fields.Many2one("sale.project")
 
 
 class SaleProjectAdvancement(models.Model):
@@ -211,7 +224,7 @@ class SaleProjectAdminState(models.Model):
     sale_project_suivi_ids = fields.One2many(
         comodel_name="sale.project.suivi",
         inverse_name="sale_project_admin_state_id",
-        string="Suivis",
+        string="Suivi des étapes",
     )
 
     @api.model
diff --git a/views/sale_order_view.xml b/views/sale_order_view.xml
index 7a4d70916435769618ba1c30691030e596e3c1b4..1b9c15e472d7cb4bd87a9f57df3112a19e931cb5 100644
--- a/views/sale_order_view.xml
+++ b/views/sale_order_view.xml
@@ -79,10 +79,22 @@
             </field>
         </record>
 
+        <!-- List View Suivi des étapes-->
+        <record id="sale_project_suivi_view_list" model="ir.ui.view">
+            <field name="name">Suivi des étapes</field>
+            <field name="model">sale.project.suivi</field>
+            <field name="arch" type="xml">
+                <tree editable="top">
+                    <field name="sale_project_admin_state_id" options='{"no_open": True, "no_create": True}'/>
+                    <field name="name" />
+                </tree>
+            </field>
+        </record>
+
         <record model="ir.actions.act_window" id="sale_project_suivi_act_window">
             <field name="name">Suivi des étapes</field>
             <field name="res_model">sale.project.suivi</field>
-            <field name="view_mode">tree,form</field>
+            <field name="view_mode">tree</field>
         </record>
 
         <record model="ir.actions.act_window" id="sale_project_advancement_act_window">
diff --git a/views/sale_project_admin_state_views.xml b/views/sale_project_admin_state_views.xml
index 815365d0c2f2a5d7de8fce9b7d26cbfddabf3fab..91f7757aafabe95231edc0ea57026c03d217ec4d 100644
--- a/views/sale_project_admin_state_views.xml
+++ b/views/sale_project_admin_state_views.xml
@@ -18,7 +18,7 @@
                     <group>
                         <group>
                             <field name="name" />
-                            <field name="sale_project_suivi_ids" widget="many2many_tags" />
+                            <field name="sale_project_suivi_ids" widget="many2many_tags" context="{'default_sale_project_admin_state_id': active_id}"/>
                             <field name="sequence"/>
                         </group>
                         <group>
diff --git a/views/sale_project_view.xml b/views/sale_project_view.xml
index 90b2e754790c40062a264eb8e14ef691c8eb5214..483c66c067f255f7166b8c9ed41a66451b0b3b9b 100644
--- a/views/sale_project_view.xml
+++ b/views/sale_project_view.xml
@@ -25,10 +25,6 @@
                                 icon="fa-pagelines"
                             />
                         </div>
-                        <field
-                            name="sale_project_suivi_ids"
-                            widget="many2many_checkboxes"
-                        />
                         <field name="sale_order_id" invisible="True" />
 
                         <group name="required_infos" string="Projet">
@@ -44,10 +40,21 @@
                             </group>
                         </group>
                         <group>
-                            <field
-                                name="sale_project_advancement_ids"
-                                widget="many2many_checkboxes"
-                            />
+                            <group>
+                                <field
+                                    name="sale_project_advancement_ids"
+                                    widget="many2many_checkboxes"
+                                />
+                            </group>
+                            <group>
+                                <field name="is_sale_project_suivi_empty" invisible="1"/>
+                                <field
+                                    name="sale_project_suivi_ids"
+                                    widget="many2many_checkboxes"
+                                    domain="[('sale_project_admin_state_id', '=', admin_state_id)]"
+                                    attrs="{'invisible': [('is_sale_project_suivi_empty','=', True)]}"
+                                />
+                            </group>
                         </group>
                         <group name="interventions" class="oe_read_only">
                             <field name="intervention_ids" mode="tree" style="pointer-events: none;"
@@ -142,9 +149,9 @@
             <field name="search_view_id" ref="sale_project_search" />
             <field name="context">{'search_default_group_by_order': True}</field>
             <field name="help" type="html">
-              <p class="o_view_nocontent_empty_folder">
-                Aucun projet trouvé. Créez un nouveau projet depuis un devis.
-              </p>
+                <p class="o_view_nocontent_empty_folder">
+                    Aucun projet trouvé. Créez un nouveau projet depuis un devis.
+                </p>
             </field>
         </record>