35 lines
1.7 KiB
Python
35 lines
1.7 KiB
Python
from odoo import models, fields, api
|
|
|
|
class SchoolSubjectTeacherInfo(models.Model):
|
|
_name = 'school.subject.teacher.info'
|
|
_description = 'Subject Teacher Info'
|
|
|
|
subject_id = fields.Many2one('school.subject', string='Subject', required=True, ondelete='cascade')
|
|
|
|
# Related fields to auto-fetch from related subject's teacher (res.users)
|
|
teacher_user_id = fields.Many2one(related='subject_id.teacher', string="Teacher User", store=True)
|
|
employee_name = fields.Char(string='Teacher Name', compute="_compute_teacher_fields", store=True)
|
|
phone = fields.Char(string='Phone', compute="_compute_teacher_fields", store=True)
|
|
email = fields.Char(string='Email', compute="_compute_teacher_fields", store=True)
|
|
profile_photo = fields.Binary(string="Profile Photo", compute="_compute_teacher_fields", store=True)
|
|
|
|
# Editable fields for extra info
|
|
activity = fields.Char(string='Activity')
|
|
activity_deadline = fields.Date(string='New Activity Deadline')
|
|
department = fields.Char(string='Department')
|
|
job_position = fields.Char(string='Job Position')
|
|
manager = fields.Char(string='Manager')
|
|
address = fields.Text(string="Address")
|
|
experience = fields.Integer(string="Experience (Years)")
|
|
date_of_birth = fields.Date(string="Date of Birth")
|
|
join_date = fields.Date(string="Join Date")
|
|
|
|
@api.depends('subject_id.teacher')
|
|
def _compute_teacher_fields(self):
|
|
for rec in self:
|
|
user = rec.subject_id.teacher
|
|
rec.employee_name = user.name if user else ''
|
|
rec.email = user.email if user else ''
|
|
rec.phone = user.phone if user else ''
|
|
rec.profile_photo = user.image_1920 if user else False
|