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')
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')
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')
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')
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')
def wrapper(request, **kwargs): if not is_admin(request)['is_admin']: return render(request, 'error.html') return func(request, **kwargs)