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