Wipe addons/: full reset for clean re-upload

This commit is contained in:
Tower Deploy
2026-04-27 11:20:53 +03:00
parent 2cf3b5185d
commit 9bb80002c8
363 changed files with 0 additions and 112641 deletions

View File

@@ -1,232 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="cx_tower_command_log_view_form" model="ir.ui.view">
<field name="name">cx.tower.command.log.view.form</field>
<field name="model">cx.tower.command.log</field>
<field name="arch" type="xml">
<form>
<sheet>
<widget
name="web_ribbon"
title="Running"
bg_color="bg-info"
attrs="{'invisible': [('is_running', '=', False)]}"
/>
<widget
name="web_ribbon"
title="Finished"
attrs="{'invisible': ['|', ('is_running', '=', True), '&amp;', ('is_running', '=', False), ('command_status', '!=', 0)]}"
/>
<widget
name="web_ribbon"
title="Failed"
bg_color="bg-danger"
attrs="{'invisible': ['|', ('is_running', '=', True), '&amp;', ('is_running', '=', False), ('command_status', 'in', [0, -205])]}"
/>
<widget
name="web_ribbon"
title="Skipped"
bg_color="bg-dark"
attrs="{'invisible': ['|', ('is_running', '=', True), '&amp;', ('is_running', '=', False), ('command_status', '!=', -205)]}"
/>
<group>
<group>
<field name="is_skipped" invisible="1" />
<field name="create_uid" />
<field name="server_id" />
<field
name="jet_id"
attrs="{'invisible': [('jet_id', '=', False)]}"
/>
<field
name="jet_template_id"
attrs="{'invisible': [('jet_template_id', '=', False)]}"
/>
<field
name="waypoint_id"
attrs="{'invisible': [('waypoint_id', '=', False)]}"
/>
<field name="command_id" />
<field name="command_action" invisible="1" />
<field
name="condition"
attrs="{'invisible': [('condition', '=', False)]}"
widget="ace"
options="{'mode': 'python'}"
/>
<field
name="path"
attrs="{'invisible': [('path', '=', False)]}"
/>
<field
name="is_running"
attrs="{'invisible': [('is_running', '=', False)]}"
/>
<field
name="use_sudo"
attrs="{'invisible': [('use_sudo', '=', False)]}"
/>
<field
name="plan_log_id"
invisible="context.get('opened_from_plan', False)"
attrs="{'invisible': [('plan_log_id', '=', False)]}"
/>
<field
name="triggered_plan_log_id"
attrs="{'invisible': [('triggered_plan_log_id', '=', False)]}"
/>
<field
name="scheduled_task_id"
attrs="{'invisible': [('scheduled_task_id', '=', False)]}"
/>
</group>
<group>
<field
name="label"
attrs="{'invisible': [('label', '=', False)]}"
/>
<field name="start_date" />
<field name="finish_date" />
<field name="duration_current" />
<field
name="command_status"
attrs="{'invisible': [('is_running', '=', True)]}"
/>
</group>
</group>
<notebook>
<page
name="result"
string="Result"
attrs="{'invisible': [('command_action', '=', 'plan')]}"
>
<field
name="command_result_html"
attrs="{'invisible': [('command_result_html', '=', False)]}"
/>
</page>
<page
name="code"
string="Command"
attrs="{'invisible': [('command_action', '=', 'plan')]}"
>
<field name="code" />
</page>
<page
string="Triggered Commands"
attrs="{'invisible': [('command_action','!=','plan')]}"
>
<field name="triggered_plan_command_log_ids">
<tree default_order="id asc" />
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="cx_tower_command_log_view_tree" model="ir.ui.view">
<field name="name">cx.tower.command.log.view.tree</field>
<field name="model">cx.tower.command.log</field>
<field name="arch" type="xml">
<tree
decoration-danger="command_status not in [0, -205]"
decoration-info="is_running == True"
decoration-muted="command_status == -205"
>
<field name="start_date" />
<field name="finish_date" optional="hide" />
<field name="duration_current" optional="show" />
<field name="server_id" optional="show" />
<field name="jet_id" optional="show" />
<field name="jet_template_id" optional="hide" />
<field name="command_id" optional="show" />
<field name="command_action" optional="show" />
<field name="command_status" optional="show" />
<field name="is_running" optional="hide" />
</tree>
</field>
</record>
<record id="cx_tower_command_log_search_view" model="ir.ui.view">
<field name="name">cx.tower.command.log.view.search</field>
<field name="model">cx.tower.command.log</field>
<field name="arch" type="xml">
<search string="Search Command Log">
<field name="command_id" />
<field name="server_id" />
<field name="jet_id" />
<field name="jet_template_id" />
<field name="label" />
<separator />
<filter
string="Success"
name="filter_success"
domain="[('command_status', '=', 0)]"
/>
<filter
string="Error"
name="filter_error"
domain="[('command_status', '!=', 0)]"
/>
<filter
string="Running Now"
name="filter_is_running"
domain="[('is_running', '=', True)]"
/>
<separator />
<filter
string="Labeled"
name="filter_labeled"
domain="[('label', '!=', False)]"
/>
<group expand="0" string="Group By">
<filter
string="Server"
name="group_server"
domain="[]"
context="{'group_by': 'server_id'}"
/>
<filter
string="Command"
name="group_command"
domain="[]"
context="{'group_by': 'command_id'}"
/>
<filter
string="Action"
name="group_action"
domain="[]"
context="{'group_by': 'command_action'}"
/>
<filter
string="Start date"
name="group_start"
domain="[]"
context="{'group_by': 'start_date:day'}"
/>
<filter
string="Finish date"
name="group_finish"
domain="[]"
context="{'group_by': 'finish_date:day'}"
/>
</group>
<searchpanel>
<field name="command_action" string="Action" icon="fa-cog" />
</searchpanel>
</search>
</field>
</record>
<record id="action_cx_tower_command_log" model="ir.actions.act_window">
<field name="name">Command Log</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">cx.tower.command.log</field>
<field name="view_mode">tree,form</field>
<field name="context">{}</field>
</record>
</odoo>

