diff --git a/autovacuum_message_attachment/README.rst b/autovacuum_message_attachment/README.rst new file mode 100644 index 000000000..ddfd6a7f4 --- /dev/null +++ b/autovacuum_message_attachment/README.rst @@ -0,0 +1,93 @@ +====================================== +AutoVacuum Mail Message and Attachment +====================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github + :target: https://github.com/OCA/server-tools/tree/12.0/autovacuum_message_attachment + :alt: OCA/server-tools +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-autovacuum_message_attachment + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/149/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +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. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +* Go to the menu configuration => Technical => Email => Message And Attachment Vacuum Rules +* Add the adequates rules for your company. On each rule, you can indicate the models, type and subtypes for which you want to delete the messages, along with a retention time (in days). Or for attachment, you can specify a substring of the name. +* Activate the cron AutoVacuum Mails and Messages and/or AutoVacuum Attachments + +It is recommanded to run it frequently and when the system is not very loaded. +(For instance : once a day, during the night.) + +Known issues / Roadmap +====================== + +You have to be careful with rules regarding attachment deletion because Odoo find the attachment to delete with their name. +Odoo will find all attachments containing the substring configured on the rule, so you have to be specific enough on the other criterias (concerned models...) to avoid unwanted attachment deletion. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Akretion + +Contributors +~~~~~~~~~~~~ + +* Florian da Costa +* Enric Tobella + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/server-tools `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/autovacuum_message_attachment/i18n/autovacuum_message_attachment.pot b/autovacuum_message_attachment/i18n/autovacuum_message_attachment.pot new file mode 100644 index 000000000..876b7f611 --- /dev/null +++ b/autovacuum_message_attachment/i18n/autovacuum_message_attachment.pot @@ -0,0 +1,548 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * autovacuum_message_attachment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__active +msgid "Active" +msgstr "" + +#. module: autovacuum_message_attachment +#: selection:vacuum.rule,message_type:0 +msgid "All" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_ir_attachment +#: selection:vacuum.rule,ttype:0 +msgid "Attachment" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field__unknown__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_abstract_conditional_image__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_abstract_config_settings__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_abstract_payment__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_account__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_account_tag__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_account_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_account_type__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_account__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_distribution__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_group__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_tag__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_cashbox__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_closebalance__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_import__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_import_journal_creation__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_cash_rounding__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_cashbox_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_chart_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_common_journal_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_common_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_financial_year_op__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_account__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_account_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_tax__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_tax_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_year__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_full_reconcile__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_group__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_incoterms__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_confirm__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_refund__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_send__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_tax__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_journal__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_move__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_move_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_move_reversal__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_partial_reconcile__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_payment__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_payment_method__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_payment_term__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_payment_term_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_print_journal__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_reconcile_model__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_reconcile_model_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_reconciliation_widget__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_register_payments__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_setup_bank_manual_config__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_tax__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_tax_group__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_tax_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_unreconcile__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_attachment_queue__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_autovacuum__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_http_request__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_http_session__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_log__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_log_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_autovacuum_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_exception__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_exception_method__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_import__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_mapping__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_noreadonly__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_readonly__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_required__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_states__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_stillreadonly__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_complex__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_float__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_m2o__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_m2o_related__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_m2o_required__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_m2o_required_related__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_o2m__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_o2m_child__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_preview__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_kanban_abstract__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_kanban_stage__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_language_export__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_language_import__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_language_install__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_module_uninstall__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_module_update__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_module_upgrade__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_partner_merge_automatic_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_partner_merge_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_update_translations__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_bus_bus__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_bus_presence__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_cash_box_in__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_cash_box_out__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_change_password_user__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_change_password_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_company_country_config_settings__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_crm_team__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_option__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_property__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_db_backup__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_decimal_precision__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_decimal_precision_test__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_digest_digest__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_digest_tip__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_exception_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_exception_rule_confirm__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_fetchmail_server__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_format_address_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_iap_account__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_image__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_act_url__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_act_window__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_act_window_close__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_act_window_view__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_actions__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_client__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_server__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_todo__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_attachment__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_autovacuum__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_config_parameter__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_cron__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_default__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_demo__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_demo_failure__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_demo_failure_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_exports__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_exports_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_fields_converter__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_filters__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_http__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_logging__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_mail_server__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_access__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_constraint__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_data__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_fields__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_relation__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_author__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_module__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_module_dependency__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_module_exclusion__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_type__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_type_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_property__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_barcode__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_contact__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_date__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_datetime__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_duration__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_float__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_float_time__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_html__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_image__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_integer__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_many2many__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_many2one__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_monetary__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_qweb__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_relative__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_selection__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_text__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_sequence__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_sequence_date_range__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_server_object_lines__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_translation__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_ui_menu__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_ui_view__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_ui_view_custom__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_activity__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_activity_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_activity_type__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_alias__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_alias_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_blacklist__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_blacklist_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_bot__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_channel__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_channel_partner__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_followers__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_mail__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_message_subtype__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_moderation__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_notification__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_resend_cancel__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_resend_message__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_resend_partner__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_shortcode__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test_activity__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test_full__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test_simple__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test_track__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_thread__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_tracking_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_wizard_invite__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_acquirer__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_acquirer_onboarding_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_icon__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_token__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_transaction__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_portal_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_portal_share__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_portal_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_portal_wizard_user__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_attribute__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_attribute_custom_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_attribute_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_packaging__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_price_history__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_price_list__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_pricelist__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_pricelist_item__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_product__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_supplierinfo__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_template_attribute_exclusion__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_template_attribute_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_template_attribute_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_publisher_warranty_contract__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_account_report_agedpartnerbalance__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_account_report_invoice_with_payments__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_account_report_journal__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_all_channels_sales__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_base_report_irmodulereference__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_layout__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_paperformat__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_product_report_pricelist__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_sale_report_saleproforma__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_bank__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_company__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_config__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_config_installer__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_config_settings__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_country__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_country_group__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_country_state__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_currency__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_currency_rate__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_groups__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_lang__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_autocomplete_sync__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_bank__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_industry__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_title__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_remote__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_users__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_users_log__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_advance_payment_inv__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_option__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_template_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_template_option__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_payment_acquirer_onboarding_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_product_configurator__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sequence_standard_default__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sms_api__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sms_send_sms__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_snailmail_letter__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sql_export__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sql_file_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sql_request_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_tax_adjustments_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_test_performance_base__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_test_performance_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_test_performance_mail__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_test_performance_tag__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_trgm_index__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_uom_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_uom_uom__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_validate_account_move__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_web_editor_converter_test_sub__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_web_tour_tour__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_wizard_ir_model_menu_create__attachment_ids +msgid "Attachments" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.actions.server,name:autovacuum_message_attachment.ir_cron_vacuum_attachment_ir_actions_server +#: model:ir.cron,cron_name:autovacuum_message_attachment.ir_cron_vacuum_attachment +#: model:ir.cron,name:autovacuum_message_attachment.ir_cron_vacuum_attachment +msgid "AutoVacuum Attachments" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.actions.server,name:autovacuum_message_attachment.ir_cron_vacuum_message_ir_actions_server +#: model:ir.cron,cron_name:autovacuum_message_attachment.ir_cron_vacuum_message +#: model:ir.cron,name:autovacuum_message_attachment.ir_cron_vacuum_message +msgid "AutoVacuum Mails and Messages" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_base +msgid "Base" +msgstr "" + +#. module: autovacuum_message_attachment +#: selection:vacuum.rule,message_type:0 +msgid "Comment" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__company_id +msgid "Company" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__create_uid +msgid "Created by" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__create_date +msgid "Created on" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__description +#: model_terms:ir.ui.view,arch_db:autovacuum_message_attachment.vacuum_rule_form_view +msgid "Description" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_autovacuum_mixin__display_name +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__display_name +msgid "Display Name" +msgstr "" + +#. module: autovacuum_message_attachment +#: selection:vacuum.rule,message_type:0 +msgid "Email" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__empty_subtype +msgid "Empty Subtype" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__filename_pattern +msgid "Filename Pattern" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_autovacuum_mixin__id +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__id +msgid "ID" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__filename_pattern +msgid "If set, only attachments containing this pattern will be deleted." +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_autovacuum_mixin____last_update +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule____last_update +msgid "Last Modified on" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__write_date +msgid "Last Updated on" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_mail_message +#: selection:vacuum.rule,ttype:0 +msgid "Message" +msgstr "" + +#. module: autovacuum_message_attachment +#: model_terms:ir.ui.view,arch_db:autovacuum_message_attachment.vacuum_rule_form_view +msgid "Message Models" +msgstr "" + +#. module: autovacuum_message_attachment +#: model_terms:ir.ui.view,arch_db:autovacuum_message_attachment.vacuum_rule_form_view +msgid "Message Subtypes" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__message_type +msgid "Message Type" +msgstr "" + +#. module: autovacuum_message_attachment +#: model_terms:ir.ui.view,arch_db:autovacuum_message_attachment.vacuum_rule_form_view +msgid "Message Vacuum Rule" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.actions.act_window,name:autovacuum_message_attachment.action_vacuum_rule +#: model:ir.ui.menu,name:autovacuum_message_attachment.menu_action_vacuum_rule +msgid "Message and Attachment Vacuum Rule" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__message_subtype_ids +msgid "Message subtypes concerned by the rule. If left empty, the system won't take the subtype into account to find the messages to delete" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_autovacuum_mixin +msgid "Mixin used to delete messages or attachments" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__model_id +msgid "Model" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__model_filter_domain +msgid "Model Filter Domain" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__model +msgid "Model code" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__model_ids +msgid "Models" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__model_ids +msgid "Models concerned by the rule. If left empty, it will take all models into account" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__name +msgid "Name" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__retention_time +msgid "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." +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__retention_time +msgid "Retention Time" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_vacuum_rule +msgid "Rules Used to delete message historic" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__message_subtype_ids +msgid "Subtypes" +msgstr "" + +#. module: autovacuum_message_attachment +#: selection:vacuum.rule,message_type:0 +msgid "System notification" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__empty_subtype +msgid "Take also into account messages with no subtypes" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__model_id +msgid "Technical field used to set attributes (invisible/required, domain, etc...for other fields, like the domain filter" +msgstr "" + +#. module: autovacuum_message_attachment +#: code:addons/autovacuum_message_attachment/models/vacuum_rule.py:77 +#, python-format +msgid "The Retention Time can't be 0 days" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__ttype +msgid "Type" +msgstr "" + diff --git a/autovacuum_message_attachment/i18n/fr.po b/autovacuum_message_attachment/i18n/fr.po index 095986ef9..93d8cbb50 100644 --- a/autovacuum_message_attachment/i18n/fr.po +++ b/autovacuum_message_attachment/i18n/fr.po @@ -16,90 +16,458 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: autovacuum_mail_message -#: selection:message.vacuum.rule,message_type:0 +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__active +msgid "Active" +msgstr "" + +#. module: autovacuum_message_attachment +#: selection:vacuum.rule,message_type:0 msgid "All" msgstr "Tous" -#. module: autovacuum_mail_message -#: selection:message.vacuum.rule,message_type:0 +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_ir_attachment +#: selection:vacuum.rule,ttype:0 +msgid "Attachment" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field__unknown__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_abstract_conditional_image__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_abstract_config_settings__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_abstract_payment__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_account__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_account_tag__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_account_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_account_type__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_account__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_distribution__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_group__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_analytic_tag__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_cashbox__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_closebalance__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_import__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_import_journal_creation__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_bank_statement_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_cash_rounding__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_cashbox_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_chart_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_common_journal_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_common_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_financial_year_op__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_account__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_account_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_tax__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_tax_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_position_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_fiscal_year__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_full_reconcile__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_group__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_incoterms__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_confirm__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_refund__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_send__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_invoice_tax__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_journal__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_move__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_move_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_move_reversal__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_partial_reconcile__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_payment__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_payment_method__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_payment_term__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_payment_term_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_print_journal__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_reconcile_model__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_reconcile_model_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_reconciliation_widget__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_register_payments__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_setup_bank_manual_config__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_tax__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_tax_group__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_tax_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_account_unreconcile__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_attachment_queue__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_autovacuum__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_http_request__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_http_session__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_log__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_log_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_auditlog_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_autovacuum_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_exception__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_exception_method__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_import__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_mapping__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_noreadonly__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_readonly__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_required__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_states__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_char_stillreadonly__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_complex__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_float__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_m2o__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_m2o_related__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_m2o_required__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_m2o_required_related__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_o2m__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_o2m_child__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_import_tests_models_preview__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_kanban_abstract__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_kanban_stage__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_language_export__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_language_import__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_language_install__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_module_uninstall__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_module_update__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_module_upgrade__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_partner_merge_automatic_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_partner_merge_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_base_update_translations__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_bus_bus__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_bus_presence__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_cash_box_in__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_cash_box_out__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_change_password_user__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_change_password_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_company_country_config_settings__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_crm_team__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_option__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_property__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_custom_info_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_db_backup__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_decimal_precision__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_decimal_precision_test__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_digest_digest__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_digest_tip__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_exception_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_exception_rule_confirm__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_fetchmail_server__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_format_address_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_iap_account__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_image__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_act_url__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_act_window__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_act_window_close__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_act_window_view__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_actions__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_client__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_server__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_actions_todo__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_attachment__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_autovacuum__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_config_parameter__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_cron__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_default__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_demo__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_demo_failure__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_demo_failure_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_exports__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_exports_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_fields_converter__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_filters__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_http__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_logging__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_mail_server__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_access__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_constraint__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_data__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_fields__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_model_relation__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_author__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_module__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_module_dependency__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_module_exclusion__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_type__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_module_type_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_property__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_barcode__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_contact__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_date__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_datetime__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_duration__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_float__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_float_time__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_html__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_image__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_integer__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_many2many__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_many2one__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_monetary__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_qweb__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_relative__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_selection__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_qweb_field_text__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_sequence__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_sequence_date_range__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_server_object_lines__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_translation__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_ui_menu__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_ui_view__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_ir_ui_view_custom__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_activity__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_activity_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_activity_type__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_alias__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_alias_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_blacklist__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_blacklist_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_bot__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_channel__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_channel_partner__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_followers__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_mail__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_message_subtype__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_moderation__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_notification__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_resend_cancel__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_resend_message__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_resend_partner__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_shortcode__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test_activity__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test_full__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test_simple__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_test_track__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_thread__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_tracking_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_mail_wizard_invite__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_acquirer__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_acquirer_onboarding_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_icon__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_token__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_payment_transaction__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_portal_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_portal_share__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_portal_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_portal_wizard_user__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_attribute__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_attribute_custom_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_attribute_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_packaging__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_price_history__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_price_list__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_pricelist__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_pricelist_item__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_product__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_supplierinfo__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_template_attribute_exclusion__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_template_attribute_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_product_template_attribute_value__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_publisher_warranty_contract__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_account_report_agedpartnerbalance__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_account_report_invoice_with_payments__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_account_report_journal__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_all_channels_sales__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_base_report_irmodulereference__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_layout__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_paperformat__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_product_report_pricelist__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_report_sale_report_saleproforma__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_bank__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_company__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_config__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_config_installer__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_config_settings__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_country__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_country_group__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_country_state__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_currency__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_currency_rate__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_groups__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_lang__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_autocomplete_sync__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_bank__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_industry__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_partner_title__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_remote__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_users__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_res_users_log__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_advance_payment_inv__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_option__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_template__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_template_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_order_template_option__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_payment_acquirer_onboarding_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_product_configurator__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sale_report__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sequence_standard_default__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sms_api__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sms_send_sms__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_snailmail_letter__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sql_export__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sql_file_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_sql_request_mixin__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_tax_adjustments_wizard__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_test_performance_base__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_test_performance_line__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_test_performance_mail__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_test_performance_tag__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_trgm_index__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_uom_category__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_uom_uom__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_validate_account_move__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_web_editor_converter_test_sub__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_web_tour_tour__attachment_ids +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_wizard_ir_model_menu_create__attachment_ids +msgid "Attachments" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.actions.server,name:autovacuum_message_attachment.ir_cron_vacuum_attachment_ir_actions_server +#: model:ir.cron,cron_name:autovacuum_message_attachment.ir_cron_vacuum_attachment +#: model:ir.cron,name:autovacuum_message_attachment.ir_cron_vacuum_attachment +msgid "AutoVacuum Attachments" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.actions.server,name:autovacuum_message_attachment.ir_cron_vacuum_message_ir_actions_server +#: model:ir.cron,cron_name:autovacuum_message_attachment.ir_cron_vacuum_message +#: model:ir.cron,name:autovacuum_message_attachment.ir_cron_vacuum_message +msgid "AutoVacuum Mails and Messages" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_base +msgid "Base" +msgstr "" + +#. module: autovacuum_message_attachment +#: selection:vacuum.rule,message_type:0 msgid "Comment" msgstr "Commentaires" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_company_id +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__company_id msgid "Company" msgstr "Société" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_create_uid +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__create_uid msgid "Created by" msgstr "Créé par" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_create_date +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__create_date msgid "Created on" msgstr "Créé le" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_display_name +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__description +#: model_terms:ir.ui.view,arch_db:autovacuum_message_attachment.vacuum_rule_form_view +msgid "Description" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_autovacuum_mixin__display_name +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__display_name msgid "Display Name" msgstr "Nom à afficher" -#. module: autovacuum_mail_message -#: selection:message.vacuum.rule,message_type:0 +#. module: autovacuum_message_attachment +#: selection:vacuum.rule,message_type:0 msgid "Email" msgstr "Email" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_empty_subtype -msgid "Empty subtype" +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__empty_subtype +#, fuzzy +msgid "Empty Subtype" msgstr "Sous-type Vide" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_id +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__filename_pattern +msgid "Filename Pattern" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_autovacuum_mixin__id +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__id msgid "ID" msgstr "ID" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule___last_update +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__filename_pattern +msgid "If set, only attachments containing this pattern will be deleted." +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_autovacuum_mixin____last_update +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule____last_update msgid "Last Modified on" msgstr "Dernière modification le" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_write_uid +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__write_uid msgid "Last Updated by" msgstr "Dernière modification par" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_write_date +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__write_date msgid "Last Updated on" msgstr "Dernière mise à jour le" -#. module: autovacuum_mail_message -#: model:ir.model,name:autovacuum_mail_message.model_mail_message +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_mail_message +#: selection:vacuum.rule,ttype:0 msgid "Message" msgstr "Message" -#. module: autovacuum_mail_message -#: model:ir.ui.view,arch_db:autovacuum_mail_message.message_vacuum_rule_form_view +#. module: autovacuum_message_attachment +#: model_terms:ir.ui.view,arch_db:autovacuum_message_attachment.vacuum_rule_form_view msgid "Message Models" msgstr "Documents des messages" -#. module: autovacuum_mail_message -#: model:ir.ui.view,arch_db:autovacuum_mail_message.message_vacuum_rule_form_view +#. module: autovacuum_message_attachment +#: model_terms:ir.ui.view,arch_db:autovacuum_message_attachment.vacuum_rule_form_view msgid "Message Subtypes" msgstr "Sous-types des messages" -#. module: autovacuum_mail_message -#: model:ir.actions.act_window,name:autovacuum_mail_message.action_message_vacuum_rule -#: model:ir.ui.menu,name:autovacuum_mail_message.menu_action_message_vacuum_rule -#: model:ir.ui.view,arch_db:autovacuum_mail_message.message_vacuum_rule_form_view +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__message_type +#, fuzzy +msgid "Message Type" +msgstr "Type de message" + +#. module: autovacuum_message_attachment +#: model_terms:ir.ui.view,arch_db:autovacuum_message_attachment.vacuum_rule_form_view msgid "Message Vacuum Rule" msgstr "Règle de supression des messages" -#. module: autovacuum_mail_message -#: model:ir.model.fields,help:autovacuum_mail_message.field_message_vacuum_rule_message_subtype_ids +#. module: autovacuum_message_attachment +#: model:ir.actions.act_window,name:autovacuum_message_attachment.action_vacuum_rule +#: model:ir.ui.menu,name:autovacuum_message_attachment.menu_action_vacuum_rule +#, fuzzy +msgid "Message and Attachment Vacuum Rule" +msgstr "Règle de supression des messages" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__message_subtype_ids msgid "" "Message subtypes concerned by the rule. If left empty, the system won't take " "the subtype into account to find the messages to delete" @@ -108,18 +476,36 @@ msgstr "" "système ne prendra pas en compte les sous type pour trouver les messages à " "supprimer" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_message_type -msgid "Message type" -msgstr "Type de message" +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_autovacuum_mixin +#, fuzzy +msgid "Mixin used to delete messages or attachments" +msgstr "Règle de supression automatique de message" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_model_ids +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__model_id +#, fuzzy +msgid "Model" +msgstr "Documents" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__model_filter_domain +msgid "Model Filter Domain" +msgstr "" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__model +#, fuzzy +msgid "Model code" +msgstr "Documents" + +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__model_ids msgid "Models" msgstr "Documents" -#. module: autovacuum_mail_message -#: model:ir.model.fields,help:autovacuum_mail_message.field_message_vacuum_rule_model_ids +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__model_ids msgid "" "Models concerned by the rule. If left empty, it will take all models into " "account" @@ -127,13 +513,13 @@ msgstr "" "Documents concernés par la règle. Si c'est laissé vide, les messages de tous " "les modèles seront pris en compte" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_name +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__name msgid "Name" msgstr "Nom" -#. module: autovacuum_mail_message -#: model:ir.model.fields,help:autovacuum_mail_message.field_message_vacuum_rule_retention_time +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__retention_time msgid "" "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 " @@ -142,37 +528,50 @@ msgstr "" "Nombre de jour de rétention des messages concerné par la règle. Une fois ce " "délai passé, les messages sont automatiquement supprimés" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_retention_time -msgid "Retention time" +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__retention_time +#, fuzzy +msgid "Retention Time" msgstr "Temps de rétention" -#. module: autovacuum_mail_message -#: model:ir.model,name:autovacuum_mail_message.model_message_vacuum_rule +#. module: autovacuum_message_attachment +#: model:ir.model,name:autovacuum_message_attachment.model_vacuum_rule msgid "Rules Used to delete message historic" msgstr "Règle de supression automatique de message" -#. module: autovacuum_mail_message -#: model:ir.model.fields,field_description:autovacuum_mail_message.field_message_vacuum_rule_message_subtype_ids +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__message_subtype_ids msgid "Subtypes" msgstr "Sous-types" -#. module: autovacuum_mail_message -#: selection:message.vacuum.rule,message_type:0 +#. module: autovacuum_message_attachment +#: selection:vacuum.rule,message_type:0 msgid "System notification" msgstr "Notification Système" -#. module: autovacuum_mail_message -#: model:ir.model.fields,help:autovacuum_mail_message.field_message_vacuum_rule_empty_subtype +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__empty_subtype msgid "Take also into account messages with no subtypes" msgstr "Prend également en compte les messages sans aucun sous-type" -#. module: autovacuum_mail_message -#: code:addons/autovacuum_mail_message/models/message_vacuum_rule.py:48 +#. module: autovacuum_message_attachment +#: model:ir.model.fields,help:autovacuum_message_attachment.field_vacuum_rule__model_id +msgid "" +"Technical field used to set attributes (invisible/required, domain, etc..." +"for other fields, like the domain filter" +msgstr "" + +#. module: autovacuum_message_attachment +#: code:addons/autovacuum_message_attachment/models/vacuum_rule.py:77 #, python-format msgid "The Retention Time can't be 0 days" msgstr "Le temps de retention ne peut pas être de 0 jours." +#. module: autovacuum_message_attachment +#: model:ir.model.fields,field_description:autovacuum_message_attachment.field_vacuum_rule__ttype +msgid "Type" +msgstr "" + #~ msgid "Companies" #~ msgstr "Sociétés" diff --git a/autovacuum_message_attachment/models/__init__.py b/autovacuum_message_attachment/models/__init__.py index 32b44bd3c..1093858b6 100644 --- a/autovacuum_message_attachment/models/__init__.py +++ b/autovacuum_message_attachment/models/__init__.py @@ -2,3 +2,4 @@ from . import autovacuum_mixin from . import ir_attachment from . import mail_message from . import vacuum_rule +from . import base diff --git a/autovacuum_message_attachment/models/autovacuum_mixin.py b/autovacuum_message_attachment/models/autovacuum_mixin.py index 6fe0f756e..ac4c6425c 100644 --- a/autovacuum_message_attachment/models/autovacuum_mixin.py +++ b/autovacuum_message_attachment/models/autovacuum_mixin.py @@ -5,6 +5,8 @@ import logging import odoo from odoo import api, models +from odoo.tools.safe_eval import safe_eval +import datetime _logger = logging.getLogger(__name__) @@ -40,6 +42,30 @@ class AutovacuumMixin(models.AbstractModel): def autovacuum(self, ttype='message'): rules = self.env['vacuum.rule'].search([('ttype', '=', ttype)]) for rule in rules: - domain = rule.get_domain() - records = self.search(domain) + records = rule._search_autovacuum_records() records.batch_unlink() + + def _get_autovacuum_domain(self, rule): + return [] + + def _get_autovacuum_records(self, rule): + if rule.model_id and rule.model_filter_domain: + return self._get_autovacuum_records_model(rule) + return self.search(self._get_autovacuum_domain(rule)) + + def _get_autovacuum_records_model(self, rule): + domain = self._get_autovacuum_domain(rule) + record_domain = safe_eval(rule.model_filter_domain, + locals_dict={'datetime': datetime}) + autovacuum_relation = self._autovacuum_relation + for leaf in domain: + if not isinstance(leaf, (tuple, list)): + record_domain.append(leaf) + continue + field, operator, value = leaf + record_domain.append( + ('%s.%s' % (autovacuum_relation, field), operator, value)) + records = self.env[rule.model_id.model].search(record_domain) + return self.search( + domain + [('res_id', 'in', records.ids)] + ) diff --git a/autovacuum_message_attachment/models/base.py b/autovacuum_message_attachment/models/base.py new file mode 100644 index 000000000..727ef9d2a --- /dev/null +++ b/autovacuum_message_attachment/models/base.py @@ -0,0 +1,13 @@ +# Copyright (C) 2019 Akretion +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from odoo import fields, models + + +class Base(models.AbstractModel): + _inherit = "base" + + attachment_ids = fields.One2many( + 'ir.attachment', 'res_id', string='Attachments', + domain=lambda self: [('res_model', '=', self._name)], auto_join=True + ) diff --git a/autovacuum_message_attachment/models/ir_attachment.py b/autovacuum_message_attachment/models/ir_attachment.py index c12cac548..20e343ca2 100644 --- a/autovacuum_message_attachment/models/ir_attachment.py +++ b/autovacuum_message_attachment/models/ir_attachment.py @@ -1,9 +1,27 @@ # Copyright (C) 2018 Akretion # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). -from odoo import models +from odoo import fields, models +from datetime import timedelta class IrAttachment(models.Model): _name = "ir.attachment" _inherit = ["ir.attachment", "autovacuum.mixin"] + _autovacuum_relation = 'attachment_ids' + + def _get_autovacuum_domain(self, rule): + domain = super()._get_autovacuum_domain(rule) + today = fields.Datetime.now() + limit_date = today - timedelta(days=rule.retention_time) + domain += [('create_date', '<', limit_date)] + if rule.filename_pattern: + domain += [('name', 'ilike', rule.filename_pattern)] + if rule.model_ids: + models = rule.model_ids.mapped('model') + domain += [('res_model', 'in', models)] + else: + # Avoid deleting attachment without model, if there are, it is + # probably some attachments created by Odoo + domain += [('res_model', '!=', False)] + return domain diff --git a/autovacuum_message_attachment/models/mail_message.py b/autovacuum_message_attachment/models/mail_message.py index 33825d90e..4940aad8c 100644 --- a/autovacuum_message_attachment/models/mail_message.py +++ b/autovacuum_message_attachment/models/mail_message.py @@ -1,10 +1,32 @@ -# -*- coding: utf-8 -*- # Copyright (C) 2018 Akretion # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). -from odoo import models +from odoo import fields, models +from datetime import timedelta class MailMessage(models.Model): _name = "mail.message" _inherit = ["mail.message", "autovacuum.mixin"] + _autovacuum_relation = 'message_ids' + + def _get_autovacuum_domain(self, rule): + domain = super()._get_autovacuum_domain(rule) + today = fields.Datetime.now() + limit_date = today - timedelta(days=rule.retention_time) + domain += [('date', '<', limit_date)] + if rule.message_type != 'all': + domain += [('message_type', '=', rule.message_type)] + if rule.model_ids: + models = rule.model_ids.mapped('model') + domain += [('model', 'in', models)] + subtype_ids = rule.message_subtype_ids.ids + if subtype_ids and rule.empty_subtype: + domain = [ + '|', ('subtype_id', 'in', subtype_ids), + ('subtype_id', '=', False)] + elif subtype_ids and not rule.empty_subtype: + domain += [('subtype_id', 'in', subtype_ids)] + elif not subtype_ids and not rule.empty_subtype: + domain += [('subtype_id', '!=', False)] + return domain diff --git a/autovacuum_message_attachment/models/vacuum_rule.py b/autovacuum_message_attachment/models/vacuum_rule.py index b662f4288..d3e87dd92 100644 --- a/autovacuum_message_attachment/models/vacuum_rule.py +++ b/autovacuum_message_attachment/models/vacuum_rule.py @@ -1,12 +1,7 @@ # Copyright (C) 2018 Akretion # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). -from datetime import date, timedelta - from odoo import _, api, exceptions, fields, models -from odoo.tools import DEFAULT_SERVER_DATE_FORMAT -from odoo.tools.safe_eval import safe_eval -import datetime class VacuumRule(models.Model): @@ -19,8 +14,10 @@ class VacuumRule(models.Model): for rule in self: if rule.model_ids and len(rule.model_ids) == 1: rule.model_id = rule.model_ids.id + rule.model = rule.model_id.model else: rule.model_id = False + rule.model = False name = fields.Char(required=True) ttype = fields.Selection( @@ -53,6 +50,11 @@ class VacuumRule(models.Model): "domain, etc...for other fields, like the domain filter") model_filter_domain = fields.Text( string='Model Filter Domain') + model = fields.Char( + readonly=True, + compute='_get_model_id', + string='Model code' + ) message_type = fields.Selection([ ('email', 'Email'), ('comment', 'Comment'), @@ -74,61 +76,11 @@ class VacuumRule(models.Model): raise exceptions.ValidationError( _("The Retention Time can't be 0 days")) - @api.multi - def _get_message_domain(self): - today = date.today() - limit_date = (today - timedelta(days=self.retention_time)).strftime( - DEFAULT_SERVER_DATE_FORMAT) - message_domain = [('date', '<', limit_date)] - if self.message_type != 'all': - message_domain += [('message_type', '=', self.message_type)] - if self.model_ids: - models = self.model_ids.mapped('model') - message_domain += [('model', 'in', models)] - - subtype_ids = self.message_subtype_ids.ids - if subtype_ids and self.empty_subtype: - message_domain = ['|', ('subtype_id', 'in', subtype_ids), - ('subtype_id', '=', False)] - elif subtype_ids and not self.empty_subtype: - message_domain += [('subtype_id', 'in', subtype_ids)] - elif not subtype_ids and not self.empty_subtype: - message_domain += [('subtype_id', '!=', False)] - return message_domain - - @api.multi - def _get_attachment_domain(self): - today = date.today() - limit_date = (today - timedelta(days=self.retention_time)).strftime( - DEFAULT_SERVER_DATE_FORMAT) - attachment_domain = [('create_date', '<', limit_date)] - if self.filename_pattern: - attachment_domain += [('name', 'ilike', self.filename_pattern)] - if self.model_ids: - models = self.model_ids.mapped('model') - attachment_domain += [('res_model', 'in', models)] - else: - # Avoid deleting attachment without model, if there are, it is - # probably some attachments created by Odoo - attachment_domain += [('res_model', '!=', False)] - return attachment_domain - - @api.multi - def get_domain(self): + def _search_autovacuum_records(self): self.ensure_one() - domain = [] - if self.ttype == 'message': - domain += self._get_message_domain() - elif self.ttype == 'attachment': - domain += self._get_attachment_domain() - - # Case we want a condition on linked model records - if self.model_id and self.model_filter_domain: - record_domain = safe_eval(self.model_filter_domain, - locals_dict={'datetime': datetime}) - - res_ids = self.env[self.model_id.model].with_context( - active_test=False).search(record_domain).ids - domain += ['|', ('res_id', 'in', res_ids), - ('res_id', '=', False)] - return domain + model = self.ttype + if model == 'message': + model = 'mail.message' + elif model == 'attachment': + model = 'ir.attachment' + return self.env[model]._get_autovacuum_records(self) diff --git a/autovacuum_message_attachment/readme/CONTRIBUTORS.rst b/autovacuum_message_attachment/readme/CONTRIBUTORS.rst index 0bddb053a..8d20627d8 100644 --- a/autovacuum_message_attachment/readme/CONTRIBUTORS.rst +++ b/autovacuum_message_attachment/readme/CONTRIBUTORS.rst @@ -1 +1,2 @@ * Florian da Costa +* Enric Tobella diff --git a/autovacuum_message_attachment/static/description/index.html b/autovacuum_message_attachment/static/description/index.html new file mode 100644 index 000000000..96312af9d --- /dev/null +++ b/autovacuum_message_attachment/static/description/index.html @@ -0,0 +1,440 @@ + + + + + + +AutoVacuum Mail Message and Attachment + + + +
+

