def adiciona_documento(request, organizacao_id): """Cria um anotação para uma organização parceira.""" organizacao = get_object_or_404(Organizacao, id=organizacao_id) if request.method == 'POST': documento = Documento.create() documento.organizacao = organizacao projeto_id = request.POST.get("projeto", "") if projeto_id: documento.projeto = Projeto.objects.get(id=projeto_id) if 'data' in request.POST: try: documento.data = dateutil.parser\ .parse(request.POST['data']) except (ValueError, OverflowError): documento.data = datetime.date.today() try: tipo_de_documento = request.POST.get("tipo_de_documento", "") documento.tipo_de_documento = tipo_de_documento except (ValueError, OverflowError): documento.tipo_de_documento = 255 link = request.POST.get("link", "") if link: if link[:4] != "http": link = "http://" + link documento.link = link documento.confidencial = True documento.save() if 'arquivo' in request.FILES: arquivo = simple_upload(request.FILES['arquivo'], path=get_upload_path(documento, "")) documento.documento = arquivo[len(settings.MEDIA_URL):] documento.save() # return HttpResponse(status=204) return redirect('organizacao_completo', org=organizacao.id) documento = None projetos = Projeto.objects.filter(organizacao=organizacao) context = { 'organizacao': organizacao, 'TIPO_DE_DOCUMENTO': Documento.TIPO_DE_DOCUMENTO, 'data': datetime.date.today(), 'documento': documento, "projetos": projetos, } return render(request, 'organizacoes/documento_view.html', context=context)
def atualiza_certificado(usuario, projeto, tipo_cert, arquivo, banca=None): """Atualiza os certificados.""" (certificado, _created) = \ Certificado.objects.get_or_create(usuario=usuario, projeto=projeto, tipo_de_certificado=tipo_cert) context = { 'projeto': projeto, } if projeto and not certificado.documento: if tipo_cert == 101: tipo = "_orientacao" elif tipo_cert == 102: context['usuario'] = usuario tipo = "_coorientacao" elif tipo_cert == 103: context['usuario'] = usuario context['banca'] = banca tipo = "_banca_intermediaria" elif tipo_cert == 104: context['usuario'] = usuario context['banca'] = banca tipo = "_banca_final" elif tipo_cert == 105: context['usuario'] = usuario context['banca'] = banca tipo = "_banca_falconi" elif tipo_cert == 106: context['usuario'] = usuario context['dinamica'] = banca tipo = "_mentoria_falconi" elif tipo_cert == 107: context['usuario'] = usuario context['count_projetos'] = banca tipo = "_mentoria_tecnica" else: tipo = "" path = get_upload_path(certificado, "") full_path = settings.MEDIA_ROOT + "/" + path os.makedirs(full_path, mode=0o777, exist_ok=True) filename = full_path + "certificado" + tipo + ".pdf" pdf = render_pdf_file(arquivo, context, filename) if (not pdf) or pdf.err: return HttpResponse("Erro ao gerar certificados.", status=401) certificado.documento = path + "certificado" + tipo + ".pdf" certificado.save() return certificado return None
def cadastrar_organizacao(request): """Cadastra Organização na base de dados do PFE.""" if request.method == 'POST': if 'nome' in request.POST and 'sigla' in request.POST: organizacao = Organizacao.create() nome = request.POST.get('nome', None) if nome: organizacao.nome = nome.strip() sigla = request.POST.get('sigla', None) if sigla: organizacao.sigla = sigla.strip() organizacao.endereco = request.POST.get('endereco', None) website = request.POST.get('website', None) if website: if website[:4] == "http": organizacao.website = website.strip() else: organizacao.website = "http://" + website.strip() organizacao.informacoes = request.POST.get('informacoes', None) cnpj = request.POST.get('cnpj', None) if cnpj: organizacao.cnpj = cnpj[:2] + cnpj[3:6] + cnpj[7:10] + cnpj[ 11:15] + cnpj[16:18] organizacao.inscricao_estadual = request.POST.get( 'inscricao_estadual', None) organizacao.razao_social = request.POST.get('razao_social', None) organizacao.ramo_atividade = request.POST.get( 'ramo_atividade', None) if 'logo' in request.FILES: logotipo = simple_upload(request.FILES['logo'], path=get_upload_path(organizacao, "")) organizacao.logotipo = logotipo[len(settings.MEDIA_URL):] organizacao.save() context = { "voltar": True, "cadastrar_organizacao": True, "organizacoes_lista": True, "area_principal": True, "mensagem": "Organização inserida na base de dados.", } else: context = { "voltar": True, "area_principal": True, "mensagem": "<h3 style='color:red'>Falha na inserção na base da dados.<h3>", } return render(request, 'generic.html', context=context) return render(request, 'administracao/cadastra_organizacao.html')
def carregar_certificado(request): """Carrega certificado na base de dados do PFE.""" if request.method == 'POST': if 'usuario' in request.POST and 'tipo' in request.POST and "documento" in request.FILES: certificado = Certificado.create() usuario_id = request.POST.get('usuario', None) if usuario_id: usuario = get_object_or_404(PFEUser, id=usuario_id) certificado.usuario = usuario projeto_id = request.POST.get('projeto', None) if projeto_id: projeto = get_object_or_404(Projeto, id=projeto_id) certificado.projeto = projeto if 'data' in request.POST: try: certificado.data = dateutil.parser\ .parse(request.POST['data']) except (ValueError, OverflowError): certificado.data = datetime.date.today() tipo = request.POST.get('tipo', None) if tipo: certificado.tipo_de_certificado = int(tipo) certificado.observacao = request.POST.get('observacao', None) certificado.save() if 'documento' in request.FILES: documento = simple_upload(request.FILES['documento'], path=get_upload_path( certificado, "")) certificado.documento = documento[len(settings.MEDIA_URL):] certificado.save() context = { "voltar": True, "area_principal": True, "mensagem": "Certificado inserido na base de dados.", } else: context = { "voltar": True, "area_principal": True, "mensagem": "<h3 style='color:red'>Falha na inserção na base da dados.<h3>", } return render(request, 'generic.html', context=context) projetos = Projeto.objects.all() usuarios = PFEUser.objects.all() context = { "TIPO_DE_CERTIFICADO": Certificado.TIPO_DE_CERTIFICADO, "projetos": projetos, "usuarios": usuarios, } return render(request, 'operacional/carregar_certificado.html', context)
def carrega_proposta(request): """Página para carregar Proposta de Projetos em PDF.""" try: user = PFEUser.objects.get(pk=request.user.pk) except PFEUser.DoesNotExist: user = None configuracao = get_object_or_404(Configuracao) ano, semestre = adianta_semestre(configuracao.ano, configuracao.semestre) full_name = "" email_sub = "" if user: if user.tipo_de_usuario == 1: # alunos mensagem = "Você não está cadastrado como parceiro!" context = { "area_principal": True, "mensagem": mensagem, } return render(request, 'generic.html', context=context) full_name = user.get_full_name() email_sub = user.email if request.method == 'POST': if 'arquivo' in request.FILES: arquivo = simple_upload(request.FILES['arquivo'], path=get_upload_path(None, "")) fields = get_form_fields(arquivo[1:]) mensagem = "" fields["nome"] = request.POST.get("nome", "").strip() fields["email"] = request.POST.get("email", "").strip() proposta = preenche_proposta_pdf(fields, None) enviar = "mensagem" in request.POST # Por e-mail se enviar mensagem = envia_proposta(proposta, enviar) resposta = "Submissão de proposta de projeto realizada " resposta += "com sucesso.<br>" if enviar: resposta += "Você deve receber um e-mail de confirmação " resposta += "nos próximos instantes.<br>" else: mensagem = "Arquivo não identificado" resposta = mensagem context = { "voltar": True, "mensagem": resposta, } return render(request, 'generic.html', context=context) context = { 'full_name': full_name, 'email': email_sub, 'ano_semestre': str(ano) + "." + str(semestre), } return render(request, 'organizacoes/carrega_proposta.html', context)