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>