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)
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)