Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
5524 Lượt xem

Hello,

I need to auto create a sales order (no quotation) when a sales order or a quotation is save. Therefore I created a short module, which looks like follows:

class sale_order(osv.osv):

    

    _inherit = 'sale.order'

    

    def create(self, cr, uid, vals, context=None):

        result = super(sale_order, self).create(cr, uid, vals, context=context)

        if not vals.get('order_line', '/') == '/':

            wf_service = netsvc.LocalService('workflow')

            wf_service.trg_validate(uid, 'sale.order', result, 'order_confirm', cr)

        return result

 

This works but I have one problem. My module is called when the "save" and the "update" button is used. This isn't good and I'll run this coding only if button "save" is used. So I would like to now how can I check in coding, which button is pressed? Can anybody tell me or give me an example, how can I check which button is used?

Thanks a lot!

Leo

Ảnh đại diện
Huỷ bỏ
Tác giả Câu trả lời hay nhất

On my side it doesn't work. The inherit of sale.view_order_form is working, because in the developer mode I can see the context 'update'. But in my python code I doesn't get any value with context.get('update'). Do you have any idea, why this isn't working? Must I do something else to get the value of the context? 

Thanks for helping!

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

You can use context to achieve it. Inherit sale.view_order_form and replace "update" button like this :

<button name="button_dummy" context="{'update': True}"  states="draft,sent" string="(update)" type="object" class="oe_edit_only oe_link"/>

Then in your python code you can test : if context.get('update',False):  ....

Hope it helps!

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
0
thg 4 24
1001
2
thg 4 24
1009
0
thg 2 24
1690
1
thg 12 22
4520
1
thg 8 22
4976