Walid Bousseta
Walid Bousseta

Reputation: 1469

QWeb pdf report odoo 10

I am new in odoo I want to make a report pdf to my model, I have try all tuto I have find in net youtube, google but no one work for me please give me an advice. there is my model :

# modelx.py file
from openerp import models, fields, api

class omega(models.Model):
    _name = 'omega.model'
    _description = 'No Description for now !!'

    @api.model
    def render_html(self, docids, data=None):
        report_obj = self.env['report']
        report = report_obj._get_report_from_name('report.external_layout')
        docargs = {
            'doc_ids': docids,
            'doc_model': report.model,
            'docs': self,
        }
        return report_obj.render('report.external_layout', docargs)


    state = fields.Selection([
        ('Nouveau', 'Nouveau'),
        ('valid', 'Validation Responsable'),
        ('Termine', 'Termine'),
    ],default='Nouveau')

    @api.one
    def confirmer(self):
        self.write({
            'state': 'valid',
        })

    employe = fields.Many2one(comodel_name="res.users", string="Employe", required=True, delegate=True)
    date = fields.Datetime(string="Date", required=True)
    date2 = fields.Date(string="Date2", required=True)
    day_number = fields.Integer(string="Nombre de jour", required=True)
    transport = fields.Selection(string="Transport", selection=[('1', 'Train'), ('2', 'Voiture de Service'), ('3', 'Avion')])
    sujet = fields.Char(string="Sujet", required=True)
    lieu = fields.Char(string="Lieu", required=False)

I have also this two file XML:

<!-- report.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<openerp>
    <data>
        <report
            id="action_report_omega"
            model="omega.model"
            string="Report"
            report_type="qweb-pdf"
            file="report.external_layout"
            name="report.external_layout"
        />
    </data>
</openerp>

and this file for template view as I find in net and odoo documentation

<!-- report_template.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<openerp>
    <data>
        <template id="report_omega_document">
            <t t-call="report.html_container">
            <t t-call="report.external_layout">
                <div class="page">
                <div class="oe_structure">
                <div class="row">
                    <H1>Hi there hello</H1>
                </div>
                </div>
                </div>
            </t>
            </t>
        </template>
        <template id="report_omega">
            <t t-call="report.html_container">
            <t t-call="report.external_layout">
                <t t-foreach="doc_ids" t-as="doc_id">
                    <div class="page">
                    <div class="oe_structure">
                    <div class="row">
                        <H3>Hi hello </H3>
                    </div>
                    </div>
                    </div>
                </t>
            </t>
            </t>
        </template>

    </data>
</openerp>

when I execute the programme for printing the report I get an empty file, give me any advice please

Upvotes: 3

Views: 1924

Answers (1)

Bhavesh Odedra
Bhavesh Odedra

Reputation: 11143

You need to change file and name attribute of report tag. It always represent module_name.report_template_name

<report
    id="action_report_omega"
    model="omega.model"
    string="Report"
    report_type="qweb-pdf"
    file="your_module_name.report_omega"
    name="your_module_name.report_omega"
/>

Afterwards, upgrade your module and try it. It should work fine.

For more details, you may refer Qweb Reports - Odoo10 Document.

Upvotes: 6

Related Questions