View File

@@ -1,346 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="cx_tower_command_view_form" model="ir.ui.view">
<field name="name">cx.tower.command.view.form</field>
<field name="model">cx.tower.command</field>
<field name="arch" type="xml">
<form>
<sheet>
<div class="oe_button_box" name="button_box">
<button
name="action_open_plans"
type="object"
class="oe_stat_button"
attrs="{'invisible': [('flight_plan_used_ids_count', '=', 0)]}"
icon="fa-paper-plane"
>
<field
name="flight_plan_used_ids_count"
string="Used in Plans"
widget="statinfo"
/>
</button>
<button
name="action_open_command_logs"
type="object"
string="Logs"
class="oe_stat_button"
icon="fa-code"
/>
</div>
<widget
name="web_ribbon"
title="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<div
class="alert alert-warning"
role="alert"
attrs="{'invisible': [('action', 'not in', ['file_using_template', 'python_code', 'plan', 'jet_action', 'create_waypoint'])]}"
style="margin-bottom:0px;"
>
<p
attrs="{'invisible': [('action', 'not in', ['file_using_template', 'plan', 'jet_action', 'create_waypoint'])]}"
>
This command can be used only in Flight Plans.
</p>
<p attrs="{'invisible': [('action', '!=', 'python_code')]}">
Remember: Python code is executed on the Tower server, not on the remote
one.
</p>
</div>
<group>
<group>
<field name="name" />
<field name="reference" />
<field name="active" invisible='1' />
<field name="action" />
<field
name="file_template_id"
attrs="{'invisible': [('action', '!=', 'file_using_template')], 'required': [('action', '=', 'file_using_template')]}"
/>
<field
name="flight_plan_id"
attrs="{'invisible': [('action', '!=', 'plan')], 'required': [('action', '=', 'plan')]}"
/>
<field
name="path"
widget="ace_tower"
attrs="{'invisible': [('action', '=', 'python_code')]}"
placeholder="optional, eg /home/{{ tower.server.username }}"
/>
<field
name="if_file_exists"
attrs="{
'invisible': [('action', '!=', 'file_using_template')],
'required': [('action', '=', 'file_using_template')],
}"
/>
<field
name="disconnect_file"
attrs="{'invisible': [('action', '!=', 'file_using_template')]}"
/>
<field
name="jet_template_id"
attrs="{'invisible': [('action', '!=', 'jet_action')], 'required': [('action', '=', 'jet_action')]}"
/>
<field
name="jet_action_id"
attrs="{'invisible': [('action', '!=', 'jet_action')], 'required': [('action', '=', 'jet_action')]}"
/>
<field
name="waypoint_template_id"
attrs="{'invisible': [('action', '!=', 'create_waypoint')], 'required': [('action', '=', 'create_waypoint')]}"
/>
<field
name="fly_here"
attrs="{'invisible': [('action', '!=', 'create_waypoint')]}"
/>
<field name="allow_parallel_run" />
<field
name="no_split_for_sudo"
attrs="{'invisible': [('action', '!=', 'ssh_command')]}"
/>
<field name="note" />
</group>
<group>
<field
name="server_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
/>
<field
name="os_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
/>
<field
name="tag_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
/>
<field name="access_level" />
<field name="server_status" widget="server_status" />
<field
name="variable_ids"
widget="many2many_tags"
readonly="1"
groups="cetmix_tower_server.group_manager,cetmix_tower_server.group_root"
attrs="{'invisible': [('variable_ids', '=', [])]}"
/>
<field
name="secret_ids"
widget="many2many_tags"
groups="cetmix_tower_server.group_manager,cetmix_tower_server.group_root"
attrs="{'invisible': [('secret_ids', '=', [])]}"
/>
</group>
</group>
<notebook>
<page
name="code"
string="Code"
attrs="{'invisible': [('action', 'not in', ['ssh_command', 'python_code'])]}"
>
<field
name="code"
attrs="{'required': [('action', '=', 'python_code')]}"
widget="ace_tower"
options="{'mode': 'python'}"
placeholder="Enter Python code here. Help about Python expression is available in the help tab of this document."
/>
</page>
<page
string="Help"
name="python_help_info"
attrs="{'invisible': [('action', '!=', 'python_code')]}"
>
<field name="command_help" />
</page>
<page
name="plan_lines"
string="Flight Plan Lines"
attrs="{'invisible': [('action', '!=', 'plan')]}"
>
<field name="flight_plan_line_ids">
<tree>
<field name="command_id" />
<field name="tag_ids" widget="many2many_tags" />
</tree>
</field>
</page>
<page
name="template_code"
string="Template Code"
attrs="{'invisible': [('action', '!=', 'file_using_template')]}"
>
<field
name="template_code"
widget="ace"
readonly="1"
options="{'mode': 'jinja2'}"
/>
</page>
<page
name="access"
string="Access"
groups="cetmix_tower_server.group_manager"
>
<group name="access">
<field
name="user_ids"
widget="many2many_tags"
placeholder="users who can view this record"
options="{'no_create': True}"
/>
<field
name="manager_ids"
widget="many2many_tags"
placeholder="managers who can modify this record"
options="{'no_create': True}"
/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="cx_tower_command_view_tree" model="ir.ui.view">
<field name="name">cx.tower.command.view.tree</field>
<field name="model">cx.tower.command</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
<field name="reference" optional="hide" />
<field name="action" />
<field name="access_level" optional="hide" />
<field
name="server_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
optional="show"
/>
<field name="path" optional="show" />
<field
name="tag_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
optional="show"
/>
<field
name="os_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
optional="hide"
/>
<field
name="secret_ids"
widget="many2many_tags"
groups="cetmix_tower_server.group_manager,cetmix_tower_server.group_root"
optional="hide"
/>
<field name="allow_parallel_run" optional="hide" />
</tree>
</field>
</record>
<record id="cx_tower_command_search_view" model="ir.ui.view">
<field name="name">cx.tower.command.view.search</field>
<field name="model">cx.tower.command</field>
<field name="arch" type="xml">
<search string="Search Commands">
<field
name="name"
string="Name/Reference"
filter_domain="['|', ('name', 'ilike', self), ('reference', 'ilike', self)]"
/>
<field name="code" />
<field name="user_ids" />
<field name="manager_ids" />
<filter
string="Global"
name="filter_global"
domain="[('server_ids', '=', False)]"
/>
<filter
string="Server tight"
name="server_tight"
domain="[('server_ids', '!=', False)]"
/>
<separator />
<filter
string="Allow Parallel Run"
name="filter_run_parallel"
domain="[('allow_parallel_run', '=', True)]"
/>
<separator />
<filter
string="Used in Plans"
name="filter_used_in_plans"
domain="[('flight_plan_used_ids', '!=', False)]"
/>
<separator />
<filter
string="Tagged"
name="filter_tagged"
domain="[('tag_ids', '!=', False)]"
/>
<separator />
<filter
string="Archived"
name="archived"
domain="[('active', '=', False)]"
/>
<group expand="0" string="Group By">
<filter
string="Action"
name="group_action"
domain="[]"
context="{'group_by': 'action'}"
/>
<filter
string="Access Level"
name="group_access_level"
domain="[]"
context="{'group_by': 'access_level'}"
/>
</group>
<searchpanel>
<field
name="action"
string="Action"
icon="fa-cog"
enable_counters="1"
/>
<field name="access_level" string="Access Level" icon="fa-shield" />
<field name="tag_ids" string="Tags" icon="fa-tags" select="multi" />
<field
name="os_ids"
string="OSes"
icon="fa-server"
select="multi"
/>
<field
name="server_ids"
string="Servers"
icon="fa-server"
select="multi"
/>
</searchpanel>
</search>
</field>
</record>
<record id="action_cx_tower_command" model="ir.actions.act_window">
<field name="name">Command</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">cx.tower.command</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>

