alteracao_tipo_alimentacao_cei

admin

class AlteracaoCardapioCEIModelAdmin(model, admin_site)[source]

Bases: ModelAdmin

Admin do Django para solicitações de alteração do tipo de alimentação CEI.

Configura a listagem administrativa de AlteracaoCardapioCEI, exibindo o UUID, a data e o status de cada solicitação, habilitando filtro por status e incorporando o inline de substituições no formulário de edição.

inlines

Inlines exibidos no formulário de edição. Valor: [SubstituicoesCEIInLine].

Type:

list

list_display

Colunas exibidas na listagem do admin. Valores: ["uuid", "data", "status"].

Type:

list[str]

list_filter

Filtros laterais disponíveis na listagem. Valores: ["status"].

Type:

list[str]

class SubstituicoesCEIInLine(parent_model, admin_site)[source]

Bases: TabularInline

Inline do Django para substituições de alimentação no período escolar CEI.

Exibe e permite editar instâncias de SubstituicaoAlimentacaoNoPeriodoEscolarCEI diretamente no formulário de AlteracaoCardapioCEI.

model

Modelo gerenciado pelo inline. Valor: SubstituicaoAlimentacaoNoPeriodoEscolarCEI.

Type:

Model

extra

Número de formulários extras exibidos para novos registros. Valor: 1.

Type:

int

models

class AlteracaoCardapioCEI(*args, **kwargs)[source]

Bases: ExportModelOperationsMixin('alteracao_cardapio_cei'), CriadoEm, CriadoPor, TemChaveExterna, TemData, TemObservacao, FluxoAprovacaoPartindoDaEscola, TemIdentificadorExternoAmigavel, Logs, TemPrioridade, SolicitacaoForaDoPrazo, EhAlteracaoCardapio, TemTerceirizadaConferiuGestaoAlimentacao

Modelo responsável por armazenar Solicitações de Alteração do Tipo de Alimentação para escolas do tipo CEI.

Representa uma solicitação formal de troca do tipo de alimentação servida em determinado(s) período(s) escolar(es), com data inicial e final delimitadas. Para as CEIs, as solicitações de alteração do tipo de alimentação são divididas por faixas etárias.

O que é uma Alteração do Tipo de Alimentação?

É uma solicitação de troca do tipo de alimentação servida em um determinado dia.

Quais os tipos de Alteração do Tipo de Alimentação possíveis?

  • RPL (Refeição por Lanche)
    • substitui a refeição do dia por um lanche

    • cada escola só pode pedir uma RPL por mês

    • exemplo: no dia dos aniversariantes do mês, a escola pode solicitar uma RPL para substituir a refeição por um lanche especial.

    • na Medição Inicial, o lançamento de lanche neste dia é dobrado e a refeição é zerada.

  • LPR (Lanche por Refeição)
    • substitui o lanche do dia por uma refeição

    • não há limite de solicitações de LPR por mês

    • na Medição Inicial, o lançamento de lanche neste dia é zerado e a refeição é dobrada.

    • esta solicitação raramente é utilizada, pois as escolas preferem lanche que refeição.

Não há lanche emergencial para CEIs.

Tipos de unidade contempladas:
  • CEI DIRET

  • CEU CEI

  • CCI/CIPS

Exceções não contempladas:
  • EMEF

  • EMEI

  • CEMEI

etc.

DESCRICAO

Descrição legível do tipo de solicitação. Utilizado no dashboard de Gestão de Alimentação para identificar o tipo de cada solicitação. O valor é a string "Alteração do Tipo de Alimentação CEI".

Type:

str

criado_em: datetime.datetime

Origem: dados_comuns/behaviors.py

Descrição: Timestamp preenchido automaticamente na criação do registro.

criado_por: perfil.Usuario | None

Origem: dados_comuns/behaviors.py

Descrição: Usuário responsável pela criação do registro. O campo ainda permite null e blank.

criado_por_id: int | None

Origem: dados_comuns/behaviors.py

Descrição: Identificador do usuário responsável pela criação do registro.

Corresponde à chave primária de perfil.Usuario. Pode ser None (campo permite null e blank).

data: datetime.date

Origem: dados_comuns/behaviors.py

Descrição: Data da solicitação de alteração do tipo de alimentação CEI.

Diferentemente da alteração padrão (que usa intervalo), a alteração CEI refere-se a um único dia.

escola: escola.Escola | None

Origem: EhAlteracaoCardapio

Descrição: Escola que efetuou a solicitação de alteração do tipo de alimentação. O campo ainda permite null e blank.

escola_id: int | None

