cefope_core/models/academic_exam.py

35 lines
1.2 KiB
Python

# -*- coding: utf-8 -*-
from odoo import fields, models, api
class AcademicExam(models.Model):
_name = 'academic.exam'
_description = 'Exame de Acesso'
_order = 'date desc'
name = fields.Char(string="Identificação do Exame", required=True, help="Ex: Exame de Informática - Sala 13")
date = fields.Datetime(string="Data e Hora", required=True)
room = fields.Char(string="Sala/Local", required=True)
capacity = fields.Integer(string="Capacidade Máxima", default=30)
# Relacionamento com o curso (opcional, se o exame for por curso)
course_id = fields.Many2one('academic.course', string="Curso Relacionado")
# Lista de candidatos inscritos neste exame específico
applicant_ids = fields.One2many(
'academic.applicant',
'exam_id',
string="Candidatos Inscritos"
)
# Campo calculado para saber quantos já estão inscritos
applicant_count = fields.Integer(
string="Total Inscritos",
compute='_compute_applicant_count',
store=True
)
@api.depends('applicant_ids')
def _compute_applicant_count(self):
for record in self:
record.applicant_count = len(record.applicant_ids)