AutoVacuum Mail Message and Attachment

+ + +

Beta License: LGPL-3 OCA/server-tools Translate me on Weblate Try me on Runbot

+

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.

+

Table of contents

+ +
+

Configuration

+
    +
  • Go to the menu configuration => Technical => Email => Message And Attachment Vacuum Rules
  • +
  • Add the adequates rules for your company. On each rule, you can indicate the models, type and subtypes for which you want to delete the messages, along with a retention time (in days). Or for attachment, you can specify a substring of the name.
  • +
  • Activate the cron AutoVacuum Mails and Messages and/or AutoVacuum Attachments
  • +
+

It is recommanded to run it frequently and when the system is not very loaded. +(For instance : once a day, during the night.)

+
+
+

Known issues / Roadmap

+

You have to be careful with rules regarding attachment deletion because Odoo find the attachment to delete with their name. +Odoo will find all attachments containing the substring configured on the rule, so you have to be specific enough on the other criterias (concerned models…) to avoid unwanted attachment deletion.

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Akretion
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/server-tools project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/autovacuum_message_attachment/views/rule_vacuum.xml b/autovacuum_message_attachment/views/rule_vacuum.xml index 68194e7b1..578a74392 100644 --- a/autovacuum_message_attachment/views/rule_vacuum.xml +++ b/autovacuum_message_attachment/views/rule_vacuum.xml @@ -8,30 +8,35 @@
- - - - - - - + + + + + + + - - - - - + + + - - + + + + + + + + + + + + + + + + - - - - - - -