Esempio n. 1
0
def listar(request, hash):
    for_print = 0
    db_slug = 'default'
    from emensageriapro.controle_de_acesso.views.login import criar_permissoes, salvar_modulos_paginas_permitidas
    criar_permissoes(db_slug)
    salvar_modulos_paginas_permitidas(db_slug)
    try:
        usuario_id = request.user.id
        dict_hash = get_hash_url(hash)
        #retorno_pagina = dict_hash['retorno_pagina']
        #retorno_hash = dict_hash['retorno_hash']
        #importacao_arquivos_eventos_id = int(dict_hash['id'])
        if 'tab' not in dict_hash.keys():
            dict_hash['tab'] = ''
        for_print = int(dict_hash['print'])
    except:
        usuario_id = False
        return redirect('login')
    usuario = get_object_or_404(Usuarios.objects.using(db_slug),
                                excluido=False,
                                id=usuario_id)
    pagina = ConfigPaginas.objects.using(db_slug).get(
        excluido=False, endereco='importacao_arquivos_eventos')
    permissao = ConfigPermissoes.objects.using(db_slug).get(
        excluido=False,
        config_paginas=pagina,
        config_perfis=usuario.config_perfis)
    dict_permissoes = json_to_dict(usuario.config_perfis.permissoes)
    paginas_permitidas_lista = usuario.config_perfis.paginas_permitidas
    modulos_permitidos_lista = usuario.config_perfis.modulos_permitidos

    if permissao.permite_listar:
        filtrar = False
        dict_fields = {}
        show_fields = {
            'show_excluido': 0,
            'show_modificado_por': 0,
            'show_modificado_em': 0,
            'show_criado_por': 0,
            'show_criado_em': 0,
            'show_validacoes': 0,
            'show_data_hora': 1,
            'show_status': 1,
            'show_identidade': 0,
            'show_identidade_evento': 1,
            'show_versao': 0,
            'show_evento': 1,
            'show_arquivo': 1,
            'show_importacao_arquivos': 0,
        }
        post = False
        #ANTES-POST-LISTAGEM
        if request.method == 'POST':
            post = True
            dict_fields = {
                'validacoes__icontains': 'validacoes__icontains',
                'data_hora__range': 'data_hora__range',
                'status': 'status',
                'identidade': 'identidade',
                'identidade_evento__icontains': 'identidade_evento__icontains',
                'versao__icontains': 'versao__icontains',
                'evento__icontains': 'evento__icontains',
                'arquivo__icontains': 'arquivo__icontains',
                'importacao_arquivos': 'importacao_arquivos',
            }
            for a in dict_fields:
                dict_fields[a] = request.POST.get(a or None)
            for a in show_fields:
                show_fields[a] = request.POST.get(a or None)
            if request.method == 'POST':
                dict_fields = {
                    'validacoes__icontains': 'validacoes__icontains',
                    'data_hora__range': 'data_hora__range',
                    'status': 'status',
                    'identidade': 'identidade',
                    'identidade_evento__icontains':
                    'identidade_evento__icontains',
                    'versao__icontains': 'versao__icontains',
                    'evento__icontains': 'evento__icontains',
                    'arquivo__icontains': 'arquivo__icontains',
                    'importacao_arquivos': 'importacao_arquivos',
                }
                for a in dict_fields:
                    dict_fields[a] = request.POST.get(dict_fields[a] or None)
        dict_qs = clear_dict_fields(dict_fields)

        importacao_arquivos_eventos_lista = ImportacaoArquivosEventos.objects.using(
            db_slug).filter(**dict_qs).filter(excluido=False,
                                              status=0).exclude(id=0).all()
        importacao_arquivos_eventos_erros_lista = ImportacaoArquivosEventos.objects.using(
            db_slug).filter(**dict_qs).filter(excluido=False,
                                              status=2).exclude(id=0).all()

        esocial_enviados = TransmissorEventosEsocial.objects.using( db_slug ).\
            filter(excluido = False, status__in=[7,9,14]).exclude(id=0).all()
        esocial_validados_aguardando_envio = TransmissorEventosEsocial.objects.using( db_slug ).\
            filter(excluido = False, status=4, validacao_precedencia=1).exclude(id=0).all()
        esocial_validados_aguardando_precedencia = TransmissorEventosEsocial.objects.using( db_slug ).\
            filter(excluido = False, status=4, validacao_precedencia=0).exclude(id=0).all()
        esocial_erros_validacao = TransmissorEventosEsocial.objects.using( db_slug ).\
            filter(excluido = False, status=3).exclude(id=0).all()
        esocial_assinados = TransmissorEventosEsocial.objects.using( db_slug ).\
            filter(excluido = False, status__in=[10]).exclude(id=0).all()
        esocial_cadastrados = TransmissorEventosEsocial.objects.using( db_slug ).\
            filter(excluido = False, status__in=[0,1,10,11]).exclude(id=0).all()
        esocial_erros_envio = TransmissorEventosEsocial.objects.using( db_slug ).\
            filter(excluido = False, status__in=[5,8]).exclude(id=0).all()

        efdreinf_enviados = TransmissorEventosEfdreinf.objects.using( db_slug ).\
            filter(excluido = False, status__in=[7,9,14]).exclude(id=0).all()
        efdreinf_validados_aguardando_envio = TransmissorEventosEfdreinf.objects.using( db_slug ).\
            filter(excluido = False, status=4, validacao_precedencia=1).exclude(id=0).all()
        efdreinf_validados_aguardando_precedencia = TransmissorEventosEfdreinf.objects.using( db_slug ).\
            filter(excluido = False, status=4, validacao_precedencia=0).exclude(id=0).all()
        efdreinf_erros_validacao = TransmissorEventosEfdreinf.objects.using( db_slug ).\
            filter(excluido = False, status=3).exclude(id=0).all()
        efdreinf_assinados = TransmissorEventosEfdreinf.objects.using( db_slug ).\
            filter(excluido = False, status__in=[10]).exclude(id=0).all()
        efdreinf_cadastrados = TransmissorEventosEfdreinf.objects.using( db_slug ).\
            filter(excluido = False, status__in=[0,1,10,11]).exclude(id=0).all()
        efdreinf_erros_envio = TransmissorEventosEfdreinf.objects.using( db_slug ).\
            filter(excluido = False, status__in=[5,8]).exclude(id=0).all()

        # if not post and len(importacao_arquivos_eventos_lista) > 100:
        #     filtrar = True
        #     importacao_arquivos_eventos_lista = None
        #     messages.warning(request, 'Listagem com mais de 100 resultados! Filtre os resultados um melhor desempenho!')

        importacao_arquivos_lista = ImportacaoArquivos.objects.using(
            db_slug).filter(excluido=False, status=0).all()
        #importacao_arquivos_eventos_listar_custom
        request.session["retorno_hash"] = hash
        request.session["retorno_pagina"] = 'importacao_arquivos_eventos'
        context = {
            'tab': dict_hash['tab'],
            'importacao_arquivos_eventos_lista':
            importacao_arquivos_eventos_lista,
            'importacao_arquivos_eventos_erros_lista':
            importacao_arquivos_eventos_erros_lista,
            'esocial_enviados': esocial_enviados,
            'esocial_validados_aguardando_envio':
            esocial_validados_aguardando_envio,
            'esocial_validados_aguardando_precedencia':
            esocial_validados_aguardando_precedencia,
            'esocial_erros_validacao': esocial_erros_validacao,
            'esocial_assinados': esocial_assinados,
            'esocial_cadastrados': esocial_cadastrados,
            'esocial_erros_envio': esocial_erros_envio,
            'efdreinf_enviados': efdreinf_enviados,
            'efdreinf_validados_aguardando_envio':
            efdreinf_validados_aguardando_envio,
            'efdreinf_validados_aguardando_precedencia':
            efdreinf_validados_aguardando_precedencia,
            'efdreinf_erros_validacao': efdreinf_erros_validacao,
            'efdreinf_assinados': efdreinf_assinados,
            'efdreinf_cadastrados': efdreinf_cadastrados,
            'efdreinf_erros_envio': efdreinf_erros_envio,
            'usuario': usuario,
            'modulos_permitidos_lista': modulos_permitidos_lista,
            'paginas_permitidas_lista': paginas_permitidas_lista,
            'permissao': permissao,
            'dict_fields': dict_fields,
            'data': datetime.datetime.now(),
            'pagina': pagina,
            'dict_permissoes': dict_permissoes,
            'show_fields': show_fields,
            'for_print': for_print,
            'hash': hash,
            'filtrar': filtrar,
            'importacao_arquivos_lista': importacao_arquivos_lista,
        }
        return render(request, 'mapa_processamento.html', context)
    else:
        context = {
            'usuario': usuario,
            'modulos_permitidos_lista': modulos_permitidos_lista,
            'paginas_permitidas_lista': paginas_permitidas_lista,
            'permissao': permissao,
            'data': datetime.datetime.now(),
            'pagina': pagina,
            'dict_permissoes': dict_permissoes,
        }
        return render(request, 'permissao_negada.html', context)
