This question has been flagged
3 Replies
7337 Views

Here is my code.

emp.py

from odoo import models, fields, api

class Dept(models.Model):

    _name = 'emp.dept'

    name = fields.Char('Name')

    location = fields.Text(string='Location')

    @api.multi def action_employee(self):

        pass

class Employee(models.Model):

    _name = 'emp.employee'

    name = fields.Char('Name')

    add = fields.Text(string='Address')

    dept = fields.Many2one('emp.dept', 'Department')

emp_view.xml

<record id="dept_kanban_view" model="ir.ui.view">

    <field name="name">dept.kanban.view</field>

    <field name="model">emp.dept</field>

    <field name="arch" type="xml">

    <kanban>

        <field name='name'/>

        <field name='location'/>

        <templates>

            <t t-name="kanban-box">

                <div t-attf-class="oe_kanban_global_click_edit oe_semantic_html_override oe_kanban_card {{record.group_fancy==1 ? 'oe_kanban_card_fancy' : ''}}">

                     <div class="oe_dropdown_kanban">

                        <div class="oe_dropdown_toggle">

                            <i class="fa fa-bars fa-lg"/>

                            <ul class="oe_dropdown_menu">

                                <li> <a type="delete">Delete</a> </li>

                            </ul> 

                        </div>

                        <div class="oe_clear"></div>

                    </div>

                    <div t-attf-class="oe_kanban_content">

                        <field name='name'/><br/>

                        <field name='location'/><br/>

                            <div class="col-xs-6 o_kanban_primary_left">

                                <button class="btn btn-primary" name="action_employee" type="object">

                                    <span>Employee</span>

                                </button>

                            </div>

                        </div>

                    </div>

                </t>

            </templates>

        </kanban>

    </field>

</record>

When i click on Employee button of emp.dept kanban view then i need to list(tree) of employees that perticuler deprtment contains based on emp.employee dept field.

Thanks in advance.

Avatar
Discard
Author Best Answer

Finally, I found the solution for this problem through,

<record id="view_employee_search" model="ir.ui.view">

    <field name="name">view.employee.search</field>

    <field name="model">emp.employee</field>

    <field name="arch" type="xml">

        <search>

            <field name='dept_id'/>

        </search>

    </field>

</record>

<record id="action_department_employee" model="ir.actions.act_window">

    <field name="name">Employee</field>

    <field name="type">ir.actions.act_window</field>

    <field name="res_model">emp.employee</field>

    <field name="view_type">form</field>

    <field name="view_mode">tree,form</field>

    <field name="context">{'search_default_dept_id': active_id}</field>

    <field name="domain">[]</field>

    <field name="help" type="html">

        <p> No data to display. Click on Create button to create new Employee.</p>

    </field>

</record>


It works for me.

Avatar
Discard
Best Answer

Try to use One2Many field in your Department model.

class Dept(models.Model):
     _name = 'emp.dept'
     name = fields.Char('Name')
     location = fields.Text(string='Location')
     employee_ids = fields.One2many('emp.employee', 'dept', string='Employees')

     @api.multi
     def action_employee(self):
         pass


And then you can list all employees in a specific department using employee_ids field. And you can use the field in the view  as follow.


<field name="employee_ids">
    <tree string="Order lines" editable="bottom">
         <field name="name" />
         <field name="add" />
    </tree>
</field>


Avatar
Discard
Best Answer

Hi,

Try to use grouping using search view on your tree view.In action then pass a context for default grouping. Another option you can try that on gui.

Avatar
Discard