View File

@@ -1,167 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="cx_tower_file_template_view_form" model="ir.ui.view">
<field name="name">cx.tower.file.template.view.form</field>
<field name="model">cx.tower.file.template</field>
<field name="arch" type="xml">
<form>
<sheet>
<div class="oe_button_box" name="button_box">
<button
name="action_open_files"
type="object"
class="oe_stat_button"
icon="fa-files-o"
>
<field name="file_count" widget="statinfo" string="Files" />
</button>
</div>
<div class="oe_title">
<label for="name" class="oe_edit_only" />
<h1>
<field name="name" placeholder="Name" required="1" />
</h1>
<h3>
<field
name="reference"
placeholder="Reference. Can contain English letters, digits and '_'. Leave blank to autogenerate"
/>
</h3>
<field name="active" invisible="1" />
</div>
<group>
<group>
<field name="file_name" widget="ace_tower" />
<field name="server_dir" widget="ace_tower" />
<field name="source" />
<field
name="tag_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
/>
<field
name="keep_when_deleted"
attrs="{'invisible': [('source', '=', 'server')]}"
/>
<field name="file_type" />
<field
name="auto_sync"
attrs="{'invisible': [('source', '=', 'server')]}"
/>
<field name="note" />
<field
name="variable_ids"
widget="many2many_tags"
readonly="1"
groups="cetmix_tower_server.group_manager,cetmix_tower_server.group_root"
attrs="{'invisible': [('variable_ids', '=', [])]}"
/>
<field
name="secret_ids"
widget="many2many_tags"
attrs="{'invisible': [('secret_ids', '=', [])]}"
groups="cetmix_tower_server.group_manager,cetmix_tower_server.group_root"
/>
</group>
</group>
<notebook>
<page
name="code"
string="Code"
attrs="{'invisible': ['|', ('file_type', '=', 'binary'), ('source', '=', 'server')]}"
>
<field name="code" widget="ace_tower" nolabel="1" />
</page>
<page
name="access"
string="Access"
groups="cetmix_tower_server.group_manager"
>
<group name="access">
<field
name="user_ids"
widget="many2many_tags"
placeholder="users who can view this record"
options="{'no_create': True}"
/>
<field
name="manager_ids"
widget="many2many_tags"
placeholder="managers who can modify this record"
options="{'no_create': True}"
/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="cx_tower_file_template_view_tree" model="ir.ui.view">
<field name="name">cx.tower.file.template.view.tree</field>
<field name="model">cx.tower.file.template</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
<field name="reference" optional="hide" />
<field name="file_type" optional="show" />
<field name="file_name" optional="show" />
<field name="server_dir" optional="hide" />
<field name="auto_sync" optional="hide" />
<field
name="tag_ids"
widget="many2many_tags"
options="{'color_field': 'color'}"
optional="show"
/>
</tree>
</field>
</record>
<record id="cx_tower_file_template_view_search" model="ir.ui.view">
<field name="name">cx.tower.file.template.view.search</field>
<field name="model">cx.tower.file.template</field>
<field name="arch" type="xml">
<search string="Search File Templates">
<field
name="name"
string="Name/Reference"
filter_domain="['|', ('name', 'ilike', self), ('reference', 'ilike', self)]"
/>
<field name="server_dir" />
<filter
string="Archived"
name="archived"
domain="[('active', '=', False)]"
/>
<group expand="0" string="Group By">
<filter
name="group_by_file_type"
string="File Type"
context="{'group_by': 'file_type'}"
/>
</group>
<searchpanel>
<field name="source" string="Source" icon="fa-server" />
<field name="file_type" string="File Type" icon="fa-file" />
<field name="tag_ids" string="Tags" icon="fa-tags" select="multi" />
</searchpanel>
</search>
</field>
</record>
<record id="cx_tower_file_template_action" model="ir.actions.act_window">
<field name="name">Templates</field>
<field name="res_model">cx.tower.file.template</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="cx_tower_file_template_view_search" />
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Add a new file template
</p>
</field>
</record>
</odoo>

