{"en_US": "<form string=\"Server Action\">\n                    <header invisible=\"context.get('is_modal')\">\n                        <button name=\"create_action\" string=\"Create Contextual Action\" type=\"object\" class=\"btn-primary\" invisible=\"binding_model_id\" help=\"Display an option in the 'More' top-menu in order to run this action.\"/>\n                        <button name=\"unlink_action\" string=\"Remove Contextual Action\" type=\"object\" invisible=\"not binding_model_id\" help=\"Remove 'More' top-menu contextual action related to this action\"/>\n                        <button name=\"run\" string=\"Run\" type=\"object\" class=\"btn-primary\" invisible=\"model_name != 'ir.actions.server' or state != 'code'\" help=\"Run this action manually.\"/>\n                    </header>\n                    <sheet>\n                        <div class=\"oe_button_box\" name=\"button_box\">\n                            <button type=\"object\" name=\"action_open_parent_action\" invisible=\"not parent_id\" class=\"oe_stat_button\" icon=\"fa-database\">\n                                <div class=\"o_stat_info\">\n                                    <span class=\"o_stat_text\">Parent Action</span>\n                                </div>\n                            </button>\n                            <button type=\"object\" name=\"action_open_scheduled_action\" invisible=\"not ir_cron_ids or context.key != 'server_action'\" context=\"{'key': 'ir_cron'}\" class=\"oe_stat_button\" icon=\"fa-refresh\">\n                                <div class=\"o_stat_info\">\n                                    <span class=\"o_stat_text\">Scheduled Action</span>\n                                </div>\n                            </button>\n                        </div>\n                        <h1 class=\"oe_title\">\n                            <field name=\"automated_name\" invisible=\"1\"/> <!-- needed for name compute -->\n                            <field name=\"name\" placeholder=\"Set an explicit name\"/>\n                        </h1>\n                        <group invisible=\"context.get('is_modal')\">\n                            <group>\n                                <field name=\"model_id\" options=\"{'no_create': True, 'no_open': True}\" groups=\"base.group_no_one\"/>\n                                <field name=\"model_id\" options=\"{'no_create': True, 'no_open': True}\" groups=\"!base.group_no_one\" invisible=\"context.get('default_model_id')\" domain=\"[('id', 'in', available_model_ids)]\"/>\n                            </group>\n                            <group groups=\"base.group_no_one\">\n                                <field name=\"group_ids\" widget=\"many2many_tags\"/>\n                            </group>\n                        </group>\n                        <t name=\"action_content\" invisible=\"not model_id\">\n                            <field name=\"allowed_states\" invisible=\"1\"/> <!-- Used to filter state using selection_badge_with_filter -->\n                            <div class=\"d-flex flex-column\">\n                                <label for=\"state\"/>\n                                <field name=\"state\" widget=\"selection_badge_with_filter\" options=\"{'size': 'sm', 'allowed_selection_field': 'allowed_states'}\"/>\n                            </div>\n                            <div class=\"alert alert-warning\" role=\"alert\" invisible=\"not warning\">\n                                <i class=\"fa fa-warning pe-2\" title=\"Warning\"/><field class=\"d-inline\" name=\"warning\" nolabel=\"1\"/>\n                            </div>\n                            <div class=\"d-flex flex-row flex-wrap gap-2\" invisible=\"state != 'object_write'\">\n                                <field name=\"evaluation_type\" class=\"oe_inline\"/>\n                                <field name=\"update_path\" widget=\"field_selector\" class=\"oe_inline\" options=\"{'model': 'model_name'}\"/>\n                                <field name=\"update_field_id\" invisible=\"True\"/>  <!-- The field is store=True and readonly=False, in this view we want to save the value from compute/onchange -->\n                                <field name=\"update_related_model_id\" invisible=\"True\"/> <!-- This field is required for 'resource_ref' to compute possible m2m and m2o values -->\n                                <span invisible=\"evaluation_type != 'value' or update_field_type not in ['one2many', 'many2many']\">by</span>\n                                <field name=\"update_m2m_operation\" class=\"oe_inline\" invisible=\"evaluation_type != 'value' or update_field_type not in ['one2many', 'many2many']\" required=\"update_field_type in ['one2many', 'many2many']\"/>\n                                <span invisible=\"evaluation_type != 'value' or update_field_type in ['one2many', 'many2many']\">to</span>\n                                <span invisible=\"evaluation_type != 'sequence'\">with</span>\n                                <field name=\"value\" class=\"oe_inline\" placeholder=\"Set a value...\" invisible=\"update_field_id == False or value_field_to_show != 'value' or evaluation_type != 'value'\" string=\"Custom Value\"/>\n                                <field name=\"html_value\" class=\"w-100\" placeholder=\"Set a value...\" invisible=\"update_field_id == False or value_field_to_show != 'html_value' or evaluation_type != 'value'\" string=\"Custom Value\"/>\n                                <field name=\"sequence_id\" class=\"oe_inline\" placeholder=\"Select a sequence...\" invisible=\"evaluation_type != 'sequence'\" required=\"evaluation_type == 'sequence'\"/>\n                                <field name=\"resource_ref\" class=\"oe_inline\" placeholder=\"Choose a value...\" string=\"Custom Value\" options=\"{'model_field': 'update_related_model_id', 'no_create': True, 'no_open': True}\" invisible=\"update_field_id == False or value_field_to_show != 'resource_ref' or evaluation_type == 'equation' or update_m2m_operation == 'clear'\"/>\n                                <field name=\"selection_value\" class=\"oe_inline\" placeholder=\"Choose a value...\" options=\"{'no_create': True, 'no_open': True}\" invisible=\"update_field_id == False or value_field_to_show != 'selection_value' or evaluation_type == 'equation'\"/>\n                                <field name=\"update_boolean_value\" class=\"oe_inline\" invisible=\"evaluation_type != 'value' or value_field_to_show != 'update_boolean_value'\" required=\"value_field_to_show == 'update_boolean_value'\"/>\n                                <span invisible=\"update_field_id != False or evaluation_type != 'value'\" class=\"o_actions_server_set_a_value text-muted\">Set a value...</span>\n                                <span invisible=\"evaluation_type != 'equation'\">\n                                    to this Python expression:\n                                </span>\n                                <div class=\"w-100 d-flex flex-row gap-3\" invisible=\"evaluation_type != 'equation'\">\n                                    <field name=\"value\" class=\"w-50\" widget=\"code\" options=\"{'mode': 'python'}\" string=\"Expression\"/>\n                                    <div class=\"w-50 opacity-75\">\n                                        <span colspan=\"2\" class=\"text-muted\"> Available variables: </span>\n                                            <ul colspan=\"2\" class=\"text-muted\">\n                                                <li><code>env</code>: environment on which the action is triggered</li>\n                                                <li><code>model</code>: model of the record on which the action is triggered; is a void recordset</li>\n                                                <li><code>record</code>: record on which the action is triggered</li>\n                                                <li><code>records</code>: recordset of all records on which the action is triggered in multi mode</li>\n                                                <li><code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries</li>\n                                                <li><code>float_compare()</code>: utility function to compare floats based on a specific precision</li>\n                                            </ul>\n                                    </div>\n                                </div>\n                            </div>\n                            <group invisible=\"state not in ['object_create', 'object_copy']\">\n                                <group>\n                                    <field name=\"crud_model_id\" options=\"{'no_create': True, 'no_open': True}\" required=\"state in ['object_create', 'object_copy']\"/>\n                                    <field name=\"value\" widget=\"char\" string=\"Name\" invisible=\"state != 'object_create'\" help=\"The name of the record to create\" placeholder=\"e.g. Follow-up\"/>\n                                    <field name=\"resource_ref\" placeholder=\"Choose a record...\" string=\"Duplicate from\" options=\"{'model_field': 'crud_model_id', 'no_create': True, 'no_open': True}\" invisible=\"crud_model_id == False or state != 'object_copy'\" required=\"state == 'object_copy'\"/>\n                                    <field name=\"link_field_id\" domain=\"[('model_id', '=', model_id), ('relation', '=', crud_model_name),                                         ('ttype', 'in', ['many2one', 'one2many', 'many2many'])]\" placeholder=\"Select a field to link the record to\" options=\"{'no_create': True, 'no_open': True}\" context=\"{'default_model_id': model_id, 'default_relation': crud_model_name}\"/>\n                                </group>\n                            </group>\n                            <group invisible=\"state != 'webhook'\">\n                                <group>\n                                    <field name=\"webhook_url\" string=\"URL\" placeholder=\"e.g. https://maker.ifttt.com/use/...\"/>\n                                    <field name=\"webhook_field_ids\" string=\"Fields\" widget=\"many2many_tags\" context=\"{'hide_model': 1}\" domain=\"[('model_id', '=', model_id)]\" placeholder=\"Select fields to include in the request...\"/>\n                                </group>\n                                <group>\n                                    <label for=\"webhook_sample_payload\"/>\n                                    <field name=\"webhook_sample_payload\" string=\"Sample Payload\" nolabel=\"1\" colspan=\"2\" readonly=\"1\" widget=\"code\" options=\"{'mode': 'javascript'}\"/>\n                                </group>\n                            </group>\n                            <t invisible=\"state != 'multi'\">\n                                <field name=\"child_ids\" widget=\"many2many\" mode=\"kanban\" context=\"{                                     'is_modal': 1,                                     'default_model_id': model_id,                                 }\"/>\n                                <p class=\"opacity-50 mb-1 mt-3 mt-md-n2 mt-lg-0\">\n                                    If several actions return an action, only the last one will be executed.\n                                </p>\n                            </t>\n                            <notebook invisible=\"state != 'code'\">\n                                <page string=\"Code\">\n                                    <field name=\"code\" invisible=\"state != 'code'\" widget=\"code\" options=\"{'mode': 'python'}\" placeholder=\"Enter Python code here. Help about Python expression is available in the help tab of this document.\"/>\n                                </page>\n                                <page string=\"Help\">\n                                    <p>The following variables can be used:</p>\n                                    <ul>\n                                        <li><code>env</code>: environment on which the action is triggered</li>\n                                        <li><code>model</code>: model of the record on which the action is triggered; is a void recordset</li>\n                                        <li><code>record</code>: record on which the action is triggered; may be be void</li>\n                                        <li><code>records</code>: recordset of all records on which the action is triggered in multi mode; may be void</li>\n                                        <li><code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries</li>\n                                        <li><code>float_compare()</code>: utility function to compare floats based on a specific precision</li>\n                                        <li><code>log(message, level='info')</code>: logging function to record debug information in <code>ir.logging</code> table</li>\n                                        <li><code>_logger.info(message)</code>: logger to emit messages in server logs</li>\n                                        <li><code>UserError</code>: exception class for raising user-facing warning messages</li>\n                                        <li><code>Command</code>: x2many commands namespace</li>\n                                        <li>To return an action, assign: <code>action = {...}</code></li>\n                                        <li>To notify progress for CRON call and re-trigger a call if there is remaining tasks, use <code>env['ir.cron']._notify_progress(done=task_done_count, remaining=task_remaining_count)</code></li>\n                                    </ul>\n                                    <div>\n                                        <p>Example of Python code:</p>\n                                        <pre style=\"white-space: pre-wrap\">partner_name = record.name + '_code'\nenv['res.partner'].create({'name': partner_name})\n    </pre>\n                                    </div>\n                                </page>\n                            </notebook>\n                        </t>\n                    </sheet>\n                </form>", "fr_FR": "<form string=\"Action de serveur\">\n                    <header invisible=\"context.get('is_modal')\">\n                        <button name=\"create_action\" string=\"Créer une action contextuelle\" type=\"object\" class=\"btn-primary\" invisible=\"binding_model_id\" help=\"Affichez une option dans le menu supérieur 'Plus' afin d'exécuter cette action.\"/>\n                        <button name=\"unlink_action\" string=\"Supprimer une action contextuelle\" type=\"object\" invisible=\"not binding_model_id\" help=\"Suppression de l'action contextuelle 'Plus' du menu supérieur liée à cette action\"/>\n                        <button name=\"run\" string=\"Exécuter\" type=\"object\" class=\"btn-primary\" invisible=\"model_name != 'ir.actions.server' or state != 'code'\" help=\"Exécutez cette action manuellement.\"/>\n                    </header>\n                    <sheet>\n                        <div class=\"oe_button_box\" name=\"button_box\">\n                            <button type=\"object\" name=\"action_open_parent_action\" invisible=\"not parent_id\" class=\"oe_stat_button\" icon=\"fa-database\">\n                                <div class=\"o_stat_info\">\n                                    <span class=\"o_stat_text\">Action parente</span>\n                                </div>\n                            </button>\n                            <button type=\"object\" name=\"action_open_scheduled_action\" invisible=\"not ir_cron_ids or context.key != 'server_action'\" context=\"{'key': 'ir_cron'}\" class=\"oe_stat_button\" icon=\"fa-refresh\">\n                                <div class=\"o_stat_info\">\n                                    <span class=\"o_stat_text\">Action planifiée</span>\n                                </div>\n                            </button>\n                        </div>\n                        <h1 class=\"oe_title\">\n                            <field name=\"automated_name\" invisible=\"1\"/> <!-- needed for name compute -->\n                            <field name=\"name\" placeholder=\"Définir un nom explicite\"/>\n                        </h1>\n                        <group invisible=\"context.get('is_modal')\">\n                            <group>\n                                <field name=\"model_id\" options=\"{'no_create': True, 'no_open': True}\" groups=\"base.group_no_one\"/>\n                                <field name=\"model_id\" options=\"{'no_create': True, 'no_open': True}\" groups=\"!base.group_no_one\" invisible=\"context.get('default_model_id')\" domain=\"[('id', 'in', available_model_ids)]\"/>\n                            </group>\n                            <group groups=\"base.group_no_one\">\n                                <field name=\"group_ids\" widget=\"many2many_tags\"/>\n                            </group>\n                        </group>\n                        <t name=\"action_content\" invisible=\"not model_id\">\n                            <field name=\"allowed_states\" invisible=\"1\"/> <!-- Used to filter state using selection_badge_with_filter -->\n                            <div class=\"d-flex flex-column\">\n                                <label for=\"state\"/>\n                                <field name=\"state\" widget=\"selection_badge_with_filter\" options=\"{'size': 'sm', 'allowed_selection_field': 'allowed_states'}\"/>\n                            </div>\n                            <div class=\"alert alert-warning\" role=\"alert\" invisible=\"not warning\">\n                                <i class=\"fa fa-warning pe-2\" title=\"Avertissement\"/><field class=\"d-inline\" name=\"warning\" nolabel=\"1\"/>\n                            </div>\n                            <div class=\"d-flex flex-row flex-wrap gap-2\" invisible=\"state != 'object_write'\">\n                                <field name=\"evaluation_type\" class=\"oe_inline\"/>\n                                <field name=\"update_path\" widget=\"field_selector\" class=\"oe_inline\" options=\"{'model': 'model_name'}\"/>\n                                <field name=\"update_field_id\" invisible=\"True\"/>  <!-- The field is store=True and readonly=False, in this view we want to save the value from compute/onchange -->\n                                <field name=\"update_related_model_id\" invisible=\"True\"/> <!-- This field is required for 'resource_ref' to compute possible m2m and m2o values -->\n                                <span invisible=\"evaluation_type != 'value' or update_field_type not in ['one2many', 'many2many']\">par</span>\n                                <field name=\"update_m2m_operation\" class=\"oe_inline\" invisible=\"evaluation_type != 'value' or update_field_type not in ['one2many', 'many2many']\" required=\"update_field_type in ['one2many', 'many2many']\"/>\n                                <span invisible=\"evaluation_type != 'value' or update_field_type in ['one2many', 'many2many']\">to</span>\n                                <span invisible=\"evaluation_type != 'sequence'\">with</span>\n                                <field name=\"value\" class=\"oe_inline\" placeholder=\"Définir une valeur...\" invisible=\"update_field_id == False or value_field_to_show != 'value' or evaluation_type != 'value'\" string=\"Valeur personnalisée\"/>\n                                <field name=\"html_value\" class=\"w-100\" placeholder=\"Définir une valeur...\" invisible=\"update_field_id == False or value_field_to_show != 'html_value' or evaluation_type != 'value'\" string=\"Valeur personnalisée\"/>\n                                <field name=\"sequence_id\" class=\"oe_inline\" placeholder=\"Select a sequence...\" invisible=\"evaluation_type != 'sequence'\" required=\"evaluation_type == 'sequence'\"/>\n                                <field name=\"resource_ref\" class=\"oe_inline\" placeholder=\"Choisissez une valeur...\" string=\"Valeur personnalisée\" options=\"{'model_field': 'update_related_model_id', 'no_create': True, 'no_open': True}\" invisible=\"update_field_id == False or value_field_to_show != 'resource_ref' or evaluation_type == 'equation' or update_m2m_operation == 'clear'\"/>\n                                <field name=\"selection_value\" class=\"oe_inline\" placeholder=\"Choisissez une valeur...\" options=\"{'no_create': True, 'no_open': True}\" invisible=\"update_field_id == False or value_field_to_show != 'selection_value' or evaluation_type == 'equation'\"/>\n                                <field name=\"update_boolean_value\" class=\"oe_inline\" invisible=\"evaluation_type != 'value' or value_field_to_show != 'update_boolean_value'\" required=\"value_field_to_show == 'update_boolean_value'\"/>\n                                <span invisible=\"update_field_id != False or evaluation_type != 'value'\" class=\"o_actions_server_set_a_value text-muted\">Set a value...</span>\n                                <span invisible=\"evaluation_type != 'equation'\">\n                                    to this Python expression:\n                                </span>\n                                <div class=\"w-100 d-flex flex-row gap-3\" invisible=\"evaluation_type != 'equation'\">\n                                    <field name=\"value\" class=\"w-50\" widget=\"code\" options=\"{'mode': 'python'}\" string=\"Expression\"/>\n                                    <div class=\"w-50 opacity-75\">\n                                        <span colspan=\"2\" class=\"text-muted\"> Variables disponibles : </span>\n                                            <ul colspan=\"2\" class=\"text-muted\">\n                                                <li><code>env</code>: environnement dans lequel l'action est déclenchée</li>\n                                                <li><code>model</code>: modèle de l'enregistrement sur lequel l'action est déclenchée ; est un jeu d'enregistrements void</li>\n                                                <li><code>record</code> : enregistrement sur lequel l'action est déclenchée</li>\n                                                <li><code>records</code>: jeu d'enregistrements de tous les enregistrements sur lesquels l'action est déclenchée en mode multi</li>\n                                                <li><code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: bibliothèques Python utiles</li>\n                                                <li><code>float_compare()</code>: fonction 'utility' pour comparer les flottants en fonction d'une précision spécifique</li>\n                                            </ul>\n                                    </div>\n                                </div>\n                            </div>\n                            <group invisible=\"state not in ['object_create', 'object_copy']\">\n                                <group>\n                                    <field name=\"crud_model_id\" options=\"{'no_create': True, 'no_open': True}\" required=\"state in ['object_create', 'object_copy']\"/>\n                                    <field name=\"value\" widget=\"char\" string=\"Nom\" invisible=\"state != 'object_create'\" help=\"Le nom de l'enregistrement à créer\" placeholder=\"par ex. Suivi\"/>\n                                    <field name=\"resource_ref\" placeholder=\"Choisir un enregistrement...\" string=\"Dupliquer depuis\" options=\"{'model_field': 'crud_model_id', 'no_create': True, 'no_open': True}\" invisible=\"crud_model_id == False or state != 'object_copy'\" required=\"state == 'object_copy'\"/>\n                                    <field name=\"link_field_id\" domain=\"[('model_id', '=', model_id), ('relation', '=', crud_model_name),                                         ('ttype', 'in', ['many2one', 'one2many', 'many2many'])]\" placeholder=\"Sélectionner un champ auquel lier l'enregistrement\" options=\"{'no_create': True, 'no_open': True}\" context=\"{'default_model_id': model_id, 'default_relation': crud_model_name}\"/>\n                                </group>\n                            </group>\n                            <group invisible=\"state != 'webhook'\">\n                                <group>\n                                    <field name=\"webhook_url\" string=\"URL\" placeholder=\"par ex. https://maker.ifttt.com/use/...\"/>\n                                    <field name=\"webhook_field_ids\" string=\"Champs\" widget=\"many2many_tags\" context=\"{'hide_model': 1}\" domain=\"[('model_id', '=', model_id)]\" placeholder=\"Sélectionner les champs à inclure dans la requête...\"/>\n                                </group>\n                                <group>\n                                    <label for=\"webhook_sample_payload\"/>\n                                    <field name=\"webhook_sample_payload\" string=\"Exemple de charge utile\" nolabel=\"1\" colspan=\"2\" readonly=\"1\" widget=\"code\" options=\"{'mode': 'javascript'}\"/>\n                                </group>\n                            </group>\n                            <t invisible=\"state != 'multi'\">\n                                <field name=\"child_ids\" widget=\"many2many\" mode=\"kanban\" context=\"{                                     'is_modal': 1,                                     'default_model_id': model_id,                                 }\"/>\n                                <p class=\"opacity-50 mb-1 mt-3 mt-md-n2 mt-lg-0\">\n                                    Si plusieurs actions retournent une action, seule la dernière sera exécutée.\n                                </p>\n                            </t>\n                            <notebook invisible=\"state != 'code'\">\n                                <page string=\"Code\">\n                                    <field name=\"code\" invisible=\"state != 'code'\" widget=\"code\" options=\"{'mode': 'python'}\" placeholder=\"Saisissez le code Python ici. Une aide sur l'expression Python est disponible dans l'onglet d'aide de ce document.\"/>\n                                </page>\n                                <page string=\"Assistance\">\n                                    <p>Les variables suivantes peuvent être utilisées :</p>\n                                    <ul>\n                                        <li><code>env</code>: environnement dans lequel l'action est déclenchée</li>\n                                        <li><code>model</code>: modèle de l'enregistrement sur lequel l'action est déclenchée ; est un jeu d'enregistrements void</li>\n                                        <li><code>record</code> : enregistrement sur lequel l'action est déclenchée ; peut être void</li>\n                                        <li><code>records</code>: jeu d'enregistrements de tous les enregistrements sur lesquels l'action est déclenchée en mode multi ; peut être void</li>\n                                        <li><code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: bibliothèques Python utiles</li>\n                                        <li><code>float_compare()</code>: fonction 'utility' pour comparer les flottants en fonction d'une précision spécifique</li>\n                                        <li><code>log(message, level='info')</code>: fonction de journalisation pour enregistrer des informations de débogage dans le tableau <code>ir.logging</code></li>\n                                        <li><code>_logger.info(message)</code>: logger pour émettre des messages dans les logs du serveur</li>\n                                        <li><code>UserError</code> : classe Exception permettant d'afficher des messages d'avertissement à l'intention des utilisateurs</li>\n                                        <li><code>Command</code> : espace de nom de commande x2Many</li>\n                                        <li>Pour retourner une action, utilisez : <code>action = {...}</code></li>\n                                        <li>Pour notifier l'état d'avancement d'un appel CRON et redéclencher un appel s'il reste des tâches à accomplir, utilisez l'option <code>env['ir.cron']._notify_progress(done=task_done_count, remaining=task_remaining_count)</code></li>\n                                    </ul>\n                                    <div>\n                                        <p>Exemple du code Python :</p>\n                                        <pre style=\"white-space: pre-wrap\">partner_name = record.name + '_code'\nenv['res.partner'].create({'name': partner_name})\n    </pre>\n                                    </div>\n                                </page>\n                            </notebook>\n                        </t>\n                    </sheet>\n                </form>"}