默认情况下,通过电子邮件发送报价后,状态会更新为“已发送”。我想使用电子邮件功能发送通知电子邮件和更新状态,而不是‘已发送’,如‘审批要求’,‘已验证’等。
默认报价(草稿) ->发送电子邮件->报价(已发送)
我希望发送通知电子邮件;而是整个报价使用现有的电子邮件功能报价(草案) ->发送电子邮件->报价(需要审批) ->报价(批准) ->报价(已发送)
有人能建议我怎么做吗?
发布于 2018-08-20 22:34:13
首先,您可以看到文件sale.py # Line 652。当您发送电子邮件时,它会调用带有上下文'mark_so_as_sent': True的向导mail.compose.message。
下一步,您可以在samme文件中查找mail.compose.message,您将看到它是sale.py # Line 1277。因此,如果您发送电子邮件,它将调用工作流quotation_sent。
在sale_workflow.xml文件中,您将看到类似这样的内容:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="act_sent" model="workflow.activity">
<field name="wkf_id" ref="wkf_sale"/>
<field name="name">sent</field>
<field name="kind">function</field>
<field name="action">write({'state':'sent'})</field>
</record>
<record id="trans_draft_sent" model="workflow.transition">
<field name="act_from" ref="act_draft"/>
<field name="act_to" ref="act_sent"/>
<field name="signal">quotation_sent</field>
</record>
</data>
</openerp>现在您看到了,您只需要将新状态添加到state字段并编辑工作流:
Python
state = fields.Selection(selection_add=[('not_approval', 'Quotation (Approval Required)')])XML
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="act_not_approval" model="workflow.activity">
<field name="wkf_id" ref="wkf_approval"/>
<field name="name">not_approval</field>
<field name="kind">function</field>
<field name="action">write({'state':'not_approval'})</field>
</record>
<record id="trans_draft_sent" model="workflow.transition">
<field name="act_from" ref="act_draft"/>
<field name="act_to" ref="act_not_approval"/>
<field name="signal">quotation_sent</field>
</record>
</data>
</openerp>https://stackoverflow.com/questions/51720070
复制相似问题