suspensao_alimentacao_cei
admin
- class SuspensaoAlimentacaoDaCEIModelAdmin(model, admin_site)[source]
Bases:
ModelAdminAdmin do Django para solicitações de suspensão de alimentação de CEI.
Configura a listagem administrativa de
SuspensaoAlimentacaoDaCEI, exibindo informações da escola, data, status, motivo e períodos escolares. Habilita busca textual por nome e código EOL da escola, filtros por lote, DRE, intervalo de data e motivo.- get_periodos_escolares(obj)[source]
Retorna os períodos escolares vinculados à suspensão.
- Parameters:
obj (SuspensaoAlimentacaoDaCEI) – Solicitação exibida na linha atual.
- Returns:
- Nomes dos períodos escolares separados por vírgula, ou
"-"quando nenhum.
- Return type:
str
- list_display = ('escola__codigo_eol', 'escola__nome', 'data', 'status', 'motivo__nome', 'get_periodos_escolares')
- list_filter = (('data', <class 'rangefilter.filters.DateRangeFilter'>), 'escola__lote', 'status')
- property media
- readonly_fields = ('escola',)
- search_fields = ('uuid', 'escola__nome', 'escola__codigo_eol')
- search_help_text = 'Pesquisar por: UUID, nome da escola, código EOL da escola'
models
- class SuspensaoAlimentacaoDaCEI(*args, **kwargs)[source]
Bases:
ExportModelOperationsMixin('suspensao_alimentacao_de_cei'),TemData,TemChaveExterna,CriadoPor,TemIdentificadorExternoAmigavel,CriadoEm,FluxoInformativoPartindoDaEscola,Logs,TemObservacao,TemPrioridade,TemTerceirizadaConferiuGestaoAlimentacaoSolicitação de Suspensão de Alimentação de CEI.
Objetivo: informar à empresa que atende a unidade educacional do tipo CEI que um dia previamente letivo não haverá aula por força maior.
Diferentemente da suspensão padrão, esta solicitação é específica para unidades de CEI e utiliza um relacionamento M2M com períodos escolares em vez de uma tabela auxiliar de quantidades por período.
- 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).
- data: datetime.date
Origem:
dados_comuns/behaviors.pyDescrição: Data da suspensão de alimentação de CEI.
Representa o dia letivo em que não haverá aula na unidade educacional de CEI.
- escola: escola.Escola
Origem:
django.db.models.ForeignKeyDescrição: Escola de CEI que efetuou a solicitação de suspensão de alimentação.
- escola_id: int
Origem:
django.db.models.ForeignKeyDescrição: Identificador da escola de CEI que efetuou a solicitação de suspensão de alimentação.
Corresponde à chave primária de
escola.Escola.
- id: int
Origem:
django.db.models.ModelDescrição: Identificador interno do registro no banco de dados.
Corresponde à chave primária gerada automaticamente pelo Django.
- motivo: cardapio.MotivoSuspensao
Origem:
django.db.models.ForeignKeyDescrição: Motivo associado à solicitação de suspensão de alimentação de CEI.
- Motivos disponíveis:
Unidade sem atendimento
Parada Pedagógica
- motivo_id: int
Origem:
django.db.models.ForeignKeyDescrição: Identificador do motivo associado à solicitação de suspensão de alimentação de CEI.
Corresponde à chave primária de
MotivoSuspensao.
- 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.
- 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.
- periodos_escolares: django.db.models.Manager[escola.PeriodoEscolar]
Origem:
django.db.models.ManyToManyFieldDescrição: Períodos escolares associados à solicitação de suspensão de alimentação de CEI.
Exemplo: manhã, tarde, noite ou integral, conforme os períodos cadastrados para a unidade.
Trata-se de uma relação muitos-para-muitos com
escola.PeriodoEscolar. Pode ser uma lista vazia, pois o campo permiteblank.
- 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.
- 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:
INFORMADOretorna"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
- 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 (
- classmethod get_informados()[source]
Retorna as solicitações de suspensão de CEI 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 de CEI 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
- 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 associado à solicitação.
Neste tipo de solicitação não há consolidação de quantidade de alunos, por isso o valor retornado é sempre vazio.
Necessário para integração com o paineis_consolidados, que agrupa todos os tipos de solicitação.
- Returns:
String vazia.
- Return type:
str
- 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 de CEI.
- Return type:
str
- salvar_log_transicao(status_evento, usuario, justificativa='')[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 de CEI.- 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.
justificativa (str, optional) – Texto justificando a transição. Padrã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
api
serializers
- 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: 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
SuspensaoAlimentacaoDaCEI
serializers_create
- class SuspensaoAlimentacaodeCEICreateSerializer(*args, **kwargs)[source]
Bases:
ModelSerializerSerializa a criação e atualização de suspensões de alimentação de CEI.
Resolve referências por UUID para a escola, motivo e períodos escolares. Valida datas e regras de negócio e persiste os relacionamentos M2M de períodos escolares.
- Viewsets que utilizam este serializer:
SuspensaoAlimentacaoDaCEIViewSet: retornado porget_serializer_class()nas actionscreate,updateepartial_update.
- class Meta[source]
Bases:
object- exclude = ('id', 'status', 'criado_por')
- model
alias of
SuspensaoAlimentacaoDaCEI
- create(validated_data)[source]
Cria uma solicitação de suspensão de CEI com os períodos escolares.
- Parameters:
validated_data (dict) – Dados validados da solicitação, incluindo a lista
periodos_escolares.- Returns:
Instância criada com os períodos escolares vinculados.
- Return type:
- update(instance, validated_data)[source]
Atualiza uma solicitação de suspensão de CEI recriando seus períodos.
Remove os períodos escolares existentes e define os novos a partir dos dados validados.
- Parameters:
instance (SuspensaoAlimentacaoDaCEI) – Instância existente a ser atualizada.
validated_data (dict) – Dados validados da requisição.
- Returns:
Instância atualizada com os novos períodos escolares.
- Return type:
- validate(attrs)[source]
Valida as regras de negócio para a data da solicitação CEI.
A data não pode ser no passado, deve pedir com antecedência e deve pertencer ao ano corrente.
- Parameters:
attrs (dict) – Atributos validados contendo a chave
data.- Returns:
Atributos validados após a aplicação das regras de negócio.
- Return type:
dict
viewsets
- class SuspensaoAlimentacaoDaCEIViewSet(**kwargs)[source]
Bases:
DataSolicitacaoContextMixin,ModelViewSetViewSet para gerenciamento de solicitações de suspensão de CEI.
Gerencia o ciclo de vida completo das solicitações de suspensão de alimentação de CEI: 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).cancela_suspensao_cei: Escola cancela a suspensão (INFORMADO/TERCEIRIZADA_TOMOU_CIENCIA → ESCOLA_CANCELOU).
- cancela_suspensao_cei(request, uuid=None)[source]
Cancela a suspensão de CEI pela escola.
Passa do status INFORMADO ou TERCEIRIZADA_TOMOU_CIENCIA para ESCOLA_CANCELOU.
permissão: Escola terceirizada.
- Parameters:
request (Request) – Objeto da requisição HTTP. Deve conter
justificativano body.uuid (str, optional) – UUID da instância de
SuspensaoAlimentacaoDaCEI. Padrão: None.
- Returns:
Dados serializados da solicitação após o cancelamento, 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.
- 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
- 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: utilizaSuspensaoAlimentacaodeCEICreateSerializer.Para as demais ações: utiliza
SuspensaoAlimentacaoDaCEISerializer.
- 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 CEI, 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
SuspensaoAlimentacaoDaCEI. 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 suspensões de CEI com status INFORMADO. - permissão: qualquer usuário autenticado.
Os resultados são ordenados por ID decrescente.
- Parameters:
request (Request) – Objeto da requisição HTTP.
- Returns:
Lista serializada das suspensões de CEI informadas.
- Return type:
Response
- lookup_field = 'uuid'
- meus_rascunhos(request)[source]
Retorna as suspensões de CEI em rascunho do usuário logado. - permissão: Escola terceirizada.
Os resultados são paginados.
- 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 SuspensaoAlimentacaoDaCEI>
- relatorio(request, uuid=None)[source]
Gera e retorna o relatório da suspensão de CEI 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
SuspensaoAlimentacaoDaCEI. Padrão: None.
- Returns:
Resposta contendo o PDF do relatório gerado.
- Return type:
HttpResponse
- serializer_class
alias of
SuspensaoAlimentacaoDaCEISerializer
- terceirizada_marca_inclusao_como_conferida(request, uuid=None)[source]
Marca a suspensão de CEI 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
SuspensaoAlimentacaoDaCEI. Padrão: None.
- Returns:
Dados serializados da solicitação após a marcação, ou erro 400 em caso de falha.
- Return type:
Response
fixtures
fixtures/factories
Factories para o modelo de Suspensão de Alimentação de CEI.
Utiliza factory_boy para criação de instâncias de teste do modelo
de suspensão de alimentação escolar de CEI.
- class SuspensaoAlimentacaoDaCEIFactory(**kwargs)[source]
Bases:
DjangoModelFactoryFactory para o modelo
SuspensaoAlimentacaoDaCEI.Cria uma solicitação de suspensão de alimentação de CEI com escola, motivo, data e campos de rastreio via subfactories. Suporta adição de períodos escolares via parâmetro
periodos_escolaresno pós-create.- criado_por = SubFactory(UsuarioFactory)
- data = <factory.faker.Faker object>
- escola = SubFactory(EscolaFactory)
- motivo = SubFactory(MotivoSuspensaoFactory)
- periodos_escolares = <factory.declarations.PostGeneration object>
- rastro_dre = SubFactory(DiretoriaRegionalFactory)
- rastro_escola = SubFactory(EscolaFactory)
- rastro_lote = SubFactory(LoteFactory)
- rastro_terceirizada = SubFactory(EmpresaFactory)