Origem: EhAlteracaoCardapio

Descrição: Identificador da escola que efetuou a solicitação de alteração do tipo de alimentação.

Corresponde à chave primária de escola.Escola. Pode ser None (campo permite null e blank).

foi_solicitado_fora_do_prazo: bool

Origem: dados_comuns/behaviors.py

Descrição: Indica se a solicitação foi criada fora do prazo regular de antecedência.

Quando True, significa que o pedido foi criado com 5 dias úteis ou menos de antecedência.

id: int

Origem: django.db.models.Model

Descrição: Identificador interno do registro no banco de dados.

Corresponde à chave primária gerada automaticamente pelo Django.

motivo: cardapio.MotivoAlteracaoCardapio | None

Origem: EhAlteracaoCardapio

Descrição: Motivo associado à solicitação de alteração do tipo de alimentação. O campo ainda permite null e blank.

motivo_id: int | None

Origem: EhAlteracaoCardapio

Descrição: Identificador do motivo associado à solicitação de alteração do tipo de alimentação.

Motivos disponíveis para CEI:
  • RPL (Refeição por Lanche)

  • LPR (Lanche por Refeição)

Corresponde à chave primária de MotivoAlteracaoCardapio. Pode ser None (campo permite null e blank).

observacao: str

Origem: dados_comuns/behaviors.py

Descrição: Campo de texto livre para registrar observações complementares da solicitação.

Pode ser uma string vazia, pois o campo permite blank.

substituicoes_cei_periodo_escolar: django.db.models.QuerySet[SubstituicaoAlimentacaoNoPeriodoEscolarCEI]

Relação reversa 1:N com SubstituicaoAlimentacaoNoPeriodoEscolarCEI.

Representa todas as substituições de tipo de alimentação vinculadas à solicitação CEI, organizadas por período escolar e faixa etária.

rastro_dre: escola.DiretoriaRegional | None

Origem: FluxoAprovacaoPartindoDaEscola

Descrição: Diretoria Regional de Educação vinculada ao rastro histórico da solicitação.

Representa a DRE da escola no momento em que o rastro do pedido foi salvo.

rastro_dre_id: int | None

Origem: FluxoAprovacaoPartindoDaEscola

Descrição: Identificador da DRE vinculada ao rastro histórico da solicitação.

Corresponde à chave primária de escola.DiretoriaRegional. Pode ser None (campo permite null e blank).

rastro_escola: escola.Escola | None

Origem: FluxoAprovacaoPartindoDaEscola

Descrição: Escola registrada no rastro histórico da solicitação.

Representa a escola vinculada ao pedido no momento em que o rastro foi salvo.

rastro_escola_id: int | None

Origem: FluxoAprovacaoPartindoDaEscola

Descrição: Identificador da escola registrada no rastro histórico da solicitação.

Corresponde à chave primária de escola.Escola. Pode ser None (campo permite null e blank).

rastro_lote: escola.Lote | None

Origem: FluxoAprovacaoPartindoDaEscola

Descrição: Lote registrado no rastro histórico da solicitação.

Representa o lote da escola no momento em que o rastro foi salvo.

rastro_lote_id: int | None

Origem: FluxoAprovacaoPartindoDaEscola

Descrição: Identificador do lote registrado no rastro histórico da solicitação.

Corresponde à chave primária de escola.Lote. Pode ser None (campo permite null e blank).

rastro_terceirizada: terceirizada.Terceirizada | None

Origem: FluxoAprovacaoPartindoDaEscola

Descrição: Terceirizada registrada no rastro histórico da solicitação.

Representa a empresa terceirizada vinculada ao lote da escola no momento em que o rastro foi salvo.

rastro_terceirizada_id: int | None

Origem: FluxoAprovacaoPartindoDaEscola

Descrição: Identificador da terceirizada registrada no rastro histórico da solicitação.

Corresponde à chave primária de terceirizada.Terceirizada. Pode ser None (campo permite null e blank).

status: str

Origem: django_xworkflows.models.StateField

Descrição: Estado atual da solicitação dentro do workflow de aprovação partindo da escola.

Armazena um dos valores definidos em PedidoAPartirDaEscolaWorkflow, como RASCUNHO, DRE_A_VALIDAR ou CODAE_AUTORIZADO.

terceirizada_conferiu_gestao: bool

Origem: dados_comuns/behaviors.py

Descrição: Indica se a terceirizada marcou ciência da solicitação na Gestão de Alimentação.

Quando True, registra que a empresa conferiu o pedido sem necessariamente alterar o status do workflow.

get_status_display()

