[IMP] agreement_legal: Add agreement list button

This commit is contained in:
Olga Marco
2021-11-17 13:37:13 +01:00
committed by Víctor Martínez
parent ec1597a597
commit 4d85860e1a
2 changed files with 34 additions and 7 deletions

View File

@@ -1,10 +1,31 @@
# Copyright (C) 2018 - TODAY, Pavlov Media # Copyright (C) 2018 - TODAY, Pavlov Media
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models from odoo import api, fields, models
class Partner(models.Model): class Partner(models.Model):
_inherit = "res.partner" _inherit = "res.partner"
agreement_ids = fields.One2many("agreement", "partner_id", string="Agreements") agreement_ids = fields.One2many("agreement", "partner_id", string="Agreements")
agreements_count = fields.Integer(compute="_compute_agreements_count")
@api.depends("agreement_ids")
def _compute_agreements_count(self):
domain = [("partner_id", "in", self.ids)]
res = self.env["agreement"].read_group(
domain=domain, fields=["partner_id"], groupby=["partner_id"]
)
agreement_dict = {x["partner_id"][0]: x["partner_id_count"] for x in res}
for rec in self:
rec.agreements_count = agreement_dict.get(rec.id, 0)
def action_open_agreement(self):
self.ensure_one()
action = self.env.ref("agreement.agreement_action")
result = action.read()[0]
result["domain"] = [("partner_id", "=", self.id)]
result["context"] = {
"default_partner_id": self.id,
}
return result

View File

@@ -4,12 +4,18 @@
<field name="model">res.partner</field> <field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form" /> <field name="inherit_id" ref="base.view_partner_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//page[@name='internal_notes']" position="after"> <xpath expr="//div[@name='button_box']" position="inside">
<page name="agreement" string="Agreements"> <button
<group> name="action_open_agreement"
<field name="agreement_ids" nolabel="1" /> type="object"
</group> icon="fa-file-archive-o"
</page> >
<field
name="agreements_count"
string="Agreements"
widget="statinfo"
/>
</button>
</xpath> </xpath>
</field> </field>
</record> </record>