2026-09-25 18:00:58 +05:30

50 lines
2.3 KiB
Python

# pyrefly: ignore [missing-import]
from odoo import api, fields, models
class EducationTransportIncident(models.Model):
_name = 'education.transport.incident'
_description = 'Transport Incident'
_inherit = ['mail.thread', 'mail.activity.mixin']
name = fields.Char(string='Reference', required=True, copy=False, readonly=True, default=lambda self: self.env['ir.sequence'].next_by_code('education.transport.incident') or '/')
trip_id = fields.Many2one('education.transport.trip', string='Trip', required=True, tracking=True)
vehicle_id = fields.Many2one('education.transport.vehicle', string='Vehicle', required=True, tracking=True)
driver_id = fields.Many2one('education.transport.driver', string='Driver', required=True, tracking=True)
student_id = fields.Many2one('education.student', string='Student (Optional)', tracking=True)
incident_type = fields.Char(string='Incident Type', required=True, tracking=True)
description = fields.Text(string='Description', required=True)
severity = fields.Selection([
('low', 'Low'),
('medium', 'Medium'),
('high', 'High'),
('critical', 'Critical')
], string='Severity', required=True, default='low', tracking=True)
incident_date = fields.Date(string='Incident Date', required=True, default=fields.Date.context_today, tracking=True)
action_taken = fields.Text(string='Action Taken')
state = fields.Selection([
('reported', 'Reported'),
('investigating', 'Investigating'),
('resolved', 'Resolved'),
('closed', 'Closed')
], string='Status', default='reported', required=True, tracking=True)
company_id = fields.Many2one('res.company', string='Company', required=True, default=lambda self: self.env.company)
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
if not vals.get('name') or vals.get('name') == '/':
vals['name'] = self.env['ir.sequence'].next_by_code('education.transport.incident') or '/'
return super().create(vals_list)
@api.onchange('trip_id')
def _onchange_trip_id(self):
if self.trip_id:
self.vehicle_id = self.trip_id.vehicle_id
self.driver_id = self.trip_id.driver_id