Exemplo n.º 1
0
def plano_new(request):
    admin = is_admin(request)['is_admin']
    if request.method == "POST" and admin:
        form = PlanoForm(request.POST)
        if form.is_valid():
            plano = form.save()
            for orgao in Orgao.objects.all(
            ):  #Cria uma necessidade orgão em todos os órgãos
                Necessidade_Orgao.objects.create(cod_orgao=orgao,
                                                 cod_plano_capacitacao=plano,
                                                 estado=False)
            return redirect('plano')
        else:
            return render(request, 'plano_edit.html', {'form': form})
    elif admin:
        form = PlanoForm()
        return render(request, 'plano_edit.html', {'form': form})
    else:
        return redirect('error')
Exemplo n.º 2
0
def usuarios(request):
    if hasattr(request.user, 'profile') and is_admin(request)['is_admin']:
        try:
            orgao_escolhido = int(request.POST['orgao'])
            profiles = Profile.objects.filter(orgaos__pk=orgao_escolhido)
        except Exception as e:
            orgao_escolhido = ''
            profiles = Profile.objects.all()

        users = User.objects.all()
        orgaos = Orgao.objects.all()
        return render(
            request, 'usuarios.html', {
                'users': users,
                'profiles': profiles,
                'orgaos': orgaos,
                'orgao_escolhido': orgao_escolhido
            })
    else:
        return render(request, 'error.html')
Exemplo n.º 3
0
def plano_edit(request, id):
    admin = is_admin(request)['is_admin']
    plano = get_object_or_404(Plano_Capacitacao, pk=id)
    if request.method == "POST" and admin:
        form = PlanoForm(request.POST, instance=plano)
        if form.is_valid():
            plano = form.save()
            if plano.plano_habilitado:
                Plano_Capacitacao.objects.filter(
                    plano_habilitado=True).exclude(
                        cod_plano_capacitacao=plano.cod_plano_capacitacao
                    ).update(plano_habilitado=False)
                # plano.plano_habilitado=True
                # plano.save()
            return redirect("plano")
    elif admin:
        form = PlanoForm(instance=plano)
        return render(request, 'plano_edit.html', {'form': form})
    else:
        return redirect('error')
