Merge PR #805 into 14.0

Signed-off-by etobella
This commit is contained in:
OCA-git-bot
2023-11-07 13:31:29 +00:00
26 changed files with 101 additions and 97 deletions

View File

@@ -1,8 +1,7 @@
# Do NOT update manually; changes here will be overwritten by Copier # Do NOT update manually; changes here will be overwritten by Copier
_commit: v1.14.2 _commit: v1.17.2
_src_path: git+https://github.com/OCA/oca-addons-repo-template _src_path: git+https://github.com/OCA/oca-addons-repo-template
ci: GitHub ci: GitHub
dependency_installation_mode: PIP
generate_requirements_txt: true generate_requirements_txt: true
github_check_license: true github_check_license: true
github_ci_extra_env: {} github_ci_extra_env: {}
@@ -11,6 +10,7 @@ github_enable_makepot: true
github_enable_stale_action: true github_enable_stale_action: true
github_enforce_dev_status_compatibility: true github_enforce_dev_status_compatibility: true
include_wkhtmltopdf: false include_wkhtmltopdf: false
odoo_test_flavor: Both
odoo_version: 14.0 odoo_version: 14.0
org_name: Odoo Community Association (OCA) org_name: Odoo Community Association (OCA)
org_slug: OCA org_slug: OCA
@@ -19,6 +19,4 @@ repo_description: 'TODO: add repo description.'
repo_name: reporting-engine repo_name: reporting-engine
repo_slug: reporting-engine repo_slug: reporting-engine
repo_website: https://github.com/OCA/reporting-engine repo_website: https://github.com/OCA/reporting-engine
travis_apt_packages: []
travis_apt_sources: []

View File

@@ -22,6 +22,7 @@ globals:
odoo: readonly odoo: readonly
openerp: readonly openerp: readonly
owl: readonly owl: readonly
luxon: readonly
# Styling is handled by Prettier, so we only need to enable AST rules; # Styling is handled by Prettier, so we only need to enable AST rules;
# see https://github.com/OCA/maintainer-quality-tools/pull/618#issuecomment-558576890 # see https://github.com/OCA/maintainer-quality-tools/pull/618#issuecomment-558576890

View File

@@ -13,8 +13,10 @@ jobs:
pre-commit: pre-commit:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- uses: actions/setup-python@v2 - uses: actions/setup-python@v2
with:
python-version: "3.11"
- name: Get python version - name: Get python version
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
- uses: actions/cache@v1 - uses: actions/cache@v1
@@ -25,6 +27,15 @@ jobs:
run: pip install pre-commit run: pip install pre-commit
- name: Run pre-commit - name: Run pre-commit
run: pre-commit run --all-files --show-diff-on-failure --color=always run: pre-commit run --all-files --show-diff-on-failure --color=always
env:
# Consider valid a PR that changes README fragments but doesn't
# change the README.rst file itself. It's not really a problem
# because the bot will update it anyway after merge. This way, we
# lower the barrier for functional contributors that want to fix the
# readme fragments, while still letting developers get README
# auto-generated (which also helps functionals when using runboat).
# DOCS https://pre-commit.com/#temporarily-disabling-hooks
SKIP: oca-gen-addon-readme
- name: Check that all files generated by pre-commit are in git - name: Check that all files generated by pre-commit are in git
run: | run: |
newfiles="$(git ls-files --others --exclude-from=.gitignore)" newfiles="$(git ls-files --others --exclude-from=.gitignore)"

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: Detect unreleased dependencies name: Detect unreleased dependencies
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- run: | - run: |
for reqfile in requirements.txt test-requirements.txt ; do for reqfile in requirements.txt test-requirements.txt ; do
if [ -f ${reqfile} ] ; then if [ -f ${reqfile} ] ; then
@@ -36,10 +36,10 @@ jobs:
matrix: matrix:
include: include:
- container: ghcr.io/oca/oca-ci/py3.6-odoo14.0:latest - container: ghcr.io/oca/oca-ci/py3.6-odoo14.0:latest
makepot: "true"
name: test with Odoo name: test with Odoo
- container: ghcr.io/oca/oca-ci/py3.6-ocb14.0:latest - container: ghcr.io/oca/oca-ci/py3.6-ocb14.0:latest
name: test with OCB name: test with OCB
makepot: "true"
services: services:
postgres: postgres:
image: postgres:9.6 image: postgres:9.6
@@ -50,7 +50,7 @@ jobs:
ports: ports:
- 5432:5432 - 5432:5432
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
with: with:
persist-credentials: false persist-credentials: false
- name: Install addons and dependencies - name: Install addons and dependencies

