diff --git a/edi_oca/i18n/fr.po b/edi_oca/i18n/fr.po
index 5ec7d1655a..012ae95bc9 100644
--- a/edi_oca/i18n/fr.po
+++ b/edi_oca/i18n/fr.po
@@ -65,9 +65,19 @@ msgid ""
" "
msgstr ""
+#. module: edi_oca
+#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type_rule__kind
+msgid ""
+"\n"
+"* Form button: show a button on the related model form\n"
+" when conditions from domain and snippet are satisfied\n"
+"\n"
+"* Custom: let devs handle a custom behavior with specific developments\n"
+msgstr ""
+
#. module: edi_oca
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_consumer_mixin_buttons
-msgid "This record has EDI exchanges to handle"
+msgid " EDI actions"
msgstr ""
#. module: edi_oca
@@ -176,7 +186,9 @@ msgstr ""
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_backend__active
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__active
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__active
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_backend_view_search
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_search
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_search
msgid "Active"
msgstr ""
@@ -199,6 +211,7 @@ msgstr ""
#. module: edi_oca
#: model:ir.ui.menu,name:edi_oca.menu_edi_exchange_record_all
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_backend_view_search
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_search
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_search
msgid "All"
msgstr ""
@@ -211,9 +224,16 @@ msgstr ""
"Une erreur s'est produite lors de l'envoi. Veuillez vérifier les "
"informations sur l'enregistrement de l'échange."
+#. module: edi_oca
+#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type_rule__model_id
+msgid "Apply to this model"
+msgstr ""
+
#. module: edi_oca
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_backend_view_form
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_backend_view_search
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_form
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_search
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_form
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_search
msgid "Archived"
@@ -234,11 +254,6 @@ msgstr ""
"utile est manquante. Si cette option est active, un cron se chargera de "
"générer la sortie lorsqu'elle n'est pas encore définie. "
-#. module: edi_oca
-#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type__model_manual_btn
-msgid "Automatically display a button on related models' form."
-msgstr ""
-
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__backend_id
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record_create_wiz__backend_id
@@ -282,6 +297,11 @@ msgstr ""
msgid "Backend type must match with exchange type's backend type!"
msgstr ""
+#. module: edi_oca
+#: model:ir.ui.menu,name:edi_oca.menu_edi_backend_type
+msgid "Backend types"
+msgstr ""
+
#. module: edi_oca
#: model:ir.ui.menu,name:edi_oca.menu_edi_backend
msgid "Backends"
@@ -319,6 +339,7 @@ msgstr ""
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__create_uid
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record_create_wiz__create_uid
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__create_uid
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__create_uid
msgid "Created by"
msgstr "Créé par"
@@ -333,6 +354,7 @@ msgstr ""
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__create_date
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record_create_wiz__create_date
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__create_date
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__create_date
msgid "Created on"
msgstr "Créé le"
@@ -341,6 +363,21 @@ msgstr "Créé le"
msgid "Created today"
msgstr ""
+#. module: edi_oca
+#: model:ir.model.fields.selection,name:edi_oca.selection__edi_exchange_type_rule__kind__custom
+msgid "Custom"
+msgstr ""
+
+#. module: edi_oca
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_form
+msgid "DEPRECATED Model rules"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__deprecated_rule_fields_still_used
+msgid "Deprecated Rule Fields Still Used"
+msgstr ""
+
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__direction
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__direction
@@ -359,10 +396,16 @@ msgstr ""
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__display_name
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record_create_wiz__display_name
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__display_name
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__display_name
#: model:ir.model.fields,field_description:edi_oca.field_edi_id_mixin__display_name
msgid "Display Name"
msgstr "Afficher Nom"
+#. module: edi_oca
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_form
+msgid "Domain"
+msgstr ""
+
#. module: edi_oca
#: model:res.groups,name:edi_oca.group_edi_advanced_settings_manager
msgid "EDI Advanced Settings Manager"
@@ -380,7 +423,6 @@ msgstr ""
#. module: edi_oca
#: model:ir.actions.act_window,name:edi_oca.act_open_edi_backend_type_view
#: model:ir.model,name:edi_oca.model_edi_backend_type
-#: model:ir.ui.menu,name:edi_oca.menu_edi_backend_type
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_backend_type_view_form
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_backend_type_view_search
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_backend_type_view_tree
@@ -402,13 +444,22 @@ msgstr ""
#. module: edi_oca
#: model:ir.actions.act_window,name:edi_oca.act_open_edi_exchange_type_view
#: model:ir.model,name:edi_oca.model_edi_exchange_type
-#: model:ir.ui.menu,name:edi_oca.menu_edi_exchange_type
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_form
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_search
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_tree
msgid "EDI Exchange Type"
msgstr ""
+#. module: edi_oca
+#: model:ir.actions.act_window,name:edi_oca.act_open_edi_exchange_type_rule_view
+msgid "EDI Exchange Type Rule"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.model,name:edi_oca.model_edi_exchange_type_rule
+msgid "EDI Exchange type rule"
+msgstr ""
+
#. module: edi_oca
#: model:ir.model,name:edi_oca.model_edi_id_mixin
msgid "EDI ID mixin"
@@ -465,11 +516,21 @@ msgstr ""
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__enable_domain
+msgid "Enable Domain"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__enable_snippet
+msgid "Enable Snippet"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__enable_domain
msgid "Enable on domain"
msgstr "Activation sur le domaine"
#. module: edi_oca
-#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__enable_snippet
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__enable_snippet
msgid "Enable on snippet"
msgstr "Activation sur l'extrait"
@@ -616,10 +677,17 @@ msgstr ""
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__type_id
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_search
msgid "Exchange type"
msgstr ""
#. module: edi_oca
+#: model:ir.ui.menu,name:edi_oca.menu_edi_exchange_type_rule
+msgid "Exchange type rules"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.ui.menu,name:edi_oca.menu_edi_exchange_type
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_backend_view_form
msgid "Exchange types"
msgstr ""
@@ -678,7 +746,7 @@ msgid "Failed"
msgstr ""
#. module: edi_oca
-#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type__enable_domain
+#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type_rule__enable_domain
msgid "Filter domain to be checked on Models"
msgstr "Domaine de filtrage à vérifier sur les modèles"
@@ -709,6 +777,26 @@ msgid ""
"the related storage. E.g: `.*my-type-[0-9]*.\\.csv`"
msgstr ""
+#. module: edi_oca
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_form
+msgid "Form"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.model.fields.selection,name:edi_oca.selection__edi_exchange_type_rule__kind__form_btn
+msgid "Form button"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__form_btn_label
+msgid "Form button label"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__form_btn_tooltip
+msgid "Form button tooltip"
+msgstr ""
+
#. module: edi_oca
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_record_create_form_view
msgid "Generate"
@@ -722,10 +810,16 @@ msgstr ""
#. module: edi_oca
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_record_view_search
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_search
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_search
msgid "Group By"
msgstr "Grouper par"
+#. module: edi_oca
+#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type_rule__form_btn_tooltip
+msgid "Help message visible as tooltip on button h-over"
+msgstr ""
+
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_backend__id
#: model:ir.model.fields,field_description:edi_oca.field_edi_backend_type__id
@@ -733,6 +827,7 @@ msgstr "Grouper par"
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__id
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record_create_wiz__id
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__id
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__id
#: model:ir.model.fields,field_description:edi_oca.field_edi_id_mixin__id
msgid "ID"
msgstr ""
@@ -789,6 +884,12 @@ msgstr "est un abonné"
msgid "Job Channel"
msgstr ""
+#. module: edi_oca
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__kind
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_search
+msgid "Kind"
+msgstr ""
+
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_backend____last_update
#: model:ir.model.fields,field_description:edi_oca.field_edi_backend_type____last_update
@@ -796,6 +897,7 @@ msgstr ""
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record____last_update
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record_create_wiz____last_update
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type____last_update
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule____last_update
#: model:ir.model.fields,field_description:edi_oca.field_edi_id_mixin____last_update
msgid "Last Modified on"
msgstr "Dernière modification le"
@@ -806,6 +908,7 @@ msgstr "Dernière modification le"
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__write_uid
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record_create_wiz__write_uid
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__write_uid
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__write_uid
msgid "Last Updated by"
msgstr "Dernière mise à jour par"
@@ -815,6 +918,7 @@ msgstr "Dernière mise à jour par"
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__write_date
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record_create_wiz__write_date
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__write_date
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__write_date
msgid "Last Updated on"
msgstr "Dernière mise à jour le"
@@ -823,11 +927,6 @@ msgstr "Dernière mise à jour le"
msgid "Main Attachment"
msgstr "Pièce jointe principale"
-#. module: edi_oca
-#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__model_manual_btn
-msgid "Manual button on form"
-msgstr ""
-
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__message_has_error
msgid "Message Delivery error"
@@ -842,24 +941,28 @@ msgstr "Messages"
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__model
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record_create_wiz__model
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__model_ids
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__model
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__model_id
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_record_view_search
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_search
msgid "Model"
msgstr "Modèle"
#. module: edi_oca
-#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_form
-msgid "Model rules"
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__model_manual_btn
+msgid "Model Manual Btn"
msgstr ""
#. module: edi_oca
-#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type__model_ids
-msgid "Modules to be checked for manual EDI generation"
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_form
+msgid "Model rules"
msgstr ""
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_backend__name
#: model:ir.model.fields,field_description:edi_oca.field_edi_backend_type__name
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__name
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__name
msgid "Name"
msgstr "Nom"
@@ -1025,6 +1128,16 @@ msgstr ""
msgid "Retryable"
msgstr ""
+#. module: edi_oca
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type__rule_ids
+msgid "Rule"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type__rule_ids
+msgid "Rules to handle exchanges and UI automatically"
+msgstr ""
+
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__message_has_sms_error
msgid "SMS Delivery error"
@@ -1062,7 +1175,12 @@ msgid "Show all records created today"
msgstr ""
#. module: edi_oca
-#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type__enable_snippet
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_rule_view_form
+msgid "Snippet"
+msgstr ""
+
+#. module: edi_oca
+#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type_rule__enable_snippet
msgid ""
"Snippet of code to be checked on Models,\n"
" You can use `record` and `exchange_type` here.\n"
@@ -1106,10 +1224,16 @@ msgid "The record state can be rolled back manually in case of failure."
msgstr ""
#. module: edi_oca
+#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_type_rule__type_id
#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_record_view_search
msgid "Type"
msgstr "Type"
+#. module: edi_oca
+#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type_rule__form_btn_label
+msgid "Type name used by default"
+msgstr ""
+
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__message_unread
msgid "Unread Messages"
@@ -1130,6 +1254,23 @@ msgstr ""
msgid "Waiting to be sent"
msgstr ""
+#. module: edi_oca
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_form
+msgid ""
+"Warning: these fields are deprecated.\n"
+" If you rely on them for configuring rules via "
+"data files,\n"
+" it's strongly recommended to rework such "
+"files\n"
+" to use `edi.exchange.type.rule` records.\n"
+" Please note that, due to backward compat,\n"
+" removing a model from here will cause "
+"deletion\n"
+" of any existing rule for the model.\n"
+" You can use the button \"Wipe\" to clean them "
+"properly."
+msgstr ""
+
#. module: edi_oca
#: model:ir.model.fields,field_description:edi_oca.field_edi_exchange_record__website_message_ids
msgid "Website Messages"
@@ -1152,6 +1293,11 @@ msgstr ""
msgid "When marked, EDI automatic processing will be avoided"
msgstr ""
+#. module: edi_oca
+#: model_terms:ir.ui.view,arch_db:edi_oca.edi_exchange_type_view_form
+msgid "Wipe"
+msgstr ""
+
#. module: edi_oca
#: model:ir.model.fields,help:edi_oca.field_edi_exchange_type__partner_ids
msgid ""