# pyrefly: ignore [missing-import] from odoo import api, fields, models class EducationTransportRouteStop(models.Model): _name = 'education.transport.route.stop' _description = 'Route Stop Sequencing' _order = 'route_id, sequence' route_id = fields.Many2one('education.transport.route', string='Route', required=True, ondelete='cascade') stop_id = fields.Many2one('education.transport.stop', string='Stop', required=True, ondelete='restrict') sequence = fields.Integer(string='Sequence', default=10, required=True) pickup_time = fields.Float(string='Pickup Time (HH:MM)') drop_time = fields.Float(string='Drop Time (HH:MM)') estimated_time = fields.Integer(string='Estimated Time from Start (min)') from odoo.exceptions import ValidationError @api.constrains('sequence', 'route_id') def _check_sequence(self): for rec in self: if self.search_count([('sequence', '=', rec.sequence), ('route_id', '=', rec.route_id.id), ('id', '!=', rec.id)]): raise ValidationError('Sequence must be unique per route!') @api.constrains('stop_id', 'route_id') def _check_stop(self): for rec in self: if self.search_count([('stop_id', '=', rec.stop_id.id), ('route_id', '=', rec.route_id.id), ('id', '!=', rec.id)]): raise ValidationError('A stop cannot be added multiple times to the same route!')