Origem: django_xworkflows.models.StateField

Descrição: Relacionado ao campo status do workflow.

Retorna a representação legível (label) do status atual da instância.

O valor retornado corresponde ao texto definido em states do workflow, sendo mais apropriado para exibição em interfaces (ex: telas e relatórios).

Returns:

Texto legível do status

Return type:

str

Exemplo: CODAE_AUTORIZADO retorna "CODAE autorizou pedido".

uuid: uuid.UUID

Origem: dados_comuns/behaviors.py

Descrição: Identificador único do registro.

Gerado automaticamente no momento da criação, sendo utilizado como identificador externo amigável.

Pode ser utilizado em integrações externas e URLs públicas, evitando a exposição do identificador interno (ID).

exception NotUpdated

Bases: ObjectNotUpdated, DatabaseError

codae_autoriza

Autoriza a solicitação de Gestão de Alimentação como CODAE pedida com mais de 5 dias úteis de antecedência. Só é possível autorizar uma solicitação que foi validada pela Diretoria Regional.

Este método é herdado de django_xworkflows.

Possui um hook (_codae_autoriza_hook) para, após a autorização:
  • criar uma entrada de log específico para esta ação, utilizando o método salvar_log_transicao.

  • enviar e-mail para as partes interessadas notificando sobre a autorização.

codae_autoriza_questionamento

CODAE autoriza a solicitação de Gestão de Alimentação pedida com menos de 5 dias úteis de antecedência, mediante resposta positiva do questionamento para a empresa terceirizada que atende a escola. Só é possível autorizar uma solicitação que foi validada pela Diretoria Regional.

Uma solicitação pode ser autorizada se:
  • teve uma resposta positiva do questionamento pela empresa terceirizada que atende a escola, ou seja, resposta_sim_nao=True no log de questionamento.

Este método é herdado de django_xworkflows.

Possui um hook (_codae_autoriza_hook) para, após a autorização:
  • criar uma entrada de log específico para esta ação, utilizando o método salvar_log_transicao.

  • enviar e-mail para as partes interessadas notificando sobre a autorização.

codae_nega

CODAE nega a solicitação de Gestão de Alimentação. Só é possível negar uma solicitação que foi validada pela Diretoria Regional.

Uma solicitação pode ser negada se, por exemplo:
  • infringir alguma regra do edital

  • tiver algum dado incorreto ou inconsistente (por exemplo, um Kit Lanche não pode ser solicitado para um “passeio” nas dependências da escola. É apenas para passeios externos.)

Este método é herdado de django_xworkflows.

Possui um hook (_codae_recusou_hook) para, após a negação:
  • criar uma entrada de log específico para esta ação, utilizando o método salvar_log_transicao.

  • enviar e-mail para as partes interessadas notificando sobre a negação.

codae_nega_questionamento

CODAE nega a solicitação de Gestão de Alimentação pedida com menos de 5 dias úteis de antecedência. Só é possível negar uma solicitação que foi validada pela Diretoria Regional.

Uma solicitação pode ser negada se:
  • não tiver uma resposta positiva do questionamento pela empresa terceirizada que atende a escola, ou seja, resposta_sim_nao=False no log de questionamento.

Este método é herdado de django_xworkflows.

Possui um hook (_codae_recusou_hook) para, após a negação:
  • criar uma entrada de log específico para esta ação, utilizando o método salvar_log_transicao.

  • enviar e-mail para as partes interessadas notificando sobre a negação.

codae_questiona

CODAE questiona a empresa terceirizada se é possível atender a solicitação de Gestão de Alimentação pedida com menos de 5 dias úteis de antecedência. Só é possível questionar uma solicitação que foi validada pela Diretoria Regional.

Uma solicitação pedida com menos de 5 dias úteis de antecedência não pode ser autorizada imediatamente, pois a empresa terceirizada que atende a escola precisa confirmar se é possível atender a solicitação nesse prazo. Portanto, o CODAE questiona a solicitação para obter essa confirmação.

Exceção (pode ser autorizado imediatamente, sem questionamento):
  • Alteração do Tipo de Alimentação - Lanche Emergencial

Este método é herdado de django_xworkflows.

Possui um hook (_codae_questiona_hook) para, após o questionamento:
  • criar uma entrada de log específico para esta ação, utilizando o método salvar_log_transicao.

dre_nao_valida

DRE não valida a solicitação de Gestão de Alimentação.

Este método é herdado de django_xworkflows.

Possui um hook (_dre_nao_valida_hook) para, após a não validação:
  • criar uma entrada de log específico para esta ação, utilizando o método salvar_log_transicao.

  • enviar e-mail para as partes interessadas notificando sobre a não validação.

