Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
4 Odpowiedzi
7479 Widoki

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

Awatar
Odrzuć
Najlepsza odpowiedź

avasen,

Use self.pool.get instead of self.env

Thank You

Awatar
Odrzuć
Najlepsza odpowiedź

Hello,

try below code,

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

maybe it will help you.

Thanks

Awatar
Odrzuć
Autor Najlepsza odpowiedź

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

Awatar
Odrzuć
Najlepsza odpowiedź

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, 

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
0
maj 21
4
1
lis 20
4288
0
mar 15
3628
1
gru 24
3918
0
lis 24
1604