Skip to Content
Menu
This question has been flagged
2 Replies
9441 Views

Hello

How do i call an existent view in OpenERP from JavaScript?

I already tried this :

self.rpc("/web/action/load", { action_id: "module.action_view_id" }).done(function(result) {

                        result.view_mode='tree';
                        result.target="new";

                        self.getParent().do_action(result, {                                                                                      
                            additional_context: {                                          
                            },                                                         
                        });

it works, but whenever i click on a record it brings me the form of that record, and that's not what i want. I need something like in this video on youtube /watch?v=YVqKrH1GnyA

thank you in advance.

Avatar
Discard
Best Answer

I have used your solution but it gives this error:

Uncaught TypeError: self.do_action is not a function


Avatar
Discard
Best Answer

In the javascript file, you could add an event to a buttons class name like this:

    bind_events: function () {            
        this.$('.oe_btn_class_name').on('click', this.on_call_new_view_function);
    },

Then the "on_call_new_view_function" is called when a click event occurs and opens the new view like this:

    on_call_new_view_function: function () {
        var self = this;
        // you can pass in other data using the context dictionary variable
        var context = {
            'id': this.id,
        };
        // the action dictionary variable sends data in the "self.do_action" method
        var action = {
                type: 'ir.actions.act_window',
                res_model: 'model.name',
                view_mode: 'form',
                view_type: 'form',
                views: [[false, 'form']],
                target: 'new',
                context: context,
        };
        // self.do_action accepts the action parameter and opens the new view
        self.do_action(action);
    },
Avatar
Discard