Hi,
You can add workflow to res.partner model. Inorder to have only approved customers in quotations, opportunity etc, later you can domain filter the many2one field using state = approved.
For eg, am adding just two states "New" and "Approved". Please try the following code:
in your python file:
class res_partner(models.Model):
_inherit = 'res.partner'
STATE_SELECTION = [
('new', 'New'),
('approved', 'Approved'),
]
state = fields.Selection(STATE_SELECTION, 'Status', readonly=True,
help="New customer created. "
"New Customer approved. ",
select=True,default='new')
@api.multi
def write(self, vals):
if self.state == 'approved':
vals.update({'state':'new'})
return super(res_partner, self).write(vals)
@api.multi
def approve_customer(self):
self.write({'state':'approved'})
in your workflow xml file:
<?xml version="1.0" encoding="utf-8"?><openerp>
<data>
<record id="customer_flow" model="workflow">
<field name="name">Custmer Workflow</field>
<field name="osv">res.partner</field>
<field name="on_create">True</field>
</record>
<record id="act_new" model="workflow.activity">
<field name="wkf_id" ref="customer_flow"/>
<field name="flow_start">True</field>
<field name="name">new</field>
</record>
<record id="act_approved" model="workflow.activity">
<field name="wkf_id" ref="customer_flow"/>
<field name="name">approved</field>
<field name="flow_stop">True</field>
</record>
<record id="trans_new_confirmed" model="workflow.transition">
<field name="act_from" ref="act_new"/>
<field name="act_to" ref="act_approved"/>
<field name="signal">customer_confirm</field>
</record>
</data>
</openerp>
in your xml view file:
<record id="view_partner_form_with_states" model="ir.ui.view">
<field name="name">Add states to customer</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<sheet position="before">
<header>
<button name="approve_customer" states="new" type="object" string="Approve" class="oe_highlight" />
<field name="state" widget="statusbar" statusbar_visible="new,approved" statusbar_colors='{"new":"blue","approved":"blue"}' readonly="1" />
</header>
</sheet>
</field>
</record>
Hope this helps!