odoo_18_Education_management/models/enrollment.py

52 lines
2.0 KiB
Python
Raw Permalink Normal View History

2025-08-04 07:27:45 +00:00
from odoo import models, fields, api
2025-07-29 05:25:05 +00:00
class SchoolEnrollment(models.Model):
_name = 'school.enrollment'
_description = 'Enrollment'
2025-08-04 07:27:45 +00:00
2025-08-06 09:23:00 +00:00
# Relations
application_id = fields.Many2one('school.application', string="Application", required=True)
student_id = fields.Many2one('res.partner', string='Student', required=True)
2025-08-04 07:27:45 +00:00
school_id = fields.Many2one('res.company', string="School", default=lambda self: self.env.company)
2025-08-06 09:23:00 +00:00
# Basic Info
2025-08-04 07:27:45 +00:00
image = fields.Binary("Profile Photo", store=True)
class_name = fields.Selection([
2025-08-06 09:23:00 +00:00
('1', 'Class 1'), ('2', 'Class 2'), ('3', 'Class 3'),
('4', 'Class 4'), ('5', 'Class 5'), ('6', 'Class 6'),
('7', 'Class 7'), ('8', 'Class 8'), ('9', 'Class 9'),
('10', 'Class 10'), ('11', 'Class 11'), ('12', 'Class 12'),
2025-08-04 07:27:45 +00:00
], string="Class", required=True)
2025-07-29 05:25:05 +00:00
course = fields.Char(string="Course")
session = fields.Char(string="Session")
academic_year = fields.Char(string="Academic Year")
2025-08-06 09:23:00 +00:00
enrollment_date = fields.Date(string="Enrollment Date")
# Fee Info
2025-07-29 05:25:05 +00:00
fees_structure = fields.Char(string="Fees Structure")
fees_status = fields.Selection([
('paid', 'Paid'),
('partial', 'Partially Paid'),
('unpaid', 'Unpaid')
], string="Fees Status", default="unpaid")
2025-08-06 09:23:00 +00:00
2025-07-29 05:25:05 +00:00
session_status = fields.Selection([
('active', 'Active'),
('completed', 'Completed'),
('drop', 'Dropped')
], string="Session Status", default="active")
2025-08-06 09:23:00 +00:00
2025-07-29 05:25:05 +00:00
status = fields.Selection([
('draft', 'Draft'),
('confirmed', 'Confirmed'),
('cancelled', 'Cancelled')
], string="Status", default='draft')
2025-08-06 09:23:00 +00:00
# Linked lines
2025-07-29 05:25:05 +00:00
subject_line_ids = fields.One2many('school.enrollment.subject', 'enrollment_id', string="Subjects")
fee_summary_line_ids = fields.One2many('school.enrollment.fee.summary', 'enrollment_id', string="Fee Summary")
2025-08-06 09:23:00 +00:00
course_id = fields.Many2one('school.course', string='Course', ondelete='cascade', required=True)