bemade-addons/unifi_integration/views/udm_config_views.xml
2025-03-10 10:09:39 -04:00

418 lines
19 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- UDM Configuration Tree View -->
<record id="view_udm_configuration_tree" model="ir.ui.view">
<field name="name">udm.configuration.tree</field>
<field name="model">udm.configuration</field>
<field name="arch" type="xml">
<tree string="UDM Pro Configurations">
<field name="name"/>
<field name="timestamp"/>
<field name="site_id"/>
<field name="active"/>
<field name="system_info_id" optional="show"/>
<field name="network_count" optional="show"/>
<field name="device_count" optional="show"/>
<field name="user_count" optional="show"/>
<field name="firewall_rule_count" optional="show"/>
</tree>
</field>
</record>
<!-- UDM Configuration Form View -->
<record id="view_udm_configuration_form" model="ir.ui.view">
<field name="name">udm.configuration.form</field>
<field name="model">udm.configuration</field>
<field name="arch" type="xml">
<form string="UDM Pro Configuration">
<sheet>
<div class="oe_button_box" name="button_box">
<button name="action_view_networks" type="object" class="oe_stat_button" icon="fa-diagram-project">
<field name="network_count" widget="statinfo" string="Networks"/>
</button>
<button name="action_view_devices" type="object" class="oe_stat_button" icon="fa-desktop">
<field name="device_count" widget="statinfo" string="Devices"/>
</button>
<button name="action_view_users" type="object" class="oe_stat_button" icon="fa-users">
<field name="user_count" widget="statinfo" string="Users"/>
</button>
<button name="action_view_firewall_rules" type="object" class="oe_stat_button" icon="fa-shield-halved">
<field name="firewall_rule_count" widget="statinfo" string="Firewall Rules"/>
</button>
<button name="action_view_dashboard" type="object" class="oe_stat_button" icon="fa-tachometer-alt">
<span>Dashboard</span>
</button>
</div>
<div class="oe_title">
<h1>
<field name="name"/>
</h1>
</div>
<group>
<group>
<field name="timestamp"/>
<field name="site_id"/>
<field name="active"/>
<field name="system_info_id"/>
<field name="settings_id"/>
</group>
<group>
<field name="host"/>
<field name="port"/>
<field name="username"/>
<field name="password" password="True"/>
</group>
</group>
<notebook>
<page string="Networks" name="networks">
<field name="network_ids" nolabel="1">
<tree>
<field name="name"/>
<field name="purpose"/>
<field name="subnet"/>
<field name="vlan_id"/>
<field name="dhcp_enabled"/>
</tree>
</field>
</page>
<page string="VLANs" name="vlans">
<field name="vlan_ids" nolabel="1">
<tree>
<field name="vlan_id"/>
<field name="name"/>
<field name="enabled"/>
</tree>
</field>
</page>
<page string="Devices" name="devices">
<field name="device_ids" nolabel="1">
<tree>
<field name="name"/>
<field name="mac"/>
<field name="ip"/>
<field name="device_type"/>
<field name="model" optional="show"/>
<field name="last_seen"/>
<field name="status" widget="badge" decoration-success="status == 'online'" decoration-danger="status == 'offline'" decoration-info="status == 'unknown'"/>
</tree>
</field>
</page>
<page string="Users" name="users">
<field name="user_ids" nolabel="1">
<tree>
<field name="name"/>
<field name="email"/>
<field name="role"/>
<field name="enabled"/>
<field name="is_admin"/>
</tree>
</field>
</page>
<page string="Firewall Rules" name="firewall_rules">
<field name="firewall_rule_ids" nolabel="1">
<tree>
<field name="name"/>
<field name="enabled"/>
<field name="action"/>
<field name="protocol"/>
<field name="src_address"/>
<field name="dst_address"/>
<field name="rule_summary" optional="show"/>
</tree>
</field>
</page>
<page string="Raw Data" name="raw_data">
<field name="raw_data" widget="ace" options="{'mode': 'json'}" help="Données JSON brutes de la configuration"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Configuration Search View -->
<record id="view_udm_configuration_search" model="ir.ui.view">
<field name="name">udm.configuration.search</field>
<field name="model">udm.configuration</field>
<field name="arch" type="xml">
<search string="Search UDM Pro Configurations">
<field name="name"/>
<field name="system_info_id"/>
<field name="timestamp"/>
<filter string="Last 7 Days" name="last_7_days" domain="[('timestamp','>=', (context_today() - relativedelta(days=7)))]"/>
<filter string="Last 30 Days" name="last_30_days" domain="[('timestamp','>=', (context_today() - relativedelta(days=30)))]"/>
<group expand="0" string="Group By">
<filter string="System Info" name="system_info" context="{'group_by': 'system_info_id'}"/>
<filter string="Month" name="month" context="{'group_by': 'timestamp:month'}"/>
</group>
</search>
</field>
</record>
<!-- System Info Form View -->
<record id="view_udm_system_info_form" model="ir.ui.view">
<field name="name">udm.system.info.form</field>
<field name="model">udm.system.info</field>
<field name="arch" type="xml">
<form string="UDM Pro System Information">
<sheet>
<group>
<group>
<field name="hostname"/>
<field name="version"/>
<field name="model"/>
<field name="serial"/>
</group>
<group>
<field name="mac_address"/>
<field name="uptime" invisibility="always"/>
<field name="uptime_human"/>
<field name="config_id"/>
</group>
</group>
<notebook>
<page string="Raw Data" name="raw_data">
<field name="raw_data" widget="ace" options="{'mode': 'json'}" help="Données JSON brutes de la configuration"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Network Form View -->
<record id="view_udm_network_form" model="ir.ui.view">
<field name="name">udm.network.form</field>
<field name="model">udm.network</field>
<field name="arch" type="xml">
<form string="UDM Pro Network">
<sheet>
<group>
<group>
<field name="name"/>
<field name="purpose"/>
<field name="subnet"/>
</group>
<group>
<field name="vlan_id_number"/>
<field name="vlan_id"/>
<field name="dhcp_enabled"/>
<field name="domain_name"/>
</group>
</group>
<group invisible="[('dhcp_enabled', '=', False)]">
<group>
<field name="dhcp_start"/>
<field name="dhcp_stop"/>
</group>
</group>
<notebook>
<page string="Raw Data" name="raw_data">
<field name="raw_data" widget="ace" options="{'mode': 'json'}" help="Données JSON brutes de la configuration"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- VLAN Form View -->
<record id="view_udm_vlan_form" model="ir.ui.view">
<field name="name">udm.vlan.form</field>
<field name="model">udm.vlan</field>
<field name="arch" type="xml">
<form string="UDM Pro VLAN">
<sheet>
<group>
<group>
<field name="vlan_id"/>
<field name="name"/>
</group>
<group>
<field name="enabled"/>
<field name="config_id"/>
<field name="network_count"/>
</group>
</group>
<notebook>
<page string="Networks" name="networks">
<field name="network_ids" nolabel="1">
<tree>
<field name="name"/>
<field name="purpose"/>
<field name="subnet"/>
</tree>
</field>
</page>
<page string="Raw Data" name="raw_data">
<field name="raw_data" widget="ace" options="{'mode': 'json'}" help="Données JSON brutes de la configuration"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Device Form View -->
<record id="view_udm_device_form" model="ir.ui.view">
<field name="name">udm.device.form</field>
<field name="model">udm.device</field>
<field name="arch" type="xml">
<form string="UDM Pro Device">
<sheet>
<div class="oe_title">
<h1>
<field name="name"/>
</h1>
</div>
<group>
<group>
<field name="mac"/>
<field name="ip"/>
<field name="device_type"/>
</group>
<group>
<field name="model"/>
<field name="last_seen"/>
<field name="status" widget="badge" decoration-success="status == 'online'" decoration-danger="status == 'offline'" decoration-info="status == 'unknown'"/>
<field name="config_id"/>
</group>
</group>
<notebook>
<page string="Raw Data" name="raw_data">
<field name="raw_data" widget="ace" options="{'mode': 'json'}" help="Données JSON brutes de la configuration"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- User Form View -->
<record id="view_udm_user_form" model="ir.ui.view">
<field name="name">udm.user.form</field>
<field name="model">udm.user</field>
<field name="arch" type="xml">
<form string="UDM Pro User">
<sheet>
<div class="oe_title">
<h1>
<field name="name"/>
</h1>
</div>
<group>
<group>
<field name="email"/>
<field name="role"/>
</group>
<group>
<field name="enabled"/>
<field name="is_admin"/>
<field name="config_id"/>
</group>
</group>
<notebook>
<page string="Raw Data" name="raw_data">
<field name="raw_data" widget="ace" options="{'mode': 'json'}" help="Données JSON brutes de la configuration"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Settings Form View -->
<record id="view_udm_settings_form" model="ir.ui.view">
<field name="name">udm.settings.form</field>
<field name="model">udm.settings</field>
<field name="arch" type="xml">
<form string="UDM Pro Settings">
<sheet>
<group>
<group>
<field name="timezone"/>
<field name="ntp_servers"/>
</group>
<group>
<field name="dns_servers"/>
<field name="config_id"/>
</group>
</group>
<notebook>
<page string="Raw Data" name="raw_data">
<field name="raw_data" widget="ace" options="{'mode': 'json'}" help="Données JSON brutes de la configuration"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Firewall Rule Form View -->
<record id="view_udm_firewall_rule_form" model="ir.ui.view">
<field name="name">udm.firewall.rule.form</field>
<field name="model">udm.firewall.rule</field>
<field name="arch" type="xml">
<form string="UDM Pro Firewall Rule">
<sheet>
<div class="oe_title">
<h1>
<field name="name"/>
</h1>
</div>
<group>
<group>
<field name="enabled"/>
<field name="action"/>
<field name="protocol"/>
</group>
<group>
<field name="src_address"/>
<field name="dst_address"/>
<field name="src_port"/>
<field name="dst_port"/>
</group>
</group>
<group>
<field name="rule_summary" readonly="1" force_save="1" help="Résumé de la règle en langage naturel"/>
<field name="config_id"/>
</group>
<notebook>
<page string="Raw Data" name="raw_data">
<field name="raw_data" widget="ace" options="{'mode': 'json'}" help="Données JSON brutes de la configuration"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Les vues relatives au modèle udm.site ont été déplacées vers udm_site_views.xml -->
<!-- La vue tableau de bord du site a été déplacée vers udm_site_views.xml -->
<!-- Les vues de métriques du tableau de bord ont été déplacées vers udm_dashboard_metric_views.xml -->
<!-- Cette vue d'extension n'est plus nécessaire car les champs ont été intégrés directement à la vue principale -->
<!-- Action pour les configurations UDM Pro -->
<record id="action_udm_configuration" model="ir.actions.act_window">
<field name="name">Configurations</field>
<field name="res_model">udm.configuration</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Import your first UDM Pro configuration
</p>
<p>
Import and manage UDM Pro device configurations.
</p>
</field>
</record>
<!-- Menu principal -->
<menuitem id="menu_udm_pro_docs_root" name="UDM Pro" sequence="90" web_icon="udm_pro_docs,static/description/icon.png"/>
<!-- Sous-menus -->
<menuitem id="menu_udm_configuration" name="Configurations" parent="menu_udm_pro_docs_root" sequence="20" action="action_udm_configuration"/>
</odoo>