I've wrote a custom module to enable confirming selected delivery orders in a list view.
When I use it, I don't get an error but nothing happens to my orders.
Here's the code: delivery_order_confirm.py
class delivery_order_confirm(osv.osv_memory):
"""
This wizard will confirm all the selected delivery orders.
"""_name = "delivery.order.confirm"
_description = "Confirm the selected delivery orders"def delivery_order_confirm(self, cr, uid, ids, context=None):
if context is None:
context = {}
wf_service = netsvc.LocalService('workflow')
orders = self.pool.get('stock.picking').read(cr, uid,
context['active_ids'],
['state', 'name'],
context=context)for record in orders:
if not record['state'] == 'draft':
raise orm.except_orm(_('Warning!'),
_("Selected delivery order cannot be confirmed because it isn't in 'Draft' state: %s."
%record['name']))
wf_service.trg_validate(uid, 'stock.picking', record['id'],
'action_confirm', cr)
return {'type': 'ir.actions.act_window_close'}delivery_order_confirm()
delivery_order_confirm_view.xml
<openerp>
<data><record id="delivery_order_confirm_view" model="ir.ui.view">
<field name="name">delivery.order.confirm.form</field>
<field name="model">delivery.order.confirm</field>
<field name="arch" type="xml">
<form string="Confirm selected delivery orders" version="7.0">
<p>Do you want to confirm selected delivery orders?</p>
<footer>
<button string="Confirm orders" name="delivery_order_confirm" type="object" default_focus="1" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel"/>
</footer>
</form>
</field>
</record>
<act_window id="action_delivery_order_confirm"
multi="True"
key2="client_action_multi" name="Confirm orders"
res_model="delivery.order.confirm" src_model="stock.picking"
view_mode="form" target="new" view_type="form" /></data>
</openerp>
Could you try to select a delivery which is not in Draft State, and see if the error message "WARNING" is triggered ?
Thanks for your answer Med Said, the error message is triggered, I've also added a print line inside this method to be sure that the code is being read, and it's read but not executed :o
What do you get in your openerp-server.log?
Thank you very much, it worked!