mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[IMP] agreement_legal: Add agreement list button
This commit is contained in:
committed by
Víctor Martínez
parent
ec1597a597
commit
4d85860e1a
@@ -1,10 +1,31 @@
|
||||
# Copyright (C) 2018 - TODAY, Pavlov Media
|
||||
# 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):
|
||||
_inherit = "res.partner"
|
||||
|
||||
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
|
||||
|
||||
@@ -4,12 +4,18 @@
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@name='internal_notes']" position="after">
|
||||
<page name="agreement" string="Agreements">
|
||||
<group>
|
||||
<field name="agreement_ids" nolabel="1" />
|
||||
</group>
|
||||
</page>
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button
|
||||
name="action_open_agreement"
|
||||
type="object"
|
||||
icon="fa-file-archive-o"
|
||||
>
|
||||
<field
|
||||
name="agreements_count"
|
||||
string="Agreements"
|
||||
widget="statinfo"
|
||||
/>
|
||||
</button>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
Reference in New Issue
Block a user