View File

@@ -1,318 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="cx_tower_file_view_form" model="ir.ui.view">
<field name="name">cx.tower.file.view.form</field>
<field name="model">cx.tower.file</field>
<field name="arch" type="xml">
<form>
<header>
<button
name="action_push_to_server"
string="Push to Server"
type="object"
class="oe_highlight"
attrs="{'invisible': [('source', '!=', 'tower')]}"
groups="cetmix_tower_server.group_manager"
/>
<button
name="action_pull_from_server"
string="Pull from Server"
type="object"
class="oe_highlight"
attrs="{'invisible': [('source', '!=', 'server')]}"
groups="cetmix_tower_server.group_manager"
/>
</header>
<sheet>
<group>
<group>
<field name="name" widget="ace_tower" />
<!-- This is done to get the priority to the auto generated reference -->
<field
name="reference"
attrs="{'invisible': [('reference', '=', False)]}"
/>
<field name="source" required="1" />
<field name="file_type" />
<field name="id" invisible="1" />
<field
name="file"
filename="name"
attrs="{
'invisible': [('file_type', '!=', 'binary')],
'required': [('file_type', '=', 'binary'), ('source', '!=', 'server')],
'readonly': ['|', ('id', '!=', False), ('source', '=', 'server')]
}"
/>
<field
name="template_id"
domain="[('source', '=', source)]"
/>
<field
name="keep_when_deleted"
attrs="{'invisible': [('source', '!=', 'tower')]}"
/>
<field name="auto_sync" />
<field
name="auto_sync_interval"
attrs="{'invisible': ['|', ('auto_sync', '=', False), ('source', '!=', 'server')], 'required': [('auto_sync', '=', True), ('source', '=', 'server')]}"
/>
<field
name="sync_date_next"
attrs="{'invisible': ['|', ('auto_sync', '=', False), ('source', '!=', 'server')]}"
/>
<field name="sync_date_last" />
</group>
<group>
<field
name="server_id"
attrs="{'readonly': [('jet_id', '!=', False)], 'required': [('jet_id', '=', False)]}"
/>
<field
name="jet_template_id"
attrs="{'invisible': [('jet_template_id', '=', False)], 'readonly': [('jet_id', '!=', False)]}"
/>
<field
name="jet_id"
attrs="{'invisible': [('jet_id', '=', False)]}"
/>
<field name="server_dir" widget="ace_tower" />
<field name="full_server_path" />
<field
name="variable_ids"
widget="many2many_tags"
groups="cetmix_tower_server.group_manager,cetmix_tower_server.group_root"
attrs="{'invisible': [('variable_ids', '=', [])]}"
/>
<field
name="secret_ids"
widget="many2many_tags"
groups="cetmix_tower_server.group_manager,cetmix_tower_server.group_root"
attrs="{'invisible': [('secret_ids', '=', [])]}"
/>
</group>
</group>
<notebook>
<page
name="code"
string="Code"
attrs="{'invisible': [('file_type', '=', 'binary')]}"
>
<button
string="Modify Code"
icon="fa-pencil-square-o"
name="action_unlink_from_template"
type="object"
class="btn-secondary"
confirm="File will be disconnected from template. Continue?"
attrs="{'invisible': [('template_id', '=', False)]}"
/>
<field
name="code"
widget="ace_tower"
nolabel="1"
attrs="{'readonly': ['|', ('template_id', '!=', False), ('source', '=', 'server')]}"
/>
</page>
<page
name="rendered_code"
string="Preview"
attrs="{'invisible': ['|', ('source', '!=', 'tower'), ('file_type', '=', 'binary')]}"
>
<field
name="rendered_code"
nolabel="1"
class="o_field_text"
/>
</page>
<page
name="code_on_server"
string="Server Version"
attrs="{'invisible': ['|', ('source', '!=', 'tower'), ('file_type', '=', 'binary')]}"
>
<group>
<button
name="action_get_current_server_code"
type="object"
class="oe_highlight"
>Refresh</button>
</group>
<field
name="code_on_server"
nolabel="1"
class="o_field_text"
/>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" />
<field name="activity_ids" />
<field name="message_ids" />
</div>
</form>
</field>
</record>
<record id="cx_tower_file_view_tree" model="ir.ui.view">
<field name="name">cx.tower.file.view.tree</field>
<field name="model">cx.tower.file</field>
<field name="arch" type="xml">
<tree>
<field name="name" optional="hide" />
<field name="rendered_name" optional="show" />
<field name="reference" optional="hide" />
<field name="full_server_path" optional="hide" />
<field name="source" />
<field name="file_type" optional="show" />
<field name="server_id" />
<field name="jet_template_id" optional="hide" />
<field name="jet_id" optional="hide" />
<field name="sync_date_last" optional="show" />
<field name="template_id" optional="show" />
<field
name="secret_ids"
widget="many2many_tags"
groups="cetmix_tower_server.group_manager,cetmix_tower_server.group_root"
optional="hide"
/>
</tree>
</field>
</record>
<record id="cx_tower_file_view_search" model="ir.ui.view">
<field name="name">cx.tower.file.view.search</field>
<field name="model">cx.tower.file</field>
<field name="arch" type="xml">
<search string="Search Files">
<field
name="name"
string="Name/Reference"
filter_domain="['|', ('name', 'ilike', self), ('reference', 'ilike', self)]"
/>
<field name="code" />
<field name="server_id" />
<field name="server_dir" />
<filter
string="Has Template"
name="filter_has_template"
domain="[('template_id', '!=', False)]"
/>
<filter
string="No Template"
name="filter_no_template"
domain="[('template_id', '=', False)]"
/>
<separator />
<filter
string="Synced"
name="filter_is_synced"
domain="[('server_response', '=', 'ok')]"
/>
<filter
string="No Synced"
name="filter_is_no_synced"
domain="[('server_response', '=', False)]"
/>
<filter
string="Sync Error"
name="filter_is_error_synced"
domain="[('server_response', 'not in', ['ok', False])]"
/>
<separator />
<group expand="0" string="Group By">
<filter
string="Source"
name="group_by_source"
domain="[]"
context="{'group_by': 'source'}"
/>
<filter
string="File Type"
name="group_by_file_type"
domain="[]"
context="{'group_by': 'file_type'}"
/>
<filter
string="Server"
name="group_by_server"
domain="[]"
context="{'group_by': 'server_id'}"
/>
<filter
string="Jet Template"
name="group_by_jet_template"
domain="[]"
context="{'group_by': 'jet_template_id'}"
/>
<filter
string="Jet"
name="group_by_jet"
domain="[]"
context="{'group_by': 'jet_id'}"
/>
<filter
string="Template"
name="group_by_template"
domain="[]"
context="{'group_by': 'template_id'}"
/>
</group>
<searchpanel>
<field name="source" string="Source" icon="fa-server" />
<field name="file_type" string="File Type" icon="fa-file" />
<field name="template_id" string="Template" icon="fa-file" />
</searchpanel>
</search>
</field>
</record>
<record id="cx_tower_file_action" model="ir.actions.act_window">
<field name="name">Files</field>
<field name="res_model">cx.tower.file</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="cx_tower_file_view_search" />
<field name="domain">[]</field>
<field name="context">{}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Add a new file
</p>
</field>
</record>
<record id="cetmix_tower_file_upload_action" model="ir.actions.server">
<field name="name">Upload</field>
<field name="model_id" ref="model_cx_tower_file" />
<field name="binding_model_id" ref="model_cx_tower_file" />
<field name="state">code</field>
<field name="code">action = records.action_push_to_server()</field>
</record>
<record id="cetmix_tower_file_download_action" model="ir.actions.server">
<field name="name">Download</field>
<field name="model_id" ref="model_cx_tower_file" />
<field name="binding_model_id" ref="model_cx_tower_file" />
<field name="state">code</field>
<field name="code">action = records.action_pull_from_server()</field>
</record>
<record id="cetmix_tower_file_delete_action" model="ir.actions.server">
<field name="name">Delete from server</field>
<field name="model_id" ref="model_cx_tower_file" />
<field name="binding_model_id" ref="model_cx_tower_file" />
<field name="state">code</field>
<field name="code">action = records.action_delete_from_server()</field>
<field
name="groups_id"
eval="[
(4, ref('cetmix_tower_server.group_manager')),
(4, ref('cetmix_tower_server.group_root')),
]"
/>
</record>
</odoo>