Odoo Help

0

How to invoke model and cursor inside controller? Openerp Version 7

By
Gustavo Seluja
on 9/22/15, 11:06 AM 1,252 views

I'm writing a controller for V7 and I have this problem. I want to get the database name and the cursor but I can't because there is no a "request" parameter like in V8 to get the cr value and I can't obtain database name from anywhere too. As you can see, I hardcoded the database name just for testing but I have to get it programatically or get the cursor value.  How can I do that? Following, the actual code:

class firmaController(http.Controller): 
_cp_path = '/x_firma'

@http.httprequest
def index(self, request, **post):

     db_name = 'GRP-MRREE'
     cr = openerp.pooler.get_db(db_name).cursor()
     bd_obj = openerp.pooler.get_pool(db_name)
     firma_obj = bd_obj.get('x_firma')
     id_transaccion = post['id_transaction']
     documento = firma_obj.invocar_ws_obtenerDocumentosFirmados(cr, SUPERUSER_ID, id_transaccion)
     cr.commit()
     cr.close()
     return werkzeug.utils.redirect('/')
firmaController()

Hi Axel, I'm really new with openerp and particularly, with controllers. What do you mean with "authenticated sessions" and how can I do that? For what I've been doing with the debugger tool, request.session._db  is coming with False value. Do you have any example how to implement authenticated sessions?

Gustavo Seluja
on 9/22/15, 12:32 PM

Authenticated sessions are those that needs a previous login on the specific database for the user

Axel Mendoza
on 9/22/15, 12:58 PM
2
Axel Mendoza
On 9/22/15, 12:03 PM

Hi @Gustavo Seluja

Normally you need to work with authenticated sessions on your methods in a controller. If that is the case you could get the db_name from the OpenERPSession object like:

db_name = request.session._db

If you are not working with an authenticated session you could always get the db_name as a parameter in your method definition like:

class firmaController(http.Controller): 
    _cp_path = '/x_firma'
    @http.httprequest
    def index(self, request, db=None, **post):

Using the former your url need to add an ?db=db_name as a querystring

Hope this solve your problem

About This Community

This platform 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.

Register

Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)

Stats

Asked: 9/22/15, 11:06 AM
Seen: 1252 times
Last updated: 9/26/15, 2:00 AM