dre_pede_revisao

Deprecado.

Este método é herdado de django_xworkflows.

dre_valida

DRE valida a solicitação de Gestão de Alimentação.

Este método é herdado de django_xworkflows.

Possui um hook (_dre_valida_hook) para, após a validação:
  • criar uma entrada de log específico para esta ação, utilizando o método salvar_log_transicao.

escola_revisa

Deprecado.

Este método é herdado de django_xworkflows.

inicia_fluxo

Inicia o fluxo da solicitação de Gestão de Alimentação (envia a solicitação para DRE validar).

Só é possível iniciar uma solicitação que esteja em RASCUNHO.

Este método é herdado de django_xworkflows.

Possui um hook (_inicia_fluxo_hook) para, após o início do fluxo:
  • definir o campo foi_solicitado_fora_do_prazo com base na prioridade da solicitação.

  • salvar os rastros históricos da solicitação (escola, DRE, lote e terceirizada).

  • criar uma entrada de log específico para esta ação, utilizando o método salvar_log_transicao.

property numero_alunos

Retorna o total de alunos somando todas as faixas etárias das substituições vinculadas.

Returns:

Soma da quantidade de alunos em todas as faixas etárias das SubstituicaoAlimentacaoNoPeriodoEscolarCEI desta alteração, ou None se não houver faixas etárias cadastradas.

Return type:

int | None

property path

Retorna o caminho relativo do relatório desta solicitação no frontend.

Returns:

URL relativa no formato "alteracao-do-tipo-de-alimentacao/relatorio?uuid=<uuid>&tipoSolicitacao=solicitacao-cei".

Return type:

str

salvar_log_transicao(status_evento, usuario, **kwargs)[source]

Registra no log a transição de status da solicitação.

Cria uma entrada em LogSolicitacoesUsuario associada a esta alteração de cardápio CEI.

Parameters:
  • status_evento (int) – Código do evento de status.

  • usuario (django.contrib.auth.models.AbstractUser) – Usuário responsável pela transição.

  • **kwargs

    Parâmetros opcionais do log. justificativa (str): Texto justificando a transição. resposta_sim_nao (bool): Indica resposta booleana associada

    ao log. O padrão é False.

Returns:

None

solicitacao_dict_para_relatorio(label_data, data_log, instituicao)[source]

Serializa os dados da solicitação CEI para uso em relatórios.

Retorna um dicionário com as informações relevantes da alteração de cardápio CEI, incluindo rastreamentos históricos, data, motivo e substituições por faixa etária.

Parameters:
  • label_data (str) – Rótulo descritivo para o campo de data no relatório.

  • data_log (datetime.date) – Data do log de referência exibida no relatório.

  • instituicao (object) – Instituição solicitante, mantida por compatibilidade de assinatura.

Returns:

Dicionário com os campos utilizados no relatório.

Return type:

dict

property substituicoes

Retorna um atalho para substituicoes_cei_periodo_escolar.

Returns:

Manager reverso das substituições de alimentação CEI vinculadas.

Return type:

django.db.models.Manager

property susbstituicoes_dict

Retorna as substituições de alimentação CEI serializadas como lista de dicionários.

Cada item inclui o período escolar, os tipos de alimentação substituídos, o tipo resultante e as faixas etárias com quantidades e matriculados.

Returns:

Lista de dicionários com os campos periodo, tipos_alimentacao_de, tipos_alimentacao_para, faixas_etarias, total_alunos e total_matriculados.

Return type:

list[dict]

terceirizada_responde_questionamento

A empresa terceirizada responde ao questionamento da CODAE sobre a possibilidade de atendimento da solicitação.

Só é possível responder um questionamento quando a solicitação está em CODAE_QUESTIONADO.

Caso a empresa responda que sim (resposta_sim_nao=True), a solicitação pode ser autorizada normalmente pela CODAE, mesmo tendo sido pedida com menos de 5 dias úteis de antecedência.

Caso a empresa responda que não (resposta_sim_nao=False), a solicitação deve ser negada pela CODAE, pois a empresa, pelo contrato, tem o direito de negar solicitações pedidas com menos de 5 dias úteis de antecedência.

Este método é herdado de django_xworkflows.

Possui um hook (_terceirizada_responde_questionamento_hook) para, após a resposta:
  • criar uma entrada de log específico para esta ação, utilizando o método salvar_log_transicao.

  • registrar no log a justificativa informada e a resposta booleana em resposta_sim_nao.

terceirizada_toma_ciencia

Deprecado.

