suspensao_alimentacao
admin
- class GrupoSuspensaoAlimentacaoModelAdmin(model, admin_site)[source]
Bases:
ModelAdminAdmin do Django para solicitações de suspensão de alimentação.
Configura a listagem administrativa de
GrupoSuspensaoAlimentacao, com inlines para gerenciar as datas de suspensão e as quantidades por período escolar associadas à solicitação.- inlines = [<class 'src.cardapio.suspensao_alimentacao.admin.SuspensaoAlimentacaoInline'>, <class 'src.cardapio.suspensao_alimentacao.admin.QuantidadePorPeriodoSuspensaoAlimentacaoInline'>]
- property media
- class QuantidadePorPeriodoSuspensaoAlimentacaoInline(parent_model, admin_site)[source]
Bases:
TabularInlineInline para gerenciar
QuantidadePorPeriodoSuspensaoAlimentacao.Permite adicionar e editar as quantidades de alunos por período escolar diretamente no formulário de administração da solicitação.
- extra = 1
- property media
- model
- class SuspensaoAlimentacaoInline(parent_model, admin_site)[source]
Bases:
TabularInlineInline para gerenciar
SuspensaoAlimentacaovinculadas ao grupo.Permite adicionar e editar as datas de suspensão diretamente no formulário de administração da solicitação de suspensão de alimentação.
- extra = 1
- property media
- model
alias of
SuspensaoAlimentacao
models
- class GrupoSuspensaoAlimentacao(*args, **kwargs)[source]
Bases:
ExportModelOperationsMixin('grupo_suspensao_alimentacao'),TemChaveExterna,CriadoPor,TemIdentificadorExternoAmigavel,CriadoEm,TemObservacao,FluxoInformativoPartindoDaEscola,Logs,TemPrioridade,TemTerceirizadaConferiuGestaoAlimentacaoSolicitação de Suspensão de Alimentação.
Objetivo: informar à empresa que atende a unidade educacional que um dia previamente letivo não haverá aula por força maior.
- Motivos mais comuns:
Unidade sem atendimento
Parada Pedagógica
- criado_em: datetime.datetime
Origem:
dados_comuns/behaviors.pyDescrição: Timestamp preenchido automaticamente na criação do registro.
- criado_por: perfil.Usuario | None
Origem:
dados_comuns/behaviors.pyDescrição: Usuário responsável pela criação do registro. O campo ainda permite
nulleblank.
- criado_por_id: int | None
Origem:
dados_comuns/behaviors.pyDescrição: Identificador do usuário responsável pela criação do registro.
Corresponde à chave primária de
perfil.Usuario. Pode serNone(campo permitenulleblank).
- desta_semana: GrupoSuspensaoAlimentacaoDestaSemanaManager
Origem:
suspensao_alimentacao/managers/suspensao_alimentacao_managers.pyDescrição: Manager que filtra apenas as solicitações de suspensão de alimentação da semana corrente.
Retorna as solicitações cuja data de suspensão está dentro do intervalo da semana atual.
- deste_mes: GrupoSuspensaoAlimentacaoDesteMesManager
Origem:
suspensao_alimentacao/managers/suspensao_alimentacao_managers.pyDescrição: Manager que filtra apenas as solicitações de suspensão de alimentação do mês corrente.
Retorna as solicitações cuja data de suspensão está dentro do mês atual.
- escola: escola.Escola | None
Origem:
django.db.models.ForeignKeyDescrição: Escola que efetuou a solicitação de suspensão de alimentação.
- escola_id: int | None
Origem:
django.db.models.ForeignKeyDescrição: Identificador da escola que efetuou a solicitação de suspensão de alimentação.
Corresponde à chave primária de
escola.Escola. Pode serNone.
- id: int
Origem:
django.db.models.ModelDescrição: Identificador interno do registro no banco de dados.
Corresponde à chave primária gerada automaticamente pelo Django.
- observacao: str
Origem:
dados_comuns/behaviors.pyDescrição: Campo de texto livre para registrar observações complementares da solicitação.
Pode ser uma string vazia, pois o campo permite
blank.
- quantidades_por_periodo: django.db.models.QuerySet[QuantidadePorPeriodoSuspensaoAlimentacao]
Relação reversa 1:N com
QuantidadePorPeriodoSuspensaoAlimentacao.Representa os períodos escolares da solicitação com suas respectivas quantidades de alunos e tipos de alimentação suspensos.
- rastro_dre: escola.DiretoriaRegional | None
Origem:
FluxoInformativoPartindoDaEscolaDescriçã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:
FluxoInformativoPartindoDaEscolaDescrição: Identificador da DRE vinculada ao rastro histórico da solicitação.
Corresponde à chave primária de
escola.DiretoriaRegional. Pode serNone(campo permitenulleblank).
- rastro_escola: escola.Escola | None
Origem:
FluxoInformativoPartindoDaEscolaDescriçã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:
FluxoInformativoPartindoDaEscolaDescrição: Identificador da escola registrada no rastro histórico da solicitação.
Corresponde à chave primária de
escola.Escola. Pode serNone(campo permitenulleblank).
- rastro_lote: escola.Lote | None
Origem:
FluxoInformativoPartindoDaEscolaDescriçã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:
FluxoInformativoPartindoDaEscolaDescrição: Identificador do lote registrado no rastro histórico da solicitação.
Corresponde à chave primária de
escola.Lote. Pode serNone(campo permitenulleblank).
- rastro_terceirizada: terceirizada.Terceirizada | None
Origem:
FluxoInformativoPartindoDaEscolaDescriçã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:
FluxoInformativoPartindoDaEscolaDescrição: Identificador da terceirizada registrada no rastro histórico da solicitação.
Corresponde à chave primária de
terceirizada.Terceirizada. Pode serNone(campo permitenulleblank).
- status: str
Origem:
django_xworkflows.models.StateFieldDescrição: Estado atual da solicitação dentro do workflow informativo partindo da escola.
Armazena um dos valores definidos em
InformativoPartindoDaEscolaWorkflow, comoRASCUNHO,INFORMADO,TERCEIRIZADA_TOMOU_CIENCIAouESCOLA_CANCELOU.
- suspensoes_alimentacao: django.db.models.QuerySet[SuspensaoAlimentacao]
Relação reversa 1:N com
SuspensaoAlimentacao.Representa todas as datas de suspensão associadas à solicitação, cada uma com seu respectivo motivo.
- terceirizada_conferiu_gestao: bool
Origem:
dados_comuns/behaviors.pyDescriçã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.StateFieldDescrição: Relacionado ao campo
statusdo workflow.Retorna a representação legível (label) do status atual da instância.
O valor retornado corresponde ao texto definido em
statesdo workflow, sendo mais apropriado para exibição em interfaces (ex: telas e relatórios).- Returns:
Texto legível do status
- Return type:
str
Exemplo:
INFORMADO.
- uuid: uuid.UUID
Origem:
dados_comuns/behaviors.pyDescriçã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
- property data
Retorna a primeira data da suspensão ordenada cronologicamente.
- Returns:
Data da primeira suspensão.
- Return type:
datetime.date
- property datas
Retorna as datas de suspensão formatadas para exibição em relatórios.
As datas são ordenadas cronologicamente e exibidas no formato
dd/mm/YYYY, separadas por vírgula.- Returns:
String com as datas formatadas e separadas por
", ".- Return type:
str
- escola_cancela
A unidade educacional cancela a suspensão de alimentação; ou seja, vai ter aula normal e precisa do fornecimento de alimentação da empresa.
Necessário informar até 48h úteis previamente à data de suspensão.
Este método é herdado de django_xworkflows.
- Possui um hook (
_escola_cancela_hook) para, após a resposta: criar uma entrada de log específico para esta ação, utilizando o método
salvar_log_transicao.
- Possui um hook (
- property existe_dia_cancelado
Verifica se a solicitação possui algum dia de suspensão cancelado.
- Returns:
Truese houver ao menos uma suspensão cancelada,Falsecaso contrário.
- Return type:
bool
- classmethod get_informados()[source]
Retorna as solicitações de suspensão com status INFORMADO.
- Returns:
- Queryset contendo as solicitações da
classe com status de informado.
- Return type:
django.db.models.QuerySet
- classmethod get_rascunhos_do_usuario(usuario)[source]
Retorna as solicitações de suspensão com status RASCUNHO de um usuário.
- Parameters:
usuario (django.contrib.auth.models.AbstractUser) – Usuário autor das solicitações.
- Returns:
- Queryset contendo as solicitações da
classe com status de rascunho criadas pelo usuário informado.
- Return type:
django.db.models.QuerySet
- classmethod get_tomados_ciencia()[source]
Retorna as solicitações de suspensão com status TERCEIRIZADA_TOMOU_CIENCIA.
- Returns:
- Queryset contendo as solicitações da
classe com status de terceirizada tomou ciência.
- Return type:
django.db.models.QuerySet
- informa
A unidade educacional informa à empresa que não haverá expediente no dia de suspensão, não sendo necessária a disponibilização de alimentações para os alunos.
Único fluxo que não precisa de validação da DRE nem autorização da CODAE, é apenas informativo.
Mesmo sem precisar de autorização da CODAE, ainda é preciso ser informado 48h úteis antes por questões contratuais.
Este método é herdado de django_xworkflows.
- Possui um hook (
_informa_hook) para, após a resposta: 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.
- Possui um hook (
- property numero_alunos
Retorna o total de alunos sem alimentação na solicitação.
Soma as quantidades de todos os períodos escolares associados.
- Returns:
Número total de alunos sem alimentação.
- Return type:
int
- property path
Retorna o caminho relativo do relatório desta solicitação no frontend.
- Returns:
- URL relativa do frontend para a tela de relatório da
solicitação de suspensão.
- 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
LogSolicitacoesUsuarioassociada a esta solicitação de suspensão de alimentação.- Parameters:
status_evento (int) – Código do evento de status que será registrado.
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.
- Returns:
O método apenas persiste o log da transição.
- Return type:
None
- solicitacao_dict_para_relatorio(label_data, data_log, instituicao)[source]
Monta o dicionário usado na geração do relatório da solicitação.
- Parameters:
label_data (str) – Rótulo textual da data exibida no relatório.
data_log (datetime.date) – Data do log de referência exibida no relatório.
instituicao (object) – Instituição solicitante. Mantido por compatibilidade de interface, sem uso direto no método.
- Returns:
Dicionário com os campos utilizados no relatório.
- Return type:
dict
- 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 textual do tipo da solicitação.
- Returns:
String
"Suspensão de Alimentação".- Return type:
str
- class MotivoSuspensao(*args, **kwargs)[source]
Bases:
ExportModelOperationsMixin('motivo_suspensao'),Nomeavel,TemChaveExternaMotivo de Suspensão de um dia letivo em uma unidade educacional.
- Exemplos:
Unidade sem atendimento
Parada Pedagógica
Outro
- nome: str
Origem:
dados_comuns/behaviors.pyDescrição: Nome do motivo de suspensão de alimentação.
- Exemplos:
Unidade sem atendimento
Parada Pedagógica
- suspensaoalimentacao_set: django.db.models.QuerySet[SuspensaoAlimentacao]
Relação reversa 1:N com
SuspensaoAlimentacao.Representa todas as datas de suspensão que utilizam este motivo.
- suspensaoalimentacaodacei_set: django.db.models.QuerySet[SuspensaoAlimentacaoDaCEI]
Relação reversa 1:N com
SuspensaoAlimentacaoDaCEI.Representa todas as datas de suspensão de CEI que utilizam este motivo.
- id: int
Origem:
django.db.models.ModelDescrição: Identificador interno do registro no banco de dados.
Corresponde à chave primária gerada automaticamente pelo Django.
- uuid: uuid.UUID
Origem:
dados_comuns/behaviors.pyDescrição: Identificador único do registro.
Gerado automaticamente no momento da criação, sendo utilizado como identificador externo.
- exception NotUpdated
Bases:
ObjectNotUpdated,DatabaseError
- class SuspensaoAlimentacao(*args, **kwargs)[source]
Bases:
ExportModelOperationsMixin('suspensao_alimentacao'),TemData,TemChaveExterna,CanceladoIndividualmenteTabela auxiliar de uma Solicitação de Suspensão de Alimentação.
Uma Solicitação de Suspensão de Alimentação pode ter N datas.
Cada linha da tabela armazena um par data/motivo da solicitação.
- data: datetime.date
Origem:
dados_comuns/behaviors.pyDescrição: Data da suspensão de alimentação.
Representa o dia letivo em que não haverá aula na unidade educacional.
- motivo: cardapio.MotivoSuspensao
Origem:
django.db.models.ForeignKeyDescrição: Motivo da suspensão de alimentação associado a esta data.
- Motivos disponíveis:
Unidade sem atendimento
Parada Pedagógica
- motivo_id: int
Origem:
django.db.models.ForeignKeyDescrição: Identificador do motivo de suspensão associado a esta data.
Corresponde à chave primária de
MotivoSuspensao.
- prioritario: bool
Origem:
django.db.models.BooleanFieldDescrição: Indica se esta suspensão é considerada prioritária.
Por padrão, é
False.
- outro_motivo: str
Origem:
django.db.models.CharFieldDescrição: Campo de texto livre para registrar um motivo alternativo, quando o motivo principal for “Outro”.
Pode ser uma string vazia, pois o campo permite
blank.
- get_alunos_cei_ou_emei_display()
Origem:
django.db.models.CharFieldDescrição: Relacionado ao campo
alunos_cei_ou_emei.Retorna a representação legível (label) do valor do campo
alunos_cei_ou_emei.O valor retornado corresponde ao texto definido em
CEI_OU_EMEI_CHOICES, sendo mais apropriado para exibição em interfaces (ex: telas e relatórios).- Returns:
Texto legível da opção CEI/EMEI
- Return type:
str
Opções:
"Todos","CEI"ou"EMEI".
- id: int
Origem:
django.db.models.ModelDescrição: Identificador interno do registro no banco de dados.
Corresponde à chave primária gerada automaticamente pelo Django.
- uuid: uuid.UUID
Origem:
dados_comuns/behaviors.pyDescrição: Identificador único do registro.
Gerado automaticamente no momento da criação, sendo utilizado como identificador externo.
- cancelado: bool
Origem:
dados_comuns/behaviors.pyDescrição: Indica se esta data específica de suspensão foi cancelada individualmente.
Quando
True, a solicitação principal continua existindo, mas este dia deixa de valer.
- cancelado_em: datetime.datetime | None
Origem:
dados_comuns/behaviors.pyDescrição: Data e hora em que o cancelamento individual desta data foi registrado.
Pode ser
Nonequando a data ainda não foi cancelada.
- cancelado_justificativa: str
Origem:
dados_comuns/behaviors.pyDescrição: Justificativa informada para o cancelamento individual desta data.
Permanece vazio quando não houver cancelamento ou quando nenhuma justificativa tiver sido registrada.
- cancelado_por: perfil.Usuario | None
Origem:
dados_comuns/behaviors.pyDescrição: Usuário responsável por cancelar individualmente esta data de suspensão.
Pode ser
Nonequando o cancelamento não foi realizado.
- cancelado_por_id: int | None
Origem:
django.db.models.ForeignKeyDescrição: Identificador do usuário responsável pelo cancelamento individual desta data.
Corresponde à chave primária de
perfil.Usuario. Pode serNonequando não houver usuário associado ao cancelamento.
- exception NotUpdated
Bases:
ObjectNotUpdated,DatabaseError
- class QuantidadePorPeriodoSuspensaoAlimentacao(*args, **kwargs)[source]
Bases:
ExportModelOperationsMixin('quantidade_periodo'),TemChaveExternaTabela auxiliar de uma Solicitação de Suspensão de Alimentação.
Uma Solicitação de Suspensão de Alimentação pode ter N períodos escolares.
Cada linha da tabela armazena um período escolar da UE, a quantidade de alunos sem alimentação e os tipos de alimentação que estão suspensos.
Normalmente, em uma solicitação são escolhidos todos os períodos escolares, todos os tipos de alimentação e todos os alunos matriculados, dado que, normalmente, é um dia sem aula na unidade inteira.
- O campo CEI_OU_EMEI_CHOICES é necessário apenas para solicitações de unidades educacionais com tipo de unidade escolar CEMEI/CEU CEMEI.
nele, armazenamos se a suspensão é destinada aos alunos CEI, EMEI ou ambos.
- numero_alunos: int
Origem:
django.db.models.SmallIntegerFieldDescrição: Quantidade de alunos sem alimentação neste período escolar da solicitação.
- periodo_escolar: escola.PeriodoEscolar
Origem:
django.db.models.ForeignKeyDescrição: Período escolar ao qual esta quantidade de alunos se aplica.
Exemplo: manhã, tarde, noite ou integral, conforme os períodos cadastrados para a unidade.
- periodo_escolar_id: int
Origem:
django.db.models.ForeignKeyDescrição: Identificador do período escolar ao qual esta quantidade se aplica.
Corresponde à chave primária de
escola.PeriodoEscolar.
- tipos_alimentacao: django.db.models.Manager[TipoAlimentacao]
Origem:
django.db.models.ManyToManyFieldDescrição: Conjunto de tipos de alimentação que estão suspensos neste período escolar.
Trata-se de uma relação muitos-para-muitos com
TipoAlimentacao.
- alunos_cei_ou_emei: str
Origem:
django.db.models.CharFieldDescrição: Indica a qual grupo de alunos se destina a suspensão, quando a unidade escolar for do tipo CEMEI ou CEU CEMEI.
- Opções disponíveis:
TODOS: ambos CEI e EMEICEI: apenas alunos CEIEMEI: apenas alunos EMEI
Pode ser uma string vazia, pois o campo permite
blank.
- id: int
Origem:
django.db.models.ModelDescrição: Identificador interno do registro no banco de dados.
Corresponde à chave primária gerada automaticamente pelo Django.
- uuid: uuid.UUID
Origem:
dados_comuns/behaviors.pyDescrição: Identificador único do registro.
Gerado automaticamente no momento da criação, sendo utilizado como identificador externo.
- CEI_OU_EMEI_CHOICES = [('TODOS', 'Todos'), ('CEI', 'CEI'), ('EMEI', 'EMEI')]
- exception NotUpdated
Bases:
ObjectNotUpdated,DatabaseError
- get_alunos_cei_ou_emei_display(*, field=<django.db.models.fields.CharField: alunos_cei_ou_emei>)
api
serializers
- class GrupoSupensaoAlimentacaoListagemSimplesSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa uma visão enxuta da suspensão para listagens.
Retorna apenas os campos essenciais para listagens de solicitações informadas e rascunhos, incluindo UUID, id externo, status, prioridade e escola.
- Viewsets que utilizam este serializer:
GrupoSuspensaoAlimentacaoSerializerViewSet: uso direto nas actionsinformadas.
- class Meta[source]
Bases:
object- fields = ('uuid', 'id_externo', 'status', 'prioridade', 'criado_em', 'escola')
- model
alias of
GrupoSuspensaoAlimentacao
- class GrupoSuspensaoAlimentacaoSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa a representação detalhada de uma suspensão de alimentação.
Inclui escola, quantidades por período, datas de suspensão, logs e rastro da terceirizada usados nas respostas completas da API.
- Viewsets que utilizam este serializer:
GrupoSuspensaoAlimentacaoSerializerViewSet: retornado porget_serializer_class()em todas as ações de leitura e nas actions customizadas que respondem com o objeto serializado, excetocreate,updateepartial_update.
- class Meta[source]
Bases:
object- exclude = ('id',)
- model
alias of
GrupoSuspensaoAlimentacao
- class GrupoSuspensaoAlimentacaoSimplesSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa uma visão resumida da suspensão de alimentação.
Remove campos mais pesados e relacionamentos aninhados para atender listagens que precisam de um payload menor.
- Viewsets que utilizam este serializer:
GrupoSuspensaoAlimentacaoSerializerViewSet: uso direto nas actionssolicitacoes_codaeesolicitacoes_terceirizada.
- class Meta[source]
Bases:
object- exclude = ('id', 'criado_por', 'escola')
- model
alias of
GrupoSuspensaoAlimentacao
- class MotivoSuspensaoSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa os motivos de suspensão de alimentação.
Expoe os campos públicos de
MotivoSuspensaousados para listar e embutir o motivo selecionado em respostas de solicitações.- Viewsets que utilizam este serializer:
MotivosSuspensaoCardapioViewSet: uso direto comoserializer_classnas açõeslisteretrieve.GrupoSuspensaoAlimentacaoSerializerViewSet: uso indireto, aninhado nos serializers de leitura e criação.
- class Meta[source]
Bases:
object- exclude = ('id',)
- model
alias of
MotivoSuspensao
- class QuantidadePorPeriodoSuspensaoAlimentacaoSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa a quantidade de alunos por período escolar.
Inclui o período escolar e os tipos de alimentação aninhados para representar cada item da lista
quantidades_por_periododa suspensão.- Viewsets que utilizam este serializer:
GrupoSuspensaoAlimentacaoSerializerViewSet: uso indireto, aninhado emGrupoSuspensaoAlimentacaoSerializernas respostas de leitura.
- class SuspensaoAlimentacaoDaCEISerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa a representação completa de uma suspensão de CEI.
Inclui escola, motivo, períodos escolares, logs e rastro da terceirizada usados nas respostas detalhadas da API de suspensão de alimentação CEI.
- Viewsets que utilizam este serializer:
SuspensaoAlimentacaoDaCEIViewSet: uso direto nas respostas de leitura da API de suspensão de alimentação CEI.
- class Meta[source]
Bases:
object- exclude = ('id',)
- model
alias of
SuspensaoAlimentacaoDaCEI
- class SuspensaoAlimentacaoSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa uma data de suspensão de alimentação.
Inclui o motivo aninhado para representar cada item da lista
suspensoes_alimentacaoda solicitação.- Viewsets que utilizam este serializer:
GrupoSuspensaoAlimentacaoSerializerViewSet: uso indireto, aninhado emGrupoSuspensaoAlimentacaoSerializernas respostas de leitura.
- class Meta[source]
Bases:
object- exclude = ('id', 'grupo_suspensao')
- model
alias of
SuspensaoAlimentacao
serializers_create
- class GrupoSuspensaoAlimentacaoCreateSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa a criação e atualização de suspensões de alimentação.
Resolve referências por UUID para a escola e recebe listas aninhadas de
quantidades_por_periodoesuspensoes_alimentacao. Nocreate, persiste o grupo e seus relacionamentos; noupdate, remove e recria os itens vinculados.- Viewsets que utilizam este serializer:
GrupoSuspensaoAlimentacaoSerializerViewSet: retornado porget_serializer_class()nas actionscreate,updateepartial_update.
- class Meta[source]
Bases:
object- exclude = ('id',)
- model
alias of
GrupoSuspensaoAlimentacao
- create(validated_data)[source]
Cria uma solicitação de suspensão com quantidades e datas.
- Parameters:
validated_data (dict) – Dados validados da solicitação, incluindo listas aninhadas de
quantidades_por_periodoesuspensoes_alimentacao.- Returns:
Instância criada com seus relacionamentos vinculados.
- Return type:
- update(instance, validated_data)[source]
Atualiza uma solicitação de suspensão recriando seus itens.
- Parameters:
instance (GrupoSuspensaoAlimentacao) – Instância existente a ser atualizada.
validated_data (dict) – Dados validados da requisição.
- Returns:
Instância atualizada com seus relacionamentos recriados.
- Return type:
- class QuantidadePorPeriodoSuspensaoAlimentacaoCreateSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa a criação de uma quantidade de alunos por período escolar.
Recebe referências por UUID para o período escolar e tipos de alimentação associados.
- Viewsets que utilizam este serializer:
GrupoSuspensaoAlimentacaoSerializerViewSet: uso indireto, aninhado emGrupoSuspensaoAlimentacaoCreateSerializernas actionscreate,updateepartial_update.
- class SuspensaoAlimentacaoCreateSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa a criação de uma data de suspensão de alimentação.
Recebe a referência do motivo por UUID e valida que a data não seja no passado e pertença ao ano corrente.
- Viewsets que utilizam este serializer:
GrupoSuspensaoAlimentacaoSerializerViewSet: uso indireto, aninhado emGrupoSuspensaoAlimentacaoCreateSerializernas actionscreate,updateepartial_update.
- class Meta[source]
Bases:
object- exclude = ('id',)
- model
alias of
SuspensaoAlimentacao
- validate_data(data)[source]
Valida que a data da suspensão atende às regras de negócio.
A data não pode ser no passado e deve pertencer ao ano corrente.
- Parameters:
data (datetime.date) – Data da suspensão a ser validada.
- Returns:
A mesma data, após passar pelas validações.
- Return type:
datetime.date
viewsets
- class GrupoSuspensaoAlimentacaoSerializerViewSet(**kwargs)[source]
Bases:
DataSolicitacaoContextMixin,ModelViewSetViewset para gerenciamento de solicitações de suspensão de alimentação.
Gerencia o ciclo de vida completo das solicitações de suspensão de alimentação: criação, leitura, atualização, exclusão e ações do fluxo informativo partindo da escola.
- Actions de fluxo disponíveis:
informa_suspensao: Escola informa a suspensão (RASCUNHO → INFORMADO).terceirizada_toma_ciencia: Terceirizada toma ciência (INFORMADO → TERCEIRIZADA_TOMOU_CIENCIA).escola_cancela: Escola cancela total ou parcialmente.
- destroy(request, *args, **kwargs)[source]
Remove a solicitação se o status permitir exclusão. - somente solicitações com status RASCUNHO podem ser excluídas. - permissão: Escola terceirizada.
- Parameters:
request (Request) – Objeto da requisição HTTP.
*args – Argumentos posicionais adicionais.
**kwargs – Argumentos nomeados adicionais, incluindo
uuiddo objeto.
- Returns:
Resposta vazia com status 204 em caso de sucesso, ou erro 403 quando o status não permite exclusão.
- Return type:
Response
- escola_cancela(request, uuid=None)[source]
Cancela total ou parcialmente a solicitação pela escola. - cancela totalmente quando todas as datas são canceladas. - cancela parcialmente quando apenas algumas datas são canceladas,
enviando notificação por e-mail.
permissão: Escola terceirizada.
- Parameters:
request (Request) – Objeto da requisição HTTP. Deve conter
datas(list[str]) ejustificativano body.uuid (str, optional) – UUID da instância de
GrupoSuspensaoAlimentacao. Padrão: None.
- Returns:
Dados serializados da solicitação após o cancelamento, ou erro 400 em caso de transição inválida ou solicitação já cancelada.
- Return type:
Response
- Raises:
InvalidTransitionError – Quando a transição de estado não é permitida pelo workflow.
AssertionError – Quando a solicitação já está cancelada.
- get_permissions()[source]
Retorna a lista de permissões necessárias para a ação atual.
Para a ação
list: requerIsAdminUser.Para as ações
retrieveeupdate: requer autenticação ePermissaoParaRecuperarObjeto.Para as ações
createedestroy: requerUsuarioEscolaTercTotal.
- Returns:
Lista de instâncias de classes de permissão configuradas para a ação atual.
- Return type:
list
- get_serializer_class()[source]
Retorna a classe de serializer adequada para a ação atual.
Para as ações
create,updateepartial_update: utilizaGrupoSuspensaoAlimentacaoCreateSerializer.Para as demais ações: utiliza
GrupoSuspensaoAlimentacaoSerializer.
- Returns:
Classe de serializer a ser utilizada na ação corrente.
- Return type:
type
- informa_suspensao(request, uuid=None)[source]
Informa a suspensão de alimentação, iniciando o fluxo pela escola. - sai do status RASCUNHO e passa para INFORMADO. - permissão: Escola terceirizada.
- Parameters:
request (Request) – Objeto da requisição HTTP contendo o usuário autenticado.
uuid (str, optional) – UUID da instância de
GrupoSuspensaoAlimentacao. Padrão: None.
- Returns:
Dados serializados da solicitação após a transição, ou erro 400 em caso de transição inválida.
- Return type:
Response
- Raises:
InvalidTransitionError – Quando a transição de estado não é permitida pelo workflow.
- informadas(request)[source]
Retorna as solicitações de suspensão com status INFORMADO. - permissão: qualquer usuário autenticado.
- Parameters:
request (Request) – Objeto da requisição HTTP.
- Returns:
Resposta paginada com a lista de solicitações informadas.
- Return type:
Response
- lookup_field = 'uuid'
- meus_rascunhos(request)[source]
Retorna as solicitações de suspensão em rascunho do usuário logado. - permissão: Escola terceirizada.
- Parameters:
request (Request) – Objeto da requisição HTTP contendo o usuário autenticado.
- Returns:
Resposta paginada com a lista de rascunhos do usuário.
- Return type:
Response
- permission_classes = (<class 'rest_framework.permissions.IsAuthenticated'>,)
- queryset = <QuerySet de GrupoSuspensaoAlimentacao>
- relatorio(request, uuid=None)[source]
Gera e retorna o relatório da suspensão de alimentação em PDF. - permissão: qualquer usuário autenticado com acesso à solicitação.
- Parameters:
request (Request) – Objeto da requisição HTTP.
uuid (str, optional) – UUID da instância de
GrupoSuspensaoAlimentacao. Padrão: None.
- Returns:
Resposta contendo o PDF do relatório gerado.
- Return type:
HttpResponse
- serializer_class
alias of
GrupoSuspensaoAlimentacaoSerializer
- solicitacoes_codae(request, filtro_aplicado='sem_filtro')[source]
Retorna as solicitações de suspensão para a CODAE Gestão de Alimentação. - permissão: CODAE Gestão de Alimentação.
- Parameters:
request (Request) – Objeto da requisição HTTP contendo o usuário autenticado.
filtro_aplicado (str) – Filtro de status aplicado às solicitações. Padrão:
constants.SEM_FILTRO.
- Returns:
Resposta paginada com a lista serializada das solicitações encontradas.
- Return type:
Response
- solicitacoes_terceirizada(request, filtro_aplicado='sem_filtro')[source]
Retorna as solicitações de suspensão para a empresa terceirizada. - permissão: Empresa terceirizada.
- Parameters:
request (Request) – Objeto da requisição HTTP contendo o usuário autenticado.
filtro_aplicado (str) – Filtro de status aplicado às solicitações. Padrão:
"sem_filtro".
- Returns:
Resposta paginada com a lista serializada das solicitações da terceirizada.
- Return type:
Response
- terceirizada_marca_inclusao_como_conferida(request, uuid=None)[source]
Marca a suspensão como conferida pela empresa terceirizada. - ou seja, a empresa visualizou a solicitação e está ciente. - permissão: qualquer usuário autenticado.
- Parameters:
request (Request) – Objeto da requisição HTTP contendo o usuário autenticado.
uuid (str, optional) – UUID da instância de
GrupoSuspensaoAlimentacao. Padrão: None.
- Returns:
Dados serializados da solicitação após a marcação, ou erro 400 em caso de falha.
- Return type:
Response
- terceirizada_toma_ciencia(request, uuid=None)[source]
Registra a ciência da terceirizada sobre a suspensão de alimentação. - passa do status INFORMADO para TERCEIRIZADA_TOMOU_CIENCIA. - permissão: Empresa terceirizada.
- Parameters:
request (Request) – Objeto da requisição HTTP contendo o usuário autenticado.
uuid (str, optional) – UUID da instância de
GrupoSuspensaoAlimentacao. Padrão: None.
- Returns:
Dados serializados da solicitação após a transição, ou erro 400 em caso de transição inválida.
- Return type:
Response
- Raises:
InvalidTransitionError – Quando a transição de estado não é permitida pelo workflow.
- tomados_ciencia(request)[source]
Retorna as solicitações de suspensão com status TERCEIRIZADA_TOMOU_CIENCIA. - permissão: qualquer usuário autenticado.
- Parameters:
request (Request) – Objeto da requisição HTTP.
- Returns:
Resposta paginada com a lista de solicitações das quais a terceirizada tomou ciência.
- Return type:
Response
- valida_datas(obj, datas)[source]
Valida cada data para verificar se pode ser cancelada.
- Parameters:
obj (GrupoSuspensaoAlimentacao) – Instância da solicitação a ser validada.
datas (list[str]) – Lista de datas no formato
"%Y-%m-%d"a serem verificadas.
- Raises:
InvalidTransitionError – Quando alguma data não permite cancelamento conforme a regra de negócio.
- class MotivosSuspensaoCardapioViewSet(**kwargs)[source]
Bases:
ReadOnlyModelViewSetViewset para listagem dos motivos de suspensão de alimentação.
Fornece acesso somente-leitura aos motivos cadastrados, utilizados como opções na criação de solicitações de suspensão.
- Actions disponíveis:
list: Lista todos os motivos de suspensão.retrieve: Retorna um motivo específico por UUID.
- lookup_field = 'uuid'
- queryset = <QuerySet de MotivoSuspensao>
- serializer_class
alias of
MotivoSuspensaoSerializer
fixtures
fixtures/factories
Factories para os modelos de Suspensão de Alimentação.
Utiliza factory_boy para criação de instâncias de teste dos modelos
relacionados à suspensão de alimentação escolar.
- class GrupoSuspensaoAlimentacaoFactory(**kwargs)[source]
Bases:
DjangoModelFactoryFactory para o modelo
GrupoSuspensaoAlimentacao.Cria a escola solicitante e os campos de rastreio (escola, lote, DRE e terceirizada) via subfactories.
- escola = SubFactory(EscolaFactory)
- rastro_dre = SubFactory(DiretoriaRegionalFactory)
- rastro_escola = SubFactory(EscolaFactory)
- rastro_lote = SubFactory(LoteFactory)
- rastro_terceirizada = SubFactory(EmpresaFactory)
- class MotivoSuspensaoFactory(**kwargs)[source]
Bases:
DjangoModelFactoryFactory para o modelo
MotivoSuspensao.Gera instâncias com nome único usando sequência + Faker.
- nome = <factory.declarations.Sequence object>
- class QuantidadePorPeriodoSuspensaoAlimentacaoFactory(**kwargs)[source]
Bases:
DjangoModelFactoryFactory para o modelo
QuantidadePorPeriodoSuspensaoAlimentacao.Cria a instância com um grupo de suspensão, um período escolar e um número aleatório de alunos via subfactories. Suporta adição de tipos de alimentação via parâmetro
tipos_alimentacao.- grupo_suspensao = SubFactory(GrupoSuspensaoAlimentacaoFactory)
- numero_alunos = <factory.declarations.Sequence object>
- periodo_escolar = SubFactory(PeriodoEscolarFactory)
- tipos_alimentacao = <factory.declarations.PostGeneration object>
- class SuspensaoAlimentacaoFactory(**kwargs)[source]
Bases:
DjangoModelFactoryFactory para o modelo
SuspensaoAlimentacao.Associa automaticamente um
GrupoSuspensaoAlimentacaoe umMotivoSuspensaovia subfactories.- grupo_suspensao = SubFactory(GrupoSuspensaoAlimentacaoFactory)
- motivo = SubFactory(MotivoSuspensaoFactory)
managers
Managers customizados para o modelo GrupoSuspensaoAlimentacao.
Cada manager aplica um filtro diferente sobre o queryset padrão, segmentando as suspensões de alimentação por janela temporal.
- class GrupoSuspensaoAlimentacaoDestaSemanaManager(*args, **kwargs)[source]
Bases:
ManagerManager que retorna suspensões de alimentação nos próximos 7 dias.