<?xml version="1.0" encoding="utf-8" ?>
<odoo>

    <record id="action_execute_cx_tower_command" model="ir.actions.server">
        <field name="name">Command</field>
        <field name="type">ir.actions.server</field>
        <field name="model_id" ref="model_cx_tower_server" />
        <field name="binding_model_id" ref="model_cx_tower_server" />
        <field name="sequence">10</field>
        <field name="state">code</field>
        <field name="code">action = records.action_run_command()</field>
        <field name="groups_id" eval="[(4, ref('cetmix_tower_server.group_user'))]" />
    </record>

    <record id="action_execute_cx_tower_plan" model="ir.actions.server">
        <field name="name">Flight Plan</field>
        <field name="type">ir.actions.server</field>
        <field name="model_id" ref="model_cx_tower_server" />
        <field name="binding_model_id" ref="model_cx_tower_server" />
        <field name="sequence">12</field>
        <field name="state">code</field>
        <field name="code">action = records.action_run_flight_plan()</field>
        <field name="groups_id" eval="[(4, ref('cetmix_tower_server.group_user'))]" />
    </record>

    <record id="action_stop_cx_tower_plan_log" model="ir.actions.server">
        <field name="name">Stop Flight Plan</field>
        <field name="type">ir.actions.server</field>
        <field name="model_id" ref="model_cx_tower_plan_log" />
        <field name="binding_model_id" ref="model_cx_tower_plan_log" />
        <field name="sequence">14</field>
        <field name="state">code</field>
        <field name="code">action = records.action_stop()</field>
        <field
            name="groups_id"
            eval="[(4, ref('cetmix_tower_server.group_manager'))]"
        />
    </record>
</odoo>