Este método é herdado de django_xworkflows.

Antigamente, este método era utilizado para registrar a ciência da empresa terceirizada sobre a solicitação.

O status final do fluxo era TERCEIRIZADA_TOMOU_CIENCIA.

Atualmente:
  • o status final é CODAE_AUTORIZADO.

  • o status TERCEIRIZADA_TOMOU_CIENCIA foi deprecado.

  • a empresa toma ciência sem alterar o status da solicitação, através do campo terceirizada_conferiu_gestao.

property tipo

Retorna a descrição legível do tipo da solicitação.

Returns:

String "Alteração do Tipo de Alimentação".

Return type:

str

class SubstituicaoAlimentacaoNoPeriodoEscolarCEI(*args, **kwargs)[source]

Bases: ExportModelOperationsMixin('substituicao_cei_alimentacao_periodo_escolar'), TemChaveExterna

Representa uma substituição de tipo de alimentação em um período escolar específico para CEI.

Está vinculada a uma AlteracaoCardapioCEI e define quais tipos de alimentação serão substituídos e por qual tipo resultante em um determinado período escolar. As quantidades de alunos impactados são especificadas por faixa etária em FaixaEtariaSubstituicaoAlimentacaoCEI.

Exemplos:
  • no período INTEGRAL, substituir REFEIÇÃO por LANCHE para faixas etárias específicas.

  • no período MANHA, substituir LANCHE por REFEIÇÃO para faixas etárias determinadas.

alteracao_cardapio: cardapio.AlteracaoCardapioCEI | None

Origem: django.db.models.ForeignKey

Descrição: Solicitação de alteração do tipo de alimentação CEI à qual esta substituição pertence.

Pode ser None porque o campo permite null e blank.

alteracao_cardapio_id: int | None

Origem: django.db.models.ForeignKey

Descrição: Identificador da solicitação de alteração do tipo de alimentação CEI associada a esta substituição.

Corresponde à chave primária de AlteracaoCardapioCEI. Pode ser None porque o campo permite null e blank.

faixas_etarias: django.db.models.QuerySet[FaixaEtariaSubstituicaoAlimentacaoCEI]

Relação reversa 1:N com FaixaEtariaSubstituicaoAlimentacaoCEI.

Representa as faixas etárias com suas respectivas quantidades e matriculados para esta substituição de período escolar.

id: int

Origem: django.db.models.Model

Descrição: Identificador interno do registro no banco de dados.

Corresponde à chave primária gerada automaticamente pelo Django.

periodo_escolar: escola.PeriodoEscolar

Origem: django.db.models.ForeignKey

Descrição: Período escolar ao qual a substituição de alimentação se aplica.

Exemplo: manhã, tarde, noite ou integral, conforme os períodos cadastrados para a unidade.

periodo_escolar_id: int

Origem: django.db.models.ForeignKey

Descrição: Identificador do período escolar ao qual esta substituição se aplica.

Corresponde à chave primária de escola.PeriodoEscolar.

tipo_alimentacao_para: cardapio.TipoAlimentacao | None

Origem: django.db.models.ForeignKey

Descrição: Tipo de alimentação que passará a ser oferecido no lugar dos tipos originais.

Diferentemente da alteração padrão (que usa M2M), a alteração CEI utiliza uma ForeignKey, permitindo apenas um tipo de alimentação de destino por substituição. Pode ser None porque o campo permite null e blank.

tipo_alimentacao_para_id: int | None

Origem: django.db.models.ForeignKey

Descrição: Identificador do tipo de alimentação resultante desta substituição.

Corresponde à chave primária de TipoAlimentacao. Pode ser None porque o campo permite null e blank.

tipos_alimentacao_de: django.db.models.Manager[TipoAlimentacao]

Origem: django.db.models.ManyToManyField

Descrição: Conjunto de tipos de alimentação originais que serão substituídos nesta solicitação.

Trata-se de uma relação muitos-para-muitos com TipoAlimentacao.

uuid: uuid.UUID

Origem: dados_comuns/behaviors.py

Descrição: Identificador único do registro.

Gerado automaticamente no momento da criação, sendo utilizado como identificador externo.

exception NotUpdated

Bases: ObjectNotUpdated, DatabaseError

class FaixaEtariaSubstituicaoAlimentacaoCEI(*args, **kwargs)[source]

Bases: ExportModelOperationsMixin('faixa_etaria_substituicao_alimentacao_cei'), TemChaveExterna, TemFaixaEtariaEQuantidade, MatriculadosQuandoCriado

Representa a quantidade de alunos de uma faixa etária em uma substituição de alimentação CEI.

