Pular para o conteúdo
Menu
Esta pergunta foi sinalizada
4 Respostas
7387 Visualizações

hello i want to create report which will give in a table infomation of the record selected via tre view

so i have done my model and know when i want to call my function get_all_records  there are errors like 'self has not attribute context' or 'not attribute env' how to do please??

import time from openerp import api, fields, models

from datetime import datetime, timedelta, date

from openerp.osv import osv, orm from openerp import tools

from openerp.report import report_sxw

class example_report_parser(report_sxw.rml_parse):
    _name = 'report.reportbesoin.report_besoin_report_view'
    def __init__(self, cr, uid, name, context):
        super(example_report_parser, self).__init__(cr, uid, name, context=context)
        self.localcontext.update({
                                 
                                 'test_me':self.test_me,
                                 'get_all_records':self._get_all_records,
                               
                                 })

    def test_me(self):
        return "ABC"
       
    @api.model
    def _get_all_records(self):

       recsss = self.env['hr.job'].search(self.cr,self.uid, [('id','in',self.ids)])
        resss = self.env['hr.job'].browse(self.cr, self.uid, recsss)
        return resss


class report_test1_parser(models.AbstractModel):
    _name = 'report.reportbesoin.report_besoin_report_view'
    _inherit = 'report.abstract_report'
    _template ='reportbesoin.report_besoin_report_view'
    _wrapped_report_class = example_report_parser

Avatar
Cancelar
Melhor resposta

avasen,

Use self.pool.get instead of self.env

Thank You

Avatar
Cancelar
Melhor resposta

Hello,

try below code,

active_ids =  self._context.get('active_ids',False)

maybe it will help you.

Thanks

Avatar
Cancelar
Autor Melhor resposta

hello ,thanks for your answer but when i do that i have just the last record so instead i have done


def _get_all_records(self):
       
        active_ids =  self.context.get('active_ids',False)
        recsss = self.pool.get('hr.job').search(self.cr,self.uid, [('id','in',active_ids)], context=self._context)
        resss = self.pool.get('hr.job').browse(self.cr, self.uid, recsss)
        return resss


but they say that my module has not attribute context

can you help please

Avatar
Cancelar
Melhor resposta

Hai Brami,

  @api.model
    def _get_all_records(self):

       recsss = self.pool.get('hr.job').search(self.cr,self.uid, [('id','in',self.ids)])
        resss = self.pool.get('hr.job').browse(self.cr, self.uid, recsss)
        return resss

In this report parser you just use the pool.get method, then its work fine, 

Avatar
Cancelar
Publicações relacionadas Respostas Visualizações Atividade
0
mai. 21
4
1
nov. 20
4209
0
mar. 15
3565
1
dez. 24
3531
0
nov. 24
1460