| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/edi |
| GIT | |
| GIT | https://github.com/OCA/edi.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/edi/tree/18.0/base_import_pdf_by_template |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, cristina-hidalgo-tecnativa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/edi |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:12 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
pypdf |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows you to import PDF files and generate records based on the data contained in those PDF files. It also allows you to define a pattern that indicates how to recognize and extract the data from the PDF to generate a record. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
base_import_pdf_template_line_view_form |
base.import.pdf.template.line.form | base.import.pdf.template.line | form | New |
base_import_pdf_template_line_view_tree |
base.import.pdf.template.line.tree | base.import.pdf.template.line | list | New |
base_import_pdf_template_view_form |
base.import.pdf.template.form | base.import.pdf.template | form | New |
base_import_pdf_template_view_search |
base.import.pdf.template.search | base.import.pdf.template | search | New |
base_import_pdf_template_view_tree |
base.import.pdf.template.tree | base.import.pdf.template | list | New |
view_wizard_base_import_pdf_preview_form |
wizard.base.import.pdf.preview | form | New | |
view_wizard_base_import_pdf_upload_form |
wizard.base.import.pdf.upload | form | New |
active
Boolean
default=True
auto_detect_pattern
Char
help='It will be necessary to set a patter that only finds something\n in the documents for this template.'
string='Auto detect pattern'
child_field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', model), ('ttype', '=', 'one2many')]"
ondelete='cascade'
string='Child Field'
child_field_name
Char
related='child_field_id.name'
child_model
Char
compute='_compute_child_model'
compute_sudo=True
store=True
company_id
Many2one → res.company
comodel_name='res.company'
string='Company'
extraction_mode
Selection
default='pypdf'
selection=[('pypdf', 'Pypdf')]
string='Extraction mode'
line_ids
One2many → base.import.pdf.template.line
comodel_name='base.import.pdf.template.line'
copy=True
inverse_name='template_id'
model
Char
compute='_compute_model'
compute_sudo=True
store=True
model_id
Many2one → ir.model
comodel_name='ir.model'
domain=[('transient', '=', False), ('model', 'not like', 'base.import.pdf')]
ondelete='cascade'
required=True
string='Main Model'
name
Char
required=True
button_preview(self)
date_format
Selection
selection='_selection_date_format'
decimal_separator
Selection
default='dot'
selection=[('dot', 'Dot (.)'), ('comma', 'Comma (,)')]
default_value
Reference
selection='_selection_reference_value'
string='Default value'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', model), ('store', '=', True)]"
ondelete='cascade'
required=True
string='Field'
field_name
Char
related='field_id.name'
field_relation
Char
related='field_id.relation'
field_ttype
Selection
related='field_id.ttype'
fixed_value
Reference
selection='_selection_reference_value'
string='Fixed value'
fixed_value_char
Char
fixed_value_date
Date
fixed_value_datetime
Datetime
fixed_value_float
Float
fixed_value_html
Html
fixed_value_integer
Integer
fixed_value_selection
Many2one → ir.model.fields.selection
comodel_name='ir.model.fields.selection'
domain="[('field_id', '=', field_id)]"
fixed_value_text
Text
log_distinct_value
Boolean
help='A note will be added with the previous value and the indicated value if\n they are different.'
string='Log distint value?'
mapped_ids
One2many → base.import.pdf.template.line.mapped
comodel_name='base.import.pdf.template.line.mapped'
inverse_name='parent_id'
model
Char
compute='_compute_model'
store=True
pattern
Char
related_model
Selection
default='header'
selection='_selection_related_model'
string='Related model'
search_field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', field_relation)]"
string='Search field'
search_field_name
Char
related='search_field_id.name'
string='Search field name'
search_field_relation
Char
related='search_field_id.relation'
string='Search field relation'
search_field_ttype
Selection
related='search_field_id.ttype'
string='Search field type'
search_subfield_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', search_field_relation)]"
string='Search subfield'
search_subfield_name
Char
related='search_subfield_id.name'
string='Search subfield name'
sequence
Integer
default=10
template_id
Many2one → base.import.pdf.template
comodel_name='base.import.pdf.template'
ondelete='cascade'
required=True
string='Template'
thousand_separator
Selection
default='none'
selection='_selection_thousand_separator'
time_format
Selection
selection='_selection_time_format'
value_type
Selection
default='variable'
selection='_selection_value_type'
string='Value type'
No public methods.
json_value
Text
origin
Char
parent_id
Many2one → base.import.pdf.template.line
comodel_name='base.import.pdf.template.line'
required=True
value
Reference
selection='_selection_reference_value'
No public methods.
attachment_id
Many2one → ir.attachment
comodel_name='ir.attachment'
extraction_mode
Char
simple_pdf_text_extraction(self, file_data)
data
Text
readonly=True
string='RAW data'
data_file
Binary
attachment=True
string='File'
extraction_mode
Selection
default='pypdf'
selection=[('pypdf', 'Pypdf')]
string='Extraction mode'
file_name
Char
store=True
header_values
Text
readonly=True
string='Header values'
lines_values
Text
readonly=True
string='Lines values'
table_info
Text
readonly=True
string='Table info'
template_id
Many2one → base.import.pdf.template
comodel_name='base.import.pdf.template'
readonly=True
total_pages
Integer
readonly=True
string='Total pages'
default_get(self, fields)
allowed_template_ids
Many2many → base.import.pdf.template
comodel_name='base.import.pdf.template'
compute='_compute_allowed_template_ids'
attachment_ids
Many2many → ir.attachment
comodel_name='ir.attachment'
string='Files'
data
Text
compute='_compute_data'
store=True
line_ids
One2many → wizard.base.import.pdf.upload.line
comodel_name='wizard.base.import.pdf.upload.line'
inverse_name='parent_id'
model
Char
record_ref
Reference
selection='_selection_reference_value'
action_process(self)
data
Text
extraction_mode
Selection
related='template_id.extraction_mode'
log_text
Html
parent_id
Many2one → wizard.base.import.pdf.upload
comodel_name='wizard.base.import.pdf.upload'
template_id
Many2one → base.import.pdf.template
comodel_name='base.import.pdf.template'
compute='_compute_template_id'
store=True
string='Template'
action_process(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/edi |
| GIT | |
| GIT | https://github.com/OCA/edi.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/edi/tree/17.0/base_import_pdf_by_template |
| VERSION | |
| VERSION | 1.2.11 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, eduezerouali-tecnativa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/edi |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
pypdf |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows you to import PDF files and generate records based on the data contained in those PDF files. It also allows you to define a pattern that indicates how to recognize and extract the data from the PDF to generate a record. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
base_import_pdf_template_line_view_form |
base.import.pdf.template.line.form | base.import.pdf.template.line | form | New |
base_import_pdf_template_line_view_tree |
base.import.pdf.template.line.tree | base.import.pdf.template.line | tree | New |
base_import_pdf_template_view_form |
base.import.pdf.template.form | base.import.pdf.template | form | New |
base_import_pdf_template_view_search |
base.import.pdf.template.search | base.import.pdf.template | search | New |
base_import_pdf_template_view_tree |
base.import.pdf.template.tree | base.import.pdf.template | tree | New |
view_wizard_base_import_pdf_preview_form |
wizard.base.import.pdf.preview | form | New | |
view_wizard_base_import_pdf_upload_form |
wizard.base.import.pdf.upload | form | New |
active
Boolean
default=True
auto_detect_pattern
Char
help='It will be necessary to set a patter that only finds something\n in the documents for this template.'
string='Auto detect pattern'
child_field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', model), ('ttype', '=', 'one2many')]"
ondelete='cascade'
string='Child Field'
child_field_name
Char
related='child_field_id.name'
child_model
Char
compute='_compute_child_model'
compute_sudo=True
store=True
company_id
Many2one → res.company
comodel_name='res.company'
string='Company'
extraction_mode
Selection
default='pypdf'
selection=[('pypdf', 'Pypdf')]
string='Extraction mode'
header_items
Char
help='Header columns separated by commas'
line_ids
One2many → base.import.pdf.template.line
comodel_name='base.import.pdf.template.line'
copy=True
inverse_name='template_id'
model
Char
compute='_compute_model'
compute_sudo=True
store=True
model_id
Many2one → ir.model
comodel_name='ir.model'
domain=[('transient', '=', False), ('model', 'not like', 'base.import.pdf')]
ondelete='cascade'
required=True
string='Main Model'
name
Char
required=True
button_preview(self)
column
Char
date_format
Selection
selection=[('*Y-*d-*m', _('YY-dd-MM')), ('*m-*d-*Y', _('MM-dd-YY')), ('*d-*m-*Y', _('dd-MM-YY')), ('*Y/*d/*m', _('YY/dd/MM')), ('*m/*d/*Y', _('MM/dd/YY')), ('*d.*m.*Y', _('dd.MM.YY')), ('*d.*m.*y-short', _('dd.MM.yy')), ('*d/*m/*Y', _('dd/MM/YY')), ('*d/*m/*y-short', _('dd/MM/yy')), ('*B *d, *Y', _('B dd, YY')), ('*b-short *d, *Y', _('b dd, YY')), ('*d *b-short *Y', _('dd b YY')), ('*d *B *Y', _('dd B YY')), ('*d-*b-*y', _('dd-b-yy')), ('*d-*b-short-*Y', _('dd-b-YY'))]
decimal_separator
Selection
default='dot'
selection=[('dot', 'Dot (.)'), ('comma', 'Comma (,)')]
default_value
Reference
selection='_selection_reference_value'
string='Default value'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', model), ('store', '=', True)]"
ondelete='cascade'
required=True
string='Field'
field_name
Char
related='field_id.name'
field_relation
Char
related='field_id.relation'
field_ttype
Selection
related='field_id.ttype'
fixed_value
Reference
selection='_selection_reference_value'
string='Fixed value'
fixed_value_char
Char
fixed_value_date
Date
fixed_value_datetime
Datetime
fixed_value_float
Float
fixed_value_html
Html
fixed_value_integer
Integer
fixed_value_selection
Many2one → ir.model.fields.selection
comodel_name='ir.model.fields.selection'
domain="[('field_id', '=', field_id)]"
fixed_value_text
Text
log_distinct_value
Boolean
help='A note will be added with the previous value and the indicated value if\n they are different.'
string='Log distint value?'
mapped_ids
One2many → base.import.pdf.template.line.mapped
comodel_name='base.import.pdf.template.line.mapped'
inverse_name='parent_id'
model
Char
compute='_compute_model'
store=True
pattern
Char
related_model
Selection
default='header'
selection=[('header', _('Header')), ('lines', _('Lines'))]
string='Related model'
search_field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', field_relation)]"
string='Search field'
search_field_name
Char
related='search_field_id.name'
string='Search field name'
search_field_relation
Char
related='search_field_id.relation'
string='Search field relation'
search_field_ttype
Selection
related='search_field_id.ttype'
string='Search field type'
search_subfield_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', search_field_relation)]"
string='Search subfield'
search_subfield_name
Char
related='search_subfield_id.name'
string='Search subfield name'
template_id
Many2one → base.import.pdf.template
comodel_name='base.import.pdf.template'
ondelete='cascade'
required=True
string='Template'
thousand_separator
Selection
default='none'
selection=[('none', _('None')), ('space', _('Space ( )')), ('dot', _('Dot (.)')), ('comma', _('Comma (,)'))]
time_format
Selection
selection=[('*H:*M:*S', _('H:M:S'))]
value_type
Selection
default='variable'
selection=[('fixed', _('Fixed')), ('variable', _('Variable'))]
string='Value type'
No public methods.
json_value
Text
origin
Char
parent_id
Many2one → base.import.pdf.template.line
comodel_name='base.import.pdf.template.line'
required=True
value
Reference
selection='_selection_reference_value'
No public methods.
attachment_id
Many2one → ir.attachment
comodel_name='ir.attachment'
extraction_mode
Char
simple_pdf_text_extraction(self, file_data)
data
Text
readonly=True
string='RAW data'
data_file
Binary
attachment=True
string='File'
extraction_mode
Selection
default='pypdf'
selection=[('pypdf', 'Pypdf')]
string='Extraction mode'
file_name
Char
store=True
header_values
Text
readonly=True
string='Header values'
lines_values
Text
readonly=True
string='Lines values'
table_info
Text
readonly=True
string='Table info'
template_id
Many2one → base.import.pdf.template
comodel_name='base.import.pdf.template'
readonly=True
total_pages
Integer
readonly=True
string='Total pages'
default_get(self, fields)
allowed_template_ids
Many2many → base.import.pdf.template
comodel_name='base.import.pdf.template'
compute='_compute_allowed_template_ids'
attachment_ids
Many2many → ir.attachment
comodel_name='ir.attachment'
string='Files'
data
Text
compute='_compute_data'
store=True
line_ids
One2many → wizard.base.import.pdf.upload.line
comodel_name='wizard.base.import.pdf.upload.line'
inverse_name='parent_id'
model
Char
record_ref
Reference
selection='_selection_reference_value'
action_process(self)
data
Text
extraction_mode
Selection
related='template_id.extraction_mode'
log_text
Html
parent_id
Many2one → wizard.base.import.pdf.upload
comodel_name='wizard.base.import.pdf.upload'
template_id
Many2one → base.import.pdf.template
comodel_name='base.import.pdf.template'
compute='_compute_template_id'
store=True
string='Template'
action_process(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/edi |
| GIT | |
| GIT | https://github.com/OCA/edi.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/edi/tree/15.0/base_import_pdf_by_template |
| VERSION | |
| VERSION | 1.2.4 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, sergio-teruel, Víctor Martínez, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/edi |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:34 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
pypdf |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
base_import_pdf_template_line_view_form |
base.import.pdf.template.line.form | base.import.pdf.template.line | form | New |
base_import_pdf_template_line_view_tree |
base.import.pdf.template.line.tree | base.import.pdf.template.line | tree | New |
base_import_pdf_template_view_form |
base.import.pdf.template.form | base.import.pdf.template | form | New |
base_import_pdf_template_view_search |
base.import.pdf.template.search | base.import.pdf.template | search | New |
base_import_pdf_template_view_tree |
base.import.pdf.template.tree | base.import.pdf.template | tree | New |
view_wizard_base_import_pdf_preview_form |
wizard.base.import.pdf.preview | form | New | |
view_wizard_base_import_pdf_upload_form |
wizard.base.import.pdf.upload | form | New |
active
Boolean
default=True
auto_detect_pattern
Char
help='It will be necessary to set a patter that only finds something\n in the documents for this template.'
string='Auto detect pattern'
child_field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', model), ('ttype', '=', 'one2many')]"
ondelete='cascade'
string='Child Field'
child_field_name
Char
related='child_field_id.name'
child_model
Char
compute='_compute_child_model'
compute_sudo=True
store=True
company_id
Many2one → res.company
comodel_name='res.company'
string='Company'
extraction_mode
Selection
default='pypdf'
selection=[('pypdf', 'Pypdf')]
string='Extraction mode'
header_items
Char
help='Header columns separated by commas'
line_ids
One2many → base.import.pdf.template.line
comodel_name='base.import.pdf.template.line'
copy=True
inverse_name='template_id'
model
Char
compute='_compute_model'
compute_sudo=True
store=True
model_id
Many2one → ir.model
comodel_name='ir.model'
domain=[('transient', '=', False), ('model', 'not like', 'base.import.pdf')]
ondelete='cascade'
required=True
string='Main Model'
name
Char
required=True
button_preview(self)
column
Char
date_format
Selection
selection=[('*Y-*d-*m', _('YY-dd-MM')), ('*m-*d-*Y', _('MM-dd-YY')), ('*Y/*d/*m', _('YY/dd/MM')), ('*m/*d/*Y', _('MM/dd/YY')), ('*d.*m.*Y', _('dd.MM.YY')), ('*d/*m/*Y', _('dd/MM/YY'))]
decimal_separator
Selection
default='dot'
selection=[('dot', 'Dot (.)'), ('comma', 'Comma (,)')]
default_value
Reference
selection='_selection_reference_value'
string='Default value'
field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', model), ('store', '=', True)]"
ondelete='cascade'
required=True
string='Field'
field_name
Char
related='field_id.name'
field_relation
Char
related='field_id.relation'
field_ttype
Selection
related='field_id.ttype'
fixed_value
Reference
selection='_selection_reference_value'
string='Fixed value'
fixed_value_char
Char
fixed_value_date
Date
fixed_value_datetime
Datetime
fixed_value_float
Float
fixed_value_html
Html
fixed_value_integer
Integer
fixed_value_selection
Many2one → ir.model.fields.selection
comodel_name='ir.model.fields.selection'
domain="[('field_id', '=', field_id)]"
fixed_value_text
Text
log_distinct_value
Boolean
help='A note will be added with the previous value and the indicated value if\n they are different.'
string='Log distint value?'
mapped_ids
One2many → base.import.pdf.template.line.mapped
comodel_name='base.import.pdf.template.line.mapped'
inverse_name='parent_id'
model
Char
compute='_compute_model'
store=True
pattern
Char
related_model
Selection
default='header'
selection=[('header', _('Header')), ('lines', _('Lines'))]
string='Related model'
search_field_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', field_relation)]"
string='Search field'
search_field_name
Char
related='search_field_id.name'
string='Search field name'
search_field_relation
Char
related='search_field_id.relation'
string='Search field relation'
search_field_ttype
Selection
related='search_field_id.ttype'
string='Search field type'
search_subfield_id
Many2one → ir.model.fields
comodel_name='ir.model.fields'
domain="[('model_id.model', '=', search_field_relation)]"
string='Search subfield'
template_id
Many2one → base.import.pdf.template
comodel_name='base.import.pdf.template'
ondelete='cascade'
required=True
string='Template'
thousand_separator
Selection
default='none'
selection=[('none', _('None')), ('space', _('Space ( )')), ('dot', _('Dot (.)')), ('comma', _('Comma (,)'))]
time_format
Selection
selection=[('*H:*M:*S', _('H:M:S'))]
value_type
Selection
default='variable'
selection=[('fixed', _('Fixed')), ('variable', _('Variable'))]
string='Value type'
No public methods.
origin
Char
parent_id
Many2one → base.import.pdf.template.line
comodel_name='base.import.pdf.template.line'
required=True
value
Reference
selection='_selection_reference_value'
No public methods.
No new fields.
Public methods (1)message_new(self, msg_dict, custom_values=None)
attachment_id
Many2one → ir.attachment
comodel_name='ir.attachment'
extraction_mode
Char
simple_pdf_text_extraction(self, file_data)
data
Text
readonly=True
string='RAW data'
data_file
Binary
attachment=True
string='File'
extraction_mode
Selection
default='pypdf'
selection=[('pypdf', 'Pypdf')]
string='Extraction mode'
header_values
Text
readonly=True
string='Header values'
lines_values
Text
readonly=True
string='Lines values'
table_info
Text
readonly=True
string='Table info'
template_id
Many2one → base.import.pdf.template
comodel_name='base.import.pdf.template'
readonly=True
total_pages
Integer
readonly=True
string='Total pages'
default_get(self, fields)
allowed_template_ids
Many2many → base.import.pdf.template
comodel_name='base.import.pdf.template'
compute='_compute_allowed_template_ids'
attachment_ids
Many2many → ir.attachment
comodel_name='ir.attachment'
string='Files'
data
Text
compute='_compute_data'
store=True
line_ids
One2many → wizard.base.import.pdf.upload.line
comodel_name='wizard.base.import.pdf.upload.line'
inverse_name='parent_id'
model
Char
record_ref
Reference
selection='_selection_reference_value'
action_process(self)
data
Text
extraction_mode
Selection
related='template_id.extraction_mode'
log_text
Text
parent_id
Many2one → wizard.base.import.pdf.upload
comodel_name='wizard.base.import.pdf.upload'
template_id
Many2one → base.import.pdf.template
comodel_name='base.import.pdf.template'
compute='_compute_template_id'
store=True
string='Template'
action_process(self)