View File

@@ -12,6 +12,8 @@ exclude: |
/static/(src/)?lib/| /static/(src/)?lib/|
# Repos using Sphinx to generate docs don't need prettying # Repos using Sphinx to generate docs don't need prettying
^docs/_templates/.*\.html$| ^docs/_templates/.*\.html$|
# Don't bother non-technical authors with formatting issues in docs
readme/.*\.(rst|md)$|
# You don't usually want a bot to modify your legal texts # You don't usually want a bot to modify your legal texts
(LICENSE.*|COPYING.*) (LICENSE.*|COPYING.*)
default_language_version: default_language_version:
@@ -33,12 +35,24 @@ repos:
language: fail language: fail
files: '[a-zA-Z0-9_]*/i18n/en\.po$' files: '[a-zA-Z0-9_]*/i18n/en\.po$'
- repo: https://github.com/oca/maintainer-tools - repo: https://github.com/oca/maintainer-tools
rev: ab1d7f6 rev: 969238e47c07d0c40573acff81d170f63245d738
hooks: hooks:
# update the NOT INSTALLABLE ADDONS section above # update the NOT INSTALLABLE ADDONS section above
- id: oca-update-pre-commit-excluded-addons - id: oca-update-pre-commit-excluded-addons
- id: oca-fix-manifest-website - id: oca-fix-manifest-website
args: ["https://github.com/OCA/reporting-engine"] args: ["https://github.com/OCA/reporting-engine"]
- id: oca-gen-addon-readme
args:
- --addons-dir=.
- --branch=14.0
- --org-name=OCA
- --repo-name=reporting-engine
- --if-source-changed
- repo: https://github.com/OCA/odoo-pre-commit-hooks
rev: v0.0.25
hooks:
- id: oca-checks-odoo-module
- id: oca-checks-po
- repo: https://github.com/myint/autoflake - repo: https://github.com/myint/autoflake
rev: v1.4 rev: v1.4
hooks: hooks:

View File

@@ -93,7 +93,6 @@ msgstr ""
#: model:ir.ui.menu,name:base_comment_template.reports_base_comment_template_menuitem #: model:ir.ui.menu,name:base_comment_template.reports_base_comment_template_menuitem
#: model_terms:ir.ui.view,arch_db:base_comment_template.view_base_comment_template_form #: model_terms:ir.ui.view,arch_db:base_comment_template.view_base_comment_template_form
#: model_terms:ir.ui.view,arch_db:base_comment_template.view_base_comment_template_search #: model_terms:ir.ui.view,arch_db:base_comment_template.view_base_comment_template_search
#: model_terms:ir.ui.view,arch_db:base_comment_template.view_base_comment_template_tree
#: model_terms:ir.ui.view,arch_db:base_comment_template.view_partner_form #: model_terms:ir.ui.view,arch_db:base_comment_template.view_partner_form
msgid "Comment Templates" msgid "Comment Templates"
msgstr "" msgstr ""

View File

