Skip to main content
Forms to QWeb Reports — A build-to-order Odoo module that turns website and internal form submissions into branded, print-rea — 1/1Illustrative preview

A build-to-order Odoo module that turns website and internal form submissions into branded,

print-ready QWeb PDF reports automatically.

ECOSIRE scopes, builds, installs, and supports it for your instance.

What is Forms to QWeb Reports?

A build-to-order Odoo module that turns website and internal form submissions into branded, print-ready QWeb PDF reports automatically. ECOSIRE scopes, builds, installs, and supports it for your instance. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Dedicated QWeb PDF report (`report_type = 'qweb-pdf'`) bound to your form's target model, not a generic list print
Model extension with typed `fields` and `compute`/`@api.depends` methods so submissions render as formatted totals, dates, and currencies
`_get_report_values` in an `AbstractModel` builds the exact dataset the template needs, including related one-to-many lines as tables
Inherits `web.external_layout` for consistent company header, footer, logo, and address on every page
Conditional sections, page-break control, and repeating line rendering via QWeb `t-if`/`t-foreach` directives
Dynamic, record-aware output filenames (e.g. reference number + date) instead of a generic report name
Automated action or server action to generate and email the PDF the moment a form is submitted
PDF auto-attached to the record as an `ir.attachment` and/or delivered through a mail template
Optional QR codes and barcodes embedded in the report for verification or tracking
Multi-language rendering with `t-lang` so each recipient gets the report in their partner language
Headless generation over the XML-RPC/JSON-RPC API for external portals and system-to-system flows
Access controlled via `ir.model.access.csv` plus record rules so users only render permitted records
Multi-company aware branding so each record prints with the correct company's letterhead
Packaged as a versioned module with `__manifest__.py`, upgrade-safe views, and no core file patches

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Teams collect data through Odoo forms — website enquiries, intake questionnaires, inspection checklists, survey responses, application forms — but the moment someone needs a clean PDF of a single submission, the native path runs out of road. Odoo can print list and form views, and the website builder can capture submissions into a target model, but there is no out-of-the-box way to render an individual submission as a designed, letterheaded document with computed fields, conditional sections, and a filename that reflects the record. People end up copy-pasting into a word processor, which is slow, error-prone, and impossible to automate. This is a productized service page: the module described here is built to order for your instance, not an existing download.

ECOSIRE builds a dedicated QWeb report bound to the model your forms write into. Technically, we deliver a proper module with its own __manifest__.py, a report.report_action (report_type = 'qweb-pdf') and a matching QWeb <template> that walks the submission record and its related fields. Where the raw submission stores loosely-typed answers, we add models.Model extensions with typed fields and compute/@api.depends methods so the PDF shows properly formatted totals, dates, currencies, and derived values rather than dumped strings. The report inherits web.external_layout so your company header, footer, address, and logo are applied consistently, and we implement _get_report_values in an AbstractModel so the template receives exactly the data it needs — including many-to-one and one-to-many lines rendered as tables. Optional QR codes, barcodes, page-break control, and multi-language rendering (t-lang) are handled in-template.

Beyond the document itself, we wire the automation you actually want. Using Odoo's automated actions (or a small server action), a PDF can be generated and emailed the instant a form is submitted, attached to the record as an ir.attachment, pushed to a partner via a mail template, or filed into Documents. For headless and integration scenarios the same report is renderable over the XML-RPC/JSON-RPC API, so an external portal or another system can request the PDF for a given record id. Access is locked down properly with ir.model.access.csv and record rules so users only render reports for records they are allowed to see, and multi-company setups get the correct company branding per record.

Delivery is build-to-order. After a short scoping call we confirm the exact source model, the fields and layout of the report, the trigger conditions, and your Odoo version — we support Odoo 17.0, 18.0, and 19.0, and account for Community vs Enterprise differences (for example, Studio-created fields or Enterprise-only Documents routing). You receive a fixed written quote, then we build on a staging copy, run UAT with you, and deploy with a rollback plan. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope covering one source model and one report layout); additional report layouts, complex conditional logic, multi-company branding, extra integrations over the RPC API, and localization depth increase the quoted scope.

What you get

  • Installable, version-pinned Odoo module source for your target version (17.0/18.0/19.0), no core patches
  • Installation and configuration on your instance, including report action and automation wiring
  • Technical documentation covering the model extensions, QWeb template, security rules, and trigger logic
  • End-user guide plus a live training session for the team that will run and print the reports
  • Post-go-live support window for defect fixes and adjustments after deployment
  • UAT on a staging copy with a documented, tested rollback plan before production deploy
  • Git repository handover with full commit history and tagged release
  • Sample generated PDFs and test records demonstrating each report layout and trigger

