Files
Odoo-Tutorial/academy_management/models/academy_schedule.py
T
2025-04-04 23:58:46 +07:00

47 lines
1.8 KiB
Python

from odoo import api, fields, models, _
from datetime import timedelta
class AcademySchedule(models.Model):
_name = 'academy.schedule'
_description = 'Academy Schedule'
name = fields.Char(string='Tên lịch học', required=True)
course_id = fields.Many2one('academy.course', string='Khóa học', required=True)
teacher_id = fields.Many2one('academy.teacher', string='Giáo viên', required=True)
student_ids = fields.Many2many('academy.student', string='Học viên tham gia')
date = fields.Datetime(string='Ngày và giờ diễn ra buổi học', required=True)
duration = fields.Float(string='Thời lượng buổi học (tính theo giờ)', required=True)
state = fields.Selection([
('draft', 'Mới đặt lịch'),
('confirmed', 'Xác nhận'),
('cancel', 'Đã hủy')
], string='Trạng thái', default='draft', required=True)
reminder_sent = fields.Boolean(string="Reminder Sent", default=False)
def action_confirm(self):
self.state = 'confirmed'
def action_cancel(self):
self.state = 'cancel'
def _send_reminder(self):
now = fields.Datetime.now()
next_day = now + timedelta(days=1)
sessions = self.search([
('state', '=', 'confirmed'),
('date', '>=', now),
('date', '<=', next_day),
('reminder_sent', '=', False),
])
template = self.env.ref('academy_management.email_template_reminder', raise_if_not_found=False)
if not template:
return
for session in sessions:
if session.student_ids:
print(f'Gửi nhắc nhở lịch học: {session.name}')
template.send_mail(session.id, force_send=True)
session.reminder_sent = True