@@ -4,7 +4,7 @@
<field name="name">base.comment.template.search</field> <field name="name">base.comment.template.search</field>
<field name="model">base.comment.template</field> <field name="model">base.comment.template</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Comment Templates"> <tree name="Comment Templates">
<field name="sequence" widget="handle" /> <field name="sequence" widget="handle" />
<field name="name" /> <field name="name" />
<field name="position" /> <field name="position" />

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<data>
<!-- SMS Template Preview --> <!-- SMS Template Preview -->
<record model="ir.ui.view" id="base_comment_template_preview_form"> <record model="ir.ui.view" id="base_comment_template_preview_form">
<field name="name">base.comment.template.preview.form</field> <field name="name">base.comment.template.preview.form</field>
@@ -9,33 +8,33 @@
<form string="Base Comment Preview"> <form string="Base Comment Preview">
<h3>Preview of <h3>Preview of
<field <field
name="base_comment_template_id" name="base_comment_template_id"
readonly="1" readonly="1"
nolabel="1" nolabel="1"
class="oe_inline" class="oe_inline"
/> />
</h3> </h3>
<field name="no_record" invisible="1" /> <field name="no_record" invisible="1" />
<field name="model_ids" /> <field name="model_ids" />
<div class="o_row"> <div class="o_row">
<span>Choose an example <span>Choose an example
<field <field
name="model_id" name="model_id"
domain="[('id', 'in', model_ids or False)]" domain="[('id', 'in', model_ids or False)]"
/> />
record: record:
</span> </span>
<div> <div>
<field <field
name="resource_ref" name="resource_ref"
class="oe_inline" class="oe_inline"
options="{'hide_model': True, 'no_create': True, 'no_edit': True, 'no_open': True}" options="{'hide_model': True, 'no_create': True, 'no_edit': True, 'no_open': True}"
attrs="{'invisible': [('no_record', '=', True)]}" attrs="{'invisible': [('no_record', '=', True)]}"
/> />
<span <span
class="text-warning" class="text-warning"
attrs="{'invisible': [('no_record', '=', False)]}" attrs="{'invisible': [('no_record', '=', False)]}"
>No records >No records
</span> </span>
</div> </div>
</div> </div>
@@ -48,18 +47,18 @@
<label for="body" string="Base Comment content" /> <label for="body" string="Base Comment content" />
<hr /> <hr />
<field <field
name="body" name="body"
readonly="1" readonly="1"
nolabel="1" nolabel="1"
options='{"safe": True}' options='{"safe": True}'
/> />
<hr /> <hr />
<footer> <footer>
<button <button
string="Discard" string="Discard"
class="btn-secondary" class="btn-secondary"
special="cancel" special="cancel"
/> />
</footer> </footer>
</form> </form>
</field> </field>
@@ -76,5 +75,4 @@
</record> </record>
</data>
</odoo> </odoo>

View File

@@ -450,7 +450,7 @@ class BiSQLView(models.Model):
"type": "tree", "type": "tree",
"model": self.model_id.model, "model": self.model_id.model,
"arch": """<?xml version="1.0"?>""" "arch": """<?xml version="1.0"?>"""
"""<tree string="Analysis">{}""" """<tree name="Analysis">{}"""
"""</tree>""".format( """</tree>""".format(
"".join([x._prepare_tree_field() for x in self.bi_sql_view_field_ids]) "".join([x._prepare_tree_field() for x in self.bi_sql_view_field_ids])
), ),

View File