Está vinculada a SubstituicaoAlimentacaoNoPeriodoEscolarCEI e detalha quantos alunos de cada faixa etária são afetados pela substituição, juntamente com o número de matriculados no momento da criação da solicitação.

faixa_etaria: escola.FaixaEtaria

Origem: dados_comuns/behaviors.py

Descrição: Faixa etária a que se refere esta entrada de substituição de alimentação CEI.

Exemplo: de 0 a 1 ano, de 1 a 2 anos, etc.

faixa_etaria_id: int

Origem: dados_comuns/behaviors.py

Descrição: Identificador da faixa etária associada a esta entrada.

Corresponde à chave primária de escola.FaixaEtaria.

id: int

Origem: django.db.models.Model

Descrição: Identificador interno do registro no banco de dados.

Corresponde à chave primária gerada automaticamente pelo Django.

matriculados_quando_criado: int

Origem: dados_comuns/behaviors.py

Descrição: Número de alunos matriculados nesta faixa etária no momento em que a solicitação foi criada.

Mantém um registro histórico da matrícula, independentemente de alterações posteriores.

quantidade: int

Origem: dados_comuns/behaviors.py

Descrição: Quantidade de alunos desta faixa etária afetados pela substituição de alimentação.

substituicao_alimentacao: cardapio.SubstituicaoAlimentacaoNoPeriodoEscolarCEI

Origem: django.db.models.ForeignKey

Descrição: Substituição de alimentação no período escolar CEI à qual esta faixa etária pertence.

substituicao_alimentacao_id: int

Origem: django.db.models.ForeignKey

Descrição: Identificador da substituição de alimentação no período escolar CEI associada a esta faixa etária.

Corresponde à chave primária de SubstituicaoAlimentacaoNoPeriodoEscolarCEI.

uuid: uuid.UUID

Origem: dados_comuns/behaviors.py

Descrição: Identificador único do registro.

Gerado automaticamente no momento da criação, sendo utilizado como identificador externo.

exception NotUpdated

Bases: ObjectNotUpdated, DatabaseError

api

serializers

class AlteracaoCardapioCEISerializer(*args, **kwargs)[source]

Bases: AlteracaoCardapioSerializerBase

Serializa a representacao detalhada de uma alteracao de cardapio CEI.

Inclui substituicoes por periodo com faixas etarias, motivo, escola, logs e dados de rastreabilidade usados nas respostas completas da API.

Viewsets que utilizam este serializer:
  • AlteracoesCardapioCEIViewSet: retornado por get_serializer_class() em todas as acoes de leitura e nas actions customizadas que respondem com o objeto serializado, exceto create, update e partial_update.

class Meta[source]

Bases: object

exclude = ('id',)
model

alias of AlteracaoCardapioCEI

class FaixaEtariaSubstituicaoAlimentacaoCEISerializer(*args, **kwargs)[source]

Bases: ModelSerializer

Serializa uma faixa etaria com quantidade e matriculados de uma substituicao CEI.

Expoe os campos publicos de FaixaEtariaSubstituicaoAlimentacaoCEI utilizados nas respostas aninhadas em substituicoes de periodo escolar CEI.

Viewsets que utilizam este serializer:
  • Nenhum diretamente.

  • Uso indireto em AlteracoesCardapioCEIViewSet, aninhado em SubstituicoesAlimentacaoNoPeriodoEscolarCEISerializer nas respostas de leitura.

class Meta[source]

Bases: object

exclude = ('id',)
model

alias of FaixaEtariaSubstituicaoAlimentacaoCEI

class SubstituicoesAlimentacaoNoPeriodoEscolarCEISerializer(*args, **kwargs)[source]

Bases: SubstituicoesAlimentacaoNoPeriodoEscolarSerializerBase

Serializa substituicoes completas de alimentacao por periodo escolar para CEI.

Complementa o serializer base com o tipo de alimentacao de destino (FK) e as faixas etarias detalhadas, alem de injetar o total de alunos por faixa no periodo escolar via to_representation.

Viewsets que utilizam este serializer:
  • Nenhum diretamente.

  • Uso indireto em AlteracoesCardapioCEIViewSet, aninhado em AlteracaoCardapioCEISerializer nas respostas de leitura.

class Meta[source]

Bases: object

exclude = ('id',)
model

alias of SubstituicaoAlimentacaoNoPeriodoEscolarCEI

to_representation(instance)[source]

Adiciona o total de alunos por faixa etaria no periodo escolar.

