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

How to override ReportController class in Odoo

By
Shawn Varghese
on 2/19/15, 6:31 AM 2,312 views

I want to override the report_download method in the addons/report/controllers/main.py file. but I do not know how to inherit the ReportController(Controller) class. I understand that inheriting a controller is not the same as the other classes. Can anyone please help me out?
 

2
Gael Rabier
On 2/19/15, 8:37 AM

I would suggest to do this:

 

from openerp import http
from openerp.http import request
import openerp.addons.report.controllers.main as main

class Extension(main.ReportController):

    @route(['/report/download'], type='http', auth="user")
    def report_download(self, data, token):
        do_what_you_need_to_do()
        return super(Extension, self).
report_download(data, token)

Yup, this would be a cleaner way to do it. Thanks Gael.

Shawn Varghese
on 2/19/15, 8:41 AM
0
Shawn Varghese
On 2/19/15, 8:35 AM

Ok got it.

from openerp.addons import report

class ReportControllerDerived(report.controllers.main.ReportController):

@route(['/report/download'], type='http', auth="user")

def report_download(self, data, token):

///remaining code

I had not referenced the base class correctly earlier

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

1 follower(s)

Stats

Asked: 2/19/15, 6:31 AM
Seen: 2312 times
Last updated: 3/16/15, 8:10 AM