def loginusr(request): """ View da página de Login Tem duas funções: Processar o reset de senha e fazer o Login. LOGIN: Verifica se o usuário e senhas estão no sistema, caso contrário, informa respectivas mensagens de erro. PASS RESET: Reseta a senha de acordo com o usuário informado, enviando por email a nova senha gerada randomicamente. @param request: @return: """ template = loader.get_template('login/login.html') page = sitemap ( request.get_full_path ( ) ).context context = {} if request.POST: username = request.POST['mail'] password = request.POST['password'] if 'email-reset' in request.POST: reset_mail = request.POST['email-reset'] try: user_reset = User.objects.get(username__exact=reset_mail) if user_reset: pass_reset = pass_generator() user_reset.set_password(pass_reset) user_reset.save() email_corpo = u"Sua senha foi alterada no sistema. SUA NOVA SENHA É: "+pass_reset email_titulo = u"Senha Resetada" email_destino = [user_reset.email] send_mail(email_titulo, email_corpo, settings.EMAIL_HOST_USER, email_destino) state = {'msg': u"Um email foi enviado para sua caixa de entrada contendo sua nova senha.", 'mode': 'sucess'} else: state = {'msg': u'Usuário não existe no banco de dados.', 'mode': 'error'} except: state = {'msg': u"Ocorreu um erro ao redefinir sua senha.", 'mode': 'error'} else: redirect_to = request.POST.get('next', request.GET.get('next', '')) if not http.is_safe_url(redirect_to, request.get_host()): redirect_to = '/home/' user = authenticate(username=username, password=password) if user is not None: if user.is_active: login(request,user) return redirect(redirect_to) else: state = {'msg': u"Sua conta esta desativada, por favor entre em contato com o administrador..", 'mode': 'warning'} else: state = {'msg': u"Usuário ou senha incorretos.", 'mode': 'error'} context['state'] = state context['username'] = username context.update(page) req_context = RequestContext(request, context) return HttpResponse(template.render(req_context))
def create_area(request, projeto): context = RequestContext(request) page = sitetools.sitemap ( request.get_full_path ( ) ).context context.update ( page ) if not check_group(request.user.id, projeto): return HttpResponse('User out of project group', status=401) if request.POST: form = AreaForm(request.POST) if form.is_valid(): descricao = request.POST['descricao'] obj = Area(descricao=descricao, projeto_FK_id=projeto) obj.save() return redirect('/impacto/projetos/perfil_projeto/'+projeto+"/") else: form = AreaForm() projeto_FK = Projeto.objects.get(pk=projeto) if not projeto_FK.data_termino: projeto_FK.data_termino = "Não Determinado" context['projeto'] = {'nome': projeto_FK.nome, 'id': projeto, 'descricao': projeto_FK.descricao, 'codigo': projeto_FK.cod_projeto, 'status': projeto_FK.status_FK, 'data_inicio': projeto_FK.data_inicio, 'data_termino': projeto_FK.data_termino} context['cliente'] = {'nome': projeto_FK.cliente_FK.nome, 'cnpj': projeto_FK.cliente_FK.cnpj} context['form'] = form return render(request, "impacto/create_area.html", context)
def grafAutomaticaTotal(request, station, texto): texto = texto.replace('_', ' ') page = sitetools.sitemap(request.get_full_path()).context estacao = {} try: estacao = db.Station.objects.get(pk=station) except: return redirect('clima/estacoes/') if texto.strip() == '': texto = estacao.Nome credits = { 'text': 'Powered by: Terravision', 'href': 'http://www.terravisiongeo.com.br/' } context = RequestContext(request, { 'estacao': estacao, 'credits': credits, 'texto': texto }) context.update(page) template = loader.get_template('clima/grafautomaticatotal.html') return HttpResponse(template.render(context))
def quadro(request, impacto): context = RequestContext(request) page = sitetools.sitemap ( request.get_full_path ( ) ).context context.update ( page ) questoes = [] quadro_FK = Quadro.objects.all() for quadro in quadro_FK: quest = {'titulo': quadro.descricao, 'id': quadro.id, 'respostas': []} respostas = [] quadro_item_FK = QuadroItem.objects.filter(quadro_FK=quadro) for item in quadro_item_FK: resposta = {'msg': item.descricao, 'msg2':item.descricao1, 'id': item.id, 'classe': item.classe, 'escala': item.escala} respostas.append(resposta) quest['respostas'] = respostas questoes.append(quest) context['questoes'] = questoes context['impacto'] = impacto return render(request, 'impacto/quadro.html', context)
def mapafocoincendio(request): context = RequestContext(request) template = loader.get_template('clima/mapafocoincendio.html') page = sitetools.sitemap(request.get_full_path()).context context.update(page) return HttpResponse(template.render(context))
def view_impacto(request, impacto): context = RequestContext(request) page = sitetools.sitemap(request.get_full_path()).context context.update(page) impacto_FK = Impacto.objects.get(pk=impacto) context['impacto'] = impacto_FK return render(request, "impacto/view_impacto.html", context)
def edit_impacto_proj(request, impacto): context = RequestContext(request) page = sitetools.sitemap(request.get_full_path()).context context.update(page) impactoProj_FK = ImpactoProjeto.objects.get(pk=impacto) projeto_FK = impactoProj_FK.fase_projeto_FK.projeto_FK projeto_FK = Projeto.objects.get(pk=projeto_FK.id) if not check_group(request.user.id, projeto_FK.id): return HttpResponse('User out of project group', status=401) if request.POST: form = ImpactoProjetoForm(request.POST) if form.is_valid(): descricaoForm = request.POST['descricao'] meioForm = request.POST['meio_FK'] tipo_areaForm = request.POST['tipo_area_FK'] impactoForm = request.POST['impacto_FK'] areaForm = request.POST['area_FK'] obj = ImpactoProjeto.objects.get(pk=impacto) obj.descricao = descricaoForm obj.meio_FK_id = meioForm obj.tipo_area_FK_id = tipo_areaForm obj.impacto_FK_id = impactoForm obj.area_FK_id = areaForm obj.save() return redirect('/impacto/projetos/perfil_projeto/'+str(projeto_FK.id)+"/") else: form = ImpactoProjetoForm(instance=impactoProj_FK, id_meio=impactoProj_FK.meio_FK_id) if not projeto_FK.data_termino: projeto_FK.data_termino = "Não Determinado" context['projeto'] = {'nome': projeto_FK.nome, 'id': projeto_FK.id, 'descricao': projeto_FK.descricao, 'codigo': projeto_FK.cod_projeto, 'status': projeto_FK.status_FK, 'data_inicio': projeto_FK.data_inicio, 'data_termino': projeto_FK.data_termino} context['cliente'] = {'nome': projeto_FK.cliente_FK.nome, 'cnpj': projeto_FK.cliente_FK.cnpj} context['impacto_id'] = impacto context['fase'] = {'nome': impactoProj_FK.fase_projeto_FK.get_descricao_display} context['form'] = form context['aia'] = {'aia_gab': impactoProj_FK.aia} programa_json = {'programas_gab': []} programas_Resp = ProgramaImpacto.objects.filter(impacto_projeto_FK_id=impacto) for programa in programas_Resp: programa_json['programas_gab'].append(programa.programa_FK.descricao) context['aia'].update(respostas_gab(impacto)) context['aia'].update(programa_json) return render(request, "impacto/edit_impacto_projeto.html", context)
def webhome(request): """ View que renderiza conteúdo a ser mostrado em todas as páginas do home. @param request: @return: """ page = sitemap ( request.get_full_path ( ) ).context context = {'username' : request.user.username } context.update(page) return render(request, 'login/webhome.html', context)
def quadro_gab(request, impacto): context = RequestContext(request) page = sitetools.sitemap(request.get_full_path()).context context.update ( page ) context['programas'] = [] context['rec'] = True programas_FK = Programa.objects.all() for programa in programas_FK: mont = {'descricao': programa.descricao, 'id': programa.id} context['programas'].append(mont) context.update(respostas_gab(impacto)) return render(request, 'impacto/quadro_gab.html', context)
def create_impacto(request, projeto, faseprojeto): context = RequestContext(request) page = sitetools.sitemap ( request.get_full_path ( ) ).context context.update ( page ) if not check_group(request.user.id, projeto): return HttpResponse('User out of project group', status=401) if request.POST: form = ImpactoProjetoForm(request.POST) if form.is_valid(): descricao = request.POST['descricao'] areafk = request.POST['area_FK'] tipoareafk = request.POST['tipo_area_FK'] meiofk = request.POST['meio_FK'] impactofk = request.POST['impacto_FK'] obj = ImpactoProjeto(descricao=descricao, fase_projeto_FK_id=faseprojeto, area_FK_id=areafk, tipo_area_FK_id=tipoareafk, meio_FK_id=meiofk, impacto_FK_id=impactofk) obj.save() return redirect('/impacto/projetos/perfil_projeto/'+projeto+"/") else: form = ImpactoProjetoForm() projeto_FK = Projeto.objects.get(pk=projeto) faseprojeto_FK = FaseProjeto.objects.get(pk=faseprojeto) if not projeto_FK.data_termino: projeto_FK.data_termino = "Não Determinado" context['projeto'] = {'nome': projeto_FK.nome, 'id': projeto, 'descricao': projeto_FK.descricao, 'codigo': projeto_FK.cod_projeto, 'status': projeto_FK.status_FK, 'data_inicio': projeto_FK.data_inicio, 'data_termino': projeto_FK.data_termino} context['fase'] = {'nome': faseprojeto_FK.get_descricao_display} context['cliente'] = {'nome': projeto_FK.cliente_FK.nome, 'cnpj': projeto_FK.cliente_FK.cnpj} form.fields['area_FK'].queryset = Area.objects.filter(projeto_FK_id=projeto) context['form'] = form context['faseprojeto'] = faseprojeto return render(request, "impacto/create_impacto.html", context)
def perfil_projeto(request, projeto): context = RequestContext(request) page = sitetools.sitemap ( request.get_full_path ( ) ).context context.update(page) projeto_FK = Projeto.objects.get(pk=projeto) cliente_FK = Empresa.objects.get(pk=projeto_FK.cliente_FK_id) if not check_group(request.user.id, projeto): return HttpResponse('User out of project group', status=401) if not projeto_FK.data_termino: projeto_FK.data_termino = "Não Determinado" context['cliente'] = {'nome': cliente_FK.nome, 'cnpj': cliente_FK.cnpj} context['projeto'] = {'nome': projeto_FK.nome, 'id': projeto_FK.id, 'descricao': projeto_FK.descricao, 'codigo': projeto_FK.cod_projeto, 'status': projeto_FK.status_FK, 'data_inicio': projeto_FK.data_inicio, 'data_termino': projeto_FK.data_termino} areas_FK = Area.objects.filter(projeto_FK_id=projeto) if areas_FK: context['areas'] = {'is_true': True, 'content': areas_FK} context['fase'] = {'P': {}, 'O': {}, 'I': {}, 'F': {}} faseprojeto_FK = FaseProjeto.objects.filter(projeto_FK_id=projeto) for item in faseprojeto_FK: impactoprojeto_FK = ImpactoProjeto.objects.filter(fase_projeto_FK=item.id).order_by('-meio_FK_id') diagnostico_FK = Diagnostico.objects.filter(fase_projeto_FK_id=item.id).order_by('-meio_FK_id') fase = context['fase'] impactos = fase[str(item.descricao)] = {'id': item.id, 'content': {'impacto': '', 'diagnostico': ''}} impactos['content']['impacto'] = impactoprojeto_FK impactos['content']['diagnostico'] = diagnostico_FK context['usersform'] = [] if request.user.is_superuser: context['is_superuser'] = True for user in User.objects.all(): mont = {'nome': user, 'id': user.id, 'checked': check_group(user.id, projeto)} context['usersform'].append(mont) context['projeto_id'] = projeto return render(request, "impacto/perfil_projeto.html", context)
def focoCalor(request, id): reg = db.FocoItem.objects.get(id=id) saida = { 'Temp': reg.Temp, 'FireFlag': reg.FireFlag, 'Data': reg.foco_FK.dataUTC, 'id': reg.id } context = RequestContext(request, {'foco': saida}) page = sitetools.sitemap(request.get_full_path()).context context.update(page) template = loader.get_template('clima/focoCalor.html') return HttpResponse(template.render(context))
def editar_local(request, id_local): context = RequestContext(request) page = sitetools.sitemap(request.get_full_path()).context context.update(page) local_FK = Local.objects.get(pk=id_local) initial_form = {} initial_form['descricao'] = local_FK.descricao initial_form['descricao'] = local_FK.descricao context['type'], initial_form[context['type']] = Local.campo.auto_get(instance=id_local) context['form'] = FrmLocal(initial=initial_form) context['local_id'] = id_local return render(request, 'camada/edit_local.html', context)
def editar_local(request, id_local): context = RequestContext(request) page = sitetools.sitemap(request.get_full_path()).context context.update(page) local_FK = Local.objects.get(pk=id_local) initial_form = {} initial_form['descricao'] = local_FK.descricao initial_form['descricao'] = local_FK.descricao context['type'], initial_form[context['type']] = Local.campo.auto_get( instance=id_local) context['form'] = FrmLocal(initial=initial_form) context['local_id'] = id_local return render(request, 'camada/edit_local.html', context)
def edit_diagnostico(request, diagnostico): context = RequestContext(request) page = sitetools.sitemap(request.get_full_path()).context context.update(page) diagnostico_FK = Diagnostico.objects.get(pk=diagnostico) projeto_FK = diagnostico_FK.fase_projeto_FK.projeto_FK projeto_FK = Projeto.objects.get(pk=projeto_FK.id) if not check_group(request.user.id, projeto_FK.id): return HttpResponse('User out of project group', status=401) if request.POST: form = DiagnosticoForm(request.POST) if form.is_valid(): descricaoForm = request.POST['descricao'] meioForm = request.POST['meio_FK'] tipo_areaForm = request.POST['tipo_area_FK'] areaForm = request.POST['area_FK'] obj = Diagnostico.objects.get(pk=diagnostico) obj.descricao = descricaoForm obj.meio_FK_id = meioForm obj.tipo_area_FK_id = tipo_areaForm obj.area_FK_id = areaForm obj.save() return redirect('/impacto/projetos/perfil_projeto/'+str(projeto_FK.id)+"/") else: form = DiagnosticoForm(instance=diagnostico_FK) if not projeto_FK.data_termino: projeto_FK.data_termino = "Não Determinado" context['projeto'] = {'nome': projeto_FK.nome, 'id': projeto_FK.id, 'descricao': projeto_FK.descricao, 'codigo': projeto_FK.cod_projeto, 'status': projeto_FK.status_FK, 'data_inicio': projeto_FK.data_inicio, 'data_termino': projeto_FK.data_termino} context['cliente'] = {'nome': projeto_FK.cliente_FK.nome, 'cnpj': projeto_FK.cliente_FK.cnpj} context['diagnostico_id'] = diagnostico context['fase'] = {'nome': diagnostico_FK.fase_projeto_FK.get_descricao_display} context['form'] = form return render(request, "impacto/edit_diagnostico.html", context)
def grafnormais(request, station, texto): page = sitetools.sitemap(request.get_full_path()).context texto = http.urlunquote(texto) estacao = {} try: estacao = db.Station.objects.get(pk=station) except: return redirect('/clima/normais/') grf = NormalGraficos(station, texto).getGrafico() template = loader.get_template('clima/grafnormais.html') context = RequestContext(request, {'estacao': estacao, 'graficos': grf}) context.update(page) return HttpResponse(template.render(context))
def lst_projetos(request): context = RequestContext(request) page = sitetools.sitemap ( request.get_full_path ( ) ).context context.update(page) context['empresa_id'] = 0 if request.POST: if 'empresa' in request.POST: context['form'] = Empresa_ProjetosForm(initial={'empresas': request.POST['empresa']}) context['empresa_id'] = request.POST['empresa'] else: context['form'] = Empresa_ProjetosForm() if 'empresas' in request.POST: context['empresa_id'] = request.POST['empresas'] else: context['form'] = Empresa_ProjetosForm() return render(request, "impacto/lst_projetos.html", context)
def automaticas(request): page = sitetools.sitemap(request.get_full_path()).context if request.method == 'POST': form = PesquisaAutomaticasFRM(request.POST) if form.is_valid(): nomeEstac = form.cleaned_data['nomeEstacao'] mes = form.cleaned_data['mes'] ano = form.cleaned_data['ano'] texto = u'{0}'.format(form.cleaned_data['nomeTexto']) estacao = db.Station.objects.filter(Nome__contains=nomeEstac) if texto.strip() == '': texto = estacao[0].Nome texto = texto.replace('-', ' ').replace('.', ' ').replace( '(', ' ').replace(')', ' ') texto = http.urlquote(texto) if estacao: if mes == '99': return redirect( '/clima/automaticas/grafautomaticatotal/{0}/{1}'. format(estacao[0].id, texto)) else: return redirect( '/clima/automaticas/grafautomatica/{0}/{1}/{2}/{3}/'. format(estacao[0].Codigo, mes, ano, texto)) else: form = PesquisaAutomaticasFRM() colEstacoes = db.Station.objects.filter(tipo='A').values_list('Nome', flat=True) saida = '[' for i in colEstacoes: saida += '\'' + i + '\',' saida += ']' context = RequestContext(request, {'estacoes': saida, 'form': form}) context.update(page) template = loader.get_template('clima/automaticas.html') return HttpResponse(template.render(context))
def grafAutomatica(request, station, ano, mes, texto): page = sitetools.sitemap(request.get_full_path()).context texto = texto.replace('_', ' ') obj = GeraGraficos() year = int(ano) month = int(mes) if month == 0: tipo = "A" month = 1 else: tipo = 'D' datadefinida = datetime(year, month, 1) result = obj.pool(station, datadefinida, tipo, texto) context = RequestContext(request, {'result': result}) context.update(page) template = loader.get_template('clima/graflinha.html') return HttpResponse(template.render(context))
def mudasenha(request): """ View para mudar a senha do usuário logado. Verifica se o formulário é valido, então prossegue verificando se a nova senha e nova senha confirma são iguais, verifica se a senha antiga é a mesma no sistema. Se não passar em alguma verificação, então retorna seus respectivos erros em state em forma de mensagem para usuário. @param request: @return: """ page = sitemap ( request.get_full_path ( ) ).context form = MudarSenhaForm(request.POST or None) context = {} state='' context['page'] = "Muda Senha" if request.POST: senha_atual = request.POST['senha_atual'] nova_senha = request.POST['nova_senha'] nova_senha_confirma = request.POST['nova_senha_confirma'] if form.is_valid(): if nova_senha == nova_senha_confirma: user_auth = User.objects.get(username__exact=request.user.username) if user_auth.check_password(senha_atual): user_auth.set_password(nova_senha) user_auth.save() state = {'msg': "A sua senha foi alterada com sucesso!", 'mode': 'sucess'} else: state = {'msg': "A Senha Atual digitada não confere com a do sistema.", 'mode': 'error'} else: state = {'msg': "A confirmação de senha não confere.", 'mode': 'warning'} context['state'] = state context['form'] = form context.update(page) return render(request, 'login/mudasenha.html', context)
def normais(request): page = sitetools.sitemap(request.get_full_path()).context if request.method == 'POST': form = PesquisaEstacaoFRM(request.POST) if form.is_valid(): nomeEstac = form.cleaned_data['nomeEstacao'] estacao = db.Station.objects.filter(Nome__contains=nomeEstac) texto = u'{0}'.format(form.cleaned_data['nomeTexto']) if texto.strip() == '': texto = estacao[0].Nome texto = texto.replace('-', ' ').replace('.', ' ').replace( '(', ' ').replace(')', ' ') texto = http.urlquote(texto) if estacao: return redirect('/clima/normais/grafnormais/{0}/{1}/'.format( estacao[0].id, texto.replace(' ', '_'))) else: form = PesquisaEstacaoFRM() colEstacoes = db.Station.objects.filter(tipo='N').values_list('Nome', flat=True) saida = '[' for i in colEstacoes: saida += '\'' + i + '\',' saida += ']' context = {'estacoes': saida, 'form': form} context.update(page) context = RequestContext(request, context) template = loader.get_template('clima/normais.html') return HttpResponse(template.render(context))
def lista_local(request): context = RequestContext(request) page = sitetools.sitemap(request.get_full_path()).context context.update(page) return render(request, 'camada/lst_local.html', context)
def criar_local(request): context = RequestContext(request) page = sitetools.sitemap(request.get_full_path()).context context.update(page) context['form'] = FrmLocal() return render(request, 'camada/frmlLocal.html', context)
def clima(request): context = sitetools.sitemap(request.get_full_path()).context template = loader.get_template('clima/clima.html') return HttpResponse(template.render(context))
def lst_empresas(request): context = RequestContext(request) page = sitetools.sitemap ( request.get_full_path ( ) ).context context.update ( page ) return render(request, "impacto/lst_empresa.html", context)