コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
17769 ビュー

How exactly do i make a field that lets me show how many of my employees are in a certain department ? 

Here is my code 


# -*- coding: utf-8 -*-
from datetime import timedelta
from odoo import models, fields, api

class employee(models.Model):
_name = 'drs2.employee'

name = fields.Char(required=True)
age = fields.Integer()
height = fields.Integer()
annoying = fields.Boolean()

task_id = fields.One2many(
'drs2.task', 'employee_id', string="Tasks")

dep_id = fields.Many2one(
'drs2.dep', ondelete='cascade', string="Department")


class task(models.Model):
_name = 'drs2.task'

name = fields.Char(string="Task Name", required=True)
description = fields.Text()

employee_id = fields.Many2one('drs2.employee',
ondelete='cascade', string="Employee")

dep_id = fields.Many2one(
'drs2.dep', ondelete='cascade', string="Department")

start_date = fields.Date(default=fields.Date.today)

end_date = fields.Date(default=fields.Date.today)

class department(models.Model):
_name = 'drs2.dep'

name = fields.Char()

employee_id = fields.One2many(
'drs2.employee', 'dep_id', string="Employee")

count = fields.Integer(compute='count_employees')

@api.one
def count_employees(self):
return search_count(self.employee_id)


アバター
破棄
最善の回答

Hello Leke Onile-ere,

Try below code :-

def count_employees(self):
    for employee in self:
        employee.count = self.env['drs2.employee'].search_count([('dep_id', '=', self.id)])


Hope it will works for you.

Thanks,

アバター
破棄
最善の回答
Try this one

    @api.multi
    @api.depends('employee_id')
def count_employees(self):
return len(self.employee_id)
アバター
破棄

works perfect.

関連投稿 返信 ビュー 活動
2
7月 18
3628
1
10月 20
4934
0
6月 19
7872
1
1月 25
1720
2
9月 22
9447