I have 3 many2many fields in a wizard(hr.expense.report.wizard).My aim is to get the data from the fields and pass to the search view of another model(hr.expense) ie) In Group by, Accordingly the report should be filtered.I passed the date field through domain which is working fine.
Now i need to pass the values of many2many fields....
My .xml file
<?xml version="1.0"?>
<odoo>
<record id="expense_report_view" model="ir.ui.view">
<field name="name">Expense Report</field>
<field name="model">hr.expense.report.wizard</field>
<field name="arch" type="xml">
<form string="Expense Reports">
<group>
<field name="employees" widget="many2many_tags" options="{'no_create': True}"/>
</group>
<group>
<field name="all_products" widget="many2many_tags" options="{'no_create': True}"/>
</group>
<group>
<field name="operating" widget="many2many_tags" options="{'no_create': True}"/>
</group>
<group col="4">
<field name="date_from"/>
<field name="date_to"/>
</group>
<footer>
<button string="Continue" name="filter_report" type="object" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="hr_expense_get_expense_report_wizard" model="ir.actions.act_window">
<field name="name">Expense Reports</field>
<field name="res_model">hr.expense.report.wizard</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="expense_report_view"/>
<field name="target">new</field>
</record>
<menuitem id="menu_hr_expense_reports_to_get"
name="Get Expense Reports"
action="hr_expense_get_expense_report_wizard"
parent="hr_expense.menu_hr_expense_reports"
sequence="100"/>
</odoo>
My .py file
# -*- coding: utf-8 -*-
from odoo import api, fields, models
class HrExpenseReport(models.TransientModel):
_name = "hr.expense.report.wizard"
_description = "Get Expense Reports"
date_from = fields.Date(string='Start Date',required=True)
date_to = fields.Date(string='End Date',required=True)
operating = fields.Many2many('operating.unit',string='Operating Units',default=[],required=False)
employees = fields.Many2many('hr.employee',string="Employees",default=lambda self: self.env['hr.employee'].search([]))
all_products = fields.Many2many('product.product',string="Products",default=[])
@api.multi
def filter_report(self):
return {
'name': ('Expense Reports'),
'view_type': 'pivot',
'view_mode': 'pivot,list,kanban,graph',
'res_model': 'hr.expense',
'view_id': False,
'type': 'ir.actions.act_window',
'target':'current',
'domain': "[('date','>=','"+ self.date_from+"'),('date','<=','"+self.date_to+"')]",
}