53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import api, fields, models, _
|
|
|
|
|
|
class ManagerAppraisalLine(models.Model):
|
|
_name = 'manager.appraisal.line'
|
|
_inherit = ['mail.thread', 'mail.activity.mixin']
|
|
_rec_name = 'name'
|
|
_description = 'Standard Appraisal'
|
|
|
|
name = fields.Char()
|
|
great_level = fields.Float()
|
|
|
|
# Relational fields
|
|
customize_appraisal_id = fields.One2many('customize.appraisal', 'customize_appraisal_line_id')
|
|
company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company)
|
|
|
|
# Compute total degree from
|
|
@api.onchange('customize_appraisal_id')
|
|
def calculate_total_degrees(self):
|
|
for item in self:
|
|
item.great_level = 0.0
|
|
if item.customize_appraisal_id:
|
|
for line in item.customize_appraisal_id:
|
|
item.great_level += line.great_degree_level
|
|
|
|
|
|
class CustomizeAppraisal(models.Model):
|
|
_name = 'customize.appraisal'
|
|
_inherit = ['mail.thread', 'mail.activity.mixin']
|
|
_rec_name = 'question'
|
|
_description = 'Customize Appraisal'
|
|
|
|
question = fields.Char()
|
|
great_degree_level = fields.Float(related='degree_id.great_degree_level')
|
|
|
|
# Relational fields
|
|
customize_appraisal_line_id = fields.Many2one('manager.appraisal.line') # Inverse Field
|
|
degree_id = fields.Many2one('appraisal.degree')
|
|
|
|
|
|
class AppraisalDegree(models.Model):
|
|
_name = 'appraisal.degree'
|
|
_inherit = ['mail.thread', 'mail.activity.mixin']
|
|
_rec_name = 'name'
|
|
_description = 'Appraisal Degree'
|
|
|
|
name = fields.Char()
|
|
great_degree_level = fields.Float()
|
|
greed = fields.Float()
|
|
company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company)
|