Files
enterprise-addons/web_studio/views/studio_approval_views.xml
T

242 lines
12 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Approval Entries -->
<record id="studio_approval_entry_tree_view" model="ir.ui.view">
<field name="name">studio.approval.entry.list</field>
<field name="model">studio.approval.entry</field>
<field name="arch" type="xml">
<list>
<field name="name"/>
<field name="write_date"/>
</list>
</field>
</record>
<record id="studio_approval_entry_form_view" model="ir.ui.view">
<field name="name">studio.approval.entry.form</field>
<field name="model">studio.approval.entry</field>
<field name="arch" type="xml">
<form string="Studio Approval Entry">
<sheet>
<div class="oe_title">
<h1><field name="name"/></h1>
</div>
<group>
<group>
<field name="user_id"/>
<field name="rule_id"/>
</group>
<group>
<field name="model"/>
<field name="res_id"/>
<field name="reference" widget="reference" string="Record"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="studio_approval_entry_search_view" model="ir.ui.view">
<field name="name">studio.approval.entry.search</field>
<field name="model">studio.approval.entry</field>
<field name="arch" type="xml">
<search string="Approval Entries">
<field name="name"/>
<field name="res_id"/>
<field name="user_id"/>
<field name="rule_id" invisible="1"/>
<separator/>
<filter string="My entries" name="my_entries" domain="[('user_id','=',uid)]"/>
<separator/>
<filter string="Approved" name="approved" domain="[('approved','=', True)]"/>
<filter string="Rejected" name="rejected" domain="[('user_id','=', False)]"/>
<group>
<filter string="Model" name="model" domain="[]" context="{'group_by':'model'}"/>
<filter string="Method" name="model" domain="[]" context="{'group_by':'method'}"/>
<filter string="Action" name="model" domain="[]" context="{'group_by':'action_id'}"/>
</group>
</search>
</field>
</record>
<record id="studio_approval_entry_action" model="ir.actions.act_window">
<field name="name">Studio Approval Entries</field>
<field name="res_model">studio.approval.entry</field>
<field name="view_mode">list,form</field>
</record>
<menuitem id="menu_studio_approval_entry" name="Studio Approval Entries" sequence="11" action="studio_approval_entry_action" parent="base.next_id_2" groups="base.group_system"/>
<!-- Approval Rules -->
<record id="studio_approval_rule_tree_view" model="ir.ui.view">
<field name="name">studio.approval.list</field>
<field name="model">studio.approval.rule</field>
<field name="arch" type="xml">
<list>
<field name="name"/>
<field name="approver_ids"/>
<field name="approval_group_id"/>
<field name="message"/>
<field name="model_id"/>
<field name="active" widget="boolean_toggle"/>
</list>
</field>
</record>
<record id="studio_approval_rule_kanban_view" model="ir.ui.view">
<field name="name">studio.approval.kanban</field>
<field name="model">studio.approval.rule</field>
<field name="arch" type="xml">
<kanban quick_create_view="web_studio.studio_approval_rule_form_view_quick_create" highlight_color="kanban_color" class="o-studio-approval-rule-kanban">
<field name="can_validate"/>
<field name="kanban_color"/>
<field name="exclusive_user"/>
<templates>
<t t-name="card">
<div class="row justify-content-between py-1">
<div class="col fs-4 text-truncate" t-att-title="record.message.raw_value">
<field t-if="record.message.raw_value" name="message"/>
<span t-else="" class="text-muted">Step</span>
</div>
<div t-if="record.exclusive_user.raw_value" class="col-2"><i role="img" class="fa fa-user-times" title="Exclusive approval"/></div>
</div>
<div class="text-truncate" t-att-title="record.approval_group_id.value">
<field name="approval_group_id"/>
</div>
<footer class="justify-content-between py-1">
<a t-if="record.can_validate.raw_value" role="button" class="btn btn-link px-0 py-0" name="open_delegate_action" type="object" string="Delegate"/>
<field t-if="record.approver_ids.raw_value.length" class="justify-content-end align-items-center ms-auto" readonly="1" name="approver_ids" widget="many2many_avatar_user"/>
</footer>
</t>
</templates>
</kanban>
</field>
</record>
<record id="studio_approval_rule_form_view_quick_create" model="ir.ui.view">
<field name="name">studio.approval.form.quick_create</field>
<field name="model">studio.approval.rule</field>
<field name="arch" type="xml">
<form>
<group>
<field name="approver_ids" required="not approval_group_id" placeholder="Select users..." widget="many2many_tags"/>
<field name="approval_group_id" required= "not approver_ids" placeholder="Select a group..."/>
<field name="users_to_notify" placeholder="Select users..." widget="many2many_tags"/>
<field name="exclusive_user" widget="boolean_toggle"/>
</group>
<field name="model_id" invisible="1"/>
<field name="action_id" invisible="1"/>
<field name="method" invisible="1"/>
</form>
</field>
</record>
<record id="studio_approval_rule_form_view" model="ir.ui.view">
<field name="name">studio.approval.form</field>
<field name="model">studio.approval.rule</field>
<field name="arch" type="xml">
<form string="Studio Approval Rule">
<header>
<field name="notification_order" widget="statusbar" options="{'clickable': '1'}"/>
<button name="open_delegate_action" type="object" string="Delegate" class="btn btn-primary" invisible="not can_validate"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box" invisible="not id">
<button class="oe_stat_button" type="action" name="%(studio_approval_entry_action)d"
icon="fa-thumbs-up"
context="{'search_default_rule_id':id, 'default_chart_id': id}">
<field string="Entries" name="entries_count" widget="statinfo"/>
</button>
</div>
<field name="active" invisible="1"/>
<widget name="web_ribbon" title="Archived" bg_color="text-bg-danger" invisible="active"/>
<group>
<group>
<field name="message"/>
<field name="approver_ids" required="not approval_group_id" placeholder="Select users..." widget="many2many_tags"/>
<field name="approval_group_id" required= "not approver_ids" placeholder="Select group"/>
<field name="exclusive_user" widget="boolean_toggle"/>
<field name="model_id" required="1" readonly="context.get('studio')" groups="base.group_no_one"/>
<field name="action_id" required="not method" readonly="method or context.get('studio')" groups="base.group_no_one"/>
<field name="method" required="not action_id" readonly="action_id or context.get('studio')" groups="base.group_no_one"/>
</group>
<group>
<field name="users_to_notify" placeholder="Select users..." widget="many2many_tags"/>
<field name="model_id" invisible="1"/>
<field name="model_name" invisible="1"/>
<field name="domain" widget="domain" options="{'foldable': True,'model': 'model_name'}"/>
</group>
</group>
</sheet>
<chatter/>
</form>
</field>
</record>
<record id="studio_approval_rule_button_configuration_search_view" model="ir.ui.view">
<field name="name">studio.approval.search</field>
<field name="model">studio.approval.rule</field>
<field name="arch" type="xml">
<search string="Approval Rules">
<field name="name"/>
<field name="approval_group_id"/>
<field name="approver_ids"/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<filter string="Step" name="notification_order" domain="[]" context="{'group_by':'notification_order'}"/>
</search>
</field>
</record>
<record id="studio_approval_rule_search_view" model="ir.ui.view">
<field name="name">studio.approval.search</field>
<field name="model">studio.approval.rule</field>
<field name="inherit_id" ref="studio_approval_rule_button_configuration_search_view"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<filter name="inactive" position="before">
<filter string="Active" name="active" domain="[('active','=',True)]"/>
</filter>
<filter name="notification_order" position="replace">
<filter string="Model" name="model" domain="[]" context="{'group_by':'model_id'}"/>
<filter string="Method" name="method" domain="[]" context="{'group_by':'method'}"/>
<filter string="Action" name="action" domain="[]" context="{'group_by':'action_id'}"/>
</filter>
</field>
</record>
<record id="studio_approval_rule_delegate_approvers" model="ir.ui.view">
<field name="name">studio.approval.rule.delegate.form</field>
<field name="model">studio.approval.rule.delegate</field>
<field name="arch" type="xml">
<form>
<group>
<label for="approver_ids">Approvers</label>
<div>
<field name="approver_ids" widget="many2many_tags"/>
<div class="d-flex mt-2">
<label for="date_to" />
<field name="date_to" class="d-inline ms-2" placeholder="Forever"/>
</div>
</div>
<field name="users_to_notify" widget="many2many_tags" />
</group>
<footer>
<button special="save" string="Apply" class="btn btn-primary" />
<button special="cancel" string="Discard" class="btn btn-secondary" />
</footer>
</form>
</field>
</record>
<record id="studio_approval_rule_action" model="ir.actions.act_window">
<field name="name">Studio Approval Rules</field>
<field name="res_model">studio.approval.rule</field>
<field name="view_mode">kanban,list,form</field>
<field name="context">{'active_test': False, 'search_view_ref': 'web_studio.studio_approval_rule_search_view'}</field>
</record>
<menuitem id="menu_studio_approval_rule" name="Studio Approval Rules" sequence="10" action="studio_approval_rule_action" parent="base.next_id_2" groups="base.group_system"/>
</odoo>