35 lines
1.2 KiB
Python
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) |