# How to use html\_report module

**URL:** https://discuss.tryton.org/t/how-to-use-html-report-module/9291
**Category:** User
**Created:** [July 15, 2026, 5:55pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291 "2026-07-15T17:55:36Z")
**Posts on this page:** 17
**Page:** 1

<div class="post-metadata">

### Author: ![a\_afzal](https://discuss-cdn.tryton.org/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@a\_afzal](https://discuss.tryton.org/u/a_afzal)
#### Post date: [July 15, 2026, 5:55pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/1 "2026-07-15T17:55:36Z")

</div>

> [@Use HTML as standard report template](https://discuss.tryton.org/t/use-html-as-standard-report-template/7273/2):
>
> In the `html_report` module we make heavy use of jinja macros (which users can modify from the Tryton interface)

Hey, I’m trying to work on customized reports, can you help me with html\_report module?  
from where can I install this? how can I use it?

---

<div class="post-metadata">

### Author: ![albert](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/albert/32/21_2.png) [@albert](https://discuss.tryton.org/u/albert)
#### Post date: [July 15, 2026, 11:57pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/2 "2026-07-15T23:57:25Z")

</div>

You can find html\_report [here](https://github.com/NaN-tic/trytond-html_report/) but it changed substantially recently and we no longer support jinja but use plain python with Dominate to generate reports now. You can find many examples in the module itself.

Simply ask if you have any questions.

---

<div class="post-metadata">

### Author: ![a\_afzal](https://discuss-cdn.tryton.org/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@a\_afzal](https://discuss.tryton.org/u/a_afzal)
#### Post date: [July 16, 2026, 4:29am UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/3 "2026-07-16T04:29:59Z")

</div>

> [@albert](#):
>
> You can find html\_report [here](https://github.com/NaN-tic/trytond-html_report/) but it changed substantially recently and we no longer support jinja but use plain python with Dominate to generate reports now.

I’m using docker for tryton’s setup, and I’m trying to install the html\_report module from dockerfile.

```auto
RUN pip install git+https://github.com/NaN-tic/trytond-html_report.git@7.8 --break-system-packages

```

but it is not showing up in modules.

---

<div class="post-metadata">

### Author: ![albert](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/albert/32/21_2.png) [@albert](https://discuss.tryton.org/u/albert)
#### Post date: [July 17, 2026, 11:16am UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/4 "2026-07-17T11:16:21Z")

</div>

We don’t actually use/support installation via pip, we just clone the repository in modules directory.

---

<div class="post-metadata">

### Author: ![zacarias](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/zacarias/32/1634_2.png) [@zacarias](https://discuss.tryton.org/u/zacarias)
#### Post date: [July 17, 2026, 11:55am UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/5 "2026-07-17T11:55:56Z")

</div>

Since the GitHub repository doesn’t explain much about how to use it. This is the best approche create an .html file and them reference.

```auto
<field name="report">akademy_classe/reports/classes.html</field>
<field name="extension">pdf</field>

```

---

<div class="post-metadata">

### Author: ![a\_afzal](https://discuss-cdn.tryton.org/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@a\_afzal](https://discuss.tryton.org/u/a_afzal)
#### Post date: [July 17, 2026, 12:20pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/6 "2026-07-17T12:20:19Z")

</div>

> [@zacarias](#):
>
> This is the best approche create an .html file and them reference.

But how will I use the fields in html to create report from them?

can you explain the implementation in a bit more detail?

---

<div class="post-metadata">

### Author: ![albert](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/albert/32/21_2.png) [@albert](https://discuss.tryton.org/u/albert)
#### Post date: [July 17, 2026, 12:28pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/7 "2026-07-17T12:28:43Z")

</div>

> [@zacarias](#):
>
> Since the GitHub repository doesn’t explain much about how to use it. This is the best approche create an .html file and them reference.
> 
> ```auto
> <field name="report">akademy_classe/reports/classes.html</field>
> <field name="extension">pdf</field>
> 
> ```

This is no longer supported since version 7.6

---

<div class="post-metadata">

### Author: ![a\_afzal](https://discuss-cdn.tryton.org/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@a\_afzal](https://discuss.tryton.org/u/a_afzal)
#### Post date: [July 17, 2026, 12:30pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/8 "2026-07-17T12:30:05Z")

</div>

> [@albert](#):
>
> We don’t actually use/support installation via pip, we just clone the repository in modules directory.

is there any documentation or something to use this way?

---

<div class="post-metadata">

### Author: ![albert](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/albert/32/21_2.png) [@albert](https://discuss.tryton.org/u/albert)
#### Post date: [July 17, 2026, 12:34pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/9 "2026-07-17T12:34:27Z")

</div>

> [@a\_afzal](#):
>
> But how will I use the fields in html to create report from them?
> 
> can you explain the implementation in a bit more detail?

IMHO an example is better than anything else. Just take a look at `prodution.xml` on how to register the report and at `production.py` on how to implement it.

You must inherit `DominateReport` and in a minimal version inherit the `body` method where you must return the HTML you want in the body using a [dominate](https://pypi.org/project/dominate/) object. You can also override the `footer`, the `header` or css methods you can find in `DominateReport` class.

But as said, just to start just clone `production.xml`and inherit `DominateReport` overriding the `body` method, and that should allow you to start with a simple report.

---

<div class="post-metadata">

### Author: ![albert](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/albert/32/21_2.png) [@albert](https://discuss.tryton.org/u/albert)
#### Post date: [July 17, 2026, 12:35pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/10 "2026-07-17T12:35:32Z")

</div>

> [@a\_afzal](#):
>
> > [@albert](#):
> >
> > We don’t actually use/support installation via pip, we just clone the repository in modules directory.
> 
> is there any documentation or something to use this way?

No. You need to know git, clone the repository on the branch you intend to work on, and copy the content inside the modules repository you’re working on.

---

<div class="post-metadata">

### Author: ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)
#### Post date: [July 17, 2026, 1:10pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/11 "2026-07-17T13:10:38Z")

</div>

You may also download the module code as zip and extract on the modules path from your server. Just make sure the resulting directory is named `html_report` and that you use the same branch as your server series. That will allow you to download the module without git

---

<div class="post-metadata">

### Author: ![a\_afzal](https://discuss-cdn.tryton.org/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@a\_afzal](https://discuss.tryton.org/u/a_afzal)
#### Post date: [July 23, 2026, 4:58am UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/12 "2026-07-23T04:58:04Z")

</div>

> [@albert](#):
>
> we no longer support jinja

I just cloned the repository in the modules folder and tried to update the database but it gives an error:  
ModuleNotFoundError: No module named ‘jinja2’

---

<div class="post-metadata">

### Author: ![albert](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/albert/32/21_2.png) [@albert](https://discuss.tryton.org/u/albert)
#### Post date: [July 23, 2026, 4:23pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/13 "2026-07-23T16:23:13Z")

</div>

You should run `pip install jinja2`

---

<div class="post-metadata">

### Author: ![a\_afzal](https://discuss-cdn.tryton.org/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@a\_afzal](https://discuss.tryton.org/u/a_afzal)
#### Post date: [July 23, 2026, 4:26pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/14 "2026-07-23T16:26:04Z")

</div>

I am running into an issue where `engine.py` throws a `ModuleNotFoundError`.To resolve this, I have been modifying my Dockerfile to install the missing modules individually using separate `pip install` commands. However, once I install a module and resolve the initial error, the build simply fails again on the very next import statement.

Am I supposed to install every single module individually this way, or is there a better approach for installing all the required modules at once?

![image](https://discuss-cdn.tryton.org/uploads/default/original/2X/b/b8212906f7f77a26d9bf971f3f8170eac4772dc7.png)

Also, widgets and xgettext is mentioned as well in the tryton.cfg file which I don’t find in this repo.

---

<div class="post-metadata">

### Author: ![albert](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/albert/32/21_2.png) [@albert](https://discuss.tryton.org/u/albert)
#### Post date: [July 23, 2026, 4:56pm UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/15 "2026-07-23T16:56:49Z")

</div>

Yes, you need to install all the dependencies. Including the ‘xgettext’ and ‘widgets’ modules (those should be cloned just like html\_report).

---

<div class="post-metadata">

### Author: ![a\_afzal](https://discuss-cdn.tryton.org/letter_avatar_proxy/v4/letter/a/8797f3/32.png) [@a\_afzal](https://discuss.tryton.org/u/a_afzal)
#### Post date: [July 24, 2026, 8:04am UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/17 "2026-07-24T08:04:39Z")

</div>

Thanks for the help! It worked.

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [July 24, 2026, 8:10am UTC](https://discuss.tryton.org/t/how-to-use-html-report-module/9291/18 "2026-07-24T08:10:13Z")

</div>

It will be good then to remove the `setup.py`.  
Or ideally to update it to match the cookiecutter version from the tryton repository.

Also there is a `tox.ini` that is using the broken `setup.py`.
