Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions grap_cooperative/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
"views/view_grap_mandate.xml",
"views/view_grap_people.xml",
"views/view_res_company.xml",
"views/view_res_company_lead.xml",
"views/view_res_company_lead_stage.xml",
"views/view_res_company_category.xml",
],
"demo": [
Expand Down
2 changes: 2 additions & 0 deletions grap_cooperative/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
from . import grap_mandate
from . import grap_people
from . import res_company
from . import res_company_lead
from . import res_company_lead_stage
24 changes: 24 additions & 0 deletions grap_cooperative/models/res_company_lead.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright (C) 2022 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import api, fields, models


class ResCompanyLead(models.Model):
_name = "res.company.lead"
_inherit = "res.company"

stage_id = fields.Many2one(
"res.company.lead.stage",
string="Stage",
ondelete="restrict",
track_visibility="onchange",
index=True,
required=True,
group_expand="_read_group_stage_ids",
)

@api.model
def _read_group_stage_ids(self, stages, domain, order):
return stages.browse(stages._search(domain, order=order))
39 changes: 39 additions & 0 deletions grap_cooperative/models/res_company_lead_stage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Copyright (C) 2022 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from odoo import api, fields, models


class ResCompanyLeadStage(models.Model):
_name = "res.company.lead.stage"
_description = "Company Leads Stages"
_rec_name = "name"
_order = "sequence, name, id"

name = fields.Char("Stage Name", required=True, translate=True)

sequence = fields.Integer(
"Sequence", default=1, help="Used to order stages. Lower is better."
)

fold = fields.Boolean(
"Folded in Pipeline",
help="This stage is folded in the kanban view when"
" there are no records in that stage to display.",
)

description = fields.Text(
"Description",
help="Enter here the internal requirements for this stage."
" It will appear as a tooltip over the stage's name.",
)

lead_qty = fields.Integer("Leads Quantity", compute="_compute_lead_qty", store=True)

lead_ids = fields.One2many(comodel_name="res.company.lead", inverse_name="stage_id")

@api.multi
def _compute_lead_qty(self):
for stage in self:
stage.team_count = len(stage.lead_ids)
6 changes: 6 additions & 0 deletions grap_cooperative/security/ir.model.access.csv
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,9 @@ ir_model_access_grap_mandate_manager,ir_model_access_grap_mandate_manager,grap_c
ir_model_access_grap_people_all,ir_model_access_grap_people_all,grap_cooperative.model_grap_people,,1,,,
ir_model_access_grap_people_manager,ir_model_access_grap_people_manager,grap_cooperative.model_grap_people,res_group_grap_cooperative_manager,1,1,1,1
ir_model_access_res_company_write,ir_model_access_res_company_write,base.model_res_company,res_group_grap_cooperative_manager,,1,,

ir_model_access_res_company_lead_all,ir_model_access_res_company_lead_all,grap_cooperative.model_res_company_lead,,1,,,
ir_model_access_res_company_lead_manager,ir_model_access_res_company_lead_manager,grap_cooperative.model_res_company_lead,res_group_grap_cooperative_manager,1,1,1,1

ir_model_access_res_company_lead_stage_all,ir_model_access_res_company_lead_stage_all,grap_cooperative.model_res_company_lead_stage,,1,,,
ir_model_access_res_company_lead_stage_manager,ir_model_access_res_company_lead_stage_manager,grap_cooperative.model_res_company_lead_stage,res_group_grap_cooperative_manager,1,1,1,1
10 changes: 2 additions & 8 deletions grap_cooperative/views/view_res_company.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,15 +69,9 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
<field name="logo" widget="image" class="oe_avatar" options="{'preview_image': 'logo', 'size': [90, 90]}"/>
<div class="oe_title">
<h1>
<field name="code" readonly="True"/> -
<field name="clean_name" readonly="True"/>
<field name="code"/> -
<field name="clean_name"/>
</h1>
<div class="oe_edit_only">
<group>
<field name="name" readonly="True"/>
<field name="code" readonly="True"/>
</group>
</div>
</div>
<group>
<group>
Expand Down
77 changes: 77 additions & 0 deletions grap_cooperative/views/view_res_company_lead.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2021 - Today: GRAP (http://www.grap.coop)
@author: Quentin DUPONT ([email protected])
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>

<record id="view_res_company_lead_search" model="ir.ui.view">
<field name="model">res.company.lead</field>
<field name="inherit_id" ref="grap_cooperative.view_res_company_search"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<field name="code" position="after">
<field name="stage_id" invisible="1"/>
</field>
</field>
</record>

<record id="view_res_company_lead_tree" model="ir.ui.view">
<field name="model">res.company.lead</field>
<field name="inherit_id" ref="grap_cooperative.view_res_company_tree_directory"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<field name="code" position="after">
<field name="stage_id" invisible="1"/>
</field>
</field>
</record>

<record id="view_res_company_lead_form" model="ir.ui.view">
<field name="model">res.company.lead</field>
<field name="inherit_id" ref="grap_cooperative.view_res_company_form_directory"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<field name="code" position="after">
<field name="stage_id" invisible="1"/>
</field>
<field name="code" position="after">
<field name="name"/>
</field>
</field>
</record>

<record id="view_res_company_lead_kanban" model="ir.ui.view">
<field name="model">res.company.lead</field>
<field name="inherit_id" ref="grap_cooperative.view_res_company_kanban_directory"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//kanban" position="attributes">
<attribute name="default_group_by">stage_id</attribute>
</xpath>
<field name="code" position="after">
<field name="stage_id" invisible="1"/>
</field>
</field>
</record>

<record id="action_res_company_lead" model="ir.actions.act_window">
<field name="name">Activities Leads</field>
<field name="res_model">res.company.lead</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_res_company_lead_kanban"/>
<field name="domain">[]</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">
{}
</field>
</record>

<menuitem id="menu_res_company_lead"
name="Activities Leads"
parent="menu_root"
action="action_res_company_lead"
sequence="2"/>

</odoo>
57 changes: 57 additions & 0 deletions grap_cooperative/views/view_res_company_lead_stage.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2022 - Today: GRAP (http://www.grap.coop)
@author: Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
-->
<odoo>

<record id="view_res_company_lead_stage_search" model="ir.ui.view">
<field name="model">res.company.lead.stage</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="sequence"/>
</search>
</field>
</record>

<record id="view_res_company_lead_stage_tree" model="ir.ui.view">
<field name="model">res.company.lead.stage</field>
<field name="arch" type="xml">
<tree>
<field name="sequence" widget="handle"/>
<field name="name"/>
</tree>
</field>
</record>

<record id="view_res_company_lead_stage_form" model="ir.ui.view">
<field name="model">res.company.lead.stage</field>
<field name="arch" type="xml">
<form>
<group>
<group>
<field name="name"/>
<field name="fold"/>
</group>
</group>
<separator string="Description"/>
<field name="description" nolabel="1"/>
</form>
</field>
</record>

<record id="action_res_company_lead_stage" model="ir.actions.act_window">
<field name="name">Stages</field>
<field name="res_model">res.company.lead.stage</field>
<field name="view_type">form</field>
</record>

<menuitem id="menu_res_company_lead_stage"
name="Activities Leads Stage"
parent="menu_root"
action="action_res_company_lead_stage"
sequence="3"/>

</odoo>