@@ -1,45 +1,44 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo noupdate="1">
<data noupdate="1">
<record id="async_report_delivery" model="mail.template"> <record id="async_report_delivery" model="mail.template">
<field name="name">Report Async: New Report Available</field> <field name="name">Report Async: New Report Available</field>
<field name="model_id" ref="base.model_ir_attachment" /> <field name="model_id" ref="base.model_ir_attachment" />
<field name="subject">Your report is available, ${object.name}</field> <field name="subject">Your report is available, ${object.name}</field>
<field <field
name="email_from" name="email_from"
>${object.company_id.partner_id.email_formatted|safe}</field> >${object.company_id.partner_id.email_formatted|safe}</field>
<field name="partner_to">${user.partner_id.id}</field> <field name="partner_to">${user.partner_id.id}</field>
<field name="body_html" type="html"> <field name="body_html" type="html">
<table <table
border="0" border="0"
cellpadding="0" cellpadding="0"
cellspacing="0" cellspacing="0"
style="background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;" style="background-color: #F1F1F1; font-family:Verdana, Arial,sans-serif; color: #454748; width: 100%; border-collapse:separate;"
> >
<tr> <tr>
<td align="center"> <td align="center">
<table <table
border="0" border="0"
cellpadding="0" cellpadding="0"
cellspacing="0" cellspacing="0"
width="590" width="590"
style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;" style="padding: 16px; background-color: white; color: #454748; border-collapse:separate;"
> >
<tbody> <tbody>
<tr> <tr>
<td align="center" style="min-width: 590px;"> <td align="center" style="min-width: 590px;">
<table <table
border="0" border="0"
cellpadding="0" cellpadding="0"
cellspacing="0" cellspacing="0"
width="590" width="590"
style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;" style="min-width: 590px; background-color: white; padding: 0px 8px 0px 8px; border-collapse:separate;"
> >
<tr> <tr>
<td <td
valign="top" valign="top"
style="font-size: 13px;" style="font-size: 13px;"
> >
% set base_url_async = object.env['ir.config_parameter'].sudo().get_param('web.base.url.async_reports') % set base_url_async = object.env['ir.config_parameter'].sudo().get_param('web.base.url.async_reports')
% set base_url = base_url_async or object.env['ir.config_parameter'].sudo().get_param('web.base.url') % set base_url = base_url_async or object.env['ir.config_parameter'].sudo().get_param('web.base.url')
% set download_url = '%s/web/content/ir.attachment/%s/datas/%s?download=true' % (base_url, object.id, object.name, ) % set download_url = '%s/web/content/ir.attachment/%s/datas/%s?download=true' % (base_url, object.id, object.name, )
@@ -47,10 +46,10 @@
Dear ${object.create_uid.partner_id.name or ''}, Dear ${object.create_uid.partner_id.name or ''},
<br /><br /> <br /><br />
Your requested report, ${object.name}, is available for <b Your requested report, ${object.name}, is available for <b
> >
<a <a
href='${download_url}' href='${download_url}'
>download</a> >download</a>
</b>. </b>.
<br /><br /> <br /><br />
Have a nice day!<br /> Have a nice day!<br />
@@ -69,5 +68,4 @@
</field> </field>
<field name="auto_delete" eval="True" /> <field name="auto_delete" eval="True" />
</record> </record>
</data>
</odoo> </odoo>

View File

@@ -385,7 +385,6 @@ msgstr ""
#: model:ir.actions.act_window,name:report_async.action_report_async #: model:ir.actions.act_window,name:report_async.action_report_async
#: model:ir.ui.menu,name:report_async.menu_report_async #: model:ir.ui.menu,name:report_async.menu_report_async
#: model_terms:ir.ui.view,arch_db:report_async.view_report_async_search #: model_terms:ir.ui.view,arch_db:report_async.view_report_async_search
#: model_terms:ir.ui.view,arch_db:report_async.view_report_async_tree
msgid "Report Center" msgid "Report Center"
msgstr "" msgstr ""

View File

@@ -4,7 +4,7 @@
<field name="name">report.async.tree</field> <field name="name">report.async.tree</field>
<field name="model">report.async</field> <field name="model">report.async</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Report Center"> <tree name="Report Center">
<field name="action_id" context="{'access_sudo': True}" /> <field name="action_id" context="{'access_sudo': True}" />
<button type="object" name="run_now" string="Run Now" icon="fa-bolt" /> <button type="object" name="run_now" string="Run Now" icon="fa-bolt" />
<button <button

View File

