| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/18.0/autovacuum_message_attachment |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Maksym Yankin, Ricardoalso |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-tools |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:07 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Odoo create a lot of message and/or mails. With time it can slow the system or take a lot of disk space. The goal of this module is to clean these message once they are obsolete. The same may happen with attachment that we store. You can choose various criterias manage which messages you want to delete automatically. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
vacuum_rule_form_view |
vacuum.rule.form.view | vacuum.rule | form | New |
vacuum_rule_tree_view |
vacuum.rule.form.view | vacuum.rule | list | New |
No new fields.
Public methods (2)autovacuum(self, ttype='message')
batch_unlink(self)
assigned_attachment_ids
One2many → ir.attachment
auto_join=True
domain=<expr>
string='Assigned Attachments'
args: 'ir.attachment', 'res_id'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Text
empty_model
Boolean
help='Take into account attachment not linked to any model, but only if a pattern is set, to avoid deleting attachments generated/needed by odoo'
empty_subtype
Boolean
help='Take also into account messages with no subtypes'
filename_pattern
Char
help='If set, only attachments containing this pattern will be deleted.'
inheriting_model
Char
help='If set, this model will be searched and only related attachments will be deleted.\n\nN.B: model must implement _inherits to link ir.attachment'
message_subtype_ids
Many2many → mail.message.subtype
help="Message subtypes concerned by the rule. If left empty, the system won't take the subtype into account to find the messages to delete"
string='Subtypes'
args: 'mail.message.subtype'
message_type
Selection
model
Char
compute='_compute_model_id'
string='Model code'
model_filter_domain
Text
model_id
Many2one → ir.model
compute='_compute_model_id'
help='Technical field used to set attributes (invisible/required, domain, etc...for other fields, like the domain filter'
args: 'ir.model'
model_ids
Many2many → ir.model
help='Models concerned by the rule. If left empty, it will take all models into account'
string='Models'
args: 'ir.model'
name
Char
required=True
retention_time
Integer
default=365
help='Number of days the messages concerned by this rule will be keeped in the database after creation. Once the delay is passed, they will be automatically deleted.'
required=True
ttype
Selection
required=True
selection=[('attachment', 'Attachment'), ('message', 'Message')]
string='Type'
retention_time_not_null(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/16.0/autovacuum_message_attachment |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Florian da Costa, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-tools |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:53 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
vacuum_rule_form_view |
vacuum.rule.form.view | vacuum.rule | form | New |
vacuum_rule_tree_view |
vacuum.rule.form.view | vacuum.rule | tree | New |
No new fields.
Public methods (2)autovacuum(self, ttype='message')
batch_unlink(self)
assigned_attachment_ids
One2many → ir.attachment
auto_join=True
domain=<expr>
string='Assigned Attachments'
args: 'ir.attachment', 'res_id'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Text
empty_model
Boolean
help='Take into account attachment not linked to any model, but only if a pattern is set, to avoid deleting attachments generated/needed by odoo'
empty_subtype
Boolean
help='Take also into account messages with no subtypes'
filename_pattern
Char
help='If set, only attachments containing this pattern will be deleted.'
inheriting_model
Char
help='If set, this model will be searched and only related attachments will be deleted.\n\nN.B: model must implement _inherits to link ir.attachment'
message_subtype_ids
Many2many → mail.message.subtype
help="Message subtypes concerned by the rule. If left empty, the system won't take the subtype into account to find the messages to delete"
string='Subtypes'
args: 'mail.message.subtype'
message_type
Selection
model
Char
compute='_compute_model_id'
readonly=True
string='Model code'
model_filter_domain
Text
model_id
Many2one → ir.model
compute='_compute_model_id'
help='Technical field used to set attributes (invisible/required, domain, etc...for other fields, like the domain filter'
readonly=True
args: 'ir.model'
model_ids
Many2many → ir.model
help='Models concerned by the rule. If left empty, it will take all models into account'
string='Models'
args: 'ir.model'
name
Char
required=True
retention_time
Integer
default=365
help='Number of days the messages concerned by this rule will be keeped in the database after creation. Once the delay is passed, they will be automatically deleted.'
required=True
ttype
Selection
required=True
selection=[('attachment', 'Attachment'), ('message', 'Message')]
string='Type'
retention_time_not_null(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/14.0/autovacuum_message_attachment |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Akim Juillerat, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci, hkpatel |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-tools |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
vacuum_rule_form_view |
vacuum.rule.form.view | vacuum.rule | form | New |
vacuum_rule_tree_view |
vacuum.rule.form.view | vacuum.rule | tree | New |
No new fields.
Public methods (2)autovacuum(self, ttype='message')
batch_unlink(self)
assigned_attachment_ids
One2many → ir.attachment
auto_join=True
domain=<expr>
string='Assigned Attachments'
args: 'ir.attachment', 'res_id'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Text
empty_subtype
Boolean
help='Take also into account messages with no subtypes'
filename_pattern
Char
help='If set, only attachments containing this pattern will be deleted.'
inheriting_model
Char
help='If set, this model will be searched and only related attachments will be deleted.\n\nN.B: model must implement _inherits to link ir.attachment'
message_subtype_ids
Many2many → mail.message.subtype
help="Message subtypes concerned by the rule. If left empty, the system won't take the subtype into account to find the messages to delete"
string='Subtypes'
args: 'mail.message.subtype'
message_type
Selection
model
Char
compute='_compute_model_id'
readonly=True
string='Model code'
model_filter_domain
Text
string='Model Filter Domain'
model_id
Many2one → ir.model
compute='_compute_model_id'
help='Technical field used to set attributes (invisible/required, domain, etc...for other fields, like the domain filter'
readonly=True
args: 'ir.model'
model_ids
Many2many → ir.model
help='Models concerned by the rule. If left empty, it will take all models into account'
string='Models'
args: 'ir.model'
name
Char
required=True
retention_time
Integer
default=365
help='Number of days the messages concerned by this rule will be keeped in the database after creation. Once the delay is passed, they will be automatically deleted.'
required=True
ttype
Selection
required=True
selection=[('attachment', 'Attachment'), ('message', 'Message')]
string='Type'
retention_time_not_null(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/13.0/autovacuum_message_attachment |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Stefan Rijnhart, Enric Tobella, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-tools |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:16 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
vacuum_rule_form_view |
vacuum.rule.form.view | vacuum.rule | form | New |
vacuum_rule_tree_view |
vacuum.rule.form.view | vacuum.rule | tree | New |
No new fields.
Public methods (2)autovacuum(self, ttype='message')
batch_unlink(self)
assigned_attachment_ids
One2many → ir.attachment
auto_join=True
domain=<expr>
string='Assigned Attachments'
args: 'ir.attachment', 'res_id'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Text
empty_subtype
Boolean
help='Take also into account messages with no subtypes'
filename_pattern
Char
help='If set, only attachments containing this pattern will be deleted.'
message_subtype_ids
Many2many → mail.message.subtype
help="Message subtypes concerned by the rule. If left empty, the system won't take the subtype into account to find the messages to delete"
string='Subtypes'
args: 'mail.message.subtype'
message_type
Selection
model
Char
compute='_compute_model_id'
readonly=True
string='Model code'
model_filter_domain
Text
string='Model Filter Domain'
model_id
Many2one → ir.model
compute='_compute_model_id'
help='Technical field used to set attributes (invisible/required, domain, etc...for other fields, like the domain filter'
readonly=True
args: 'ir.model'
model_ids
Many2many → ir.model
help='Models concerned by the rule. If left empty, it will take all models into account'
string='Models'
args: 'ir.model'
name
Char
required=True
retention_time
Integer
default=365
help='Number of days the messages concerned by this rule will be keeped in the database after creation. Once the delay is passed, they will be automatically deleted.'
required=True
ttype
Selection
required=True
selection=[('attachment', 'Attachment'), ('message', 'Message')]
string='Type'
retention_time_not_null(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/server-tools |
| GIT | |
| GIT | https://github.com/OCA/server-tools.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/server-tools/tree/12.0/autovacuum_message_attachment |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | GitHub, Enric Tobella, OCA Transbot, Florian da Costa, oca-travis, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/server-tools |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:22 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
vacuum_rule_form_view |
vacuum.rule.form.view | vacuum.rule | form | New |
vacuum_rule_tree_view |
vacuum.rule.form.view | vacuum.rule | tree | New |
No new fields.
Public methods (2)autovacuum(self, ttype='message')
batch_unlink(self)
assigned_attachment_ids
One2many → ir.attachment
auto_join=True
domain=<expr>
string='Assigned Attachments'
args: 'ir.attachment', 'res_id'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
description
Text
empty_subtype
Boolean
help='Take also into account messages with no subtypes'
filename_pattern
Char
help='If set, only attachments containing this pattern will be deleted.'
message_subtype_ids
Many2many → mail.message.subtype
help="Message subtypes concerned by the rule. If left empty, the system won't take the subtype into account to find the messages to delete"
string='Subtypes'
args: 'mail.message.subtype'
message_type
Selection
model
Char
compute='_get_model_id'
readonly=True
string='Model code'
model_filter_domain
Text
string='Model Filter Domain'
model_id
Many2one → ir.model
compute='_get_model_id'
help='Technical field used to set attributes (invisible/required, domain, etc...for other fields, like the domain filter'
readonly=True
args: 'ir.model'
model_ids
Many2many → ir.model
help='Models concerned by the rule. If left empty, it will take all models into account'
string='Models'
args: 'ir.model'
name
Char
required=True
retention_time
Integer
default=365
help='Number of days the messages concerned by this rule will be keeped in the database after creation. Once the delay is passed, they will be automatically deleted.'
required=True
ttype
Selection
required=True
selection=[('attachment', 'Attachment'), ('message', 'Message')]
string='Type'
retention_time_not_null(self)