base
admin
- class HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarAdmin(model, admin_site)[source]
Bases:
ModelAdminAdmin do Django para horarios de tipos de alimentacao por escola.
Disponibiliza o cadastro administrativo de
HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarcom o comportamento padrao do Django Admin, permitindo consultar e editar as faixas de horario configuradas para cada escola, periodo escolar e tipo de alimentacao.- property media
- class MotivoDRENaoValidaAdmin(model, admin_site)[source]
Bases:
ModelAdminAdmin do Django para motivos usados pela DRE ao nao validar solicitacoes.
Mantem o cadastro administrativo de
MotivoDRENaoValidacom o comportamento padrao do Django Admin, sem customizacoes adicionais de listagem ou formulario.- property media
- class TipoAlimentacaoAdmin(model, admin_site)[source]
Bases:
ModelAdminAdmin do Django para os tipos de alimentacao do cardapio.
Configura a tela administrativa de
TipoAlimentacao, habilitando busca por nome e mantendo o UUID apenas para leitura no formulario de edicao.- search_fields
Campos consultados pela busca textual do admin. Valores:
("nome",).- Type:
tuple[str, …]
- readonly_fields
Campos somente leitura no formulario. Valores:
("uuid",).- Type:
tuple[str, …]
- property media
- readonly_fields = ('uuid',)
- search_fields = ('nome',)
- class VinculoTipoAlimentacaoModelAdmin(model, admin_site)[source]
Bases:
ModelAdminAdmin do Django para vinculos de tipo de alimentacao por periodo e U.E.
Configura a listagem administrativa de
VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar, disponibilizando filtros por periodo escolar, tipo de unidade escolar e status de ativacao do vinculo.- list_filter
Filtros laterais disponiveis na listagem. Valores:
("periodo_escolar__nome", "tipo_unidade_escolar__iniciais", "ativo").- Type:
tuple[str, …]
- list_filter = ('periodo_escolar__nome', 'tipo_unidade_escolar__iniciais', 'ativo')
- property media
models
- class TipoAlimentacao(*args, **kwargs)[source]
Bases:
ExportModelOperationsMixin('tipo_alimentacao'),Nomeavel,TemChaveExterna,PosicaoRepresenta um tipo de alimentação que pode compor o cardápio escolar.
Os registros deste modelo são reutilizados em vínculos com período escolar, configurações de horário por unidade educacional e solicitações que dependem do tipo de alimentação servido.
- Tipos cadastrados:
Desjejum
Colação
Almoço
Refeição
Sobremesa
Lanche
Lanche 4h
Lanche Emergencial
- Tipos de alimentação de CEI:
Desjejum
Colação
Almoço
Refeição da Tarde
- Tipos de alimentação de EMEF/EMEI/CIEJA, etc:
Refeição
Sobremesa
Lanche
Lanche 4h
Lanche Emergencial
- id: int
Descrição: Chave primária inteira criada automaticamente pelo Django para identificar o registro.
- uuid: uuid.UUID
Origem:
dados_comuns/behaviors.pyDescrição: Identificador externo único do tipo de alimentação, usado em integrações e endpoints que expõem UUID.
- objects: django.db.models.manager.Manager[TipoAlimentacao]
Descrição: Manager padrão do modelo, usado para construir consultas como
all(),filter()eget().
- nome: str
Origem:
dados_comuns/behaviors.pyDescrição: Nome legível do tipo de alimentação exibido em cadastros, vínculos e solicitações.
- posicao: int
Origem:
dados_comuns/behaviors.pyDescrição: Posição usada para ordenar os tipos de alimentação nas telas e regras do cardápio.
- vinculos: django.db.models.QuerySet[VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar]
Descrição: Relação reversa M:N com
VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar.Reúne os vínculos de período escolar e tipo de unidade escolar em que esse tipo de alimentação pode ser servido.
- horariodocombodotipodealimentacaoporunidadeescolar_set: django.db.models.QuerySet[HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolar]
Descrição: Relação reversa 1:N com
HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolar.Lista as faixas de horário cadastradas para este tipo de alimentação em escolas e períodos escolares específicos.
- inclusaoalimentacaodacei_set: django.db.models.QuerySet[InclusaoAlimentacaoDaCEI]
Descrição: Relação reversa M:N com
InclusaoAlimentacaoDaCEI.Reúne as solicitações de inclusão de alimentação por CEI que utilizam este tipo de alimentação no campo
tipos_alimentacao.
- inversaocardapio_set: django.db.models.QuerySet[InversaoCardapio]
Descrição: Relação reversa M:N com
InversaoCardapio.Reúne as inversões de cardápio que incluem este tipo de alimentação.
- parametrizacao_valor_tipo_alimentacao: django.db.models.QuerySet[ParametrizacaoFinanceiraTabelaValor]
Descrição: Relação reversa 1:N com
ParametrizacaoFinanceiraTabelaValor.Expõe as parametrizações financeiras em que este tipo de alimentação foi associado a um valor de tabela.
- periodos_escolares: django.db.models.QuerySet[escola.PeriodoEscolar]
Descrição: Relação reversa M:N com
escola.PeriodoEscolar.Indica em quais períodos escolares este tipo de alimentação pode ser ofertado diretamente.
- quantidadedealunosemeiinclusaodealimentacaocemei_set: django.db.models.QuerySet[QuantidadeDeAlunosEMEIInclusaoDeAlimentacaoCEMEI]
Descrição: Relação reversa M:N com
QuantidadeDeAlunosEMEIInclusaoDeAlimentacaoCEMEI.Reúne as quantidades de alunos da parte EMEI das inclusões CEMEI que usam este tipo de alimentação.
- quantidadeporperiodo_set: django.db.models.QuerySet[QuantidadePorPeriodo]
Descrição: Relação reversa M:N com
QuantidadePorPeriodo.Lista as quantidades por período de inclusões normais ou contínuas que incluem este tipo de alimentação.
- quantidadeporperiodosuspensaoalimentacao_set: django.db.models.QuerySet[QuantidadePorPeriodoSuspensaoAlimentacao]
Descrição: Relação reversa M:N com
QuantidadePorPeriodoSuspensaoAlimentacao.Reúne os registros de quantidade por período usados em suspensões de alimentação que referenciam este tipo de alimentação.
- recreionasferiasunidadetipoalimentacao_set: django.db.models.QuerySet[RecreioNasFeriasUnidadeTipoAlimentacao]
Descrição: Relação reversa 1:N com
RecreioNasFeriasUnidadeTipoAlimentacao.Lista as configurações de tipo de alimentação usadas pelas unidades participantes do programa Recreio nas Férias.
- respostas_relatorio_imr: django.db.models.QuerySet[RespostaTipoAlimentacao]
Descrição: Relação reversa 1:N com
RespostaTipoAlimentacao.Reúne as respostas de formulários de IMR cujo valor selecionado foi este tipo de alimentação.
- substituicoes_alimento_para: django.db.models.QuerySet[SubstituicaoAlimentacaoNoPeriodoEscolar]
Descrição: Relação reversa M:N com
SubstituicaoAlimentacaoNoPeriodoEscolar.Identifica as substituições de alteração de cardápio em que este tipo de alimentação aparece como destino da troca.
- substituicoes_alimentos_de: django.db.models.QuerySet[SubstituicaoAlimentacaoNoPeriodoEscolar]
Descrição: Relação reversa M:N com
SubstituicaoAlimentacaoNoPeriodoEscolar.Identifica as substituições de alteração de cardápio em que este tipo de alimentação aparece como origem da troca.
- substituicoes_cei_tipo_alimentacao_de: django.db.models.QuerySet[SubstituicaoAlimentacaoNoPeriodoEscolarCEI]
Descrição: Relação reversa M:N com
SubstituicaoAlimentacaoNoPeriodoEscolarCEI.Reúne as substituições de cardápio de CEI em que este tipo de alimentação faz parte do conjunto substituído.
- substituicoes_cei_tipo_alimentacao_para: django.db.models.QuerySet[SubstituicaoAlimentacaoNoPeriodoEscolarCEI]
Descrição: Relação reversa 1:N com
SubstituicaoAlimentacaoNoPeriodoEscolarCEI.Reúne as substituições de cardápio de CEI em que este tipo de alimentação é o resultado final da troca.
- substituicoes_cemei_cei_alimento_para: django.db.models.QuerySet[SubstituicaoAlimentacaoNoPeriodoEscolarCEMEICEI]
Descrição: Relação reversa M:N com
SubstituicaoAlimentacaoNoPeriodoEscolarCEMEICEI.Lista as substituições da parte CEI do CEMEI em que este tipo de alimentação é usado como destino da troca.
- substituicoes_cemei_cei_tipo_alimentacao_de: django.db.models.QuerySet[SubstituicaoAlimentacaoNoPeriodoEscolarCEMEICEI]
Descrição: Relação reversa M:N com
SubstituicaoAlimentacaoNoPeriodoEscolarCEMEICEI.Lista as substituições da parte CEI do CEMEI em que este tipo de alimentação compõe o conjunto de origem.
- substituicoes_cemei_emei_alimento_para: django.db.models.QuerySet[SubstituicaoAlimentacaoNoPeriodoEscolarCEMEIEMEI]
Descrição: Relação reversa M:N com
SubstituicaoAlimentacaoNoPeriodoEscolarCEMEIEMEI.Lista as substituições da parte EMEI do CEMEI em que este tipo de alimentação aparece como destino da troca.
- substituicoes_cemei_emei_tipo_alimentacao_de: django.db.models.QuerySet[SubstituicaoAlimentacaoNoPeriodoEscolarCEMEIEMEI]
Descrição: Relação reversa M:N com
SubstituicaoAlimentacaoNoPeriodoEscolarCEMEIEMEI.Lista as substituições da parte EMEI do CEMEI em que este tipo de alimentação compõe o conjunto de origem.
- suspensoes_periodo_escolar: django.db.models.QuerySet[SuspensaoAlimentacaoNoPeriodoEscolar]
Descrição: Relação reversa M:N com
SuspensaoAlimentacaoNoPeriodoEscolar.Reúne as suspensões de alimentação por período escolar em que este tipo de alimentação foi afetado.
- valormedicao_set: django.db.models.QuerySet[ValorMedicao]
Descrição: Relação reversa 1:N com
ValorMedicao.Lista os valores lançados na Medição Inicial que referenciam este tipo de alimentação.
- exception NotUpdated
Bases:
ObjectNotUpdated,DatabaseError
- descontos_financeiros
Accessor to the related objects manager on the reverse side of a many-to-one relation.
In the example:
class Child(Model): parent = ForeignKey(Parent, related_name='children')
Parent.childrenis aReverseManyToOneDescriptorinstance.Most of the implementation is delegated to a dynamically defined manager class built by
create_reverse_many_to_one_manager()defined below.
- class HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolar(*args, **kwargs)[source]
Bases:
TemChaveExternaDefine a faixa de horário de um tipo de alimentação em uma escola.
O cadastro relaciona uma escola, um período escolar e um tipo de alimentação a uma janela de atendimento. Os vínculos opcionais preservam a compatibilidade com registros legados e permitem configurações parciais.
- id: int
Descrição: Chave primária inteira criada automaticamente pelo Django para identificar a configuração de horário.
- uuid: uuid.UUID
Origem:
dados_comuns/behaviors.pyDescrição: Identificador externo único da configuração de horário, usado em integrações e endpoints que expõem UUID.
- objects: django.db.models.manager.Manager[HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolar]
Descrição: Manager padrão do modelo, usado para construir consultas como
all(),filter()eget().
- hora_inicial: datetime.time
Descrição: Horário inicial em que o tipo de alimentação pode ser ofertado.
- hora_final: datetime.time
Descrição: Horário final da janela de atendimento configurada.
- escola: escola.Escola | None
Descrição: Escola à qual a configuração de horário se aplica. Pode ser
Noneem cadastros legados.
- escola_id: int | None
Descrição: Chave estrangeira inteira da escola associada ao registro. Espelha o campo
escolae pode ficar nula em cadastros legados.
- tipo_alimentacao: cardapio.TipoAlimentacao | None
Descrição: Tipo de alimentação atendido pela faixa de horário configurada.
- tipo_alimentacao_id: int | None
Descrição: Chave estrangeira inteira do tipo de alimentação configurado para a faixa de horário.
- periodo_escolar: escola.PeriodoEscolar | None
Descrição: Período escolar em que a faixa de horário é válida.
- periodo_escolar_id: int | None
Descrição: Chave estrangeira inteira do período escolar ao qual a faixa de horário está vinculada.
- exception NotUpdated
Bases:
ObjectNotUpdated,DatabaseError
- class VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar(*args, **kwargs)[source]
Bases:
ExportModelOperationsMixin('vinculo_alimentacao_periodo_escolar_tipo_ue'),Ativavel,TemChaveExternaRelaciona tipos de alimentação permitidos a um período escolar e tipo de U.E.
O vínculo funciona como uma regra de negócio do cardápio, definindo quais tipos de alimentação podem ser servidos para uma combinação específica de tipo de unidade escolar e período escolar.
- Exemplos:
Uma CEI no período da MANHA pode servir Desjejum, Colação e Almoço.
Uma EMEF no período INTEGRAL pode servir Refeição, Sobremesa, Lanche, Lanche 4h e Lanche Emergencial.
- id: int
Descrição: Chave primária inteira criada automaticamente pelo Django para identificar o vínculo.
- uuid: uuid.UUID
Origem:
dados_comuns/behaviors.pyDescrição: Identificador externo único do vínculo, usado em integrações e endpoints que expõem UUID.
- objects: django.db.models.manager.Manager[VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar]
Descrição: Manager padrão do modelo, usado para construir consultas como
all(),filter()eget().
- ativo: bool
Origem:
dados_comuns/behaviors.pyDescrição: Indica se o vínculo está habilitado para uso nas regras vigentes do cardápio.
- tipo_unidade_escolar: escola.TipoUnidadeEscolar | None
Descrição: Tipo de unidade escolar ao qual a regra de alimentação se aplica.
- tipo_unidade_escolar_id: int | None
Descrição: Chave estrangeira inteira do tipo de unidade escolar associado ao vínculo.
- periodo_escolar: escola.PeriodoEscolar | None
Descrição: Período escolar coberto pelo vínculo.
- periodo_escolar_id: int | None
Descrição: Chave estrangeira inteira do período escolar coberto pelo vínculo.
- tipos_alimentacao: django.db.models.QuerySet[TipoAlimentacao]
Descrição: Relação M:N com os tipos de alimentação autorizados para a combinação de período escolar e tipo de unidade escolar.
- exception NotUpdated
Bases:
ObjectNotUpdated,DatabaseError
- class MotivoDRENaoValida(*args, **kwargs)[source]
Bases:
ExportModelOperationsMixin('motivo_dre_nao_valida'),Nomeavel,TemChaveExternaArmazena motivos usados pela DRE para não validar uma solicitação no módulo de Gestão de Alimentação.
Os registros deste modelo são exibidos quando uma solicitação que passa pela Diretoria Regional de Educação é invalidada.
- Exemplos:
Em desacordo com o contrato
Preenchimento incorreto
Outro
- id: int
Descrição: Chave primária inteira criada automaticamente pelo Django para identificar o motivo.
- uuid: uuid.UUID
Origem:
dados_comuns/behaviors.pyDescrição: Identificador externo único do motivo, usado em integrações e endpoints que expõem UUID.
- objects: django.db.models.manager.Manager[MotivoDRENaoValida]
Descrição: Manager padrão do modelo, usado para construir consultas como
all(),filter()eget().
- nome: str
Origem:
dados_comuns/behaviors.pyDescrição: Nome legível do motivo usado pela DRE para não validar uma solicitação.
- exception NotUpdated
Bases:
ObjectNotUpdated,DatabaseError
api
Camada de API da subapp base de cardapio.
serializers
Serializers da subapp base do modulo de cardapio.
Reune serializers de leitura usados para expor tipos de alimentacao, configuracoes de horario por escola, vinculos de periodo/tipo de unidade e motivos de nao validacao da DRE.
- class HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa horarios configurados para tipos de alimentacao por escola.
Retorna a faixa de horario com os relacionamentos de escola, tipo de alimentacao e periodo escolar ja expandidos por serializers simples.
- Viewsets que utilizam este serializer:
HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarViewSet: retornado porget_serializer_class()nas acoes de leitura.
- class MotivoDRENaoValidaSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa os motivos usados pela DRE para nao validar solicitacoes.
Expoe os campos publicos de
MotivoDRENaoValidapara consumo em listas e seletores da API.- Viewsets que utilizam este serializer:
MotivosDRENaoValidaViewSet: uso direto comoserializer_classnas acoes de listagem e detalhamento.
- class Meta[source]
Bases:
object- exclude = ('id',)
- model
alias of
MotivoDRENaoValida
- class TipoAlimentacaoSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa tipos de alimentacao com sua representacao completa de leitura.
Expoe os campos publicos de
TipoAlimentacaousados na API base e em serializers aninhados que retornam os tipos de alimentacao permitidos para horarios e vinculos.- Viewsets que utilizam este serializer:
TipoAlimentacaoViewSet: uso direto comoserializer_classnasacoes padrao do
ModelViewSet.
HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarViewSet: usoindireto, aninhado em
HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarSerializer.
VinculoTipoAlimentacaoViewSet: uso indireto, aninhado emVinculoTipoAlimentoSimplesSerializereVinculoTipoAlimentoPeriodoSerializer.
- class Meta[source]
Bases:
object- exclude = ('id',)
- model
alias of
TipoAlimentacao
- class TipoAlimentacaoSimplesSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa uma visao resumida dos tipos de alimentacao.
Retorna apenas UUID e nome, sendo usado quando o payload precisa listar os tipos de alimentacao vinculados a um periodo escolar sem incluir todos os campos do modelo.
- Viewsets que utilizam este serializer:
Nenhum diretamente.
Uso indireto em
VinculosPorTipoUnidadeEscolarViewSet, por meio deTipoUnidadeEscolarAgrupadoSerializer.
- class Meta[source]
Bases:
object- fields = ('uuid', 'nome')
- model
alias of
TipoAlimentacao
- class TipoUnidadeEscolarAgrupadoSerializer(*args, **kwargs)[source]
Bases:
SerializerSerializa tipos de unidade escolar agrupados com seus vinculos.
Recebe uma estrutura agregada em memoria contendo o tipo de unidade e os vinculos associados e monta a resposta final com periodos escolares e tipos de alimentacao permitidos.
- Viewsets que utilizam este serializer:
VinculosPorTipoUnidadeEscolarViewSet: uso direto na actionlist.
- static agrupar_vinculos_por_tipo_ue(vinculos)[source]
Agrupa vinculos ativos pelo UUID do tipo de unidade escolar.
- Parameters:
vinculos (Iterable[VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar]) – Vinculos a serem agrupados.
- Returns:
Lista ordenada por iniciais contendo os dados do tipo de unidade escolar e a colecao de vinculos correspondente.
- Return type:
list[dict]
- get_periodos_escolares(obj)[source]
Monta os periodos escolares agrupados para um tipo de unidade.
- Parameters:
obj (dict) – Dicionario agregado contendo a chave
vinculoscom os vinculos do tipo de unidade escolar.- Returns:
Lista de periodos escolares com UUID, nome e tipos de alimentacao serializados.
- Return type:
list[dict]
- class VinculoTipoAlimentoPeriodoSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa vinculos agrupando o periodo pelo nome exibivel.
Converte o periodo escolar em um campo textual
nomee retorna os tipos de alimentacao relacionados para compor respostas resumidas por periodo.- Viewsets que utilizam este serializer:
Nenhum diretamente no modulo.
Pode ser reutilizado por endpoints que precisem expor vinculos por periodo escolar em formato resumido.
- class Meta[source]
Bases:
object- fields = ('nome', 'tipos_alimentacao')
- model
alias of
VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar
- get_nome(obj)[source]
Retorna o nome do periodo escolar associado ao vinculo.
- Parameters:
obj (VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar) – Vinculo serializado.
- Returns:
Nome do periodo escolar relacionado ao vinculo.
- Return type:
str
- class VinculoTipoAlimentoSimplesSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa um vinculo ativo entre periodo, tipo de U.E. e alimentacoes.
Retorna o tipo de unidade escolar, o periodo escolar e a colecao de tipos de alimentacao autorizados para aquela combinacao.
- Viewsets que utilizam este serializer:
VinculoTipoAlimentacaoViewSet: uso direto comoserializer_classnas acoes de leitura.
- class Meta[source]
Bases:
object- fields = ('uuid', 'tipo_unidade_escolar', 'periodo_escolar', 'tipos_alimentacao')
- model
alias of
VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar
serializers_create
Serializers de escrita da subapp base do modulo de cardapio.
Centraliza a criacao e atualizacao de horarios por escola e de vinculos entre tipo de unidade escolar, periodo escolar e tipos de alimentacao.
- class HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarSerializerCreate(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa a escrita de horarios de tipos de alimentacao por escola.
Resolve os relacionamentos por UUID, valida a consistencia da faixa de horario e impede a criacao de combinacoes duplicadas para a mesma escola, tipo de alimentacao e periodo escolar.
- Viewsets que utilizam este serializer:
HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarViewSet: retornado porget_serializer_class()nas acoescreate,updateepartial_update.
- class Meta[source]
Bases:
object- fields = ('uuid', 'hora_inicial', 'hora_final', 'escola', 'tipo_alimentacao', 'periodo_escolar')
- model
- create(validated_data)[source]
Cria um horario validando duplicidade por escola e periodo.
- Parameters:
validated_data (dict) – Dados validados da configuracao de horario.
- Returns:
Instancia criada.
- Return type:
- Raises:
ValidationError – Quando ja existe um horario para a mesma combinacao de escola, tipo de alimentacao e periodo escolar.
- update(instance, validated_data)[source]
Atualiza um horario existente com os dados recebidos.
- Parameters:
instance (HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolar) – Instancia a ser atualizada.
validated_data (dict) – Dados validados da requisicao.
- Returns:
Instancia atualizada e salva.
- Return type:
- validate(attrs)[source]
Valida a ordem cronologica da faixa de horario informada.
- Parameters:
attrs (dict) – Dados normalizados pelo serializer antes da persistencia.
- Returns:
Os atributos recebidos apos a validacao.
- Return type:
dict
- Raises:
ValidationError – Quando
hora_iniciale maior ou igual ahora_final.
- class VinculoTipoAlimentoCreateSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa a escrita de vinculos entre periodo, tipo de U.E. e alimentacoes.
Resolve por UUID o tipo de unidade escolar, o periodo escolar e a lista de tipos de alimentacao autorizados para a combinacao editada.
- Viewsets que utilizam este serializer:
VinculoTipoAlimentacaoViewSet: retornado porget_serializer_class()nas acoescreate,updateepartial_update.
- class Meta[source]
Bases:
object- fields = ('uuid', 'tipos_alimentacao', 'tipo_unidade_escolar', 'periodo_escolar')
- model
alias of
VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar
- update(instance, validated_data)[source]
Atualiza um vinculo e substitui seus tipos de alimentacao.
- Parameters:
instance (VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar) – Instancia a ser atualizada.
validated_data (dict) – Dados validados contendo os campos do vinculo e a lista
tipos_alimentacao.
- Returns:
Instancia atualizada e salva.
- Return type:
- validate_tipos_alimentacao(tipos_alimentacao)[source]
Garante que a lista de tipos de alimentacao nao seja nula.
- Parameters:
tipos_alimentacao (list[TipoAlimentacao]) – Tipos de alimentacao resolvidos pelo campo
SlugRelatedField.- Returns:
A mesma lista validada.
- Return type:
list[TipoAlimentacao]
- Raises:
ValidationError – Quando o campo e informado como nulo.
validators
Validadores de negocio da API base de cardapio.
- escola_nao_pode_cadastrar_dois_combos_iguais(escola, tipo_alimentacao, periodo_escolar)[source]
Impede a criacao de horarios duplicados para a mesma combinacao.
Garante que cada escola tenha no maximo um horario cadastrado para um determinado tipo de alimentacao em um mesmo periodo escolar.
- Parameters:
escola (Escola) – Escola dona da configuracao.
tipo_alimentacao (TipoAlimentacao) – Tipo de alimentacao configurado.
periodo_escolar (PeriodoEscolar) – Periodo escolar da configuracao.
- Returns:
Truequando nao existe duplicidade para a combinacao.- Return type:
bool
- Raises:
ValidationError – Quando ja existe um horario com a mesma escola, tipo de alimentacao e periodo escolar.
- hora_inicio_nao_pode_ser_maior_que_hora_final(hora_inicial, hora_final)[source]
Valida se o horario inicial e anterior ao horario final.
- Parameters:
hora_inicial (datetime.time) – Horario inicial informado.
hora_final (datetime.time) – Horario final informado.
- Returns:
Truequando a faixa de horario e valida.- Return type:
bool
- Raises:
ValidationError – Quando
hora_iniciale maior ou igual ahora_final.
viewsets
Viewsets da API base do modulo de cardapio.
Expoe endpoints para consulta e manutencao de tipos de alimentacao, horarios por escola, vinculos de periodo/tipo de unidade escolar e motivos de nao validacao usados pela DRE.
- class HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarViewSet(**kwargs)[source]
Bases:
ModelViewSetGerencia horarios de tipos de alimentacao configurados por escola.
Disponibiliza leitura, criacao, atualizacao e uma action customizada para listar os horarios associados a uma escola especifica.
- filtro_por_escola(request, escola_uuid=None)[source]
Lista horarios cadastrados para a escola informada.
- Parameters:
request (Request) – Requisicao HTTP recebida pela action.
escola_uuid (str | None) – UUID da escola usado como filtro.
- Returns:
Resposta paginada com os horarios encontrados para a escola.
- Return type:
Response
- get_serializer_class()[source]
Seleciona o serializer de leitura ou escrita conforme a acao.
- Returns:
HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarSerializerCreatenas acoes de escrita; caso contrario,HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarSerializer.- Return type:
type
- lookup_field = 'uuid'
- queryset = <QuerySet de HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolar>
- serializer_class
alias of
HorarioDoComboDoTipoDeAlimentacaoPorUnidadeEscolarSerializer
- class MotivosDRENaoValidaViewSet(**kwargs)[source]
Bases:
ReadOnlyModelViewSetExpoe consulta somente leitura dos motivos de nao validacao da DRE.
- lookup_field = 'uuid'
- queryset = <QuerySet de MotivoDRENaoValida>
- serializer_class
alias of
MotivoDRENaoValidaSerializer
- class TipoAlimentacaoViewSet(**kwargs)[source]
Bases:
ModelViewSetExpoe o CRUD de tipos de alimentacao da base de cardapio.
Utiliza
TipoAlimentacaoSerializerem todas as acoes padrao doModelViewSete identifica instancias pelo campouuid.- lookup_field = 'uuid'
- queryset = <QuerySet de TipoAlimentacao>
- serializer_class
alias of
TipoAlimentacaoSerializer
- class VinculoTipoAlimentacaoViewSet(**kwargs)[source]
Bases:
ModelViewSet,RetrieveModelMixin,ListModelMixin,GenericViewSetGerencia vinculos ativos entre tipo de U.E., periodo e alimentacoes.
Alem das acoes padrao de leitura e escrita, expoe endpoints customizados para filtrar vinculos por escola, por tipo de unidade e por cenarios especificos de inclusao de alimentacao.
- atualizar_lista_de_vinculos(request)[source]
Atualiza em lote os tipos de alimentacao de uma lista de vinculos.
- Parameters:
request (Request) – Requisicao HTTP cujo corpo deve conter a chave
vinculoscom UUIDs e listas detipos_alimentacao.- Returns:
Resposta paginada com os vinculos atualizados, ou erro 400 quando o payload obrigatorio nao e informado.
- Return type:
Response
- filtro_por_escola(request, escola_uuid=None)[source]
Lista vinculos aplicaveis a uma escola em uma data de referencia.
Para escolas CEMEI, monta uma ordenacao especial por unidade e periodo. Nos demais casos, filtra pelos periodos da escola e pela unidade historica valida na data consultada.
- Parameters:
request (Request) – Requisicao HTTP com filtros opcionais como
mes,anoepega_atualmente.escola_uuid (str | None) – UUID da escola consultada.
- Returns:
Resposta paginada com os vinculos ordenados para a escola.
- Return type:
Response
- filtro_por_tipo_ue(request, tipo_unidade_escolar_uuid=None)[source]
Lista vinculos ativos de um tipo especifico de unidade escolar.
- Parameters:
request (Request) – Requisicao HTTP recebida pela action.
tipo_unidade_escolar_uuid (str | None) – UUID do tipo de unidade escolar filtrado.
- Returns:
Resposta paginada com os vinculos encontrados.
- Return type:
Response
- get_serializer_class()[source]
Seleciona o serializer de escrita ou leitura conforme a acao.
- Returns:
VinculoTipoAlimentoCreateSerializernas acoes de escrita; caso contrario,VinculoTipoAlimentoSimplesSerializer.- Return type:
type
- get_vinculos_inclusoes_evento_especifico(mes, ano, tipo_solicitacao, escola)[source]
Busca vinculos necessarios para inclusoes de Evento Especifico.
Considera inclusoes normais autorizadas por Evento Especifico e cruza os periodos obtidos com os vinculos da escola para montar o conjunto de vinculos elegiveis.
Para escolas CEMEI, tambem consulta inclusoes do tipo
InclusaoDeAlimentacaoCEMEIcom motivoEvento Especificoautorizadas no mes, coletando os periodos escolares das quantidades EMEI dessas inclusoes.- Parameters:
mes (str | int) – Mes de referencia da consulta.
ano (str | int) – Ano de referencia da consulta.
tipo_solicitacao (str | None) – Parametro mantido por compatibilidade com a assinatura da chamada.
escola (Escola) – Escola utilizada na filtragem dos grupos e vinculos.
- Returns:
Vinculos compativeis com o cenario consultado.
- Return type:
QuerySet[VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar]
- lookup_field = 'uuid'
- motivo_inclusao_especifico(request)[source]
Lista vinculos permitidos para o motivo de inclusao especifico.
- Parameters:
request (Request) – Requisicao HTTP que deve informar
tipo_unidade_escolar_iniciaisemquery_params.- Returns:
Lista serializada dos vinculos filtrados ou erro 400 quando o parametro obrigatorio nao e enviado.
- Return type:
Response
- queryset = <QuerySet de VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar>
- serializer_class
alias of
VinculoTipoAlimentoSimplesSerializer
- trata_inclusao_continua_medicao_inicial(request, escola, ano, pega_atualmente)[source]
Calcula os periodos escolares a considerar na inclusao continua.
Combina os periodos escolares da escola com os periodos extras retornados pelo endpoint de inclusao continua, quando o mes e enviado na requisicao.
- Parameters:
request (Request) – Requisicao HTTP com os filtros atuais.
escola (Escola) – Escola cujos periodos serao avaliados.
ano (str | int) – Ano de referencia para consulta dos periodos.
pega_atualmente (bool | str) – Indicador usado pelo metodo
periodos_escolaresda escola.
- Returns:
Periodos resultantes da combinacao entre o calendario regular da escola e a inclusao continua, quando houver.
- Return type:
QuerySet[PeriodoEscolar]
- vinculos_inclusoes_evento_especifico_autorizadas(request)[source]
Retorna vinculos usados em inclusoes autorizadas de Evento Especifico.
- Parameters:
request (Request) – Requisicao HTTP com
escola_uuid,mes,anoetipo_solicitacaoemquery_params.- Returns:
Lista serializada dos vinculos encontrados.
- Return type:
Response
- class VinculosPorTipoUnidadeEscolarViewSet(**kwargs)[source]
Bases:
ListModelMixin,GenericViewSetLista vinculos ativos agrupados por tipo de unidade escolar.
Usa um serializer agregador para montar a resposta final a partir dos vinculos e seus relacionamentos pre-carregados.
- list(request)[source]
Lista todos os tipos de U.E. com seus periodos e alimentacoes.
- Parameters:
request (Request) – Requisicao HTTP recebida pela action
list.- Returns:
Resposta no formato
{"results": [...]}contendo os tipos de unidade escolar agrupados com seus periodos e tipos de alimentacao.- Return type:
Response
fixtures
Fixtures da subapp base de cardapio.
Agrupa arquivos de apoio para carga de dados e factories usados nos testes da subapp base.
fixtures/factories
Factories de teste da subapp base de cardapio.
Factories para os modelos base do modulo de cardapio.
Utiliza factory_boy para criar instancias de teste dos modelos de tipos de
alimentacao e de vinculos entre periodo escolar e tipo de unidade escolar.
- class TipoAlimentacaoFactory(**kwargs)[source]
Bases:
DjangoModelFactoryFactory para o modelo
TipoAlimentacao.Gera instancias com nome unico combinando uma sequencia numerica com um valor produzido pelo Faker.
- nome = <factory.declarations.Sequence object>
- class VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolarFactory(**kwargs)[source]
Bases:
DjangoModelFactoryFactory para o modelo
VinculoTipoAlimentacaoComPeriodoEscolarETipoUnidadeEscolar.Cria automaticamente o tipo de unidade escolar e o periodo escolar via subfactories. Suporta adicionar tipos de alimentacao relacionados pelo parametro
tipos_alimentacao.- periodo_escolar = SubFactory(PeriodoEscolarFactory)
- tipo_unidade_escolar = SubFactory(TipoUnidadeEscolarFactory)
- tipos_alimentacao = <factory.declarations.PostGeneration object>