Source code for src.dieta_especial.management.commands.dieta_especial_autorizar

from django.core.management.base import BaseCommand
from faker import Faker

from src.dieta_especial.protocolo_padrao.models import (
    Alimento,
    SubstituicaoAlimento,
)
from src.dieta_especial.solicitacao_dieta_especial.models import (
    AlergiaIntolerancia,
    ClassificacaoDieta,
    SolicitacaoDietaEspecial,
)
from src.perfil.models import Usuario

faker = Faker()
fake = Faker("pt-br")


[docs] def autorizar_dieta(dieta_uuid): usuario = Usuario.objects.get(email="nutricodae@admin.com") alergias_intolerancias = AlergiaIntolerancia.objects.first() classificacao = ClassificacaoDieta.objects.first() dieta = SolicitacaoDietaEspecial.objects.get(uuid__startswith=dieta_uuid) dieta.ativo = True dieta.codae_autoriza(user=usuario) dieta.nome_protocolo = alergias_intolerancias.descricao dieta.classificacao = classificacao dieta.informacoes_adicionais = f"<p>{fake.paragraph(nb_sentences=10)}</p>" dieta.registro_funcional_nutricionista = ( f"Elaborado por {usuario.nome} - CRN {usuario.crn_numero}" ) dieta.alergias_intolerancias.add(alergias_intolerancias) dieta.save() # SubstituicaoAlimento alimento = Alimento.objects.first() # Escolhe os 3 primeiros alimentos (diferentes do alimento escolhido acima). alimentos_substitutos = Alimento.objects.exclude(pk=alimento.pk)[:3] substituicao_alimento = SubstituicaoAlimento.objects.create( solicitacao_dieta_especial=dieta, alimento=alimento, tipo="S", # substitutos=, ) for i in alimentos_substitutos: substituicao_alimento.alimentos_substitutos.add(i) substituicao_alimento.save() return dieta
[docs] class Command(BaseCommand): help = """ Autoriza uma Dieta Especial, informando o uuid da Dieta. """
[docs] def add_arguments(self, parser): parser.add_argument( "--uuid", "-u", dest="uuid", help="Informar uuid (5 primeiros dígitos) da dieta.", )
[docs] def handle(self, *args, **options): uuid = options["uuid"] dieta = autorizar_dieta(uuid) self.stdout.write(f"Dieta Autorizada: {dieta}")