Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

Modify action on button press

By
José
on 12/4/14, 2:29 PM 1,264 views

Hello, I want to modify the actions in the system when the user presses "Save" in the Pricelist Item form. (The ID is product.pricelist.item.form) in Odoo 8.

I learn the view, but there isn't a <button> element so I don't know what is the method called when the user presses "Save". How can I know that? So then, have I to override this method?

Thanks!

1

Ivan

--Ivan--
3210
| 5 3 6
Jakarta, Indonesia
--Ivan--
Ivan
On 12/4/14, 8:32 PM

It is the method "write" and "create".  Save button is not part of the view.

1
Anand
On 12/5/14, 12:43 AM

If you want your save button to do something you should write the below function in your module becozz this function is called when ever save button is clicked....

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

       ###### something you want#####
        return osv.osv.create(self, cr, user, vals, context=context)

Sorry Anand your code breaks inheritance as it calls osv.osv.create directly. The proper call would be return super(class_name, self).create(cr, user, vals, context=context) on v7.

Ivan
on 12/5/14, 1:01 AM

yes... you are right... thanks....Ivan

Anand
on 12/5/14, 1:09 AM
0
José
On 12/4/14, 10:34 PM

Ok, thanks. In what case have I to override "write" and in what case "create"?

write will be executed when an existing record is updated. Note that for write the vals in the method's argument will only contain those data that are updated. So, you might want to read/browse first if you need those data. Also write operates on multiple records (ids in the argument). create is called when a new record is created, the vals argument will contain all fields that are to be written and no ids in the arguments.

Ivan
on 12/4/14, 10:49 PM

You are very clear. I have understand perfectly. Thanks!

José
on 12/5/14, 1:11 PM

Sorry, in the case of write, why the ids are a collection? If I am updating a single record

José
on 12/5/14, 2:38 PM

It is just the way Odoo is written Jose. write expects a list for ids arguments. If you just updates one record, you put it in a list. pool.write(cr, uid, [id], vals, context=context). That'll do.

Ivan
on 12/8/14, 1:06 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

2 follower(s)

Stats

Asked: 12/4/14, 2:29 PM
Seen: 1264 times
Last updated: 3/16/15, 8:10 AM