119 lines
6.3 KiB
XML
119 lines
6.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
|
|
<!-- User form: the Lab Environment tab holds every platform permission; edit and it syncs -->
|
|
<record id="view_users_form_odoosh" model="ir.ui.view">
|
|
<field name="name">res.users.form.inherit.odoosh</field>
|
|
<field name="model">res.users</field>
|
|
<field name="inherit_id" ref="base.view_users_form"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//notebook" position="inside">
|
|
<page string="Lab Environment" name="odoosh"
|
|
groups="base.group_system,odoosh_connector.group_odoosh_teacher">
|
|
<group>
|
|
<group string="Synchronisation">
|
|
<field name="odoosh_sync_enabled"/>
|
|
<field name="odoosh_sync_state"/>
|
|
<field name="odoosh_synced_at"/>
|
|
<field name="odoosh_platform_username"/>
|
|
</group>
|
|
<group string="Actions">
|
|
<div colspan="2" class="d-flex gap-2 flex-wrap">
|
|
<button name="action_odoosh_sync_now" type="object" string="Sync now"
|
|
class="btn-primary" icon="fa-refresh" invisible="not odoosh_sync_enabled"/>
|
|
</div>
|
|
<div colspan="2" class="text-muted small mt-2">
|
|
New users are synced automatically. Switching this off stops every push for
|
|
this user and leaves the platform account as it is.
|
|
</div>
|
|
</group>
|
|
</group>
|
|
<group string="Last error" invisible="not odoosh_last_error">
|
|
<field name="odoosh_last_error" nolabel="1" readonly="1"/>
|
|
</group>
|
|
<group invisible="not odoosh_sync_enabled">
|
|
<group string="Identity and roles">
|
|
<field name="odoosh_username" placeholder="Empty = derived from the login"/>
|
|
<field name="odoosh_tenant" placeholder="Empty = default organisation"/>
|
|
<field name="odoosh_role"/>
|
|
<field name="odoosh_tenant_role"/>
|
|
</group>
|
|
<group string="Permissions and quotas">
|
|
<field name="odoosh_shell_enabled"/>
|
|
<field name="odoosh_can_use_enterprise"/>
|
|
<field name="odoosh_auto_provision"/>
|
|
<field name="odoosh_max_envs"/>
|
|
<field name="odoosh_max_dbs"/>
|
|
</group>
|
|
<group string="Platform menus">
|
|
<field name="odoosh_menu_dashboard"/>
|
|
<field name="odoosh_menu_repos"/>
|
|
<field name="odoosh_menu_ai"/>
|
|
<field name="odoosh_menu_backups"/>
|
|
</group>
|
|
</group>
|
|
</page>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_users_tree_odoosh" model="ir.ui.view">
|
|
<field name="name">res.users.list.inherit.odoosh</field>
|
|
<field name="model">res.users</field>
|
|
<field name="inherit_id" ref="base.view_users_tree"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//field[@name='login_date']" position="after">
|
|
<field name="odoosh_sync_enabled" optional="hide"/>
|
|
<field name="odoosh_sync_state" optional="hide"/>
|
|
<field name="odoosh_tenant_role" optional="hide"/>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_users_search_odoosh" model="ir.ui.view">
|
|
<field name="name">res.users.search.inherit.odoosh</field>
|
|
<field name="model">res.users</field>
|
|
<field name="inherit_id" ref="base.view_users_search"/>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//filter[@name='Inactive']" position="after">
|
|
<separator/>
|
|
<filter name="odoosh_failed" string="Lab sync failed" domain="[('odoosh_sync_state', '=', 'failed')]"/>
|
|
<filter name="odoosh_pending" string="Lab sync pending" domain="[('odoosh_sync_state', '=', 'pending')]"/>
|
|
<filter name="odoosh_disabled" string="Lab sync disabled" domain="[('odoosh_sync_enabled', '=', False)]"/>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Bulk actions from the user list -->
|
|
<record id="action_server_odoosh_sync_now" model="ir.actions.server">
|
|
<field name="name">Sync to lab platform</field>
|
|
<field name="model_id" ref="base.model_res_users"/>
|
|
<field name="binding_model_id" ref="base.model_res_users"/>
|
|
<field name="binding_view_types">list,form</field>
|
|
<field name="groups_id" eval="[(4, ref('odoosh_connector.group_odoosh_teacher')), (4, ref('base.group_system'))]"/>
|
|
<field name="state">code</field>
|
|
<field name="code">action = records.action_odoosh_sync_now()</field>
|
|
</record>
|
|
|
|
<record id="action_server_odoosh_enable" model="ir.actions.server">
|
|
<field name="name">Enable lab sync</field>
|
|
<field name="model_id" ref="base.model_res_users"/>
|
|
<field name="binding_model_id" ref="base.model_res_users"/>
|
|
<field name="binding_view_types">list</field>
|
|
<field name="groups_id" eval="[(4, ref('odoosh_connector.group_odoosh_teacher')), (4, ref('base.group_system'))]"/>
|
|
<field name="state">code</field>
|
|
<field name="code">action = records.action_odoosh_enable_sync()</field>
|
|
</record>
|
|
|
|
<record id="action_server_odoosh_disable" model="ir.actions.server">
|
|
<field name="name">Disable lab sync</field>
|
|
<field name="model_id" ref="base.model_res_users"/>
|
|
<field name="binding_model_id" ref="base.model_res_users"/>
|
|
<field name="binding_view_types">list</field>
|
|
<field name="groups_id" eval="[(4, ref('odoosh_connector.group_odoosh_teacher')), (4, ref('base.group_system'))]"/>
|
|
<field name="state">code</field>
|
|
<field name="code">action = records.action_odoosh_disable_sync()</field>
|
|
</record>
|
|
|
|
</odoo>
|