diff --git a/models/acc_contract.py b/models/acc_contract.py
index 0b7d1d17bf035e8c37c097c09e4bffecb36f9520..cd15064548d0116563770938852647a710441027 100644
--- a/models/acc_contract.py
+++ b/models/acc_contract.py
@@ -41,10 +41,10 @@ class AccContract(models.Model):
     )
 
     partner_id_domain_seller = fields.Binary(
-        string="Partner domain", compute="_compute_partner_id_domain_seller"
+        string="Seller domain", compute="_compute_partner_id_domain_seller"
     )
     partner_id_domain_buyer = fields.Binary(
-        string="Partner domain", compute="_compute_partner_id_domain_buyer"
+        string="Buyer domain", compute="_compute_partner_id_domain_buyer"
     )
     partner_id_domain = fields.Binary(
         string="Partner domain", compute="_compute_partner_id_domain"
diff --git a/models/acc_operation.py b/models/acc_operation.py
index 68d49466b37f5d443a14957ca1916840b960fc0d..bc0ade8d0e05b5c446f2c1301ee7cf0f4b24543d 100644
--- a/models/acc_operation.py
+++ b/models/acc_operation.py
@@ -12,7 +12,7 @@ class AccOperation(models.Model):
     acc_contract_ids = fields.One2many(
         comodel_name="acc.contract",
         inverse_name="acc_operation_id",
-        string="Liste des contrats",
+        string="Liste des documents",
     )
 
     # ------------------------------------------------------
@@ -43,11 +43,14 @@ class AccOperation(models.Model):
     # Business methods
     # ------------------------------------------------------
     def create_document(self):
-        action = self.env["ir.actions.act_window"]._for_xml_id(
-            "oacc_document.acc_contract_act_window"
-        )
-        action["context"] = {
-            "default_acc_operation_id": self.id,
+        return {
+            'type': 'ir.actions.act_window',
+            'name': 'Ajouter un document',
+            'res_model': 'acc.contract',
+            'view_mode': 'form',
+            'target': 'new',  # Opens in a popup
+            'view_id': self.env.ref('oacc_document.operation_acc_contract_form_view').id,
+            'context': {
+                'default_acc_operation_id': self.id,  # Links the new child to the current parent
+            },
         }
-        action["views"] = [(False, "form")]
-        return action
diff --git a/views/acc_contract_views.xml b/views/acc_contract_views.xml
index 561424c88962baf3f4013c67105539acee6cc39f..13406430888c4abc66149f8c7bb941a60786e0aa 100644
--- a/views/acc_contract_views.xml
+++ b/views/acc_contract_views.xml
@@ -3,8 +3,8 @@
      License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
 <odoo>
 
-    <record id="acc_contract_form_view" model="ir.ui.view">
-        <field name="name">acc_operation.acc.contract.form</field>
+    <record id="global_acc_contract_form_view" model="ir.ui.view">
+        <field name="name">acc.global.contract.form</field>
         <field name="model">acc.contract</field>
         <field name="arch" type="xml">
             <form string="Document">
@@ -21,70 +21,163 @@
                                 name="seller_id"
                                 domain="partner_id_domain_seller"
                                 attrs="{'invisible': [('type', '!=', 'other')]}"
+                                options="{'no_create': True}"
                             />
-
-                            <field
-                                name="buyer_id"
-                                domain="partner_id_domain_buyer"
-                                attrs="{'invisible': [('type', '!=', 'other')]}"
-                            />
-
                             <field
                                 name="seller_id"
                                 domain="partner_id_domain_seller"
                                 string="PMO"
                                 attrs="{'invisible': [('type', 'not in', ('convention', 'pmo', 'part_enedis'))]}"
+                                options="{'no_create': True}"
+                            />
+                            <field
+                                name="seller_id"
+                                domain="partner_id_domain_seller"
+                                string="Producteur"
+                                attrs="{'invisible': [('type', 'not in', ('facture', 'vente_achat'))]}"
+                                options="{'no_create': True}"
                             />
 
+                            <field
+                                name="buyer_id"
+                                domain="partner_id_domain_buyer"
+                                attrs="{'invisible': [('type', '!=', 'other')]}"
+                                options="{'no_create': True}"
+                            />
                             <field
                                 name="buyer_id"
                                 domain="partner_id_domain_buyer"
                                 string="Client"
                                 attrs="{'invisible': [('type', 'not in', ('facture_elocoop'))]}"
+                                options="{'no_create': True}"
+                            />
+                            <field
+                                name="buyer_id"
+                                domain="partner_id_domain_buyer"
+                                string="Participant"
+                                attrs="{'invisible': [('type', '!=', 'part_enedis')]}"
+                                options="{'no_create': True}"
+                            />
+                            <field
+                                name="buyer_id"
+                                domain="partner_id_domain_buyer"
+                                string="Adhérent"
+                                attrs="{'invisible': [('type', '!=', 'pmo')]}"
+                                options="{'no_create': True}"
+                            />
+                            <field
+                                name="buyer_id"
+                                domain="partner_id_domain_buyer"
+                                string="Consommateur"
+                                attrs="{'invisible': [('type', 'not in', ('facture', 'vente_achat'))]}"
+                                options="{'no_create': True}"
+                            />
+
+                            <field name="partner_id_domain_seller" invisible="1" />
+                            <field name="partner_id_domain_buyer" invisible="1" />
+                        </group>
+                    </group>
+                    <group>
+                        <field name="name" invisible="1" />
+                        <field widget="binary" name="document" filename="name" />
+                    </group>
+                </sheet>
+            </form>
+        </field>
+    </record>
+
+    <record id="operation_acc_contract_form_view" model="ir.ui.view">
+        <field name="name">acc.operation.contract.form</field>
+        <field name="model">acc.contract</field>
+        <field name="arch" type="xml">
+            <form string="Documents">
+                <sheet>
+                    <group>
+                        <group>
+                            <field name="acc_operation_id" oinvisible="1" />
+                            <field name="type" />
+                            <field name="date_app" />
+                        </group>
+                        <group>
+                            <!-- Divers -->
+                            <field
+                                name="seller_id"
+                                domain="partner_id_domain_seller"
+                                attrs="{'invisible': [('type', '!=', 'other')]}"
+                                options="{'no_create': True}"
+                            />
+                            <!-- Convention, Accord, Adhésion -->
+                            <field
+                                name="seller_id"
+                                domain="partner_id_domain_seller"
+                                string="PMO"
+                                attrs="{'invisible': [('type', 'not in', ('convention', 'pmo', 'part_enedis'))]}"
+                                options="{'no_create': True}"
                             />
+                            <!-- Contrat de vente, Facture importée -->
                             <field
                                 name="seller_id"
                                 domain="partner_id_domain_seller"
                                 string="Producteur"
                                 attrs="{'invisible': [('type', 'not in', ('facture', 'vente_achat'))]}"
+                                options="{'no_create': True}"
                             />
 
+                            <!-- Divers -->
                             <field
                                 name="buyer_id"
                                 domain="partner_id_domain_buyer"
-                                string="Adhérent"
-                                attrs="{'invisible': [('type', '!=', 'pmo')]}"
+                                attrs="{'invisible': [('type', '!=', 'other')]}"
+                                options="{'no_create': True}"
                             />
-
+                            <!-- Facture elocoop -->
                             <field
                                 name="buyer_id"
                                 domain="partner_id_domain_buyer"
-                                string="Consommateur"
-                                attrs="{'invisible': [('type', 'not in', ('facture', 'vente_achat'))]}"
+                                string="Client"
+                                attrs="{'invisible': [('type', 'not in', ('facture_elocoop'))]}"
+                                options="{'no_create': True}"
                             />
+                            <!-- Accord -->
                             <field
                                 name="buyer_id"
                                 domain="partner_id_domain_buyer"
                                 string="Participant"
                                 attrs="{'invisible': [('type', '!=', 'part_enedis')]}"
+                                options="{'no_create': True}"
+                            />
+                            <!-- Adhésion -->
+                            <field
+                                name="buyer_id"
+                                domain="partner_id_domain_buyer"
+                                string="Adhérent"
+                                attrs="{'invisible': [('type', '!=', 'pmo')]}"
+                                options="{'no_create': True}"
+                            />
+                            <!-- Contrat de vente, Facture importée -->
+                            <field
+                                name="buyer_id"
+                                domain="partner_id_domain_buyer"
+                                string="Consommateur"
+                                attrs="{'invisible': [('type', 'not in', ('facture', 'vente_achat'))]}"
+                                options="{'no_create': True}"
                             />
-
-                            <field name="partner_id_domain" invisible="1" />
                             <field name="partner_id_domain_seller" invisible="1" />
                             <field name="partner_id_domain_buyer" invisible="1" />
                         </group>
                     </group>
                     <group>
                         <field name="name" invisible="1" />
-                        <field widget="binary" name="document" filename="name" />
+                        <field widget="binary" name="document" filename="name"/>
                     </group>
                 </sheet>
             </form>
         </field>
     </record>
 
-    <record id="acc_contract_tree_view" model="ir.ui.view">
-        <field name="name">acc.acc_contract.tree</field>
+    <!-- version globale multi-operation -->
+    <record id="global_acc_contract_tree_view" model="ir.ui.view">
+        <field name="name">acc.global.contract.tree</field>
         <field name="model">acc.contract</field>
         <field name="arch" type="xml">
             <tree>
@@ -93,8 +186,25 @@
                 <field name="acc_operation_id" />
                 <field name="seller_id" domain="partner_id_domain" />
                 <field name="buyer_id" domain="partner_id_domain" />
+                <field name="type" />
                 <field name="partner_id_domain" invisible="1" />
+            </tree>
+        </field>
+    </record>
+
+    <!-- version utilisée dans le formulaire d'une operation -->
+    <record id="operation_acc_contract_tree_view" model="ir.ui.view">
+        <field name="name">acc.operation.contract.tree</field>
+        <field name="model">acc.contract</field>
+        <field name="arch" type="xml">
+            <tree create="0">
+                <field name="date_app" />
+                <field name="name" />
+                <field name="acc_operation_id" invisible="1" />
+                <field name="seller_id" domain="partner_id_domain" />
+                <field name="buyer_id" domain="partner_id_domain" />
                 <field name="type" />
+                <field name="partner_id_domain" invisible="1" />
             </tree>
         </field>
     </record>
@@ -104,6 +214,7 @@
         <field name="type">ir.actions.act_window</field>
         <field name="res_model">acc.contract</field>
         <field name="view_mode">tree,form</field>
+        <field name="view_id" ref="global_acc_contract_tree_view" />
         <field name="help" type="html">
             <p class="oe_view_nocontent_create">
                 Créer un nouveau document
diff --git a/views/acc_operation_views.xml b/views/acc_operation_views.xml
index 9a2253575d43693a1b58aabe4f0b1c3f084c6342..ac198dd7bda7dcffaecce8aa5ac681465a885f75 100644
--- a/views/acc_operation_views.xml
+++ b/views/acc_operation_views.xml
@@ -16,7 +16,7 @@
                             <button
                                 string="Ajouter un document"
                                 type="object"
-                                class="btn-primary"
+                                class="btn btn-primary mb-2"
                                 name="create_document"
                             />
                         </div>
@@ -24,84 +24,10 @@
                     <field
                         name="acc_contract_ids"
                         widget="one2many"
-                        context="{'default_acc_operation_id': active_id}"
+                        context="{'default_acc_operation_id': active_id,
+                            'tree_view_ref': 'oacc_document.operation_acc_contract_tree_view',
+                            'form_view_ref': 'oacc_document.operation_acc_contract_form_view'}"
                     >
-                        <tree create="0" editable="bottom">
-                            <field name="name" />
-                            <field name="acc_operation_id" invisible="1" />
-                            <field name="seller_id" domain="partner_id_domain" />
-                            <field name="buyer_id" domain="partner_id_domain" />
-                            <field name="type" />
-                            <field name="partner_id_domain" invisible="1" />
-                        </tree>
-                        <form string="Documents">
-                            <sheet>
-                                <group>
-                                    <group>
-                                        <field name="acc_operation_id" invisible="1" />
-                                        <field name="type" />
-                                        <field name="date_app" />
-                                    </group>
-                                    <group>
-                                        <field
-                                            name="seller_id"
-                                            domain="partner_id_domain"
-                                            attrs="{'invisible': [('type', '!=', 'other')]}"
-                                        />
-                                        <field
-                                            name="seller_id"
-                                            domain="partner_id_domain"
-                                            string="PMO"
-                                            attrs="{'invisible': [('type', 'not in', ('convention', 'pmo', 'part_enedis'))]}"
-                                        />
-                                        <field
-                                            name="seller_id"
-                                            domain="partner_id_domain"
-                                            string="Producteur"
-                                            attrs="{'invisible': [('type', 'not in', ('facture', 'vente_achat'))]}"
-                                        />
-                                        <field
-                                                name="buyer_id"
-                                                domain="partner_id_domain"
-                                                string="Client"
-                                                attrs="{'invisible': [('type', 'not in', ('facture_elocoop'))]}"
-                                        />
-                                        <field
-                                            name="buyer_id"
-                                            domain="partner_id_domain"
-                                            attrs="{'invisible': [('type', '!=', 'other')]}"
-                                        />
-                                        <field
-                                            name="buyer_id"
-                                            domain="partner_id_domain"
-                                            string="Participant"
-                                            attrs="{'invisible': [('type', '!=', 'part_enedis')]}"
-                                        />
-                                        <field
-                                            name="buyer_id"
-                                            domain="partner_id_domain"
-                                            string="Adhérent"
-                                            attrs="{'invisible': [('type', '!=', 'pmo')]}"
-                                        />
-                                        <field
-                                            name="buyer_id"
-                                            domain="partner_id_domain"
-                                            string="Consommateur"
-                                            attrs="{'invisible': [('type', 'not in', ('facture', 'vente_achat'))]}"
-                                        />
-                                        <field name="partner_id_domain" invisible="1" />
-                                    </group>
-                                </group>
-                                <group>
-                                    <field name="name" invisible="1" />
-                                    <field
-                                        widget="binary"
-                                        name="document"
-                                        filename="name"
-                                    />
-                                </group>
-                            </sheet>
-                        </form>
                     </field>
                 </page>
             </page>