Esempio n. 2
0
def salvar(request, hash):
    db_slug = 'default'
    try:
        usuario_id = request.user.id
        dict_hash = get_hash_url( hash )
        config_perfis_id = int(dict_hash['id'])
        if 'tab' not in dict_hash.keys():
            dict_hash['tab'] = ''
        for_print = int(dict_hash['print'])
    except:
        usuario_id = False
        return redirect('login')
    usuario = get_object_or_404(Usuarios.objects.using( db_slug ), excluido = False, id = usuario_id)
    pagina = ConfigPaginas.objects.using( db_slug ).get(excluido = False, endereco='config_perfis')
    permissao = ConfigPermissoes.objects.using( db_slug ).get(excluido = False, config_paginas=pagina, config_perfis=usuario.config_perfis)
    if config_perfis_id:
        config_perfis = get_object_or_404(ConfigPerfis.objects.using( db_slug ), excluido = False, id = config_perfis_id)
    dict_permissoes = json_to_dict(usuario.config_perfis.permissoes)
    paginas_permitidas_lista = usuario.config_perfis.paginas_permitidas
    modulos_permitidos_lista = usuario.config_perfis.modulos_permitidos

    if permissao.permite_visualizar:
        mensagem = None
        if config_perfis_id:
            config_perfis_form = form_config_perfis(request.POST or None, instance = config_perfis, slug = db_slug)
        else:
            config_perfis_form = form_config_perfis(request.POST or None, slug = db_slug, initial={})
        if request.method == 'POST':
            if config_perfis_form.is_valid():
                dados = config_perfis_form.cleaned_data
                if config_perfis_id:
                    dados['modificado_por_id'] = usuario_id
                    dados['modificado_em'] = datetime.datetime.now()
                    #config_perfis_campos_multiple_passo1
                    ConfigPerfis.objects.using(db_slug).filter(id=config_perfis_id).update(**dados)
                    obj = ConfigPerfis.objects.using(db_slug).get(id=config_perfis_id)
                    #config_perfis_editar_custom
                    #config_perfis_campos_multiple_passo2
                    messages.success(request, 'Alterado com sucesso!')
                else:

                    dados['criado_por_id'] = usuario_id
                    dados['criado_em'] = datetime.datetime.now()
                    dados['excluido'] = False
                    #config_perfis_cadastrar_campos_multiple_passo1
                    obj = ConfigPerfis(**dados)
                    obj.save(using = db_slug)
                    #config_perfis_cadastrar_custom
                    #config_perfis_cadastrar_campos_multiple_passo2
                    from emensageriapro.controle_de_acesso.views.login import criar_permissoes
                    criar_permissoes(db_slug)
                    messages.success(request, 'Cadastrado com sucesso!')
                if request.session['retorno_pagina'] not in ('config_perfis_apagar', 'config_perfis_salvar', 'config_perfis'):
                    return redirect(request.session['retorno_pagina'], hash=request.session['retorno_hash'])
                if config_perfis_id != obj.id:
                    url_hash = base64.urlsafe_b64encode( '{"print": "0", "id": "%s"}' % (obj.id) )
                    return redirect('config_perfis_salvar', hash=url_hash)
            else:
                messages.error(request, 'Erro ao salvar!')
        config_perfis_form = disabled_form_fields(config_perfis_form, permissao.permite_editar)
        #config_perfis_campos_multiple_passo3

        for field in config_perfis_form.fields.keys():
            config_perfis_form.fields[field].widget.attrs['ng-model'] = 'config_perfis_'+field
        if int(dict_hash['print']):
            config_perfis_form = disabled_form_for_print(config_perfis_form)
   
        config_permissoes_form = None
        config_permissoes_lista = None
        usuarios_form = None
        usuarios_lista = None
        if config_perfis_id:
            config_perfis = get_object_or_404(ConfigPerfis.objects.using( db_slug ), excluido = False, id = config_perfis_id)
       
            config_permissoes_form = form_config_permissoes(initial={ 'config_perfis': config_perfis }, slug=db_slug)
            config_permissoes_form.fields['config_perfis'].widget.attrs['readonly'] = True
            config_permissoes_lista = ConfigPermissoes.objects.using( db_slug ).filter(excluido = False, config_perfis_id=config_perfis.id).all()
            usuarios_form = form_usuarios(initial={ 'config_perfis': config_perfis , 'password': '******'}, slug=db_slug)
            usuarios_form.fields['config_perfis'].widget.attrs['readonly'] = True
            usuarios_lista = Usuarios.objects.using( db_slug ).filter(excluido = False, config_perfis_id=config_perfis.id).all()
        else:
            config_perfis = None
        #config_perfis_salvar_custom_variaveis#
        tabelas_secundarias = []
        #[FUNCOES_ESPECIAIS_SALVAR]
        if dict_hash['tab'] or 'config_perfis' in request.session['retorno_pagina']:
            request.session["retorno_hash"] = hash
            request.session["retorno_pagina"] = 'config_perfis_salvar'
        context = {
            'config_perfis': config_perfis,
            'config_perfis_form': config_perfis_form,
            'mensagem': mensagem,
            'config_perfis_id': int(config_perfis_id),
            'usuario': usuario,
            
            'hash': hash,
       
            'config_permissoes_form': config_permissoes_form,
            'config_permissoes_lista': config_permissoes_lista,
            'usuarios_form': usuarios_form,
            'usuarios_lista': usuarios_lista,
            'modulos_permitidos_lista': modulos_permitidos_lista,
            'paginas_permitidas_lista': paginas_permitidas_lista,
            
            'permissao': permissao,
            'data': datetime.datetime.now(),
            'pagina': pagina,
            'dict_permissoes': dict_permissoes,
            'for_print': int(dict_hash['print']),
            'tabelas_secundarias': tabelas_secundarias,
            'tab': dict_hash['tab'],
            #config_perfis_salvar_custom_variaveis_context#
        }
        if for_print in (0,1 ):
            return render(request, 'config_perfis_salvar.html', context)
        elif for_print == 2:
            from wkhtmltopdf.views import PDFTemplateResponse
            response = PDFTemplateResponse(
                request=request,
                template='config_perfis_salvar.html',
                filename="config_perfis.pdf",
                context=context,
                show_content_in_browser=True,
                cmd_options={'margin-top': 10,
                             'margin-bottom': 10,
                             'margin-right': 10,
                             'margin-left': 10,
                             'zoom': 1,
                             'dpi': 72,
                             'orientation': 'Landscape',
                             "viewport-size": "1366 x 513",
                             'javascript-delay': 1000,
                             'footer-center': '[page]/[topage]',
                             "no-stop-slow-scripts": True},
            )
            return response
        elif for_print == 3:
            from django.shortcuts import render_to_response
            response = render_to_response('config_perfis_salvar.html', context)
            filename = "config_perfis.xls"
            response['Content-Disposition'] = 'attachment; filename=' + filename
            response['Content-Type'] = 'application/vnd.ms-excel; charset=UTF-8'
            return response

    else:
        context = {
            'usuario': usuario,
            
            'modulos_permitidos_lista': modulos_permitidos_lista,
            'paginas_permitidas_lista': paginas_permitidas_lista,
            
            'permissao': permissao,
            'data': datetime.datetime.now(),
            'pagina': pagina,
            'dict_permissoes': dict_permissoes,
        }
        return render(request, 'permissao_negada.html', context)