TIP: You can type at any time to perform a new search.
Snail Mail
snailmail · odoo/odoo
Security findings
- Repository
- odoo/odoo · module folder
- Module version
- 0.4
- Category
- Hidden/Tools
- Folder size
- 1.22 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-10-05 00:19:43
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Odoo Translation Bot, Aaron Bohy, Xavier-Do, Victor Feyens, Tiffany Chang (tic), Pierre Paridans, Louis Baudoux, bve-odoo, tsm-odoo, Pierre-Yves Dufays, Dylan Kiss (dyki), Don Kendall, Chong Wang (cwg), Vivek Pathak, Sven Fuehr, AMZIL Ayoub, Alex Kühn, mano-odoo, Harsh Shah, Hesham Saleh, Ricardo Gomes Rodrigues, Michaël Mattiello, Krzysztof Magusiak (krma), Junqi, Julien Launois (jula), chpa-odoo
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- snailmail_account
- Description
Allows users to send documents by post =====================================================
Code Analysis
Views touched (4)
| 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 |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/webhook/snailmail/1/<string:event_type> |
SnailmailWebhookController.snailmail_webhook |
public | http | ALL | csrf off sudo |
Models touched (8)
New fields (0)
No new fields.
Public methods (2)-
get_paperformat(self) -
retrieve_attachment(self, record)
New fields (3)
-
letter_idsOne2many → snailmail.lettercomodel_name='snailmail.letter'inverse_name='message_id' -
message_typeSelectionondelete={'snailmail': <expr>}selection_add=[('snailmail', 'Snailmail')] -
snailmail_errorBooleancompute='_compute_snailmail_error'search='_search_snailmail_error'string='Snailmail message in error'
-
cancel_letter(self) -
send_letter(self)
New fields (3)
-
failure_typeSelectionselection_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'), ('sn_undeliverable', 'Snailmail Undeliverable')] -
letter_idMany2one → snailmail.letterindex='btree_not_null'ondelete='cascade'string='Snailmail Letter' args: 'snailmail.letter' -
notification_typeSelectionondelete={'snail': 'cascade'}selection_add=[('snail', 'Snailmail')]
No public methods.
New fields (0)
No new fields.
Public methods (1)-
notify_cancel_by_type(self, notification_type)@api.model
New fields (3)
-
snailmail_colorBooleandefault=True -
snailmail_coverBooleandefault=Falsestring='Add a Cover Page' -
snailmail_duplexBooleandefault=Falsestring='Both sides'
No public methods.
New fields (3)
-
snailmail_colorBooleanreadonly=Falserelated='company_id.snailmail_color'string='Print In Color' -
snailmail_coverBooleanreadonly=Falserelated='company_id.snailmail_cover'string='Add a Cover Page' -
snailmail_duplexBooleanreadonly=Falserelated='company_id.snailmail_duplex'string='Print Both sides'
No public methods.
New fields (0)
No new fields.
Public methods (2)-
country_name(self)@property -
write(self, vals)
New fields (25)
-
attachment_fnameCharrelated='attachment_id.name' args: 'Attachment Filename' -
attachment_idMany2one → ir.attachmentindex='btree_not_null'ondelete='cascade'string='Attachment' args: 'ir.attachment' -
attachment_rawBinaryrelated='attachment_id.raw' args: 'Document' -
cityCharargs: 'City' -
colorBooleandefault=<expr>string='Color' -
company_idMany2one → res.companydefault=<expr>readonly=Truerequired=Truestring='Company' args: 'res.company' -
country_idMany2one → res.countrystring='Country' args: 'res.country' -
coverBooleandefault=<expr>string='Cover Page' -
duplexBooleandefault=<expr>string='Both side' -
error_codeSelectionstring='Error' args: <expr> -
info_msgHtmlargs: 'Information' -
letter_uidCharargs: 'Snailmail letter ID' -
message_idMany2one → mail.messageindex='btree_not_null'string='Snailmail Status Message' args: 'mail.message' -
modelCharrequired=True args: 'Model' -
notification_idsOne2many → mail.notificationargs: 'mail.notification', 'letter_id', 'Notifications' -
partner_idMany2one → res.partnerrequired=Truestring='Recipient' args: 'res.partner' -
referenceCharcompute='_compute_reference'readonly=Truestore=Falsestring='Related Record' -
report_templateMany2one → ir.actions.reportargs: 'ir.actions.report', 'Optional report to print and attach' -
res_idIntegerrequired=True args: 'Document ID' -
stateSelectioncopy=Falsedefault='pending'help="When a letter is created, the status is 'Pending'.\nIf the letter is correctly sent to provider, the status goes in 'process',\nIf the provider confirms the letter is delivered, the status goes in 'Sent'.\nIf not sent or delivered, it will got in state 'Error' and the error message will be displayed in the field 'Error Message'."readonly=Truerequired=True args: [('pending', 'In Queue'), ('process', 'Processing'), ('sent', 'Sent'), ('error', 'Error'), ('canceled', 'Cancelled')], 'Status' -
state_idMany2one → res.country.statestring='State' args: 'res.country.state' -
streetCharargs: 'Street' -
street2Charargs: 'Street2' -
user_idMany2one → res.usersargs: 'res.users', 'Sent by' -
zipCharargs: 'Zip'
-
cancel(self) -
create(self, vals_list)@api.model_create_multi -
snailmail_print(self) -
write(self, vals)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…