Go to Settings > Techinical > Database Structure > Models.
+
Open a model for which attachment deletion should be restricted.
+
Select ‘Restrict Attachment Deletion’, and assign ‘Attachment Deletion Groups’ and/or
+‘Attachment Deletion Users’ as necessary (if no assignment, no one can delete the
+attachments of this model).
+
+
For assigning ‘Attachment Deletion Groups’/’Attachment Deletion Users’ to the model,
+you can alternatively add the model in the ‘Attachment Deletion Models’ tab in the
+respective group/user form.
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.
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.
Go to Settings > Techinical > Database Structure > Models.
+
Go to Settings > Technical > Database Structure > Models.
Open a model for which attachment deletion should be restricted.
Select ‘Restrict Attachment Deletion’, and assign ‘Attachment Deletion Groups’ and/or
‘Attachment Deletion Users’ as necessary (if no assignment, no one can delete the
@@ -397,35 +420,40 @@
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.
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.
From 5b3c742d1c5808718a3033f80f53c0a31ae17846 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Thu, 1 Sep 2022 08:02:29 +0000
Subject: [PATCH 09/65] [ADD] icon.png
---
.../static/description/icon.png | Bin 0 -> 9455 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 attachment_delete_restrict/static/description/icon.png
diff --git a/attachment_delete_restrict/static/description/icon.png b/attachment_delete_restrict/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
From b8ba7f7cf4aeee21f97715e8e02870627e9225a6 Mon Sep 17 00:00:00 2001
From: Ignacio Buioli
Date: Sun, 4 Sep 2022 03:26:16 +0000
Subject: [PATCH 10/65] Added translation using Weblate (Spanish (Argentina))
---
attachment_delete_restrict/i18n/es_AR.po | 263 +++++++++++++++++++++++
1 file changed, 263 insertions(+)
create mode 100644 attachment_delete_restrict/i18n/es_AR.po
diff --git a/attachment_delete_restrict/i18n/es_AR.po b/attachment_delete_restrict/i18n/es_AR.po
new file mode 100644
index 00000000000..3ca8dac423c
--- /dev/null
+++ b/attachment_delete_restrict/i18n/es_AR.po
@@ -0,0 +1,263 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * attachment_delete_restrict
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: es_AR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: attachment_delete_restrict
+#: model:ir.model,name:attachment_delete_restrict.model_res_groups
+msgid "Access Groups"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model,name:attachment_delete_restrict.model_ir_attachment
+msgid "Attachment"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__delete_attachment_group_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__global_delete_attachment_group_ids
+msgid "Attachment Deletion Groups"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__delete_attachment_model_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__delete_attachment_model_ids
+#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.view_groups_form
+#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.view_users_form
+msgid "Attachment Deletion Models"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__delete_attachment_user_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__global_delete_attachment_user_ids
+msgid "Attachment Deletion Users"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.res_config_settings_view_form
+msgid "Authorized Groups:"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.res_config_settings_view_form
+msgid "Authorized Users:"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__changeset_change_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__changeset_change_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__changeset_change_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__changeset_change_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__changeset_change_ids
+msgid "Changeset Changes"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__changeset_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__changeset_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__changeset_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__changeset_ids
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__changeset_ids
+msgid "Changesets"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model,name:attachment_delete_restrict.model_res_config_settings
+msgid "Config Settings"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__count_pending_changeset_changes
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__count_pending_changeset_changes
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__count_pending_changeset_changes
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__count_pending_changeset_changes
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__count_pending_changeset_changes
+msgid "Count Pending Changeset Changes"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__count_pending_changesets
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__count_pending_changesets
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__count_pending_changesets
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__count_pending_changesets
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__count_pending_changesets
+msgid "Count Pending Changesets"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__custom
+#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__res_config_settings__global_restrict_delete_attachment__custom
+msgid "Custom: For each model, selected groups and users can delete them"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,help:attachment_delete_restrict.field_res_config_settings__global_restrict_delete_attachment
+msgid "Define a default value for Attachments Deletion"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__display_name
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__display_name
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__display_name
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__display_name
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__id
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__id
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__id
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__id
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__id
+msgid "ID"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment____last_update
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model____last_update
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings____last_update
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups____last_update
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model,name:attachment_delete_restrict.model_ir_model
+msgid "Models"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__none
+#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__res_config_settings__global_restrict_delete_attachment__none
+msgid "No restriction: All users / groups can delete them"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__owner_custom
+#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__res_config_settings__global_restrict_delete_attachment__owner_custom
+msgid ""
+"Owner + Custom: Creator and admin can delete them + for each model, selected"
+" groups and users can delete them"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__owner
+#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__res_config_settings__global_restrict_delete_attachment__owner
+msgid "Owner: Only creator and admin can delete them"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__restrict_delete_attachment
+msgid "Restrict Attachment Deletion"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__global_restrict_delete_attachment
+msgid "Restrict Delete Attachments"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.res_config_settings_view_form
+msgid "Restrict Deletion on attachment"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.res_config_settings_view_form
+msgid "Select default level of delete restriction on attachments"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__smart_search
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__smart_search
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__smart_search
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__smart_search
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__smart_search
+msgid "Smart Search"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,help:attachment_delete_restrict.field_res_users__delete_attachment_model_ids
+msgid ""
+"The user can delete the attachments related to the models assigned here. In "
+"general settings, 'Restrict Delete Attachment' must be set as 'custom' to "
+"activate this setting."
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,help:attachment_delete_restrict.field_res_config_settings__global_delete_attachment_group_ids
+msgid "The users in the groups selected here can delete all the attachments."
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,help:attachment_delete_restrict.field_ir_model__delete_attachment_group_ids
+msgid ""
+"The users in the groups selected here can delete the attachments related to "
+"this model."
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,help:attachment_delete_restrict.field_res_groups__delete_attachment_model_ids
+msgid ""
+"The users of the group can delete the attachments related to the models "
+"assigned here. In general settings, 'Restrict Delete Attachment' must be set"
+" as 'custom' to activate this setting."
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,help:attachment_delete_restrict.field_res_config_settings__global_delete_attachment_user_ids
+msgid "The users selected here can delete all the attachments"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,help:attachment_delete_restrict.field_ir_model__delete_attachment_user_ids
+msgid ""
+"The users selected here can delete the attachments related to this model."
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__default
+msgid "Use global configuration"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__user_can_see_changeset
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__user_can_see_changeset
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__user_can_see_changeset
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__user_can_see_changeset
+#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__user_can_see_changeset
+msgid "User Can See Changeset"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model,name:attachment_delete_restrict.model_res_users
+msgid "Users"
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: model:ir.model.fields,help:attachment_delete_restrict.field_ir_model__restrict_delete_attachment
+msgid ""
+"When selected, the deletion of the attachments related to this model is "
+"restricted to certain users."
+msgstr ""
+
+#. module: attachment_delete_restrict
+#: code:addons/attachment_delete_restrict/models/ir_attachment.py:0
+#, python-format
+msgid ""
+"You are not allowed to delete this attachment.\n"
+"\n"
+"Users with the delete permission:\n"
+"%s"
+msgstr ""
From aa5c9d26b77427db6c68117aa02446b649e8e86e Mon Sep 17 00:00:00 2001
From: Ignacio Buioli
Date: Sun, 4 Sep 2022 03:39:11 +0000
Subject: [PATCH 11/65] Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (37 of 37 strings)
Translation: server-tools-14.0/server-tools-14.0-attachment_delete_restrict
Translate-URL: https://translation.odoo-community.org/projects/server-tools-14-0/server-tools-14-0-attachment_delete_restrict/es_AR/
---
attachment_delete_restrict/i18n/es_AR.po | 83 ++++++++++++++++--------
1 file changed, 55 insertions(+), 28 deletions(-)
diff --git a/attachment_delete_restrict/i18n/es_AR.po b/attachment_delete_restrict/i18n/es_AR.po
index 3ca8dac423c..350126ff174 100644
--- a/attachment_delete_restrict/i18n/es_AR.po
+++ b/attachment_delete_restrict/i18n/es_AR.po
@@ -6,29 +6,31 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2022-09-04 06:07+0000\n"
+"Last-Translator: Ignacio Buioli \n"
"Language-Team: none\n"
"Language: es_AR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3.2\n"
#. module: attachment_delete_restrict
#: model:ir.model,name:attachment_delete_restrict.model_res_groups
msgid "Access Groups"
-msgstr ""
+msgstr "Grupos de Acceso"
#. module: attachment_delete_restrict
#: model:ir.model,name:attachment_delete_restrict.model_ir_attachment
msgid "Attachment"
-msgstr ""
+msgstr "Adjunto"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__delete_attachment_group_ids
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__global_delete_attachment_group_ids
msgid "Attachment Deletion Groups"
-msgstr ""
+msgstr "Grupos de Eliminación de Adjuntos"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__delete_attachment_model_ids
@@ -36,23 +38,23 @@ msgstr ""
#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.view_groups_form
#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.view_users_form
msgid "Attachment Deletion Models"
-msgstr ""
+msgstr "Modelo de Eliminación de Adjuntos"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__delete_attachment_user_ids
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__global_delete_attachment_user_ids
msgid "Attachment Deletion Users"
-msgstr ""
+msgstr "Usuarios de Eliminación de Adjuntos"
#. module: attachment_delete_restrict
#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.res_config_settings_view_form
msgid "Authorized Groups:"
-msgstr ""
+msgstr "Grupos Autorizados:"
#. module: attachment_delete_restrict
#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.res_config_settings_view_form
msgid "Authorized Users:"
-msgstr ""
+msgstr "Usuarios Autorizados:"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__changeset_change_ids
@@ -61,7 +63,7 @@ msgstr ""
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__changeset_change_ids
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__changeset_change_ids
msgid "Changeset Changes"
-msgstr ""
+msgstr "Cambios del Conjunto de Cambios"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__changeset_ids
@@ -70,12 +72,12 @@ msgstr ""
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__changeset_ids
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__changeset_ids
msgid "Changesets"
-msgstr ""
+msgstr "Conjunto de Cambios"
#. module: attachment_delete_restrict
#: model:ir.model,name:attachment_delete_restrict.model_res_config_settings
msgid "Config Settings"
-msgstr ""
+msgstr "Ajustes Configuración"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__count_pending_changeset_changes
@@ -84,7 +86,7 @@ msgstr ""
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__count_pending_changeset_changes
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
-msgstr ""
+msgstr "Cuenta de los Cambios Pendientes de los Conjuntos de Cambios"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__count_pending_changesets
@@ -93,18 +95,20 @@ msgstr ""
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__count_pending_changesets
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__count_pending_changesets
msgid "Count Pending Changesets"
-msgstr ""
+msgstr "Cuenta de los Conjuntos de Cambios Pendientes"
#. module: attachment_delete_restrict
#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__custom
#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__res_config_settings__global_restrict_delete_attachment__custom
msgid "Custom: For each model, selected groups and users can delete them"
msgstr ""
+"Personalizado: Para cada modelo, los grupos y usuarios seleccionados pueden "
+"eliminarlos"
#. module: attachment_delete_restrict
#: model:ir.model.fields,help:attachment_delete_restrict.field_res_config_settings__global_restrict_delete_attachment
msgid "Define a default value for Attachments Deletion"
-msgstr ""
+msgstr "Define un valor preterminado para la Eliminación de Adjuntos"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__display_name
@@ -113,7 +117,7 @@ msgstr ""
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__display_name
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__display_name
msgid "Display Name"
-msgstr ""
+msgstr "Mostrar Nombre"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__id
@@ -122,7 +126,7 @@ msgstr ""
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__id
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__id
msgid "ID"
-msgstr ""
+msgstr "ID"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment____last_update
@@ -131,18 +135,18 @@ msgstr ""
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups____last_update
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users____last_update
msgid "Last Modified on"
-msgstr ""
+msgstr "Última modificación en"
#. module: attachment_delete_restrict
#: model:ir.model,name:attachment_delete_restrict.model_ir_model
msgid "Models"
-msgstr ""
+msgstr "Modelos"
#. module: attachment_delete_restrict
#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__none
#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__res_config_settings__global_restrict_delete_attachment__none
msgid "No restriction: All users / groups can delete them"
-msgstr ""
+msgstr "No hay resitricción: Todos los usuarios / grupos pueden eliminarlos"
#. module: attachment_delete_restrict
#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__owner_custom
@@ -151,32 +155,36 @@ msgid ""
"Owner + Custom: Creator and admin can delete them + for each model, selected"
" groups and users can delete them"
msgstr ""
+"Propietario + Personalizado: El creador y administrador puede eliminarlos + "
+"para cada modelo, los grupos y usuarios seleccionados pueden eliminarlos"
#. module: attachment_delete_restrict
#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__owner
#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__res_config_settings__global_restrict_delete_attachment__owner
msgid "Owner: Only creator and admin can delete them"
-msgstr ""
+msgstr "Propietario: Solo el creador y el administrador puede eliminarlos"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_model__restrict_delete_attachment
msgid "Restrict Attachment Deletion"
-msgstr ""
+msgstr "Restringir Eliminación de Adjuntos"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_config_settings__global_restrict_delete_attachment
msgid "Restrict Delete Attachments"
-msgstr ""
+msgstr "Restringir Eliminar Adjuntos"
#. module: attachment_delete_restrict
#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.res_config_settings_view_form
msgid "Restrict Deletion on attachment"
-msgstr ""
+msgstr "Restringir la Eliminación en adjunto"
#. module: attachment_delete_restrict
#: model_terms:ir.ui.view,arch_db:attachment_delete_restrict.res_config_settings_view_form
msgid "Select default level of delete restriction on attachments"
msgstr ""
+"Seleccione el nivel predeterminado de restricción de eliminación de archivos "
+"adjuntos"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__smart_search
@@ -185,7 +193,7 @@ msgstr ""
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__smart_search
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__smart_search
msgid "Smart Search"
-msgstr ""
+msgstr "Búsqueda Inteligente"
#. module: attachment_delete_restrict
#: model:ir.model.fields,help:attachment_delete_restrict.field_res_users__delete_attachment_model_ids
@@ -194,11 +202,16 @@ msgid ""
"general settings, 'Restrict Delete Attachment' must be set as 'custom' to "
"activate this setting."
msgstr ""
+"El usuario puede eliminar los archivos adjuntos relacionados con los modelos "
+"asignados aquí. En la configuración general, 'Restringir eliminar adjunto' "
+"debe configurarse como 'Personalizado' para activar esta configuración."
#. module: attachment_delete_restrict
#: model:ir.model.fields,help:attachment_delete_restrict.field_res_config_settings__global_delete_attachment_group_ids
msgid "The users in the groups selected here can delete all the attachments."
msgstr ""
+"Los usuarios en los grupos seleccionados acá pueden eliminar todos los "
+"adjuntos."
#. module: attachment_delete_restrict
#: model:ir.model.fields,help:attachment_delete_restrict.field_ir_model__delete_attachment_group_ids
@@ -206,6 +219,8 @@ msgid ""
"The users in the groups selected here can delete the attachments related to "
"this model."
msgstr ""
+"Los usuarios en los grupos seleccionados acá pueden eliminar los adjuntos "
+"relacionados a este modelo."
#. module: attachment_delete_restrict
#: model:ir.model.fields,help:attachment_delete_restrict.field_res_groups__delete_attachment_model_ids
@@ -214,22 +229,28 @@ msgid ""
"assigned here. In general settings, 'Restrict Delete Attachment' must be set"
" as 'custom' to activate this setting."
msgstr ""
+"Los usuarios del grupo pueden eliminar los archivos adjuntos relacionados "
+"con los modelos asignados acá. En la configuración general, 'Restringir "
+"eliminar adjuntos' debe configurarse como 'Personalizado' para activar esta "
+"configuración."
#. module: attachment_delete_restrict
#: model:ir.model.fields,help:attachment_delete_restrict.field_res_config_settings__global_delete_attachment_user_ids
msgid "The users selected here can delete all the attachments"
-msgstr ""
+msgstr "Los usuarios seleccionados acá pueden eliminar todos los adjuntos"
#. module: attachment_delete_restrict
#: model:ir.model.fields,help:attachment_delete_restrict.field_ir_model__delete_attachment_user_ids
msgid ""
"The users selected here can delete the attachments related to this model."
msgstr ""
+"Los usuarios seleccionados acá pueden eliminar los adjuntos relacionados a "
+"este modelo."
#. module: attachment_delete_restrict
#: model:ir.model.fields.selection,name:attachment_delete_restrict.selection__ir_model__restrict_delete_attachment__default
msgid "Use global configuration"
-msgstr ""
+msgstr "Usar configuración global"
#. module: attachment_delete_restrict
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_ir_attachment__user_can_see_changeset
@@ -238,12 +259,12 @@ msgstr ""
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_groups__user_can_see_changeset
#: model:ir.model.fields,field_description:attachment_delete_restrict.field_res_users__user_can_see_changeset
msgid "User Can See Changeset"
-msgstr ""
+msgstr "El Usuario Puede ver Conjuntos de Cambios"
#. module: attachment_delete_restrict
#: model:ir.model,name:attachment_delete_restrict.model_res_users
msgid "Users"
-msgstr ""
+msgstr "Usuarios"
#. module: attachment_delete_restrict
#: model:ir.model.fields,help:attachment_delete_restrict.field_ir_model__restrict_delete_attachment
@@ -251,6 +272,8 @@ msgid ""
"When selected, the deletion of the attachments related to this model is "
"restricted to certain users."
msgstr ""
+"Cuando se selecciona, la eliminación de los archivos adjuntos relacionados "
+"con este modelo está restringida a ciertos usuarios."
#. module: attachment_delete_restrict
#: code:addons/attachment_delete_restrict/models/ir_attachment.py:0
@@ -261,3 +284,7 @@ msgid ""
"Users with the delete permission:\n"
"%s"
msgstr ""
+"No tiene permitido eliminar este archivo adjunto\n"
+"\n"
+"Usuarios con permisos de eliminación:\n"
+"%s"
From 2ad9eeab06f20fc67a5b1afcd3e5b23aac669ff6 Mon Sep 17 00:00:00 2001
From: Jon
Date: Mon, 13 Feb 2023 16:22:50 +0000
Subject: [PATCH 12/65] [FIX] attachment_delete_restrict: adapt to Odoo
permission change
---
.../tests/test_attachment_delete_restrict.py | 25 +++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/attachment_delete_restrict/tests/test_attachment_delete_restrict.py b/attachment_delete_restrict/tests/test_attachment_delete_restrict.py
index 330c9edb647..d8d0ad2233f 100644
--- a/attachment_delete_restrict/tests/test_attachment_delete_restrict.py
+++ b/attachment_delete_restrict/tests/test_attachment_delete_restrict.py
@@ -72,19 +72,38 @@ def setUpClass(cls):
"attachment_delete_restrict.global_restrict_delete_attachment", "none"
)
cls.partner_model = cls.env["ir.model"].search([("model", "=", "res.partner")])
+ cls.partner_1 = cls.env["res.partner"].create({"name": "partner_1"})
cls.group = cls.env.ref("base.group_user")
cls.user_owner = cls.env["res.users"].create(
{
"name": "test owner user",
"login": "test-owner@example.com",
- "groups_id": [(6, 0, cls.env.ref("base.group_user").ids)],
+ "groups_id": [
+ (
+ 6,
+ 0,
+ (
+ cls.env.ref("base.group_user").id,
+ cls.env.ref("base.group_partner_manager").id,
+ ),
+ )
+ ],
}
)
cls.user = cls.env["res.users"].create(
{
"name": "test user",
"login": "test2@example.com",
- "groups_id": [(6, 0, cls.env.ref("base.group_user").ids)],
+ "groups_id": [
+ (
+ 6,
+ 0,
+ (
+ cls.env.ref("base.group_user").id,
+ cls.env.ref("base.group_partner_manager").id,
+ ),
+ )
+ ],
}
)
cls.user_admin = cls.env["res.users"].create(
@@ -98,6 +117,7 @@ def setUpClass(cls):
(
cls.env.ref("base.group_system").id,
cls.env.ref("base.group_user").id,
+ cls.env.ref("base.group_partner_manager").id,
),
)
],
@@ -111,6 +131,7 @@ def setUpClass(cls):
"name": "test attachment 2",
"type": "binary",
"res_model": "res.partner",
+ "res_id": cls.partner_1.id,
}
)
)
From 58cc53a4a2f13dc179473c04d986751e8b100bb9 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Tue, 14 Feb 2023 08:34:08 +0000
Subject: [PATCH 13/65] attachment_delete_restrict 14.0.1.0.1
---
attachment_delete_restrict/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/attachment_delete_restrict/__manifest__.py b/attachment_delete_restrict/__manifest__.py
index 040eb39a47d..459a7f78125 100644
--- a/attachment_delete_restrict/__manifest__.py
+++ b/attachment_delete_restrict/__manifest__.py
@@ -2,7 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Restrict Deletion of Attachments",
- "version": "14.0.1.0.0",
+ "version": "14.0.1.0.1",
"depends": [
"base",
"base_setup",
From 781997b3b58150f3199582678a0ed8c3e03f2abd Mon Sep 17 00:00:00 2001
From: Aungkokolin1997
Date: Fri, 7 Jul 2023 12:56:33 +0630
Subject: [PATCH 14/65] [MIG] attachment_delete_restrict: Migration to 16.0
---
attachment_delete_restrict/README.rst | 10 ++++----
attachment_delete_restrict/__manifest__.py | 4 ++--
.../migrations/14.0.1.0.0/post-migrate.py | 23 -------------------
.../migrations/14.0.1.0.0/pre-migrate.py | 16 -------------
.../models/ir_attachment.py | 2 +-
.../static/description/index.html | 8 +++----
.../tests/test_attachment_delete_restrict.py | 4 ++--
..._view.xml => res_config_setting_views.xml} | 0
8 files changed, 14 insertions(+), 53 deletions(-)
delete mode 100644 attachment_delete_restrict/migrations/14.0.1.0.0/post-migrate.py
delete mode 100644 attachment_delete_restrict/migrations/14.0.1.0.0/pre-migrate.py
rename attachment_delete_restrict/views/{res_config_view.xml => res_config_setting_views.xml} (100%)
diff --git a/attachment_delete_restrict/README.rst b/attachment_delete_restrict/README.rst
index 20476887e6e..ae91e99c5f1 100644
--- a/attachment_delete_restrict/README.rst
+++ b/attachment_delete_restrict/README.rst
@@ -14,13 +14,13 @@ Restrict Deletion of Attachments
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
- :target: https://github.com/OCA/server-tools/tree/14.0/attachment_delete_restrict
+ :target: https://github.com/OCA/server-tools/tree/16.0/attachment_delete_restrict
: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-14-0/server-tools-14-0-attachment_delete_restrict
+ :target: https://translation.odoo-community.org/projects/server-tools-16-0/server-tools-16-0-attachment_delete_restrict
: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/14.0
+ :target: https://runbot.odoo-community.org/runbot/149/16.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -68,7 +68,7 @@ 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -112,6 +112,6 @@ Current `maintainers `__:
|maintainer-yostashiro| |maintainer-Kev-Roche|
-This module is part of the `OCA/server-tools `_ project on GitHub.
+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/attachment_delete_restrict/__manifest__.py b/attachment_delete_restrict/__manifest__.py
index 459a7f78125..698610f4425 100644
--- a/attachment_delete_restrict/__manifest__.py
+++ b/attachment_delete_restrict/__manifest__.py
@@ -2,7 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Restrict Deletion of Attachments",
- "version": "14.0.1.0.1",
+ "version": "16.0.1.0.0",
"depends": [
"base",
"base_setup",
@@ -16,7 +16,7 @@
"views/ir_model_views.xml",
"views/res_groups_views.xml",
"views/res_users_views.xml",
- "views/res_config_view.xml",
+ "views/res_config_setting_views.xml",
],
"installable": True,
}
diff --git a/attachment_delete_restrict/migrations/14.0.1.0.0/post-migrate.py b/attachment_delete_restrict/migrations/14.0.1.0.0/post-migrate.py
deleted file mode 100644
index 5fe21510d99..00000000000
--- a/attachment_delete_restrict/migrations/14.0.1.0.0/post-migrate.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright (C) 2022 Akretion ().
-# @author Kévin Roche
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-from openupgradelib import openupgrade
-
-from odoo.tools.sql import column_exists
-
-
-@openupgrade.migrate()
-def migrate(env, version):
- if column_exists(env.cr, "ir_model", "migrated_restrict_delete_attachment"):
- query = """
- SELECT id FROM ir_model WHERE migrated_restrict_delete_attachment = True
- """
- env.cr.execute(query)
- results = env.cr.fetchall()
- models = env["ir.model"].search([("id", "in", results)])
- for model in models:
- model.restrict_delete_attachment = "custom"
-
- query2 = "ALTER TABLE ir_model DROP COLUMN migrated_restrict_delete_attachment;"
- env.cr.execute(query2)
diff --git a/attachment_delete_restrict/migrations/14.0.1.0.0/pre-migrate.py b/attachment_delete_restrict/migrations/14.0.1.0.0/pre-migrate.py
deleted file mode 100644
index 61c6e2221bb..00000000000
--- a/attachment_delete_restrict/migrations/14.0.1.0.0/pre-migrate.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright (C) 2022 Akretion ().
-# @author Kévin Roche
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
-
-from odoo.tools.sql import column_exists, rename_column
-
-
-def migrate(cr, version):
- if column_exists(cr, "ir_model", "restrict_delete_attachment"):
- rename_column(
- cr,
- "ir_model",
- "restrict_delete_attachment",
- "migrated_restrict_delete_attachment",
- )
diff --git a/attachment_delete_restrict/models/ir_attachment.py b/attachment_delete_restrict/models/ir_attachment.py
index a3a6d936441..8b8077afec7 100644
--- a/attachment_delete_restrict/models/ir_attachment.py
+++ b/attachment_delete_restrict/models/ir_attachment.py
@@ -66,7 +66,7 @@ def _check_custom_delete_attachment(self, model=None, allow_owner_and_admin=Fals
def unlink(self):
res_models = list(set(self.filtered("res_model").mapped("res_model")))
if res_models:
- models = self.env["ir.model"].search([("model", "in", res_models)])
+ models = self.env["ir.model"].sudo().search([("model", "in", res_models)])
name2models = {m.model: m for m in models}
for rec in self:
if rec.res_model:
diff --git a/attachment_delete_restrict/static/description/index.html b/attachment_delete_restrict/static/description/index.html
index 1b362e77af7..2962e9d7c1e 100644
--- a/attachment_delete_restrict/static/description/index.html
+++ b/attachment_delete_restrict/static/description/index.html
@@ -3,7 +3,7 @@
-
+
Restrict Deletion of Attachments
+
+
+
+
Sequence from Python expression
+
+
+
+
This module allows to generate a sequence by a Python formula expression.
+
Besides common Python functions and operators, it provides several functions
+like ‘random’ and ‘uuid’ in the expression, as well as variables such as the
+next number in the sequence. These are also listed next to the input field
+on the sequence form view.
+
If you want to add more variables for use in the expression, you can extend
+this module.
+
Use cases for this module could be:
+
+
You want to generate alphanumeric numbering
+
You want to apply some math to the number to prevent customers from knowing
+their place in the sequence
Change the default ‘number’ expression to something more fancy.
+
+
Examples:
+
+# To separate the Odoo-generated number with hyphens eg. 0-0-0-0-1
+'-'.join(number_padded)
+
+# To have an UUID as the sequence value
+uuid.uuid4().hex
+
+# To use an 8-digit binary number
+'{0:#010b}'.format(number+300)[2:]
+
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.
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.
+
+
+
+
+
From 28e96522a2186d2fdc25cc2a5cc12c0a778f159d Mon Sep 17 00:00:00 2001
From: Francesco Apruzzese
Date: Thu, 23 Sep 2021 16:55:03 +0200
Subject: [PATCH 25/65] [MIG] sequence_python: Migration to 14.0
---
sequence_python/README.rst | 11 +++++-----
sequence_python/__manifest__.py | 2 +-
sequence_python/i18n/sequence_python.pot | 22 ++++++++++++++++++-
sequence_python/models/ir_sequence.py | 15 +++++++++----
sequence_python/readme/CONTRIBUTORS.rst | 1 +
sequence_python/static/description/index.html | 7 +++---
sequence_python/tests/test_ir_sequence.py | 11 +++++-----
7 files changed, 50 insertions(+), 19 deletions(-)
diff --git a/sequence_python/README.rst b/sequence_python/README.rst
index 51a1cdbd471..ae63ee5e916 100644
--- a/sequence_python/README.rst
+++ b/sequence_python/README.rst
@@ -14,13 +14,13 @@ Sequence from Python expression
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
- :target: https://github.com/OCA/server-tools/tree/13.0/sequence_python
+ :target: https://github.com/OCA/server-tools/tree/14.0/sequence_python
: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-13-0/server-tools-13-0-sequence_python
+ :target: https://translation.odoo-community.org/projects/server-tools-14-0/server-tools-14-0-sequence_python
: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/13.0
+ :target: https://runbot.odoo-community.org/runbot/149/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -78,7 +78,7 @@ 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -94,6 +94,7 @@ Contributors
~~~~~~~~~~~~
* Tom Blauwendraat
+* Francesco Apruzzese
Maintainers
~~~~~~~~~~~
@@ -108,6 +109,6 @@ 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.
+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/sequence_python/__manifest__.py b/sequence_python/__manifest__.py
index 9b6b1eeb83e..0365689a90d 100644
--- a/sequence_python/__manifest__.py
+++ b/sequence_python/__manifest__.py
@@ -5,7 +5,7 @@
"summary": """Calculate a sequence number from a Python expression""",
"author": "Sunflower IT,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/server-tools",
- "version": "13.0.1.0.0",
+ "version": "14.0.1.0.0",
"license": "AGPL-3",
"category": "Generic Modules",
"depends": ["base"],
diff --git a/sequence_python/i18n/sequence_python.pot b/sequence_python/i18n/sequence_python.pot
index 87cb2ef655e..38107f936f4 100644
--- a/sequence_python/i18n/sequence_python.pot
+++ b/sequence_python/i18n/sequence_python.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 13.0\n"
+"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -55,11 +55,26 @@ msgstr ""
msgid "Aside from this, you may use several"
msgstr ""
+#. module: sequence_python
+#: model:ir.model.fields,field_description:sequence_python.field_ir_sequence__display_name
+msgid "Display Name"
+msgstr ""
+
#. module: sequence_python
#: model_terms:ir.ui.view,arch_db:sequence_python.sequence_view
msgid "Help with Python expressions"
msgstr ""
+#. module: sequence_python
+#: model:ir.model.fields,field_description:sequence_python.field_ir_sequence__id
+msgid "ID"
+msgstr ""
+
+#. module: sequence_python
+#: model:ir.model.fields,field_description:sequence_python.field_ir_sequence____last_update
+msgid "Last Modified on"
+msgstr ""
+
#. module: sequence_python
#: model:ir.model.fields,field_description:sequence_python.field_ir_sequence__python_code_preview
msgid "Preview"
@@ -80,6 +95,11 @@ msgstr ""
msgid "Sequence"
msgstr ""
+#. module: sequence_python
+#: model:ir.model.fields,field_description:sequence_python.field_ir_sequence__smart_search
+msgid "Smart Search"
+msgstr ""
+
#. module: sequence_python
#: model_terms:ir.ui.view,arch_db:sequence_python.sequence_view
msgid ""
diff --git a/sequence_python/models/ir_sequence.py b/sequence_python/models/ir_sequence.py
index 7c1535e7b00..4da75f9fc38 100644
--- a/sequence_python/models/ir_sequence.py
+++ b/sequence_python/models/ir_sequence.py
@@ -4,9 +4,10 @@
import random
import string
import uuid
+from inspect import getmembers, isclass, isfunction
from odoo import fields, models
-from odoo.tools import safe_eval
+from odoo.tools.safe_eval import safe_eval, wrap_module
_logger = logging.getLogger(__name__)
@@ -40,13 +41,19 @@ def _get_python_eval_context(self, number_next):
You can inherit this in your custom module.
:return: tuple
"""
+ wrap_random = wrap_module(random, random.__all__)
+ uuid_elements = [e[0] for e in getmembers(uuid, isfunction)] + [
+ e[0] for e in getmembers(uuid, isclass)
+ ]
+ wrap_uuid = wrap_module(uuid, uuid_elements)
+ wrap_string = wrap_module(string, string.__all__)
return {
"number": number_next[0] if isinstance(number_next, tuple) else number_next,
"number_padded": "%%0%sd" % self.padding % number_next,
"sequence": self,
- "random": random,
- "uuid": uuid,
- "string": string,
+ "random": wrap_random,
+ "uuid": wrap_uuid,
+ "string": wrap_string,
}
def _get_python_value(self, number_next):
diff --git a/sequence_python/readme/CONTRIBUTORS.rst b/sequence_python/readme/CONTRIBUTORS.rst
index 68c0876aa4b..fa027040f9c 100644
--- a/sequence_python/readme/CONTRIBUTORS.rst
+++ b/sequence_python/readme/CONTRIBUTORS.rst
@@ -1 +1,2 @@
* Tom Blauwendraat
+* Francesco Apruzzese
diff --git a/sequence_python/static/description/index.html b/sequence_python/static/description/index.html
index ce598bd4d49..64b6758cd76 100644
--- a/sequence_python/static/description/index.html
+++ b/sequence_python/static/description/index.html
@@ -367,7 +367,7 @@
Sequence from Python expression
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allows to generate a sequence by a Python formula expression.
Besides common Python functions and operators, it provides several functions
like ‘random’ and ‘uuid’ in the expression, as well as variables such as the
@@ -422,7 +422,7 @@
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.
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.
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 to smash it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
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.
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 to smash it by providing a detailed and welcomed
-feedback.
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.
From baff1f130b40f3169ff9744814dbd48feb32901f Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Fri, 27 Dec 2024 09:22:18 +0000
Subject: [PATCH 38/65] [UPD] Update odoo_test_xmlrunner.pot
---
odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot
diff --git a/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot b/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot
new file mode 100644
index 00000000000..78d58d53fe0
--- /dev/null
+++ b/odoo_test_xmlrunner/i18n/odoo_test_xmlrunner.pot
@@ -0,0 +1,13 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.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"
From b2543664dfd532961840aba5f89a9e052b3d7901 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 27 Dec 2024 09:30:37 +0000
Subject: [PATCH 39/65] [BOT] post-merge updates
---
odoo_test_xmlrunner/static/description/icon.png | Bin 0 -> 9455 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 odoo_test_xmlrunner/static/description/icon.png
diff --git a/odoo_test_xmlrunner/static/description/icon.png b/odoo_test_xmlrunner/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp
zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zls4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6#
z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f#
zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC
zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv!
zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG
z-wfS
zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9
z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE#
z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz
zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t
z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN
zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q
ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k
zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG
z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff
z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1
zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO
zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$
zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV(
z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb
zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4
z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{
zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx}
z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov
zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22
zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq
zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t<
z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k
z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp
z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{}
zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
From 398280c0a22a20f459acfe11c7b4ea0ec32a603e Mon Sep 17 00:00:00 2001
From: Sylvain LE GAL
Date: Wed, 8 Jan 2025 23:24:59 +0100
Subject: [PATCH 40/65] [FIX] odoo_test_xmlrunner: set auto_install to False. -
It doesn't make sense to make this module auto installable. - As the module
depends only on 'base' AND introduces a new external dependency to an extra
library (unittest-xml-reporting) all the instances that are cloning
server-tools repo will have trouble, because it will not be possible to
install this module, due to missing dependency
---
odoo_test_xmlrunner/README.rst | 8 ++++----
odoo_test_xmlrunner/__manifest__.py | 1 -
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst
index e4bd556217d..b3d6961392d 100644
--- a/odoo_test_xmlrunner/README.rst
+++ b/odoo_test_xmlrunner/README.rst
@@ -179,13 +179,13 @@ Authors
Other credits
-------------
-- `Smile `__:
+- `Smile `__:
- - Martin Deconinck martin.deconinck@smile.fr
+ - Martin Deconinck martin.deconinck@smile.fr
-- `Akretion `__:
+- `Akretion `__:
- - Florian Mounier florian.mounier@akretion.com
+ - Florian Mounier florian.mounier@akretion.com
Maintainers
-----------
diff --git a/odoo_test_xmlrunner/__manifest__.py b/odoo_test_xmlrunner/__manifest__.py
index 3425fb207e5..09358b62e11 100644
--- a/odoo_test_xmlrunner/__manifest__.py
+++ b/odoo_test_xmlrunner/__manifest__.py
@@ -10,7 +10,6 @@
"website": "https://github.com/OCA/server-tools",
"category": "Tools",
"sequence": 20,
- "auto_install": True,
"installable": True,
"application": False,
"external_dependencies": {
From d368d934fc41dc95dabec49c4c81a94eb9fe33b0 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Wed, 8 Jan 2025 22:34:38 +0000
Subject: [PATCH 41/65] [BOT] post-merge updates
---
odoo_test_xmlrunner/README.rst | 10 +++++-----
odoo_test_xmlrunner/__manifest__.py | 2 +-
odoo_test_xmlrunner/static/description/index.html | 2 +-
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst
index b3d6961392d..4dc21559332 100644
--- a/odoo_test_xmlrunner/README.rst
+++ b/odoo_test_xmlrunner/README.rst
@@ -7,7 +7,7 @@ Unittest xUnit reports
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:c168ead1259f832fbcdbe238c9bd5a9eb692d3e0c712130ab2103e4a2dcba36b
+ !! source digest: sha256:dc5901a41067fac6a375c2ba99ceaf485afc9273c2248b73255cc1b99e6fddcf
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -179,13 +179,13 @@ Authors
Other credits
-------------
-- `Smile `__:
+- `Smile `__:
- - Martin Deconinck martin.deconinck@smile.fr
+ - Martin Deconinck martin.deconinck@smile.fr
-- `Akretion `__:
+- `Akretion `__:
- - Florian Mounier florian.mounier@akretion.com
+ - Florian Mounier florian.mounier@akretion.com
Maintainers
-----------
diff --git a/odoo_test_xmlrunner/__manifest__.py b/odoo_test_xmlrunner/__manifest__.py
index 09358b62e11..88569e6be15 100644
--- a/odoo_test_xmlrunner/__manifest__.py
+++ b/odoo_test_xmlrunner/__manifest__.py
@@ -1,6 +1,6 @@
{
"name": "Unittest xUnit reports",
- "version": "16.0.1.0.0",
+ "version": "16.0.1.0.1",
"depends": ["base"],
"author": "Smile, Odoo Community Association (OCA)",
"license": "AGPL-3",
diff --git a/odoo_test_xmlrunner/static/description/index.html b/odoo_test_xmlrunner/static/description/index.html
index c71e686f9ed..f2d8d581973 100644
--- a/odoo_test_xmlrunner/static/description/index.html
+++ b/odoo_test_xmlrunner/static/description/index.html
@@ -367,7 +367,7 @@
Unittest xUnit reports
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:c168ead1259f832fbcdbe238c9bd5a9eb692d3e0c712130ab2103e4a2dcba36b
+!! source digest: sha256:dc5901a41067fac6a375c2ba99ceaf485afc9273c2248b73255cc1b99e6fddcf
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
This module generate unittest reports using unittest-xml-reporting tool.
From 0b103b7f1a921087bba1c6434186ebf0c058db3d Mon Sep 17 00:00:00 2001
From: mymage
Date: Fri, 10 Jan 2025 12:29:52 +0000
Subject: [PATCH 42/65] Added translation using Weblate (Italian)
---
odoo_test_xmlrunner/i18n/it.po | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 odoo_test_xmlrunner/i18n/it.po
diff --git a/odoo_test_xmlrunner/i18n/it.po b/odoo_test_xmlrunner/i18n/it.po
new file mode 100644
index 00000000000..73388557f6d
--- /dev/null
+++ b/odoo_test_xmlrunner/i18n/it.po
@@ -0,0 +1,14 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
From f9de3deb8fab9734ab0369cd0e63ff3e43867cef Mon Sep 17 00:00:00 2001
From: Florian Mounier
Date: Tue, 30 Sep 2025 14:51:17 +0200
Subject: [PATCH 43/65] [IMP] odoo_test_xmlrunner: pre-commit auto fixes
---
requirements.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/requirements.txt b/requirements.txt
index c7931f3cd0d..f12f1f9f201 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,3 +8,4 @@ openupgradelib
paramiko<4.0.0
pysftp
sentry_sdk>=2.0.0,<=2.22.0
+unittest-xml-reporting
From 3316296d93fd9baad25b8423ea6c68b3035342ad Mon Sep 17 00:00:00 2001
From: Florian Mounier
Date: Tue, 30 Sep 2025 15:18:45 +0200
Subject: [PATCH 44/65] [MIG] odoo_test_xmlrunner: Migration to 18.0
---
odoo_test_xmlrunner/README.rst | 10 +++++-----
odoo_test_xmlrunner/__manifest__.py | 2 +-
odoo_test_xmlrunner/static/description/index.html | 6 +++---
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/odoo_test_xmlrunner/README.rst b/odoo_test_xmlrunner/README.rst
index 4dc21559332..c3bef9dafd2 100644
--- a/odoo_test_xmlrunner/README.rst
+++ b/odoo_test_xmlrunner/README.rst
@@ -17,13 +17,13 @@ Unittest xUnit reports
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
- :target: https://github.com/OCA/server-tools/tree/16.0/odoo_test_xmlrunner
+ :target: https://github.com/OCA/server-tools/tree/18.0/odoo_test_xmlrunner
: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-16-0/server-tools-16-0-odoo_test_xmlrunner
+ :target: https://translation.odoo-community.org/projects/server-tools-18-0/server-tools-18-0-odoo_test_xmlrunner
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
- :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=16.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -164,7 +164,7 @@ 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 to smash it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -200,6 +200,6 @@ 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.
+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/odoo_test_xmlrunner/__manifest__.py b/odoo_test_xmlrunner/__manifest__.py
index 88569e6be15..395b79fc803 100644
--- a/odoo_test_xmlrunner/__manifest__.py
+++ b/odoo_test_xmlrunner/__manifest__.py
@@ -1,6 +1,6 @@
{
"name": "Unittest xUnit reports",
- "version": "16.0.1.0.1",
+ "version": "18.0.1.0.0",
"depends": ["base"],
"author": "Smile, Odoo Community Association (OCA)",
"license": "AGPL-3",
diff --git a/odoo_test_xmlrunner/static/description/index.html b/odoo_test_xmlrunner/static/description/index.html
index f2d8d581973..cb3de94c822 100644
--- a/odoo_test_xmlrunner/static/description/index.html
+++ b/odoo_test_xmlrunner/static/description/index.html
@@ -369,7 +369,7 @@
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 to smash it by providing a detailed and welcomed
-feedback.
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.
From 54cd4649ea53ccc08c2bd03bb9585c1f19ec46d9 Mon Sep 17 00:00:00 2001
From: Florian Mounier
Date: Tue, 30 Sep 2025 15:19:40 +0200
Subject: [PATCH 45/65] [FIX] odoo_test_xmlrunner: Import odoo tests only in
test mode
This removes the new warning in 18.0
---
odoo_test_xmlrunner/odoo_tests/loader.py | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/odoo_test_xmlrunner/odoo_tests/loader.py b/odoo_test_xmlrunner/odoo_tests/loader.py
index 297e54ceffa..a6f96102bfd 100644
--- a/odoo_test_xmlrunner/odoo_tests/loader.py
+++ b/odoo_test_xmlrunner/odoo_tests/loader.py
@@ -1,14 +1,15 @@
import os
from unittest.mock import patch
-from xmlrunner import XMLTestRunner
-from xmlrunner.result import _XMLTestResult
-
-from odoo.tests.result import OdooTestResult
-from odoo.tests.suite import OdooSuite
from odoo.tools import config
if config["test_enable"]:
+ from xmlrunner import XMLTestRunner
+ from xmlrunner.result import _XMLTestResult
+
+ from odoo.tests.result import OdooTestResult
+ from odoo.tests.suite import OdooSuite
+
unpatched_run = OdooSuite.run
def run(self, result):
From b993275eedc6a5a0dadb3553d90faf4dd4aedb48 Mon Sep 17 00:00:00 2001
From: Florian Mounier
Date: Tue, 30 Sep 2025 15:21:27 +0200
Subject: [PATCH 46/65] [FIX] odoo_test_xmlrunner: Patch manually to avoid
patch being restored at test end
---
odoo_test_xmlrunner/odoo_tests/loader.py | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/odoo_test_xmlrunner/odoo_tests/loader.py b/odoo_test_xmlrunner/odoo_tests/loader.py
index a6f96102bfd..5ce61cc4e23 100644
--- a/odoo_test_xmlrunner/odoo_tests/loader.py
+++ b/odoo_test_xmlrunner/odoo_tests/loader.py
@@ -1,5 +1,4 @@
import os
-from unittest.mock import patch
from odoo.tools import config
@@ -21,17 +20,21 @@ def run(self, result):
# Suite run method will be called by the XMLTestRunner,
# so we need to run the original run method
- with patch.object(self, "run", lambda result: unpatched_run(self, result)):
- # Override : XMLTestRunner to run the tests and generate XML reports
+ unpatched_sub_run = self.run
+ self.run = lambda result, debug=False: unpatched_run(self, result, debug)
+ # Override : XMLTestRunner to run the tests and generate XML reports
+ try:
results = XMLTestRunner(
output=test_result_directory,
verbosity=2,
).run(self)
+ finally:
+ self.run = unpatched_sub_run
result.update(results)
return result
- patch("odoo.tests.suite.OdooSuite.run", run).start()
+ OdooSuite.run = run
unpatched_update = OdooTestResult.update
@@ -45,4 +48,4 @@ def update(self, other):
else:
unpatched_update(self, other)
- patch("odoo.tests.result.OdooTestResult.update", update).start()
+ OdooTestResult.update = update
From 5667f5e448e1883c5920cb7909df95fc97566e2d Mon Sep 17 00:00:00 2001
From: Stefan Rijnhart
Date: Fri, 2 Jan 2026 22:05:43 +0100
Subject: [PATCH 47/65] [FIX] auditlog: ensure methods from test template are
actually run
Since https://github.com/odoo/odoo/commit/6dc96811c24ec, test methods from
inherited test classes are not run by default.
---
auditlog/tests/test_auditlog.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/auditlog/tests/test_auditlog.py b/auditlog/tests/test_auditlog.py
index 58e38b71cfb..e4c3aeaa18b 100644
--- a/auditlog/tests/test_auditlog.py
+++ b/auditlog/tests/test_auditlog.py
@@ -10,6 +10,12 @@
class AuditlogCommon:
+ """Base case with basic log creation tests"""
+
+ # Ensure that test cases that inherit from this class run the methods
+ # that it provides.
+ allow_inherited_tests_method = True
+
def test_LogCreation(self):
"""First test, caching some data."""
self.groups_rule.subscribe()
From d9c93fffa1aeb0366e6129727b11fcfd1c3d5d86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bet=C3=BCl=20=C3=96=C4=9Fmen?=
Date: Thu, 22 Jan 2026 06:17:30 +0000
Subject: [PATCH 48/65] Translated using Weblate (Turkish)
Currently translated at 100.0% (4 of 4 strings)
Translation: server-tools-18.0/server-tools-18.0-base_view_inheritance_extension
Translate-URL: https://translation.odoo-community.org/projects/server-tools-18-0/server-tools-18-0-base_view_inheritance_extension/tr/
---
base_view_inheritance_extension/i18n/tr.po | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/base_view_inheritance_extension/i18n/tr.po b/base_view_inheritance_extension/i18n/tr.po
index bd0e58da97f..5976f538885 100644
--- a/base_view_inheritance_extension/i18n/tr.po
+++ b/base_view_inheritance_extension/i18n/tr.po
@@ -9,14 +9,15 @@ msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-12-29 03:39+0000\n"
-"PO-Revision-Date: 2016-12-29 03:39+0000\n"
-"Last-Translator: Ahmet Altinisik , 2016\n"
+"PO-Revision-Date: 2026-01-22 08:50+0000\n"
+"Last-Translator: Betül Öğmen \n"
"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Weblate 5.15.2\n"
#. module: base_view_inheritance_extension
#: model_terms:ir.ui.view,arch_db:base_view_inheritance_extension.view_partner_simple_form
@@ -26,17 +27,17 @@ msgstr "İş ortağı formu"
#. module: base_view_inheritance_extension
#: model_terms:ir.ui.view,arch_db:base_view_inheritance_extension.view_partner_simple_form
msgid "Phone numbers"
-msgstr ""
+msgstr "Telefon numaraları"
#. module: base_view_inheritance_extension
#: model:ir.model.fields,field_description:base_view_inheritance_extension.field_ir_ui_view__smart_search
msgid "Smart Search"
-msgstr ""
+msgstr "Akıllı Arama"
#. module: base_view_inheritance_extension
#: model:ir.model,name:base_view_inheritance_extension.model_ir_ui_view
msgid "View"
-msgstr ""
+msgstr "Görünüm"
#~ msgid "ir.ui.view"
#~ msgstr "ir.ui.view"
From fe5a61cf923dfb5babbe3fc85c21edcd0f12e508 Mon Sep 17 00:00:00 2001
From: Matjaz Mozetic
Date: Thu, 22 Jan 2026 16:54:52 +0000
Subject: [PATCH 49/65] Translated using Weblate (Slovenian)
Currently translated at 54.3% (44 of 81 strings)
Translation: server-tools-18.0/server-tools-18.0-database_cleanup
Translate-URL: https://translation.odoo-community.org/projects/server-tools-18-0/server-tools-18-0-database_cleanup/sl/
---
database_cleanup/i18n/sl.po | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/database_cleanup/i18n/sl.po b/database_cleanup/i18n/sl.po
index 67ca280462f..f30ca52849e 100644
--- a/database_cleanup/i18n/sl.po
+++ b/database_cleanup/i18n/sl.po
@@ -9,15 +9,16 @@ msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-03 10:08+0000\n"
-"PO-Revision-Date: 2018-03-03 10:08+0000\n"
-"Last-Translator: OCA Transbot , 2018\n"
+"PO-Revision-Date: 2026-01-22 18:41+0000\n"
+"Last-Translator: Matjaz Mozetic \n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
-"n%100==4 ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
+"n%100==4 ? 2 : 3;\n"
+"X-Generator: Weblate 5.15.2\n"
#. module: database_cleanup
#: model:ir.model,name:database_cleanup.model_cleanup_create_indexes_line
@@ -164,7 +165,7 @@ msgstr "Čiščenje podatkovne baze"
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_module__display_name
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_purge_wizard_table__display_name
msgid "Display Name"
-msgstr "Prikazni naziv"
+msgstr "Prikazani naziv"
#. module: database_cleanup
#: model:ir.model.fields,field_description:database_cleanup.field_cleanup_create_indexes_line__field_id
From 63e753fdeb7c2a5f97f3468bb6435e1a9f7200ef Mon Sep 17 00:00:00 2001
From: Matjaz Mozetic
Date: Thu, 22 Jan 2026 16:53:10 +0000
Subject: [PATCH 50/65] Translated using Weblate (Slovenian)
Currently translated at 63.5% (47 of 74 strings)
Translation: server-tools-18.0/server-tools-18.0-auto_backup
Translate-URL: https://translation.odoo-community.org/projects/server-tools-18-0/server-tools-18-0-auto_backup/sl/
---
auto_backup/i18n/sl.po | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/auto_backup/i18n/sl.po b/auto_backup/i18n/sl.po
index 922adb25ca3..4700542f1dc 100644
--- a/auto_backup/i18n/sl.po
+++ b/auto_backup/i18n/sl.po
@@ -9,15 +9,16 @@ msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-03-03 10:08+0000\n"
-"PO-Revision-Date: 2018-03-03 10:08+0000\n"
-"Last-Translator: OCA Transbot , 2018\n"
+"PO-Revision-Date: 2026-01-22 18:41+0000\n"
+"Last-Translator: Matjaz Mozetic \n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
-"n%100==4 ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
+"n%100==4 ? 2 : 3;\n"
+"X-Generator: Weblate 5.15.2\n"
#. module: auto_backup
#: model_terms:ir.ui.view,arch_db:auto_backup.view_backup_conf_form
@@ -147,7 +148,7 @@ msgstr ""
#. module: auto_backup
#: model:ir.model.fields,field_description:auto_backup.field_db_backup__display_name
msgid "Display Name"
-msgstr "Prikazni naziv"
+msgstr "Prikazani naziv"
#. module: auto_backup
#. odoo-python
From 66a8650eb1d544b9427d3dec95f106995ecbec2f Mon Sep 17 00:00:00 2001
From: Tom
Date: Sun, 25 Jan 2026 12:12:47 +0100
Subject: [PATCH 51/65] [FIX] fetchmail_attach_from_folder tests: mock
expunge()
---
fetchmail_attach_from_folder/tests/test_match_algorithms.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/fetchmail_attach_from_folder/tests/test_match_algorithms.py b/fetchmail_attach_from_folder/tests/test_match_algorithms.py
index 394e7fb2ebb..9c43b03b951 100644
--- a/fetchmail_attach_from_folder/tests/test_match_algorithms.py
+++ b/fetchmail_attach_from_folder/tests/test_match_algorithms.py
@@ -54,6 +54,10 @@ def search(self, charset, criteria):
def close(self):
pass
+ def expunge(self):
+ """Mock an IMAP4.expunge action"""
+ return ("OK", None)
+
class TestMatchAlgorithms(TransactionCase):
@classmethod
From cf777bf2af4d6bd3afb5e67a2c2d87dac7573158 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Sun, 25 Jan 2026 22:13:14 +0000
Subject: [PATCH 52/65] [BOT] post-merge updates
---
README.md | 2 +-
auditlog/README.rst | 2 +-
auditlog/__manifest__.py | 2 +-
auditlog/static/description/index.html | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index e4892df7417..7c8f364b354 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@ addon | version | maintainers | summary
[attachment_queue](attachment_queue/) | 18.0.1.0.0 | | Base module adding the concept of queue for processing files
[attachment_synchronize](attachment_synchronize/) | 18.0.1.0.0 | | Attachment Synchronize
[attachment_unindex_content](attachment_unindex_content/) | 18.0.1.0.0 | | Disable indexing of attachments
-[auditlog](auditlog/) | 18.0.2.0.5 | | Audit Log
+[auditlog](auditlog/) | 18.0.2.0.6 | | Audit Log
[auto_backup](auto_backup/) | 18.0.1.0.1 | | Backups database
[autovacuum_message_attachment](autovacuum_message_attachment/) | 18.0.1.0.1 | | Automatically delete old mail messages and attachments
[base_cron_exclusion](base_cron_exclusion/) | 18.0.1.0.1 | | Allow you to select scheduled actions that should not run simultaneously.
diff --git a/auditlog/README.rst b/auditlog/README.rst
index 37615e91c2d..42312cf1196 100644
--- a/auditlog/README.rst
+++ b/auditlog/README.rst
@@ -11,7 +11,7 @@ Audit Log
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:5d80401c7f72e7744b093dc1e4ee6fc2eec010879861d75c844494808dc0e867
+ !! source digest: sha256:eff893d734bc46c69f3872737aa234d2a2aaf763da5259ac3e977f22d1e4f3a9
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
diff --git a/auditlog/__manifest__.py b/auditlog/__manifest__.py
index 990eefc417e..629376ca5bf 100644
--- a/auditlog/__manifest__.py
+++ b/auditlog/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Audit Log",
- "version": "18.0.2.0.5",
+ "version": "18.0.2.0.6",
"author": "ABF OSIELL, Odoo Community Association (OCA)",
"license": "AGPL-3",
"website": "https://github.com/OCA/server-tools",
diff --git a/auditlog/static/description/index.html b/auditlog/static/description/index.html
index 09bfb84c421..141e62d3af5 100644
--- a/auditlog/static/description/index.html
+++ b/auditlog/static/description/index.html
@@ -372,7 +372,7 @@
Audit Log
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:5d80401c7f72e7744b093dc1e4ee6fc2eec010879861d75c844494808dc0e867
+!! source digest: sha256:eff893d734bc46c69f3872737aa234d2a2aaf763da5259ac3e977f22d1e4f3a9
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
This module allows the administrator to log user operations performed on
From 81de1d097c4daf62383d76fa42bd7e213de95d21 Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Sun, 25 Jan 2026 22:31:32 +0000
Subject: [PATCH 53/65] [UPD] Update sequence_python.pot
---
sequence_python/i18n/sequence_python.pot | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sequence_python/i18n/sequence_python.pot b/sequence_python/i18n/sequence_python.pot
index 23379e65e50..ec8af7e3e1c 100644
--- a/sequence_python/i18n/sequence_python.pot
+++ b/sequence_python/i18n/sequence_python.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 16.0\n"
+"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
From ce786c2760c67b1520973018c87105a434870b9d Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Sun, 25 Jan 2026 22:39:09 +0000
Subject: [PATCH 54/65] [BOT] post-merge updates
---
README.md | 1 +
sequence_python/README.rst | 8 ++++--
sequence_python/static/description/index.html | 28 +++++++++++--------
setup/_metapackage/pyproject.toml | 3 +-
4 files changed, 26 insertions(+), 14 deletions(-)
diff --git a/README.md b/README.md
index 7c8f364b354..295423ad71a 100644
--- a/README.md
+++ b/README.md
@@ -62,6 +62,7 @@ addon | version | maintainers | summary
[rpc_helper](rpc_helper/) | 18.0.1.0.1 | | Helpers for disabling RPC calls
[scheduler_error_mailer](scheduler_error_mailer/) | 18.0.1.0.0 | | Scheduler Error Mailer
[sentry](sentry/) | 18.0.1.0.3 | | Report Odoo errors to Sentry
+[sequence_python](sequence_python/) | 18.0.1.0.0 | | Calculate a sequence number from a Python expression
[session_db](session_db/) | 18.0.1.0.1 | | Store sessions in DB
[test_auditlog](test_auditlog/) | 18.0.1.0.3 | | Additional unit tests for Audit Log based on accounting models
[test_base_time_window](test_base_time_window/) | 18.0.1.0.0 | | Test Base model to handle time windows
diff --git a/sequence_python/README.rst b/sequence_python/README.rst
index 98fa5be95b2..820df473009 100644
--- a/sequence_python/README.rst
+++ b/sequence_python/README.rst
@@ -1,3 +1,7 @@
+.. image:: https://odoo-community.org/readme-banner-image
+ :target: https://odoo-community.org/get-involved?utm_source=readme
+ :alt: Odoo Community Association
+
===============================
Sequence from Python expression
===============================
@@ -7,13 +11,13 @@ Sequence from Python expression
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:2577b1699eaf32186615d1426d69a461c185cd70423a76700e336c09cf5c7056
+ !! source digest: sha256:75b6e7f4bb5eec0f62dfee2e39357c3255133a9f7e30bce48dff133241e73d3c
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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-AGPL--3-blue.png
+.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
diff --git a/sequence_python/static/description/index.html b/sequence_python/static/description/index.html
index 65f00a3f6ef..deef03047ba 100644
--- a/sequence_python/static/description/index.html
+++ b/sequence_python/static/description/index.html
@@ -3,7 +3,7 @@
-Sequence from Python expression
+README.rst
-
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 to smash it by providing a detailed and welcomed
@@ -429,15 +434,15 @@