Consulta o metodo alunos_por_periodo_e_faixa_etaria da escola para enriquecer cada faixa etaria com o campo total_alunos_no_periodo.

Parameters:

instance (SubstituicaoAlimentacaoNoPeriodoEscolarCEI) – Substituicao a ser representada.

Returns:

Representacao da substituicao com o campo total_alunos_no_periodo adicionado a cada faixa etaria encontrada na consulta. Faixas nao encontradas no dicionario de alunos sao ignoradas silenciosamente.

Return type:

dict

serializers_create

class AlteracaoCardapioCEISerializerCreate(*args, **kwargs)[source]

Bases: AlteracaoCardapioSerializerCreateBase

Serializa a criacao e atualizacao completas de alteracoes de cardapio CEI.

Valida datas e regras de negocio especificas para CEI (incluindo duplicidade de RPL), resolve relacionamentos por UUID e cria as substituicoes por periodo e faixa etaria associadas ao pedido.

Viewsets que utilizam este serializer:
  • AlteracoesCardapioCEIViewSet: retornado por get_serializer_class() nas actions create, update e partial_update.

class Meta[source]

Bases: object

exclude = ('id', 'status')
model

alias of AlteracaoCardapioCEI

serializer_substituicao

alias of SubstituicoesAlimentacaoNoPeriodoEscolarCEISerializerCreate

validate_data(data)[source]

Aplica as validacoes de negocio especificas para a data da solicitacao CEI.

Parameters:

data (datetime.date) – Data informada na solicitacao.

Returns:

A mesma data recebida, apos passar pelas validacoes de prazo, ano corrente e duplicidade de RPL.

Return type:

datetime.date

Raises:

ValidationError – Quando a data viola alguma das regras de negocio aplicadas.

class FaixaEtariaSubstituicaoAlimentacaoCEISerializerCreate(*args, **kwargs)[source]

Bases: ModelSerializer

Serializa a escrita de uma faixa etaria de substituicao de alimentacao CEI.

Recebe referencias por UUID para a substituicao de periodo escolar e para a faixa etaria ao criar a solicitacao CEI.

Viewsets que utilizam este serializer:
  • Nenhum diretamente.

  • Uso indireto em AlteracoesCardapioCEIViewSet, aninhado em SubstituicoesAlimentacaoNoPeriodoEscolarCEISerializerCreate nas actions create, update e partial_update.

class Meta[source]

Bases: object

exclude = ('id',)
model

alias of FaixaEtariaSubstituicaoAlimentacaoCEI

class SubstituicoesAlimentacaoNoPeriodoEscolarCEISerializerCreate(*args, **kwargs)[source]

Bases: SubstituicoesAlimentacaoNoPeriodoEscolarSerializerCreateBase

Serializa a escrita completa de substituicoes por periodo escolar para CEI.

Complementa o serializer base com o tipo de alimentacao de destino (FK) e as faixas etarias detalhadas, criando todos os relacionamentos vinculados.

Viewsets que utilizam este serializer:
  • Nenhum diretamente.

  • Uso indireto em AlteracoesCardapioCEIViewSet, aninhado em AlteracaoCardapioCEISerializerCreate nas actions create, update e partial_update.

class Meta[source]

Bases: object

exclude = ('id',)
model

alias of SubstituicaoAlimentacaoNoPeriodoEscolarCEI

create(validated_data)[source]

Cria uma substituicao de alimentacao CEI com relacionamentos M2M e faixas etarias.

Parameters:

validated_data (dict) – Dados validados pelo serializer, incluindo tipos_alimentacao_de e faixas_etarias.

Returns:

Instancia criada com os tipos de alimentacao de origem vinculados e as faixas etarias associadas.

Return type:

SubstituicaoAlimentacaoNoPeriodoEscolarCEI

viewsets

class AlteracoesCardapioCEIViewSet(**kwargs)[source]

Bases: AlteracoesCardapioViewSet

ViewSet para gerenciar solicitacoes de Alteracao do Tipo de Alimentacao CEI.

Herda todas as actions de fluxo de AlteracoesCardapioViewSet (inicio de pedido, validacao DRE, autorizacao CODAE, cancelamento, etc.) e sobrescreve o queryset, os serializers e as actions de listagem por perfil para operar sobre AlteracaoCardapioCEI.

Tipos de unidade contemplados:
  • CEI DIRET

  • CEU CEI

  • CCI/CIPS

get_serializer_class()[source]

Retorna a classe de serializer adequada para a acao atual.

  • Para as acoes create, update e partial_update: utiliza AlteracaoCardapioCEISerializerCreate.

  • Para as demais acoes: utiliza AlteracaoCardapioCEISerializer.