Who this is for

Operations lead running Odoo forms

Owns website enquiry or intake forms and needs each submission as a branded PDF, filed and emailed automatically, without manual copy-paste for every record.

Field and inspection teams

Capture checklists and site data through Odoo and need a clean, letterheaded PDF per job — with computed totals and pass/fail sections — to hand to clients or file for compliance.

Odoo administrator or internal developer

Wants the reporting layer delivered as a proper module with `ir.model.access.csv`, record rules, and clean QWeb templates they can maintain, not brittle Studio hacks or core edits.

Membership, HR, or education coordinator

Processes application and registration forms and needs each accepted submission rendered as an official document, in the applicant's language, attached to their record.

How Forms to QWeb Reports Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Output fidelityBranded QWeb PDF per submission with computed fields and line tablesDepends entirely on in-house developer skill and timeGeneric template, rarely matches your exact modelList/form print only, no per-submission designed document
Automation on submitAutomated action generates, attaches, and emails the PDFBuildable but must be designed and tested from scratchUsually manual print, limited trigger optionsNo native submit-to-PDF workflow
Security model`ir.model.access.csv` + record rules scoped to your rolesCorrect only if the developer implements it deliberatelyBroad defaults you must tighten yourselfStandard access, not report-specific
Odoo version fitBuilt and tested for your 17.0/18.0/19.0, Community or EnterpriseWhatever you target, at your maintenance costOften lags new versions or a paid upgradeShips with core, but no report layer
Integration / APIRenderable over XML-RPC/JSON-RPC for external systemsPossible with additional in-house workRarely exposed or documentedReport objects exist but need custom wiring
Maintenance & ownershipVersioned module + git handover, no core patchesYou own all upkeep and documentationVendor-controlled release cadenceMaintained by Odoo, but no matching feature
Time to valueone working week from confirmed scope, UAT and rollback includedUnpredictable; depends on backlog and skillFast to install, slow to fit your dataImmediate, but does not solve the need
Total cost clarityIndicative from $999, fixed written quote after scopingOpen-ended developer hoursLow license, high customization cost to fitFree, but leaves the gap unsolved

Frequently Asked Questions about Forms to QWeb Reports

Is this an existing app I can download and install right now?

No. This is a build-to-order module. We scope it to your exact source model, fields, layout, and triggers, then build, install, and support it for your instance. It is not a pre-existing apps.odoo.com download.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the scoping call and a signed fixed quote, we build on a staging copy, run UAT with you, and deploy with a rollback plan. Larger multi-layout or multi-company work sits at the upper end of that range.

How does pricing and scoping work?

Pricing starts from $999 as an indicative single-company base scope (one source model, one report layout). We never quote a firm price sight-unseen — after a short scoping call we send a fixed written quote. Additional layouts, conditional logic, multi-company branding, integrations, and localization increase the quoted scope.

What about support and future Odoo updates?

Every build includes a post-go-live support window for defect fixes and adjustments. Because it ships as a self-contained module with no core patches, it upgrades cleanly. We also offer paid support and version-migration engagements (17.0 → 18.0 → 19.0) beyond the initial window.

Which Odoo versions and editions do you support?

We support Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise. During scoping we account for edition differences — for example Studio-created fields or Enterprise-only Documents routing — so the module fits your setup exactly.

Can the PDF be generated automatically and sent to the submitter?

Yes. We wire an automated action or server action so the PDF is generated on submission, attached to the record as an `ir.attachment`, and optionally emailed via a mail template. It can also be rendered on demand over the XML-RPC/JSON-RPC API for external systems.

Do you handle multi-company and multi-language reports?

Yes. The report inherits `web.external_layout` and is multi-company aware, so each record prints with the correct company branding, and `t-lang` rendering produces the report in each recipient's partner language.

Request a quote

Forms to QWeb Reports

A build-to-order Odoo module that turns website and internal form submissions into branded, print-ready QWeb PDF reports automatically. ECOSIRE scopes, builds, installs, and supports it for your instance.

  • Dedicated QWeb PDF report (`report_type = 'qweb-pdf'`) bound to your form's target model, not a generic list print
  • Model extension with typed `fields` and `compute`/`@api.depends` methods so submissions render as formatted totals, dates, and currencies
  • `_get_report_values` in an `AbstractModel` builds the exact dataset the template needs, including related one-to-many lines as tables
  • Inherits `web.external_layout` for consistent company header, footer, logo, and address on every page

Request a Quotation

Tell us about your Forms to QWeb Reports requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.