def status_torna_padrao_autorizado(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') salvar_novo_padrao_autorizado(request, id) return redirect('administrador_extra')
def status(request): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': try: nome_status = request.POST.get('nome_status') status = request.POST.get('status') if len(nome_status) == 0 or len(status) == 0: messages.add_message(request, messages.INFO, 'Erro no cadastro, dados inválidos para cadastro') elif len(Status.objects.filter(nome=nome_status)) > 0: messages.add_message(request, messages.INFO, 'Erro no cadastro, status já cadastrado') else: analise = False autorizado = False if status == 'analise': salvar_novo_padrao_analise(request) analise = True elif status == 'autorizado': salvar_novo_padrao_autorizado(request) autorizado = True Status.objects.create(nome=nome_status, analise=analise, autorizado=autorizado) messages.add_message(request, messages.INFO, 'Status cadastrado com sucesso.') except Exception: messages.add_message(request, messages.INFO, 'Erro no cadastro, verifique se todos os campos estão preenchidos corretamente.') return redirect('administrador_extra') return redirect('administrador_extra')
def get(self, request): func = FuncionalidadesCore() if not func.administardor(request): return redirect('solicitacoes') func = Utilidades() dados = seleciona_dados(request) setor = request.user.perfil.setor dados['colaboradores_do_setor'] = setor.perfis_do_setor.all() dados['dados_grafico'] = self.formata_dados_do_grafico(request) # Sistema de paginação paginacao = Paginator( func.seleciona_todas_movimentacoes( perfis=request.user.perfil.setor.perfis_do_setor.all(), entrada=False), 5) page = request.GET.get('pagina') dados['username'] = id try: dados['solciitacoes_pendentes'] = paginacao.get_page(page) except Exception: dados['solciitacoes_pendentes'] = paginacao.page(1) if page is not None: messages.add_message(request, messages.INFO, 'A página {} não existe'.format(page)) return render(request, self.template_name, dados)
def setor(request): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': try: nome_setor = request.POST.get('nome_setor') if len(nome_setor) == 0: messages.add_message(request, messages.INFO, 'Erro no cadastro, nome inválido.') elif len(Setor.objects.filter(nome=nome_setor)) > 0: messages.add_message(request, messages.INFO, 'Erro no cadastro, setor já cadastrado.') else: Setor.objects.create(nome=nome_setor) messages.add_message(request, messages.INFO, 'Setor cadastrado com sucesso.') return redirect('setor') except Exception: messages.add_message( request, messages.INFO, 'Erro no cadastro do setor, contate o administrador do sistema.' ) return redirect('setor') else: dados = seleciona_dados(request) dados['setores'] = Setor.objects.all() dados['colaboradores'] = Perfil.objects.all() return render(request, 'core/super/super-setor.html', dados)
def forma_de_pagamento_delete(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') pagamento = FormaDePagamento.objects.get(id=id) pagamento.delete() return redirect('administrador_extra')
def administrador_mostra_setor(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') tamplate_name = 'core/super/mostra-setor.html' dados = seleciona_dados(request) dados['setor'] = Setor.objects.get(id=id) return render(request, tamplate_name, dados)
def administrador_extra(request): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') tamplate_name = 'core/super/super-dados-extras.html' dados = seleciona_dados(request) dados['formasdepagamentos'] = FormaDePagamento.objects.all() dados['configuracoes'] = Hash.objects.all() return render(request, tamplate_name, dados)
def dashboard(request): func = FuncionalidadesCore() if not func.administardor(request): return redirect('solicitacoes') tamplate_name = 'core/dashboard/dashboard.html' setor = request.user.perfil.setor dados = seleciona_dados(request) dados['colaboradores_do_setor'] = setor.perfis_do_setor.all() dados['dados_grafico'] = formata_dados_do_grafico(request) return render(request, tamplate_name, dados)
def usuario_gerente(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') perfil = Perfil.objects.get(id=id) if perfil.gerente: perfil.gerente = False else: perfil.gerente = True perfil.save() return redirect('usuario_atualiza', id=perfil.usuario.username)
def usuario_ativo(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') user = User.objects.get(id=id) if user.is_active: user.is_active = False else: user.is_active = True user.save() return redirect('usuario_atualiza', id=user.username)
def atualiza_usuario(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': try: nome = request.POST.get('nome') matricula = request.POST.get('matricula') id_setor = request.POST.get('setor') email = request.POST.get('email') senha = request.POST.get('senha') ch_primeira = request.POST.get('ch_primeira') ch_segunda = request.POST.get('ch_segunda') if len(nome) == 0 or len(matricula) == 0 or len( id_setor) == 0 or len(email) == 0 or len( ch_primeira) == 0 or len(ch_segunda) == 0: messages.add_message( request, messages.INFO, 'Erro na atualização dos dados, com exceção do campo senha, todos os campos devem' + 'ser preenchidos corretamente') return redirect('setor') setor = Setor.objects.get(id=id_setor) user = User.objects.get(username=id) user.username = matricula user.email = email perfil = user.perfil perfil.nome = nome perfil.setor = setor perfil.ch_primeira = ch_primeira perfil.ch_segunda = ch_segunda if senha != '': user.set_password(senha) perfil.save() user.save() return redirect('usuario_atualiza', id=matricula) except: messages.add_message( request, messages.INFO, 'Erro na atualização dos dados, verifique se ' + 'todos os campos estão preenchidos corretamente') return redirect('setor') else: dados = seleciona_dados(request) dados['colaborador'] = User.objects.get(username=id) dados['setores'] = Setor.objects.all() return render(request, 'core/super/mostra-usuario.html', dados)
def forma_de_pagamento(request): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': forma_de_pagamento = request.POST.get('forma_de_pagamento') pagamentos = FormaDePagamento.objects.filter(nome=forma_de_pagamento) if len(pagamentos) > 0: messages.add_message(request, messages.INFO, 'Forma de pagamento já cadastrada.') else: FormaDePagamento.objects.create(nome=forma_de_pagamento) messages.add_message(request, messages.INFO, 'Forma de pagamento cadastrada com sucesso.') return redirect('administrador_extra')
def setor_delete(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') setor = Setor.objects.get(id=id) colaboradores = setor.perfis_do_setor.all() if colaboradores.count() > 0: messages.add_message(request, messages.INFO, 'Impossível deletar, há colaboradores cadastrados no setor ' 'selecionado.') else: messages.add_message(request, messages.INFO, 'Setor deletado com sucesso.') setor.delete() return redirect('setor')
def status_delete(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') status = Status.objects.get(id=id) if status.analise: if len(Status.objects.all()) != 1: status.delete() status = Status.objects.all()[0] status.analise = True status.save() else: status.delete() else: status.delete() return redirect('administrador_extra')
def cadastrar_usuario(request): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': try: form = RegistrarUsuarioForm(request.POST) if form.is_valid(): dados_form = form.cleaned_data # cadastra usuario usuario = User.objects.create_user( username=dados_form['matricula'], email=dados_form['email'], password=dados_form['senha']) # seleciona o setor de acordo com o id passado no post setor = Setor.objects.get(id=dados_form['setor']) # cadastra perfil vinculando ao usuario e ao setor perfil = Perfil(nome=dados_form['nome'], usuario=usuario, setor=setor, ch_primeira=dados_form['ch_primeira'], ch_segunda=dados_form['ch_segunda']) perfil.save() messages.add_message(request, messages.INFO, 'Colaborador cadastrado com sucesso') return redirect('administrador_setor_id', id=setor.id) else: messages.add_message( request, messages.INFO, 'Erro no cadastro, verifique se todos os campos estão preenchidos corretamente.' ) return redirect('setor') except Exception: messages.add_message( request, messages.INFO, 'Erro no cadastro, verifique se todos os campos estão preenchidos corretamente.' ) return redirect('setor') return redirect('setor')
def status_editar(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': nome = request.POST.get('nome') if len(nome) > 0: status = Status.objects.get(id=id) status.nome = nome status.save() messages.add_message(request, messages.INFO, 'Status modificado com sucesso.') else: messages.add_message(request, messages.INFO, 'Digite algo para editar') return redirect('administrador_extra') else: dados = seleciona_dados(request) dados['status'] = Status.objects.get(id=id) return render(request, 'core/super/alterar-status.html', dados)
def forma_de_pagamento_editar(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': nome = request.POST.get('nome') if len(nome) > 0: pagamento = FormaDePagamento.objects.get(id=id) pagamento.nome = nome pagamento.save() messages.add_message(request, messages.INFO, 'Forma de pagamento modificado com sucesso.') else: messages.add_message(request, messages.INFO, 'Digite algo para editar') return redirect('administrador_extra') else: dados = seleciona_dados(request) dados['pagamento'] = FormaDePagamento.objects.get(id=id) return render(request, 'core/super/alterar-formadepagamento.html', dados)
def setor_atualiza(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': try: nome_setor = request.POST.get('nome_setor') if len(nome_setor) == 0: messages.add_message(request, messages.INFO, 'Erro na atualização, nome inválido.') elif len(Setor.objects.filter(nome=nome_setor)) > 0: messages.add_message(request, messages.INFO, 'Erro na atualização, setor já cadastrado.') else: setor = Setor.objects.get(id=id) setor.nome = nome_setor setor.save() return redirect('setor') except Exception: return redirect('setor') return redirect('setor')
def hash_edit(request, id): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') if request.method == 'POST': valor = request.POST.get('valor') if len(valor) > 0: funcionalidades = FuncionalidadesCore() hash_obj = Hash.objects.get(id=id) hash_obj.valor = valor hash_obj.save() messages.add_message(request, messages.INFO, 'Configuração modificada com sucesso.') return redirect('administrador_extra') messages.add_message(request, messages.INFO, 'Digite algo na configuração') return redirect('administrador_extra') else: dados = seleciona_dados(request) dados['configuracao'] = Hash.objects.get(id=id) return render(request, 'core/super/alterar-configuracao.html', dados)
def solciitacao_finaliza(request, id): func = FuncionalidadesCore() if not func.administardor(request): return redirect('solicitacoes') movimentacao = Movimentacao.objects.get(id=id) analise = Status.objects.filter(analise=True)[0] if movimentacao.status == analise: messages.add_message( request, messages.INFO, 'Impossível finalizar uma movimentação em análise, por favor verifique o status antes de finalizar.' ) else: movimentacao.finalizado = True movimentacao.save() perfil = request.user.perfil msg_padrao = 'Solicitação finalizada' LogMovimentacao.objects.create(log=msg_padrao, perfil_emissor=perfil, movimentacao=movimentacao) return redirect('solicitacoes_mostrar', id=id)
def instalar_sistema(request): func = FuncionalidadesCore() if func.superuser(request): if len(Hash.objects.all()) == 0: print('Instalando sistema, criando chave valor') nome = 'Valor das horas' chave = constants.VALOR_HORA valor = 1 Hash.objects.create(nome=nome, chave=chave, valor=valor) if len(FormaDePagamento.objects.all()) == 0: print('Instalando sistema, criando forma de pagamento') FormaDePagamento.objects.create(nome='Dinheiro') if len(Status.objects.all()) == 0: print('Instalando sistema, criando status') Status.objects.create(nome='Análise', analise=True) Status.objects.create(nome='Autorizado', autorizado=True) Status.objects.create(nome='Cancelado') print('Sistema instalado') else: print('Usuario sem permissao para instalar o sistema') return redirect('logout')
def administrador(request): func = FuncionalidadesCore() if not func.superuser(request): return redirect('solicitacoes') return redirect('setor')