Returns:

Classe de serializer a ser utilizada na acao corrente.

Return type:

type

minhas_solicitacoes(request)[source]
Retorna as solicitacoes de Alteracao de Tipo de Alimentacao CEI do usuario logado que estao em RASCUNHO.
  • permissao: Escola terceirizada.

Os resultados sao paginados.

Parameters:

request (Request) – Objeto da requisicao HTTP contendo o usuario autenticado.

Returns:

Resposta paginada com a lista de alteracoes de cardapio CEI em rascunho do usuario.

Return type:

Response

queryset = <QuerySet de AlteracaoCardapioCEI>

Retorna objetos de Alteração do Tipo de Alimentação.

relatorio(request, uuid=None)[source]
Gera e retorna o relatorio da Alteracao do Tipo de Alimentacao CEI em formato PDF.
  • permissao: qualquer usuario autenticado com acesso a solicitacao.

Parameters:
  • request (Request) – Objeto da requisicao HTTP.

  • uuid (str, optional) – UUID da instancia de AlteracaoCardapioCEI. Padrao: None.

Returns:

Resposta contendo o PDF do relatorio gerado.

Return type:

HttpResponse

solicitacoes_codae(request, filtro_aplicado='sem_filtro')[source]
Retorna todas as solicitacoes de Alteracao de Tipo de Alimentacao CEI para a CODAE:
  • com status DRE_VALIDADO, para a CODAE autorizar, negar ou pedir questionamento a empresa do lote;

  • utilizado em tela para dividir as solicitacoes por prioridade (proximas ao vencimento, prazo limite, prazo regular).

  • permissao: CODAE Gestao de Alimentacao.

Filtra opcionalmente por diretoria regional e/ou lote via query params.

Parameters:
  • request (Request) – Objeto da requisicao HTTP. Aceita diretoria_regional e lote como query params opcionais.

  • filtro_aplicado (str) – Filtro de status aplicado as solicitacoes. Padrao: constants.SEM_FILTRO.

Returns:

Lista serializada das alteracoes de cardapio CEI encontradas.

Return type:

Response

solicitacoes_diretoria_regional(request, filtro_aplicado='sem_filtro')[source]
Retorna as solicitacoes de Alteracao do Tipo de Alimentacao CEI das escolas vinculadas a DRE do usuario:
  • com status DRE_A_VALIDAR, para a DRE validar ou nao validar;

  • utilizado em tela para dividir as solicitacoes por prioridade (proximas ao vencimento, prazo limite, prazo regular).

  • permissao: Diretoria Regional.

Filtra opcionalmente por lote via query param.

Parameters:
  • request (Request) – Objeto da requisicao HTTP contendo o usuario autenticado. Aceita lote como query param opcional.

  • filtro_aplicado (str) – Filtro de status aplicado as solicitacoes. Padrao: constants.SEM_FILTRO.

Returns:

Lista serializada das alteracoes de cardapio CEI encontradas para a DRE.

Return type:

Response

solicitacoes_terceirizada(request, filtro_aplicado='sem_filtro')[source]
Retorna as solicitacoes de Alteracao do Tipo de Alimentacao CEI da terceirizada do usuario.
  • permissao: empresa terceirizada.

Os resultados sao paginados.

Parameters:
  • request (Request) – Objeto da requisicao HTTP contendo o usuario autenticado.

  • filtro_aplicado (str) – Filtro de status aplicado as solicitacoes. Padrao: constants.SEM_FILTRO.

Returns:

Resposta paginada com a lista de alteracoes de cardapio CEI da terceirizada.

Return type:

Response

managers

Managers customizados para o modelo AlteracaoCardapioCEI.

Cada manager aplica um filtro diferente sobre o queryset padrão, segmentando as alterações de cardápio CEI por janela temporal.

class AlteracoesCardapioCEIDestaSemanaManager(*args, **kwargs)[source]

Bases: Manager

Manager que retorna alterações de cardápio CEI com data nos próximos 7 dias.

get_queryset()[source]

Retorna o queryset filtrado pelo intervalo da semana atual.

Returns:

Alterações cuja data está entre hoje e hoje + 7 dias.

Return type:

QuerySet

class AlteracoesCardapioCEIDesteMesManager(*args, **kwargs)[source]

Bases: Manager

Manager que retorna alterações de cardápio CEI com data nos próximos 31 dias.

get_queryset()[source]

Retorna o queryset filtrado pelo intervalo do mês atual.

Returns:

Alterações cuja data está entre hoje e hoje + 31 dias.

Return type:

QuerySet