@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo noupdate="1">
<data noupdate="1">
<record <record
id="report_default_context" id="report_default_context"
model="ir.config_parameter" model="ir.config_parameter"
forcecreate="True" forcecreate="True"
> >
<field name="key">report.default.context</field> <field name="key">report.default.context</field>
<field name="value">{}</field> <field name="value">{}</field>
</record> </record>
</data>
</odoo> </odoo>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo noupdate="1">
<data noupdate="1">
<record id="agipa_114016" model="report.paperformat.label"> <record id="agipa_114016" model="report.paperformat.label">
<field name="name">Label: Agipa 114016</field> <field name="name">Label: Agipa 114016</field>
@@ -22,6 +21,4 @@
<field name="label_margin_bottom" eval="1" /> <field name="label_margin_bottom" eval="1" />
<field name="label_margin_left" eval="1" /> <field name="label_margin_left" eval="1" />
</record> </record>
</data>
</odoo> </odoo>

View File

@@ -207,7 +207,6 @@ msgstr ""
#. module: report_label #. module: report_label
#: model:ir.actions.act_window,name:report_label.paperformat_label_action #: model:ir.actions.act_window,name:report_label.paperformat_label_action
#: model_terms:ir.ui.view,arch_db:report_label.paperformat_label_view_tree
msgid "Label paper format configuration" msgid "Label paper format configuration"
msgstr "" msgstr ""

View File

@@ -43,7 +43,7 @@
<record id="paperformat_label_view_tree" model="ir.ui.view"> <record id="paperformat_label_view_tree" model="ir.ui.view">
<field name="model">report.paperformat.label</field> <field name="model">report.paperformat.label</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Label paper format configuration"> <tree name="Label paper format configuration">
<field name="name" /> <field name="name" />
<field name="label_height" /> <field name="label_height" />
<field name="label_width" /> <field name="label_width" />

View File

@@ -4,6 +4,7 @@
id="external_standard_layout_images_template" id="external_standard_layout_images_template"
primary="True" primary="True"
inherit_id="web.external_layout_standard" inherit_id="web.external_layout_standard"
priority="99"
> >
<xpath expr="//div[contains(@t-attf-class, 'header')]" position="replace"> <xpath expr="//div[contains(@t-attf-class, 'header')]" position="replace">
<div class="header"> <div class="header">
@@ -45,6 +46,7 @@
id="external_clean_layout_images_template" id="external_clean_layout_images_template"
primary="True" primary="True"
inherit_id="web.external_layout_clean" inherit_id="web.external_layout_clean"
priority="99"
> >
<xpath expr="//div[contains(@t-attf-class, 'header')]" position="replace"> <xpath expr="//div[contains(@t-attf-class, 'header')]" position="replace">
<div class="header"> <div class="header">

View File

@@ -219,7 +219,6 @@ msgstr ""
#: model:ir.ui.menu,name:report_py3o.py3o_template_configuration_menu #: model:ir.ui.menu,name:report_py3o.py3o_template_configuration_menu
#: model_terms:ir.ui.view,arch_db:report_py3o.py3o_template_configuration_form_view #: model_terms:ir.ui.view,arch_db:report_py3o.py3o_template_configuration_form_view
#: model_terms:ir.ui.view,arch_db:report_py3o.py3o_template_configuration_search_view #: model_terms:ir.ui.view,arch_db:report_py3o.py3o_template_configuration_search_view
#: model_terms:ir.ui.view,arch_db:report_py3o.py3o_template_configuration_tree_view
msgid "Py3o Templates" msgid "Py3o Templates"
msgstr "" msgstr ""

View File

@@ -34,7 +34,7 @@
<field name="name">py3o.template.configuration.tree.view</field> <field name="name">py3o.template.configuration.tree.view</field>
<field name="model">py3o.template</field> <field name="model">py3o.template</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Py3o Templates"> <tree name="Py3o Templates">
<field name="name" /> <field name="name" />
<field name="filetype" /> <field name="filetype" />
</tree> </tree>

View File