Exemplo n.º 4
0
def relatorio(request):
    plano_habilitado = Plano_Capacitacao.objects.filter(plano_habilitado=True)
    orgao_id = Profile.objects.get(user=request.user).orgao_ativo_id
    orgaos = Orgao.objects.filter(cod_superior=None)
    necessidades = Necessidade.objects.none()
    for orgao in orgaos:
        try:
            necessidade_orgao = Necessidade_Orgao.objects.get(
                cod_orgao=orgao,
                cod_plano_capacitacao=plano_habilitado[0],
                estado=True)
            necessidades = necessidades | Necessidade.objects.all().filter(
                ind_excluido=False,
                cod_necessidade_orgao=necessidade_orgao,
                aprovado=True)
        except Exception as e:
            print(e)

    if not necessidades:
        return render(request, 'tabelaErro.html')
    elif is_admin(request)['is_admin']:
        # Create a workbook and add a worksheet.
        workbook = xlsxwriter.Workbook('Necessidades.xlsx')
        worksheet = workbook.add_worksheet()

        worksheet.set_column(0, 35, 30)
        worksheet.set_column(4, 6, 40)

        bold = workbook.add_format({'bold': True, 'center_across': True})
        center = workbook.add_format({'center_across': True})

        row = 0
        col = 0

        worksheet.write(row, col, "PCASF", bold)
        worksheet.write(row, col + 1, "Órgão", bold)
        worksheet.write(row, col + 2, "Área de Conhecimento", bold)
        worksheet.write(row, col + 3, "Objeto de Capacitação", bold)
        worksheet.write(row, col + 4, "Modalidade", bold)
        worksheet.write(row, col + 5, "Nível", bold)
        worksheet.write(row, col + 6, "Carga Horária", bold)
        worksheet.write(row, col + 7, "Tipo de Treinamento", bold)
        worksheet.write(row, col + 8, "Prioridade", bold)
        worksheet.write(row, col + 9, "Quantidade de Servidores", bold)
        worksheet.write(row, col + 10, "Objetivo", bold)
        worksheet.write(row, col + 11, "Justificativa", bold)
        worksheet.write(row, col + 12, "Ementa", bold)
        worksheet.write(row, col + 13, "Treinamento Externo", bold)
        worksheet.write(row, col + 14, "Valor Estimado Unitário", bold)

        row += 1

        for necessidade in necessidades:

            print(necessidade.cod_treinamento)

            if (necessidade.cod_treinamento.cod_treinamento == -1):
                treinamento = necessidade.txt_descricao
            else:
                treinamento = Treinamento.objects.get(
                    cod_treinamento=necessidade.cod_treinamento.cod_treinamento
                ).nome

            worksheet.write(
                row, col, necessidade.cod_necessidade_orgao.
                cod_plano_capacitacao.ano_plano_capacitacao, center)
            worksheet.write(row, col + 1,
                            necessidade.cod_necessidade_orgao.cod_orgao.nome,
                            center)
            worksheet.write(row, col + 2,
                            necessidade.cod_area_conhecimento.txt_descricao,
                            center)
            worksheet.write(row, col + 3, treinamento, center)
            worksheet.write(row, col + 4, necessidade.cod_modalidade.nome,
                            center)
            worksheet.write(
                row, col + 5,
                Nivel.objects.get(
                    cod_nivel=necessidade.cod_nivel.cod_nivel).nome, center)
            worksheet.write(
                row, col + 6,
                (necessidade.hor_duracao if necessidade.hor_duracao else ' '),
                center)
            worksheet.write(row, col + 7,
                            necessidade.cod_tipo_treinamento.nome, center)
            worksheet.write(
                row, col + 8,
                Prioridade.objects.get(cod_prioridade=necessidade.
                                       cod_prioridade.cod_prioridade).nome,
                center)
            worksheet.write(row, col + 9, necessidade.qtd_servidor, center)
            worksheet.write(
                row, col + 10,
                Objetivo_Treinamento.objects.get(
                    cod_objetivo_treinamento=necessidade.
                    cod_objetivo_treinamento.cod_objetivo_treinamento).nome,
                center)
            worksheet.write(row, col + 11, necessidade.justificativa, center)
            worksheet.write(row, col + 12, necessidade.ementa, center)
            if necessidade.treinamento_externo == False:
                worksheet.write(row, col + 13, "Não", center)
                worksheet.write(row, col + 14, "Não se aplica", center)
            else:
                worksheet.write(row, col + 13, "Sim", center)
                worksheet.write(row, col + 14, necessidade.valor_estimado,
                                center)

        #    if (necessidade['aprovado'] == 0):
        #        worksheet.write(row, col + 8, 'Sim', center)
        #    else:
        #        worksheet.write(row, col + 8, 'Não', center)

            row += 1

        worksheet.set_default_row(20)

        workbook.close()

        fh = open("Necessidades.xlsx", 'rb')

        response = HttpResponse(
            fh, content_type='application/pdf'
        )  # mimetype is replaced by content_type for django 1.7
        response[
            'Content-Disposition'] = 'attachment; filename=%s' % "Necessidades.XLSX"

        return response
    else:
        return render(request, 'error.html')
Exemplo n.º 5
0
def admin_disapprove(request, pk):
    if is_admin(request)['is_admin']:
        Profile.objects.filter(pk=pk).update(is_admin=False)
        return redirect(request.META['HTTP_REFERER'])
    else:
        return render(request, 'error.html')
Exemplo n.º 6
0
 def wrapper(request, **kwargs):
     if not is_admin(request)['is_admin']:
         return render(request, 'error.html')
     return func(request, **kwargs)