示例#1
0
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))
示例#2
0
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)
示例#3
0
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))
示例#4
0
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)
示例#5
0
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))
示例#6
0
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)
示例#7
0
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)
示例#8
0
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)
示例#9
0
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)
示例#10
0
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)
示例#11
0
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)
示例#12
0
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))
示例#13
0
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)
示例#14
0
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)
示例#15
0
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)
示例#16
0
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))
示例#17
0
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)
示例#18
0
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))
示例#19
0
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))
示例#20
0
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)
示例#21
0
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))
示例#22
0
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)
示例#23
0
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)
示例#24
0
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)
示例#25
0
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)
示例#26
0
def clima(request):
    context = sitetools.sitemap(request.get_full_path()).context
    template = loader.get_template('clima/clima.html')
    return HttpResponse(template.render(context))
示例#27
0
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)