@@ -498,7 +498,6 @@ msgstr ""
#: model:ir.actions.act_window,name:report_py3o_fusion_server.py3o_pdf_options_action #: model:ir.actions.act_window,name:report_py3o_fusion_server.py3o_pdf_options_action
#: model:ir.ui.menu,name:report_py3o_fusion_server.py3o_pdf_options_menu #: model:ir.ui.menu,name:report_py3o_fusion_server.py3o_pdf_options_menu
#: model_terms:ir.ui.view,arch_db:report_py3o_fusion_server.py3o_pdf_options_form #: model_terms:ir.ui.view,arch_db:report_py3o_fusion_server.py3o_pdf_options_form
#: model_terms:ir.ui.view,arch_db:report_py3o_fusion_server.py3o_pdf_options_tree
msgid "Py3o PDF Export Options" msgid "Py3o PDF Export Options"
msgstr "" msgstr ""
@@ -513,11 +512,6 @@ msgstr ""
msgid "Py3o Servers" msgid "Py3o Servers"
msgstr "" msgstr ""
#. module: report_py3o_fusion_server
#: model_terms:ir.ui.view,arch_db:report_py3o_fusion_server.py3o_server_configuration_tree_view
msgid "Py3o Servers Configuration"
msgstr ""
#. module: report_py3o_fusion_server #. module: report_py3o_fusion_server
#: model:ir.model,name:report_py3o_fusion_server.model_py3o_server #: model:ir.model,name:report_py3o_fusion_server.model_py3o_server
msgid "Py3o server" msgid "Py3o server"

View File

@@ -182,7 +182,7 @@
<field name="name">py3o.pdf.options.tree</field> <field name="name">py3o.pdf.options.tree</field>
<field name="model">py3o.pdf.options</field> <field name="model">py3o.pdf.options</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Py3o PDF Export Options"> <tree name="Py3o PDF Export Options">
<field name="name" /> <field name="name" />
</tree> </tree>
</field> </field>

View File

@@ -17,7 +17,7 @@
<field name="name">py3o.server.configuration.tree.view</field> <field name="name">py3o.server.configuration.tree.view</field>
<field name="model">py3o.server</field> <field name="model">py3o.server</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Py3o Servers Configuration"> <tree name="Py3o Servers Configuration">
<field name="url" /> <field name="url" />
<field name="pdf_options_id" /> <field name="pdf_options_id" />
<field name="is_active" /> <field name="is_active" />

View File

@@ -1,5 +1,5 @@
<odoo> <odoo>
<template id="minimal_layout" inherit_id="web.minimal_layout"> <template id="minimal_layout" inherit_id="web.minimal_layout" priority="99">
<xpath expr="//t[@t-if='subst_needed']" position="replace"> <xpath expr="//t[@t-if='subst_needed']" position="replace">
<t t-if="subst is True"> <t t-if="subst is True">
<script> <script>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<data>
<record id="demo_reports" model="ir.actions.report"> <record id="demo_reports" model="ir.actions.report">
<field name="name">Demo report</field> <field name="name">Demo report</field>
<field name="model">res.users</field> <field name="model">res.users</field>
@@ -30,5 +29,4 @@
</t> </t>
</t> </t>
</template> </template>
</data>
</odoo> </odoo>

View File

@@ -166,7 +166,6 @@ msgstr ""
#. module: report_qweb_signer #. module: report_qweb_signer
#: model:ir.model.fields,field_description:report_qweb_signer.field_res_company__report_certificate_ids #: model:ir.model.fields,field_description:report_qweb_signer.field_res_company__report_certificate_ids
#: model_terms:ir.ui.view,arch_db:report_qweb_signer.view_report_certificate_tree
msgid "PDF report certificates" msgid "PDF report certificates"
msgstr "" msgstr ""

View File

@@ -60,7 +60,7 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
<field name="name">report.certificate.tree</field> <field name="name">report.certificate.tree</field>
<field name="model">report.certificate</field> <field name="model">report.certificate</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="PDF report certificates"> <tree name="PDF report certificates">
<field name="sequence" widget="handle" /> <field name="sequence" widget="handle" />
<field name="name" /> <field name="name" />
<field name="path" /> <field name="path" />