Как создать отчет qweb-xml с помощью мастера в Odoo 11? - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь сгенерировать qweb-xml отчет из wizard, следуя той же процедуре при генерации qweb-pdf отчета. Проблема в том, что я не могу отправить данные формы мастера в файл отчета.

Вот мой wizard/wizard.py файл:

class XMLReportWizard(models.TransientModel):
    _name = 'wizard.mymodule.report'

    date_from = fields.Date(string = 'From', required = True)
    date_to = fields.Date(string = 'To', required = True)
    report_type = fields.Selection(string = 'Report Type', 
        selection=[('pdf', 'PDF'), ('xml', 'XML'), ('excel', 'Excel'), ('csv', 'CSV')], default='pdf')

def get_report(self):
    self.ensure_one()
    [data] = self.read()
    form_data = {'form': data}
    if data['report_type'] == 'pdf':
        return self.env.ref('mymodule.mv_wizard_report').report_action(self, data = form_data)
    elif data['report_type'] == 'xml':

       return self.env.ref('mymodule.mv_wizard_report_xml').report_action(self, data = form_data)
    else:
        raise UserError("Report type %s is currently not available." %data['report_type'])

А в report/report.py файле:

class ReportXML(models.AbstractModel):
    _name = 'report.mymodule.mv_report_xml'

    @api.model
    def get_report_values(self, docids, data = None):
        if not data.get('form'):
            raise ValidationError("Form content is missing, this report cannot be printed.")

Когда я выбираю report_type в формате pdf, form_data из мастера содержит date_from, date_to и report_type и отправляется методу get_report_values(), который я сделал в отдельном файле python. Но когда я выбираю report_type как xml, весь ключ form не отправляется.

data содержит эти данные при выборе pdf:

{'report_type': 'qweb-pdf', 'context':'something', 'data': {'form':{'report_type': 'pdf', 'date_to': '2019-04-01', 'date_from': '2019-04-01',..}}}

Но когда я выбираю xml как report_type, отправляются только эти данные:

{'data': '["report/xml/mymodule.mv_report_xml/32","qweb-xml"]', 'token': '1556429333217'}

P.S .: Я установил report_xml модуль, который помогает генерировать отчет в формате xml.

Когда я не включаю data из мастера при печати отчета xml, отчет xml генерируется нормально. Итак, основная проблема в том, что словарь data не содержит ключ form при создании отчета xml.

Может кто-нибудь помочь мне решить эту проблему? Заранее спасибо.

...