diff --git a/__manifest__.py b/__manifest__.py index 3e9df4adc6ff0733e7acb16e88f136cdcdbd7ee9..0157de5b7f93f95f90383d7eac2cdb8bc894f9ee 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -21,6 +21,7 @@ "views/sale_intervention_view.xml", "views/sale_project_admin_state_views.xml", "views/product_template_views.xml", + "views/res_partner_views.xml", # views menu # wizard ], diff --git a/models/res_partner.py b/models/res_partner.py index e1dde58ca3fd347bafc6edf23c79eef6548947d0..55d7ac43870962f2716afb542cf67180443a7a6a 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -32,7 +32,7 @@ class ResPartner(models.Model): def _compute_sale_project_count(self): for res in self: res.sale_project_count = self.env["sale.project"].search_count( - [("partner_id", "=", self.id)] + [("partner_id", "=", res.id)] ) # ------------------------------------------------------ @@ -46,7 +46,13 @@ class ResPartner(models.Model): # ------------------------------------------------------ # Actions # ------------------------------------------------------ - + def action_view_partner_projects(self): + self.ensure_one() + action = self.env["ir.actions.actions"]._for_xml_id("ap_sale_project.action_sale_project") + action['domain'] = [ + ('partner_id', 'child_of', self.id), + ] + return action # ------------------------------------------------------ # Business methods # ------------------------------------------------------ diff --git a/views/res_partner_views.xml b/views/res_partner_views.xml new file mode 100644 index 0000000000000000000000000000000000000000..a1c90238dc162632f47f2337e9b1452ab9ef70b7 --- /dev/null +++ b/views/res_partner_views.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data> + + <record id="res_partner_view_buttons" model="ir.ui.view"> + <field name="name">res.partner.view.buttons.ap</field> + <field name="model">res.partner</field> + <field name="inherit_id" ref="base.view_partner_form" /> + <field name="arch" type="xml"> + <div name="button_box" position="inside"> + <button type="object" class="oe_stat_button" icon="fa-pagelines" name="action_view_partner_projects" + context="{'default_partner_id': active_id}"> + <div class="o_form_field o_stat_info"> + <span class="o_stat_value"> + <field name="sale_project_count" /> + </span> + <span class="o_stat_text">Projets</span> + </div> + </button> + </div> + </field> + </record> + + <!-- Partner kanban view inherte --> + <record model="ir.ui.view" id="partner_kanban_view_ap"> + <field name="name">res.partner.kanban.ap.inherit</field> + <field name="model">res.partner</field> + <field name="inherit_id" ref="base.res_partner_kanban_view"/> + <field name="arch" type="xml"> + <field name="mobile" position="after"> + <field name="sale_project_count"/> + </field> + <xpath expr="//span[hasclass('oe_kanban_partner_links')]" position="inside"> + <span t-if="record.sale_project_count.value>0" class="badge badge-pill"><i class="fa fa-pagelines" role="img" aria-label="Projets" title="Projets"/><t t-esc="record.sale_project_count.value"/></span> + </xpath> + </field> + </record> + + </data> +</odoo>