| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/19.0/snailmail |
| VERSION | |
| VERSION | 0.4 |
| CATEGORY | |
| CATEGORY | Hidden/Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | Odoo S.A. |
| MAINTAINERS | |
| MAINTAINERS | Odoo S.A. |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Xavier Morel, Christophe Monniez, Alexandre Kühn, Julien Castiaux, Sébastien Theys, Julien Mougenot, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, Pierre Paridans, Renaud Thiry, Dylan Kiss (dyki), Hesham, Mattis Megevand, Sven Fuehr, AMZIL Ayoub, Hesham Saleh, Ricardo Gomes Rodrigues, Thomas Josse (THJO), Krzysztof Magusiak (krma), Junqi, chpa-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:51:40 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - iap_mail - iap - web - base - base_setup - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Allows users to send documents by post
=====================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
minimal_layout |
minimal_layout | ir.ui.view | qweb | Inherits web.minimal_layout |
report_layout |
report_layout | ir.ui.view | qweb | Inherits web.report_layout |
snailmail_letter_form |
snailmail.letter.form | snailmail.letter | form | New |
snailmail_letter_list |
snailmail.letter.list | snailmail.letter | list | New |
No new fields.
Public methods (2)get_paperformat(self)
retrieve_attachment(self, record)
letter_ids
One2many → snailmail.letter
comodel_name='snailmail.letter'
inverse_name='message_id'
message_type
Selection
ondelete={'snailmail': <expr>}
selection_add=[('snailmail', 'Snailmail')]
snailmail_error
Boolean
compute='_compute_snailmail_error'
search='_search_snailmail_error'
string='Snailmail message in error'
cancel_letter(self)
send_letter(self)
failure_type
Selection
selection_add=[('sn_credit', 'Snailmail Credit Error'), ('sn_trial', 'Snailmail Trial Error'), ('sn_price', 'Snailmail No Price Available'), ('sn_fields', 'Snailmail Missing Required Fields'), ('sn_format', 'Snailmail Format Error'), ('sn_error', 'Snailmail Unknown Error')]
letter_id
Many2one → snailmail.letter
index='btree_not_null'
ondelete='cascade'
string='Snailmail Letter'
args: 'snailmail.letter'
notification_type
Selection
ondelete={'snail': 'cascade'}
selection_add=[('snail', 'Snailmail')]
No public methods.
No new fields.
Public methods (1)notify_cancel_by_type(self, notification_type)
snailmail_color
Boolean
default=True
snailmail_cover
Boolean
default=False
string='Add a Cover Page'
snailmail_duplex
Boolean
default=False
string='Both sides'
No public methods.
snailmail_color
Boolean
readonly=False
related='company_id.snailmail_color'
string='Print In Color'
snailmail_cover
Boolean
readonly=False
related='company_id.snailmail_cover'
string='Add a Cover Page'
snailmail_cover_readonly
Boolean
compute='_compute_cover_readonly'
snailmail_duplex
Boolean
readonly=False
related='company_id.snailmail_duplex'
string='Print Both sides'
No public methods.
No new fields.
Public methods (1)write(self, vals)
attachment_datas
Binary
related='attachment_id.datas'
args: 'Document'
attachment_fname
Char
related='attachment_id.name'
args: 'Attachment Filename'
attachment_id
Many2one → ir.attachment
index='btree_not_null'
ondelete='cascade'
string='Attachment'
args: 'ir.attachment'
city
Char
color
Boolean
default=<expr>
string='Color'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
cover
Boolean
default=<expr>
string='Cover Page'
duplex
Boolean
default=<expr>
string='Both side'
error_code
Selection
string='Error'
args: <expr>
info_msg
Html
message_id
Many2one → mail.message
index='btree_not_null'
string='Snailmail Status Message'
args: 'mail.message'
model
Char
required=True
args: 'Model'
notification_ids
One2many → mail.notification
partner_id
Many2one → res.partner
required=True
string='Recipient'
args: 'res.partner'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Related Record'
report_template
Many2one → ir.actions.report
res_id
Integer
required=True
args: 'Document ID'
state
Selection
copy=False
default='pending'
help="When a letter is created, the status is 'Pending'.\nIf the letter is correctly sent, the status goes in 'Sent',\nIf not, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'."
readonly=True
required=True
args: [('pending', 'In Queue'), ('sent', 'Sent'), ('error', 'Error'), ('canceled', 'Cancelled')], 'Status'
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
user_id
Many2one → res.users
zip
Char
cancel(self)
create(self, vals_list)
snailmail_print(self)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/18.0/snailmail |
| VERSION | |
| VERSION | 0.4 |
| CATEGORY | |
| CATEGORY | Hidden/Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Odoo Online, Christophe Monniez, Alexandre Kühn, Xavier-Do, Sébastien Theys, Julien Mougenot, Tiffany Chang (tic), Gorash, Pierre Paridans, Solan Delvenne (sode), Louis Baudoux, Renaud Thiry, Louis Wicket (wil), Dylan Kiss (dyki), Michael (mcm), Joris Makauskis, Hesham, Mattis Megevand, Sven Fuehr, AMZIL Ayoub, Bastien Fafchamps (bafa), Louis (wil), mano-odoo, Hesham Saleh, kusi-odoo, Junqi, gito-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:25:53 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - iap_mail - iap - web - base - base_setup - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Allows users to send documents by post
=====================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
minimal_layout |
minimal_layout | ir.ui.view | qweb | Inherits web.minimal_layout |
report_layout |
report_layout | ir.ui.view | qweb | Inherits web.report_layout |
snailmail_letter_form |
snailmail.letter.form | snailmail.letter | form | New |
snailmail_letter_format_error |
snailmail.letter.format.error.form | snailmail.letter.format.error | form | New |
snailmail_letter_list |
snailmail.letter.list | snailmail.letter | list | New |
snailmail_letter_missing_required_fields |
snailmail.letter.missing.required.fields.form | snailmail.letter.missing.required.fields | form | New |
No new fields.
Public methods (2)get_paperformat(self)
retrieve_attachment(self, record)
letter_ids
One2many → snailmail.letter
comodel_name='snailmail.letter'
inverse_name='message_id'
message_type
Selection
ondelete={'snailmail': <expr>}
selection_add=[('snailmail', 'Snailmail')]
snailmail_error
Boolean
compute='_compute_snailmail_error'
search='_search_snailmail_error'
string='Snailmail message in error'
cancel_letter(self)
send_letter(self)
failure_type
Selection
selection_add=[('sn_credit', 'Snailmail Credit Error'), ('sn_trial', 'Snailmail Trial Error'), ('sn_price', 'Snailmail No Price Available'), ('sn_fields', 'Snailmail Missing Required Fields'), ('sn_format', 'Snailmail Format Error'), ('sn_error', 'Snailmail Unknown Error')]
letter_id
Many2one → snailmail.letter
index='btree_not_null'
ondelete='cascade'
string='Snailmail Letter'
args: 'snailmail.letter'
notification_type
Selection
ondelete={'snail': 'cascade'}
selection_add=[('snail', 'Snailmail')]
No public methods.
No new fields.
Public methods (1)notify_cancel_by_type(self, notification_type)
snailmail_color
Boolean
default=True
snailmail_cover
Boolean
default=False
string='Add a Cover Page'
snailmail_duplex
Boolean
default=False
string='Both sides'
No public methods.
snailmail_color
Boolean
readonly=False
related='company_id.snailmail_color'
string='Print In Color'
snailmail_cover
Boolean
readonly=False
related='company_id.snailmail_cover'
string='Add a Cover Page'
snailmail_cover_readonly
Boolean
compute='_compute_cover_readonly'
store=False
snailmail_duplex
Boolean
readonly=False
related='company_id.snailmail_duplex'
string='Print Both sides'
No public methods.
No new fields.
Public methods (1)write(self, vals)
attachment_datas
Binary
related='attachment_id.datas'
args: 'Document'
attachment_fname
Char
related='attachment_id.name'
args: 'Attachment Filename'
attachment_id
Many2one → ir.attachment
index='btree_not_null'
ondelete='cascade'
string='Attachment'
args: 'ir.attachment'
city
Char
color
Boolean
default=<expr>
string='Color'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
cover
Boolean
default=<expr>
string='Cover Page'
duplex
Boolean
default=<expr>
string='Both side'
error_code
Selection
string='Error'
args: <expr>
info_msg
Html
message_id
Many2one → mail.message
index='btree_not_null'
string='Snailmail Status Message'
args: 'mail.message'
model
Char
required=True
args: 'Model'
notification_ids
One2many → mail.notification
partner_id
Many2one → res.partner
required=True
string='Recipient'
args: 'res.partner'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Related Record'
report_template
Many2one → ir.actions.report
res_id
Integer
required=True
args: 'Document ID'
state
Selection
copy=False
default='pending'
help="When a letter is created, the status is 'Pending'.\nIf the letter is correctly sent, the status goes in 'Sent',\nIf not, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'."
readonly=True
required=True
args: [('pending', 'In Queue'), ('sent', 'Sent'), ('error', 'Error'), ('canceled', 'Cancelled')], 'Status'
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
user_id
Many2one → res.users
zip
Char
cancel(self)
create(self, vals_list)
snailmail_print(self)
write(self, vals)
message_id
Many2one → mail.message
default=<expr>
args: 'mail.message'
snailmail_cover
Boolean
default=<expr>
string='Add a Cover Page'
cancel_letter_action(self)
update_resend_action(self)
city
Char
country_id
Many2one → res.country
string='Country'
args: 'res.country'
letter_id
Many2one → snailmail.letter
partner_id
Many2one → res.partner
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
zip
Char
default_get(self, fields)
update_address_cancel(self)
update_address_save(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/17.0/snailmail |
| VERSION | |
| VERSION | 0.4 |
| CATEGORY | |
| CATEGORY | Hidden/Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Fabien Meghazi, qdp-odoo, Odoo Online, Laurent Smet, Christophe Monniez, Alexandre Kühn, Xavier-Do, Victor Feyens, Sébastien Theys, Samuel Degueldre, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, Arthur (goa), Solan Delvenne (sode), Louis Baudoux, Renaud Thiry, Louis Wicket (wil), tsm-odoo, Victor Piryns (pivi), Dylan Kiss (dyki), Bruno Boi, Michael (mcm), Brieuc-brd, Joris Makauskis, Hesham, Mattis Megevand, Sven Fuehr, Julien Carion (juca), Louis (wil), mano-odoo, Hesham Saleh, Junqi |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:02:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - iap_mail - iap - web - base - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Allows users to send documents by post
=====================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
minimal_layout |
minimal_layout | ir.ui.view | qweb | Inherits web.minimal_layout |
report_layout |
report_layout | ir.ui.view | qweb | Inherits web.report_layout |
snailmail_letter_form |
snailmail.letter.form | snailmail.letter | form | New |
snailmail_letter_format_error |
snailmail.letter.format.error.form | snailmail.letter.format.error | form | New |
snailmail_letter_list |
snailmail.letter.tree | snailmail.letter | tree | New |
snailmail_letter_missing_required_fields |
snailmail.letter.missing.required.fields.form | snailmail.letter.missing.required.fields | form | New |
No new fields.
Public methods (2)get_paperformat(self)
retrieve_attachment(self, record)
letter_ids
One2many → snailmail.letter
comodel_name='snailmail.letter'
inverse_name='message_id'
message_type
Selection
ondelete={'snailmail': <expr>}
selection_add=[('snailmail', 'Snailmail')]
snailmail_error
Boolean
compute='_compute_snailmail_error'
search='_search_snailmail_error'
string='Snailmail message in error'
cancel_letter(self)
send_letter(self)
failure_type
Selection
selection_add=[('sn_credit', 'Snailmail Credit Error'), ('sn_trial', 'Snailmail Trial Error'), ('sn_price', 'Snailmail No Price Available'), ('sn_fields', 'Snailmail Missing Required Fields'), ('sn_format', 'Snailmail Format Error'), ('sn_error', 'Snailmail Unknown Error')]
letter_id
Many2one → snailmail.letter
index='btree_not_null'
ondelete='cascade'
string='Snailmail Letter'
args: 'snailmail.letter'
notification_type
Selection
ondelete={'snail': 'cascade'}
selection_add=[('snail', 'Snailmail')]
No public methods.
No new fields.
Public methods (1)notify_cancel_by_type(self, notification_type)
snailmail_color
Boolean
default=True
snailmail_cover
Boolean
default=False
string='Add a Cover Page'
snailmail_duplex
Boolean
default=False
string='Both sides'
No public methods.
snailmail_color
Boolean
readonly=False
related='company_id.snailmail_color'
string='Print In Color'
snailmail_cover
Boolean
readonly=False
related='company_id.snailmail_cover'
string='Add a Cover Page'
snailmail_duplex
Boolean
readonly=False
related='company_id.snailmail_duplex'
string='Print Both sides'
No public methods.
No new fields.
Public methods (1)write(self, vals)
attachment_datas
Binary
related='attachment_id.datas'
args: 'Document'
attachment_fname
Char
related='attachment_id.name'
args: 'Attachment Filename'
attachment_id
Many2one → ir.attachment
index='btree_not_null'
ondelete='cascade'
string='Attachment'
args: 'ir.attachment'
city
Char
color
Boolean
default=<expr>
string='Color'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
cover
Boolean
default=<expr>
string='Cover Page'
duplex
Boolean
default=<expr>
string='Both side'
error_code
Selection
string='Error'
args: <expr>
info_msg
Html
message_id
Many2one → mail.message
index='btree_not_null'
string='Snailmail Status Message'
args: 'mail.message'
model
Char
required=True
args: 'Model'
notification_ids
One2many → mail.notification
partner_id
Many2one → res.partner
required=True
string='Recipient'
args: 'res.partner'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Related Record'
report_template
Many2one → ir.actions.report
res_id
Integer
required=True
args: 'Document ID'
state
Selection
copy=False
default='pending'
help="When a letter is created, the status is 'Pending'.\nIf the letter is correctly sent, the status goes in 'Sent',\nIf not, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'."
readonly=True
required=True
args: [('pending', 'In Queue'), ('sent', 'Sent'), ('error', 'Error'), ('canceled', 'Canceled')], 'Status'
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
user_id
Many2one → res.users
zip
Char
cancel(self)
create(self, vals_list)
snailmail_print(self)
write(self, vals)
message_id
Many2one → mail.message
default=<expr>
args: 'mail.message'
snailmail_cover
Boolean
default=<expr>
string='Add a Cover Page'
cancel_letter_action(self)
update_resend_action(self)
city
Char
country_id
Many2one → res.country
string='Country'
args: 'res.country'
letter_id
Many2one → snailmail.letter
partner_id
Many2one → res.partner
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
zip
Char
default_get(self, fields)
update_address_cancel(self)
update_address_save(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/snailmail |
| VERSION | |
| VERSION | 0.4 |
| CATEGORY | |
| CATEGORY | Hidden/Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Fabien Meghazi, Goffin Simon, Christophe Monniez, Alexandre Kühn, Romeo Fragomeli, Sébastien Theys, Florent de Labarre, Julien Mougenot, Samuel Degueldre, Prakash Prajapati, Gorash, Pierre Paridans, François (FRC), Laurent Desausoi (lade), Arthur (goa), Solan Delvenne (sode), Dominik Zians, Krzysztof Magusiak, Louis Baudoux, Renaud Thiry, Louis Wicket (wil), tsm-odoo, Victor Piryns (pivi), Pierre-Yves Dufays, Rahul Prajapati, Joris Makauskis, Hesham, Matthieu Stockbauer |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:47 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - iap_mail - iap - web - base - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Allows users to send documents by post
=====================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
minimal_layout |
minimal_layout | ir.ui.view | qweb | Inherits web.minimal_layout |
report_layout |
report_layout | ir.ui.view | qweb | Inherits web.report_layout |
snailmail_confirm_view |
snailmail.confirm.view | snailmail.confirm | form | New |
snailmail_letter_form |
snailmail.letter.form | snailmail.letter | form | New |
snailmail_letter_format_error |
snailmail.letter.format.error.form | snailmail.letter.format.error | form | New |
snailmail_letter_list |
snailmail.letter.tree | snailmail.letter | tree | New |
snailmail_letter_missing_required_fields |
snailmail.letter.missing.required.fields.form | snailmail.letter.missing.required.fields | form | New |
No new fields.
Public methods (2)get_paperformat(self)
retrieve_attachment(self, record)
letter_ids
One2many → snailmail.letter
comodel_name='snailmail.letter'
inverse_name='message_id'
message_type
Selection
ondelete={'snailmail': <expr>}
selection_add=[('snailmail', 'Snailmail')]
snailmail_error
Boolean
compute='_compute_snailmail_error'
search='_search_snailmail_error'
args: 'Snailmail message in error'
cancel_letter(self)
send_letter(self)
failure_type
Selection
selection_add=[('sn_credit', 'Snailmail Credit Error'), ('sn_trial', 'Snailmail Trial Error'), ('sn_price', 'Snailmail No Price Available'), ('sn_fields', 'Snailmail Missing Required Fields'), ('sn_format', 'Snailmail Format Error'), ('sn_error', 'Snailmail Unknown Error')]
letter_id
Many2one → snailmail.letter
index='btree_not_null'
ondelete='cascade'
string='Snailmail Letter'
args: 'snailmail.letter'
notification_type
Selection
ondelete={'snail': 'cascade'}
selection_add=[('snail', 'Snailmail')]
No public methods.
No new fields.
Public methods (1)notify_cancel_by_type(self, notification_type)
snailmail_color
Boolean
default=True
string='Color'
snailmail_cover
Boolean
default=False
string='Add a Cover Page'
snailmail_duplex
Boolean
default=False
string='Both sides'
No public methods.
snailmail_color
Boolean
readonly=False
related='company_id.snailmail_color'
string='Print In Color'
snailmail_cover
Boolean
readonly=False
related='company_id.snailmail_cover'
string='Add a Cover Page'
snailmail_duplex
Boolean
readonly=False
related='company_id.snailmail_duplex'
string='Print Both sides'
No public methods.
No new fields.
Public methods (1)write(self, vals)
model_name
Char
action_cancel(self)
action_confirm(self)
action_open(self)
show_warning(self)
attachment_datas
Binary
related='attachment_id.datas'
args: 'Document'
attachment_fname
Char
related='attachment_id.name'
args: 'Attachment Filename'
attachment_id
Many2one → ir.attachment
index='btree_not_null'
ondelete='cascade'
string='Attachment'
args: 'ir.attachment'
city
Char
color
Boolean
default=<expr>
string='Color'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
cover
Boolean
default=<expr>
string='Cover Page'
display_name
Char
compute='_compute_display_name'
args: 'Display Name'
duplex
Boolean
default=<expr>
string='Both side'
error_code
Selection
string='Error'
args: <expr>
info_msg
Html
message_id
Many2one → mail.message
index='btree_not_null'
string='Snailmail Status Message'
args: 'mail.message'
model
Char
required=True
args: 'Model'
notification_ids
One2many → mail.notification
partner_id
Many2one → res.partner
required=True
string='Recipient'
args: 'res.partner'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Related Record'
report_template
Many2one → ir.actions.report
res_id
Integer
required=True
args: 'Document ID'
state
Selection
copy=False
default='pending'
help="When a letter is created, the status is 'Pending'.\nIf the letter is correctly sent, the status goes in 'Sent',\nIf not, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'."
readonly=True
required=True
args: [('pending', 'In Queue'), ('sent', 'Sent'), ('error', 'Error'), ('canceled', 'Canceled')], 'Status'
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
user_id
Many2one → res.users
zip
Char
cancel(self)
create(self, vals_list)
snailmail_print(self)
write(self, vals)
message_id
Many2one → mail.message
default=<expr>
args: 'mail.message'
snailmail_cover
Boolean
default=<expr>
string='Add a Cover Page'
cancel_letter_action(self)
update_resend_action(self)
city
Char
country_id
Many2one → res.country
string='Country'
args: 'res.country'
letter_id
Many2one → snailmail.letter
partner_id
Many2one → res.partner
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
zip
Char
default_get(self, fields)
update_address_cancel(self)
update_address_save(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/snailmail |
| VERSION | |
| VERSION | 0.3 |
| CATEGORY | |
| CATEGORY | Hidden/Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Goffin Simon, Barad Mahendra, fda-odoo, Xavier-Do, Xavier Dubuc, Sébastien Theys, Julien Mougenot, Samuel Degueldre, Tiffany Chang (tic), yograj tandel, Kevin Baptiste, François (FRC), Laurent Desausoi (lade), Arthur (goa), Solan Delvenne (sode), Dominik Zians, Didier (did), Michael Mattiello (mcm), Victor Piryns (pivi), Qiuyu (QHO), Krina Oza, Zelong Lin, Joris Makauskis |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:26 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - iap_mail - iap - web - base - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Allows users to send documents by post
=====================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
minimal_layout |
minimal_layout | ir.ui.view | qweb | Inherits web.minimal_layout |
report_layout |
report_layout | ir.ui.view | qweb | Inherits web.report_layout |
snailmail_confirm_view |
snailmail.confirm.view | snailmail.confirm | form | New |
snailmail_letter_cancel |
snailmail.letter.cancel.form | snailmail.letter.cancel | form | New |
snailmail_letter_form |
snailmail.letter.form | snailmail.letter | form | New |
snailmail_letter_format_error |
snailmail.letter.format.error.form | snailmail.letter.format.error | form | New |
snailmail_letter_list |
snailmail.letter.tree | snailmail.letter | tree | New |
snailmail_letter_missing_required_fields |
snailmail.letter.missing.required.fields.form | snailmail.letter.missing.required.fields | form | New |
No new fields.
Public methods (2)get_paperformat(self)
retrieve_attachment(self, record)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
letter_ids
One2many → snailmail.letter
comodel_name='snailmail.letter'
inverse_name='message_id'
message_type
Selection
ondelete={'snailmail': <expr>}
selection_add=[('snailmail', 'Snailmail')]
snailmail_error
Boolean
compute='_compute_snailmail_error'
search='_search_snailmail_error'
args: 'Snailmail message in error'
cancel_letter(self)
send_letter(self)
failure_type
Selection
selection_add=[('sn_credit', 'Snailmail Credit Error'), ('sn_trial', 'Snailmail Trial Error'), ('sn_price', 'Snailmail No Price Available'), ('sn_fields', 'Snailmail Missing Required Fields'), ('sn_format', 'Snailmail Format Error'), ('sn_error', 'Snailmail Unknown Error')]
letter_id
Many2one → snailmail.letter
index=True
ondelete='cascade'
string='Snailmail Letter'
args: 'snailmail.letter'
notification_type
Selection
ondelete={'snail': 'cascade'}
selection_add=[('snail', 'Snailmail')]
No public methods.
snailmail_color
Boolean
default=True
string='Color'
snailmail_cover
Boolean
default=False
string='Add a Cover Page'
snailmail_duplex
Boolean
default=False
string='Both sides'
No public methods.
snailmail_color
Boolean
readonly=False
related='company_id.snailmail_color'
string='Print In Color'
snailmail_cover
Boolean
readonly=False
related='company_id.snailmail_cover'
string='Add a Cover Page'
snailmail_duplex
Boolean
readonly=False
related='company_id.snailmail_duplex'
string='Print Both sides'
No public methods.
No new fields.
Public methods (1)write(self, vals)
model_name
Char
action_cancel(self)
action_confirm(self)
action_open(self)
show_warning(self)
attachment_datas
Binary
related='attachment_id.datas'
args: 'Document'
attachment_fname
Char
related='attachment_id.name'
args: 'Attachment Filename'
attachment_id
Many2one → ir.attachment
ondelete='cascade'
string='Attachment'
args: 'ir.attachment'
city
Char
color
Boolean
default=<expr>
string='Color'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
cover
Boolean
default=<expr>
string='Cover Page'
display_name
Char
compute='_compute_display_name'
args: 'Display Name'
duplex
Boolean
default=<expr>
string='Both side'
error_code
Selection
string='Error'
args: <expr>
info_msg
Char
message_id
Many2one → mail.message
string='Snailmail Status Message'
args: 'mail.message'
model
Char
required=True
args: 'Model'
notification_ids
One2many → mail.notification
partner_id
Many2one → res.partner
required=True
string='Recipient'
args: 'res.partner'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Related Record'
report_template
Many2one → ir.actions.report
res_id
Integer
required=True
args: 'Document ID'
state
Selection
copy=False
default='pending'
help="When a letter is created, the status is 'Pending'.\nIf the letter is correctly sent, the status goes in 'Sent',\nIf not, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'."
readonly=True
required=True
args: [('pending', 'In Queue'), ('sent', 'Sent'), ('error', 'Error'), ('canceled', 'Canceled')], 'Status'
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
user_id
Many2one → res.users
zip
Char
cancel(self)
create(self, vals_list)
snailmail_print(self)
write(self, vals)
help_message
Char
compute='_compute_help_message'
string='Help message'
model
Char
string='Model'
cancel_resend_action(self)
message_id
Many2one → mail.message
default=<expr>
args: 'mail.message'
snailmail_cover
Boolean
default=<expr>
string='Add a Cover Page'
cancel_letter_action(self)
update_resend_action(self)
city
Char
country_id
Many2one → res.country
string='Country'
args: 'res.country'
letter_id
Many2one → snailmail.letter
partner_id
Many2one → res.partner
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
zip
Char
default_get(self, fields)
update_address_cancel(self)
update_address_save(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/snailmail |
| VERSION | |
| VERSION | 0.3 |
| CATEGORY | |
| CATEGORY | Hidden/Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Yannick Tivisse, fda-odoo, Rémi Rahir, Xavier-Do, Victor Feyens, Xavier Dubuc, Sébastien Theys, Julien Mougenot, Vincent Schippefilt, Gorash, Kevin Baptiste, François (FRC), Laurent Desausoi (lade), Arthur (goa), Solan Delvenne (sode), Dominik Zians, Victor Piryns (pivi) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:27 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - iap_mail - iap - web - base - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Allows users to send documents by post
=====================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
iap assets | ir.ui.view | qweb | Inherits web.assets_backend |
minimal_layout |
minimal_layout | ir.ui.view | qweb | Inherits web.minimal_layout |
qunit_suite |
snailmail_tests | ir.ui.view | qweb | Inherits web.qunit_suite_tests |
report_assets_snailmail |
report_assets_snailmail | ir.ui.view | qweb | New |
report_layout |
report_layout | ir.ui.view | qweb | Inherits web.report_layout |
snailmail_confirm_view |
snailmail.confirm.view | snailmail.confirm | form | New |
snailmail_letter_cancel |
snailmail.letter.cancel.form | snailmail.letter.cancel | form | New |
snailmail_letter_form |
snailmail.letter.form | snailmail.letter | form | New |
snailmail_letter_format_error |
snailmail.letter.format.error.form | snailmail.letter.format.error | form | New |
snailmail_letter_list |
snailmail.letter.tree | snailmail.letter | tree | New |
snailmail_letter_missing_required_fields |
snailmail.letter.missing.required.fields.form | snailmail.letter.missing.required.fields | form | New |
tests_assets |
snailmail tests assets | ir.ui.view | qweb | Inherits web.tests_assets |
No new fields.
Public methods (2)get_paperformat(self)
retrieve_attachment(self, record)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
letter_ids
One2many → snailmail.letter
comodel_name='snailmail.letter'
inverse_name='message_id'
message_type
Selection
ondelete={'snailmail': <expr>}
selection_add=[('snailmail', 'Snailmail')]
snailmail_error
Boolean
compute='_compute_snailmail_error'
search='_search_snailmail_error'
args: 'Snailmail message in error'
cancel_letter(self)
send_letter(self)
failure_type
Selection
selection_add=[('sn_credit', 'Snailmail Credit Error'), ('sn_trial', 'Snailmail Trial Error'), ('sn_price', 'Snailmail No Price Available'), ('sn_fields', 'Snailmail Missing Required Fields'), ('sn_format', 'Snailmail Format Error'), ('sn_error', 'Snailmail Unknown Error')]
letter_id
Many2one → snailmail.letter
index=True
ondelete='cascade'
string='Snailmail Letter'
args: 'snailmail.letter'
notification_type
Selection
ondelete={'snail': 'cascade'}
selection_add=[('snail', 'Snailmail')]
No public methods.
snailmail_color
Boolean
default=True
string='Color'
snailmail_cover
Boolean
default=False
string='Add a Cover Page'
snailmail_duplex
Boolean
default=False
string='Both sides'
No public methods.
snailmail_color
Boolean
readonly=False
related='company_id.snailmail_color'
string='Print In Color'
snailmail_cover
Boolean
readonly=False
related='company_id.snailmail_cover'
string='Add a Cover Page'
snailmail_duplex
Boolean
readonly=False
related='company_id.snailmail_duplex'
string='Print Both sides'
No public methods.
No new fields.
Public methods (1)write(self, vals)
model_name
Char
action_cancel(self)
action_confirm(self)
action_open(self)
show_warning(self)
attachment_datas
Binary
related='attachment_id.datas'
args: 'Document'
attachment_fname
Char
related='attachment_id.name'
args: 'Attachment Filename'
attachment_id
Many2one → ir.attachment
ondelete='cascade'
string='Attachment'
args: 'ir.attachment'
city
Char
color
Boolean
default=<expr>
string='Color'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
cover
Boolean
default=<expr>
string='Cover Page'
display_name
Char
compute='_compute_display_name'
args: 'Display Name'
duplex
Boolean
default=<expr>
string='Both side'
error_code
Selection
string='Error'
args: <expr>
info_msg
Char
message_id
Many2one → mail.message
string='Snailmail Status Message'
args: 'mail.message'
model
Char
required=True
args: 'Model'
notification_ids
One2many → mail.notification
partner_id
Many2one → res.partner
required=True
string='Recipient'
args: 'res.partner'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Related Record'
report_template
Many2one → ir.actions.report
res_id
Integer
required=True
args: 'Document ID'
state
Selection
copy=False
default='pending'
help="When a letter is created, the status is 'Pending'.\nIf the letter is correctly sent, the status goes in 'Sent',\nIf not, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'."
readonly=True
required=True
args: [('pending', 'In Queue'), ('sent', 'Sent'), ('error', 'Error'), ('canceled', 'Canceled')], 'Status'
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
user_id
Many2one → res.users
zip
Char
cancel(self)
create(self, vals)
snailmail_print(self)
write(self, vals)
help_message
Char
compute='_compute_help_message'
string='Help message'
model
Char
string='Model'
cancel_resend_action(self)
message_id
Many2one → mail.message
default=<expr>
args: 'mail.message'
snailmail_cover
Boolean
default=<expr>
string='Add a Cover Page'
cancel_letter_action(self)
update_resend_action(self)
city
Char
country_id
Many2one → res.country
string='Country'
args: 'res.country'
letter_id
Many2one → snailmail.letter
partner_id
Many2one → res.partner
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
zip
Char
default_get(self, fields)
update_address_cancel(self)
update_address_save(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/snailmail |
| VERSION | |
| VERSION | 0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Christophe Simonis, Xavier Morel, Nicolas Martinelli, qdp-odoo, Aaron Bohy, Yannick Tivisse, Odoo Online, Pierre Masereel, fda-odoo, Adrian Torres, Rémi Rahir, Xavier-Do, fw-bot, Pierre Rousseau, Thanh Dodeur, François (FRC), Arthur (goa), Solan Delvenne (sode), Dominik Zians |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:41 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - iap - web - base - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Allows users to send documents by post
=====================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
iap assets | ir.ui.view | qweb | Inherits web.assets_backend |
minimal_layout |
minimal_layout | ir.ui.view | qweb | Inherits web.minimal_layout |
qunit_suite |
snailmail_tests | ir.ui.view | qweb | Inherits web.qunit_suite |
report_assets_snailmail |
report_assets_snailmail | ir.ui.view | qweb | New |
report_layout |
report_layout | ir.ui.view | qweb | Inherits web.report_layout |
snailmail_letter_cancel |
snailmail.letter.cancel.form | snailmail.letter.cancel | form | New |
snailmail_letter_form |
snailmail.letter.form | snailmail.letter | form | New |
snailmail_letter_format_error |
snailmail.letter.format.error.form | snailmail.letter.format.error | form | New |
snailmail_letter_list |
snailmail.letter.tree | snailmail.letter | tree | New |
snailmail_letter_missing_required_fields |
snailmail.letter.missing.required.fields.form | snailmail.letter.missing.required.fields | form | New |
No new fields.
Public methods (2)get_paperformat(self)
retrieve_attachment(self, record)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
letter_ids
One2many → snailmail.letter
comodel_name='snailmail.letter'
inverse_name='message_id'
message_type
Selection
selection_add=[('snailmail', 'Snailmail')]
snailmail_error
Boolean
compute='_compute_snailmail_error'
search='_search_snailmail_error'
args: 'Snailmail message in error'
snailmail_status
Char
compute='_compute_snailmail_error'
args: 'Snailmail Status'
cancel_letter(self)
message_fetch_failed(self)
send_letter(self)
snailmail_color
Boolean
default=True
string='Color'
snailmail_cover
Boolean
default=False
string='Add a Cover Page'
snailmail_duplex
Boolean
default=False
string='Both sides'
No public methods.
snailmail_color
Boolean
readonly=False
related='company_id.snailmail_color'
string='Print In Color'
snailmail_cover
Boolean
readonly=False
related='company_id.snailmail_cover'
string='Add a Cover Page'
snailmail_duplex
Boolean
readonly=False
related='company_id.snailmail_duplex'
string='Print Both sides'
No public methods.
No new fields.
Public methods (1)write(self, vals)
attachment_datas
Binary
related='attachment_id.datas'
args: 'Document'
attachment_fname
Char
related='attachment_id.name'
args: 'Attachment Filename'
attachment_id
Many2one → ir.attachment
ondelete='cascade'
string='Attachment'
args: 'ir.attachment'
city
Char
color
Boolean
default=<expr>
string='Color'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
country_id
Many2one → res.country
string='Country'
args: 'res.country'
cover
Boolean
default=<expr>
string='Cover Page'
display_name
Char
compute='_compute_display_name'
args: 'Display Name'
duplex
Boolean
default=<expr>
string='Both side'
error_code
Selection
string='Error'
args: <expr>
info_msg
Char
message_id
Many2one → mail.message
string='Snailmail Status Message'
args: 'mail.message'
model
Char
required=True
args: 'Model'
partner_id
Many2one → res.partner
required=True
string='Recipient'
args: 'res.partner'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Related Record'
report_template
Many2one → ir.actions.report
res_id
Integer
required=True
args: 'Document ID'
state
Selection
copy=False
default='pending'
help="When a letter is created, the status is 'Pending'.\nIf the letter is correctly sent, the status goes in 'Sent',\nIf not, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'."
readonly=True
required=True
args: [('pending', 'In Queue'), ('sent', 'Sent'), ('error', 'Error'), ('canceled', 'Canceled')], 'Status'
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
user_id
Many2one → res.users
zip
Char
cancel(self)
create(self, vals)
fetch_failed_letters(self)
send_snailmail_update(self)
snailmail_print(self)
help_message
Char
compute='_compute_help_message'
string='Help message'
model
Char
string='Model'
cancel_resend_action(self)
message_id
Many2one → mail.message
snailmail_cover
Boolean
string='Add a Cover Page'
cancel_letter_action(self)
default_get(self, fields)
update_resend_action(self)
city
Char
country_id
Many2one → res.country
string='Country'
args: 'res.country'
letter_id
Many2one → snailmail.letter
partner_id
Many2one → res.partner
state_id
Many2one → res.country.state
string='State'
args: 'res.country.state'
street
Char
street2
Char
zip
Char
default_get(self, fields)
update_address_cancel(self)
update_address_save(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/snailmail |
| VERSION | |
| VERSION | 0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, GitHub, Yannick Tivisse, qsm-odoo, Pierre Masereel, Adrian Torres, Antoine Prieels, Rémi Rahir, Xavier-Do, Anh Thao Pham (pta), rrahir, Antoine Prieels (ANP), Pierre Rousseau |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:00 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - iap - web - base - web_settings_dashboard - base_setup - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Allows users to send documents by post
=====================================================
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
minimal_layout |
minimal_layout | ir.ui.view | qweb | Inherits web.minimal_layout |
report_assets_snailmail |
report_assets_snailmail | ir.ui.view | qweb | New |
report_layout |
report_layout | ir.ui.view | qweb | Inherits web.report_layout |
res_config_settings_view_form |
res.config.settings.view.form.inherit.snailmail | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
snailmail_letter_form |
snailmail.letter.form | snailmail.letter | form | New |
snailmail_letter_list |
snailmail.letter.tree | snailmail.letter | tree | New |
No new fields.
Public methods (2)get_paperformat(self)
retrieve_attachment(self, record)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
snailmail_color
Boolean
default=False
string='Color'
snailmail_duplex
Boolean
default=False
string='Both sides'
No public methods.
snailmail_color
Boolean
readonly=False
related='company_id.snailmail_color'
string='Print In Color'
snailmail_duplex
Boolean
readonly=False
related='company_id.snailmail_duplex'
string='Print Both sides'
No public methods.
No new fields.
Public methods (0)No public methods.
attachment_id
Many2one → ir.attachment
ondelete='cascade'
string='Attachment'
args: 'ir.attachment'
color
Boolean
default=<expr>
string='Color'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
duplex
Boolean
default=<expr>
string='Both side'
info_msg
Char
model
Char
required=True
args: 'Model'
partner_id
Many2one → res.partner
required=True
string='Recipient'
args: 'res.partner'
report_template
Many2one → ir.actions.report
res_id
Integer
required=True
args: 'Document ID'
state
Selection
copy=False
default='draft'
help="When a letter is created, the status is 'Draft'.\nIf the letter is correctly sent, the status goes in 'Sent',\nIf not, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'."
readonly=True
args: [('draft', 'Draft'), ('pending', 'In Queue'), ('sent', 'Sent'), ('error', 'Error'), ('canceled', 'Canceled')], 'Status'
user_id
Many2one → res.users
cancel(self)
snailmail_print(self)