hr_expense_tier_validation/views/hr_expense_views.xml
<?xml version="1.0" ?>
<openerp>
<data>
<record id="hr_expense_view_form" model="ir.ui.view">
<field name="name">hr.expense.form tier validation form</field>
<field name="model">hr.expense.expense</field>
<field name="inherit_id" ref="hr_expense.view_expenses_form" />
<field name="arch" type="xml">
<button name="validate" position="before">
<button
name="request_validation"
string="Request Validation"
attrs="{'invisible': ['|','|',('need_validation', '!=', True),('rejected','=',True),('state','not in',['confirm'])]}"
type="object"
/>
<button
name="restart_validation"
string="Restart Validation"
attrs="{'invisible': ['|','|',('review_ids', '=', []),('rejected','=',False),('state','not in',['confirm'])]}"
type="object"
/>
</button>
<header position="after">
<field name="need_validation" invisible="1" />
<field name="validated" invisible="1" />
<field name="rejected" invisible="1" />
<div
class="alert alert-warning"
attrs="{'invisible': ['|', '|', '|',
('validated', '=', True), ('state', 'not in', ['confirm']),
('rejected', '=', True), ('review_ids', '=', [])]}"
style="margin-bottom:0px;"
>
<p><i class="fa fa-info-circle" />This Expense needs to be
validated.
<button
name="validate_tier"
string="Validate"
attrs="{'invisible': [('review_ids', '=', [])]}"
type="object"
class="oe_inline oe_button btn-success"
icon="terp-check"
/>
<button
name="reject_tier"
string="Reject"
type="object"
class="btn-icon btn-danger"
icon="terp-gtk-stop"
/>
</p>
</div>
<div
class="alert alert-success"
attrs="{'invisible': ['|', '|', ('validated', '!=', True), ('state', 'not in', ['confirm']), ('review_ids', '=', [])]}"
style="margin-bottom:0px;"
>
<p><i class="fa fa-thumbs-up" /> Operation has been <b
>validated</b>!</p>
</div>
<div
class="alert alert-danger"
attrs="{'invisible': ['|', '|', ('rejected', '!=', True), ('state', 'not in', ['confirm']), ('review_ids', '=', [])]}"
style="margin-bottom:0px;"
>
<p><i class="fa fa-thumbs-down" /> Operation has been <b
>rejected</b>.</p>
</div>
</header>
<notebook position="inside">
<page string="Reviews" name="tier_validation">
<field name="review_ids" readonly="1" />
</page>
</notebook>
</field>
</record>
<record id="hr_expense_view_search" model="ir.ui.view">
<field name="name">hr.expense.form tier validation search</field>
<field name="model">hr.expense.expense</field>
<field name="inherit_id" ref="hr_expense.view_hr_expense_filter" />
<field name="arch" type="xml">
<xpath expr="//field[@name='date']" position="after">
<filter
name="needs_review"
string="Needs my Review"
domain="[('reviewer_ids','in',uid), ('state', 'not in', ['done', 'cancel'])]"
help="My Expense to review"
/>
<filter
name="tier_validated"
string="Validated"
domain="[('validated', '=', True)]"
help="Expense validated and ready to be confirmed"
/>
</xpath>
</field>
</record>
</data>
</openerp>