53 lines
2.7 KiB
Python
53 lines
2.7 KiB
Python
from odoo import models, fields, api
|
|
|
|
class SchoolClass(models.Model):
|
|
_name = 'school.class'
|
|
_description = 'Class'
|
|
|
|
related_subject_ids = fields.One2many('school.subject', 'class_name', string='Subjects')
|
|
name = fields.Selection([
|
|
('Class 1', 'Class 1'),
|
|
('Class 2', 'Class 2'),
|
|
('Class 3', 'Class 3'),
|
|
('Class 4', 'Class 4'),
|
|
('Class 5', 'Class 5'),
|
|
('Class 6', 'Class 6'),
|
|
('Class 7', 'Class 7'),
|
|
('Class 8', 'Class 8'),
|
|
('Class 9', 'Class 9'),
|
|
('Class 10', 'Class 10'),
|
|
('Class 11', 'Class 11'),
|
|
('Class 12', 'Class 12'),
|
|
], string="Class Name", required=True)
|
|
|
|
subject_ids = fields.Many2many('school.subject', string='Subjects')
|
|
school = fields.Many2one('res.company', string="School", default=lambda self: self.env.company)
|
|
is_optional = fields.Boolean(string='Optional')
|
|
class_teacher = fields.Many2one('res.users', string='Class Teacher')
|
|
|
|
@api.onchange('name')
|
|
def _onchange_name_set_subjects(self):
|
|
if not self.name:
|
|
self.subject_ids = False
|
|
return
|
|
|
|
subject_map = {
|
|
'Class 1': ['math', 'english', 'science', 'mil'],
|
|
'Class 2': ['math', 'english', 'science', 'drawing', 'mil'],
|
|
'Class 3': ['math', 'english', 'science', 'odia', 'drawing', 'english_grammar'],
|
|
'Class 4': ['math', 'english', 'science', 'odia', 'drawing', 'english_grammar'],
|
|
'Class 5': ['math', 'english', 'science', 'odia', 'history', 'drawing', 'english_grammar'],
|
|
'Class 6': ['math', 'english', 'science', 'geography', 'mil', 'english_grammar'],
|
|
'Class 7': ['math', 'english', 'science', 'political_science', 'mil', 'english_grammar', 'history', 'geography'],
|
|
'Class 8': ['math', 'english', 'science', 'political_science', 'mil', 'english_grammar', 'history', 'geography'],
|
|
'Class 9': ['math', 'english', 'physical_science', 'life_science', 'english_grammar', 'economic_science', 'history', 'geography'],
|
|
'Class 10': ['math', 'english', 'physical_science', 'life_science', 'english_grammar', 'economic_science', 'history', 'geography'],
|
|
'Class 11': ['physics', 'chemistry', 'math', 'biology', 'english', 'english_grammar', 'computer_science', 'mil', 'economic_science'],
|
|
'Class 12': ['physics', 'chemistry', 'math', 'biology', 'computer_science', 'english_grammar', 'english', 'mil', 'economic_science'],
|
|
}
|
|
|
|
subject_codes = subject_map.get(self.name, [])
|
|
subjects = self.env['school.subject'].search([('name', 'in', subject_codes)])
|
|
self.subject_ids = [(6, 0, subjects.ids)] # This sets all
|
|
|