Пример #1
0
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)
Пример #2
0
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
Пример #3
0
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')
Пример #4
0
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)
Пример #5
0
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)