first push message
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="action_approve_wizard" model="ir.ui.view">
|
||||
<field name="name">action_approve_wizard</field>
|
||||
<field name="model">xf.doc.approval.document.approver</field>
|
||||
<field name="priority">20</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<field name="method" invisible="True"/>
|
||||
<group name="notes">
|
||||
<field name="notes" readonly="False" placeholder="Some comments"/>
|
||||
</group>
|
||||
</sheet>
|
||||
<footer>
|
||||
<button name="action_approve" string="Approve" type="object" class="btn-primary"
|
||||
default_focus="1"/>
|
||||
<button string="Cancel" class="btn-default" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_reject_wizard" model="ir.ui.view">
|
||||
<field name="name">action_reject_wizard</field>
|
||||
<field name="model">xf.doc.approval.document.approver</field>
|
||||
<field name="priority">20</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<field name="method" invisible="True"/>
|
||||
<group name="notes">
|
||||
<field name="notes" required="True" readonly="False" placeholder="Reject reason or comments"/>
|
||||
</group>
|
||||
</sheet>
|
||||
<footer>
|
||||
<button name="action_reject" string="Reject" type="object" class="btn-primary"
|
||||
default_focus="1"/>
|
||||
<button string="Cancel" class="btn-default" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="xf_doc_approval_document_package_form" model="ir.ui.view">
|
||||
<field name="name">xf_doc_approval_document_package_form</field>
|
||||
<field name="model">xf.doc.approval.document.package</field>
|
||||
<field name="arch" type="xml">
|
||||
<form class="o_sale_order">
|
||||
<!-- Hidden fields for logic -->
|
||||
<field name="is_initiator" invisible="True"/>
|
||||
<field name="is_approver" invisible="True"/>
|
||||
|
||||
<header>
|
||||
<button string="Send for Approval" name="action_send_for_approval" type="object" class="oe_highlight" invisible="state!='draft' or not is_initiator" confirm="Please confirm that you want to send documents for approval"/>
|
||||
<button string="Approve" name="action_approve_wizard" type="object" class="oe_highlight" invisible="state!='approval' or not is_approver"/>
|
||||
<button string="Reject" name="action_reject_wizard" type="object" invisible="state!='approval' or not is_approver"/>
|
||||
<button string="Set to Draft" name="action_draft" type="object" invisible="state not in ['rejected','cancelled'] or not is_initiator"/>
|
||||
<button string="Cancel" name="action_cancel" type="object" invisible="state!='approval' or not is_initiator" confirm="Please confirm that you want to cancel approval process"/>
|
||||
<button string="Force Cancel" name="action_cancel" type="object" invisible="state!='approved'" groups="base.group_system"/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,approval,approved"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" placeholder="Request Name" nolabel="1" readonly="not state or state != 'draft'"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group name="approvers" string="Approvers">
|
||||
<field name="approver_ids" nolabel="1" colspan="2" readonly="not state or state != 'draft'">
|
||||
<list editable="bottom">
|
||||
<field name="step"/>
|
||||
<field name="user_id"/>
|
||||
<field name="role"/>
|
||||
<field name="state"/>
|
||||
<field name="method" invisible="True"/>
|
||||
<field name="notes"/>
|
||||
</list>
|
||||
<form>
|
||||
<group>
|
||||
<group>
|
||||
<field name="user_id"/>
|
||||
<field name="role"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="step"/>
|
||||
<field name="state"/>
|
||||
<field name="method" invisible="True"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="notes"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</group>
|
||||
<group invisible="not is_initiator">
|
||||
<group name="visibility" string="Visibility">
|
||||
<field name="company_id" readonly="not state or state != 'draft'" widget="selection"/>
|
||||
<field name="visibility"/>
|
||||
</group>
|
||||
<group name="approval" string="Approval">
|
||||
<field name="approval_team_id" readonly="not state or state != 'draft'" widget="selection"/>
|
||||
<field name="method" readonly="not state or state != 'draft'"/>
|
||||
<field name="approval_state"/>
|
||||
<field name="approval_step"/>
|
||||
</group>
|
||||
</group>
|
||||
<group name="documents" string="Documents">
|
||||
<field name="document_ids" nolabel="1" colspan="2" readonly="not state or state != 'draft'">
|
||||
<list editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="file" widget="binary" filename="file_name"/>
|
||||
<field name="file_name" column_invisible="True"/>
|
||||
</list>
|
||||
<form>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="file" widget="binary" filename="file_name"/>
|
||||
<field name="file_name" invisible="True"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</group>
|
||||
<group>
|
||||
<field name="initiator_user_id" readonly="not state or state != 'draft'"/>
|
||||
</group>
|
||||
<group name="description" string="Description" invisible="state!='draft' or not description">
|
||||
<field name="description" nolabel="1" colspan="2"/>
|
||||
</group>
|
||||
</sheet>
|
||||
<chatter/>
|
||||
<!-- REMOVED MANUAL CHATTER BLOCK -->
|
||||
<!-- Odoo 19 automatically adds the Chatter if the model inherits mail.thread -->
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="xf_doc_approval_document_package_tree" model="ir.ui.view">
|
||||
<field name="name">xf_doc_approval_document_package_tree</field>
|
||||
<field name="model">xf.doc.approval.document.package</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="name"/>
|
||||
<field name="initiator_user_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="state"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_xf_doc_approval_document_package" model="ir.actions.act_window">
|
||||
<field name="name">Documents</field>
|
||||
<field name="res_model">xf.doc.approval.document.package</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="menu_xf_doc_approval_document_package"
|
||||
action="action_xf_doc_approval_document_package"
|
||||
parent="menu_xf_doc_approval_root"
|
||||
sequence="1"
|
||||
/>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<menuitem id="menu_xf_doc_approval_root" name="Request Approval"
|
||||
web_icon="xf_doc_approval,static/description/icon.png"
|
||||
groups="xf_doc_approval.group_xf_doc_approval_user"/>
|
||||
|
||||
<menuitem id="menu_xf_doc_approval_configuration" name="Configuration"
|
||||
parent="menu_xf_doc_approval_root"
|
||||
groups="xf_doc_approval.group_xf_doc_approval_team_leader,xf_doc_approval.group_xf_doc_approval_manager"
|
||||
sequence="100"/>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<record id="xf_doc_approval_team_form" model="ir.ui.view">
|
||||
<field name="name">xf_doc_approval_team_form</field>
|
||||
<field name="model">xf.doc.approval.team</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="active"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="user_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
</group>
|
||||
<group name="approvers" string="Approvers">
|
||||
<field name="approver_ids" nolabel="1" colspan="2">
|
||||
<list editable="bottom">
|
||||
<field name="step"/>
|
||||
<field name="user_id"/>
|
||||
<field name="role"/>
|
||||
</list>
|
||||
</field>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="xf_doc_approval_team_tree" model="ir.ui.view">
|
||||
<field name="name">xf_doc_approval_team_tree</field>
|
||||
<field name="model">xf.doc.approval.team</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="active" invisible="True"/>
|
||||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_xf_doc_approval_team" model="ir.actions.act_window">
|
||||
<field name="name">Approval Teams</field>
|
||||
<field name="res_model">xf.doc.approval.team</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="menu_xf_doc_approval_team"
|
||||
action="action_xf_doc_approval_team"
|
||||
parent="menu_xf_doc_approval_configuration"
|
||||
sequence="10"
|
||||
/>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,24 @@
|
||||
<odoo>
|
||||
<data>
|
||||
<!--
|
||||
<template id="listing">
|
||||
<ul>
|
||||
<li t-foreach="objects" t-as="object">
|
||||
<a t-attf-href="#{ root }/objects/#{ object.id }">
|
||||
<t t-esc="object.display_name"/>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</template>
|
||||
<template id="object">
|
||||
<h1><t t-esc="object.display_name"/></h1>
|
||||
<dl>
|
||||
<t t-foreach="object._fields" t-as="field">
|
||||
<dt><t t-esc="field"/></dt>
|
||||
<dd><t t-esc="object[field]"/></dd>
|
||||
</t>
|
||||
</dl>
|
||||
</template>
|
||||
-->
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,60 @@
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- explicit list view definition -->
|
||||
<!--
|
||||
<record model="ir.ui.view" id="xf_doc_approval.list">
|
||||
<field name="name">xf_doc_approval list</field>
|
||||
<field name="model">xf_doc_approval.xf_doc_approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="name"/>
|
||||
<field name="value"/>
|
||||
<field name="value2"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
-->
|
||||
|
||||
<!-- actions opening views on models -->
|
||||
<!--
|
||||
<record model="ir.actions.act_window" id="xf_doc_approval.action_window">
|
||||
<field name="name">xf_doc_approval window</field>
|
||||
<field name="res_model">xf_doc_approval.xf_doc_approval</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
</record>
|
||||
-->
|
||||
|
||||
<!-- server action to the one above -->
|
||||
<!--
|
||||
<record model="ir.actions.server" id="xf_doc_approval.action_server">
|
||||
<field name="name">xf_doc_approval server</field>
|
||||
<field name="model_id" ref="model_xf_doc_approval_xf_doc_approval"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">
|
||||
action = {
|
||||
"type": "ir.actions.act_window",
|
||||
"view_mode": "list,form",
|
||||
"res_model": model._name,
|
||||
}
|
||||
</field>
|
||||
</record>
|
||||
-->
|
||||
|
||||
<!-- Top menu item -->
|
||||
<!--
|
||||
<menuitem name="xf_doc_approval" id="xf_doc_approval.menu_root"/>
|
||||
-->
|
||||
<!-- menu categories -->
|
||||
<!--
|
||||
<menuitem name="Menu 1" id="xf_doc_approval.menu_1" parent="xf_doc_approval.menu_root"/>
|
||||
<menuitem name="Menu 2" id="xf_doc_approval.menu_2" parent="xf_doc_approval.menu_root"/>
|
||||
-->
|
||||
<!-- actions -->
|
||||
<!--
|
||||
<menuitem name="List" id="xf_doc_approval.menu_1_list" parent="xf_doc_approval.menu_1"
|
||||
action="xf_doc_approval.action_window"/>
|
||||
<menuitem name="Server to list" id="xf_doc_approval" parent="xf_doc_approval.menu_2"
|
||||
action="xf_doc_approval.action_server"/>
|
||||
-->
|
||||
</data>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user