def salvar(request, pk=None, tab='master', output=None): from emensageriapro.esocial.models import STATUS_EVENTO_CADASTRADO from emensageriapro.settings import VERSAO_EMENSAGERIA, VERSAO_LAYOUT_ESOCIAL TP_AMB = config.ESOCIAL_TP_AMB if pk: s2300_evttsvinicio = get_object_or_404(s2300evtTSVInicio, id=pk) if request.user.has_perm('esocial.can_see_s2300evtTSVInicio'): if pk: s2300_evttsvinicio_form = form_s2300_evttsvinicio(request.POST or None, instance=s2300_evttsvinicio, initial={'ativo': True}) else: s2300_evttsvinicio_form = form_s2300_evttsvinicio(request.POST or None, initial={'versao': VERSAO_LAYOUT_ESOCIAL, 'status': STATUS_EVENTO_CADASTRADO, 'tpamb': TP_AMB, 'procemi': 1, 'verproc': VERSAO_EMENSAGERIA, 'ativo': True}) if request.method == 'POST': if s2300_evttsvinicio_form.is_valid(): obj = s2300_evttsvinicio_form.save(request=request) messages.success(request, u'Salvo com sucesso!') if not pk: from emensageriapro.functions import identidade_evento identidade_evento(obj, 'esocial') if 'return_page' in request.session and request.session['return_page'] and 's2300-evttsvinicio' not in request.session['return_page']: return HttpResponseRedirect(request.session['return_page']) if pk != obj.id: return redirect( 's2300_evttsvinicio_salvar', pk=obj.id) else: messages.error(request, u'Erro ao salvar!') s2300_evttsvinicio_form = disabled_form_fields( s2300_evttsvinicio_form, request.user.has_perm('esocial.change_s2300evtTSVInicio')) if pk: if s2300_evttsvinicio.status != 0: s2300_evttsvinicio_form = disabled_form_fields(s2300_evttsvinicio_form, False) for field in s2300_evttsvinicio_form.fields.keys(): s2300_evttsvinicio_form.fields[field].widget.attrs['ng-model'] = 's2300_evttsvinicio_'+field if output: s2300_evttsvinicio_form = disabled_form_for_print(s2300_evttsvinicio_form) s2300_documentos_lista = None s2300_documentos_form = None s2300_brasil_lista = None s2300_brasil_form = None s2300_exterior_lista = None s2300_exterior_form = None s2300_trabestrangeiro_lista = None s2300_trabestrangeiro_form = None s2300_infodeficiencia_lista = None s2300_infodeficiencia_form = None s2300_dependente_lista = None s2300_dependente_form = None s2300_contato_lista = None s2300_contato_form = None s2300_infocomplementares_lista = None s2300_infocomplementares_form = None s2300_mudancacpf_lista = None s2300_mudancacpf_form = None s2300_afastamento_lista = None s2300_afastamento_form = None s2300_termino_lista = None s2300_termino_form = None if pk: s2300_evttsvinicio = get_object_or_404(s2300evtTSVInicio, id=pk) s2300_documentos_form = form_s2300_documentos( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_documentos_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_documentos_lista = s2300documentos.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_brasil_form = form_s2300_brasil( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_brasil_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_brasil_lista = s2300brasil.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_exterior_form = form_s2300_exterior( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_exterior_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_exterior_lista = s2300exterior.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_trabestrangeiro_form = form_s2300_trabestrangeiro( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_trabestrangeiro_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_trabestrangeiro_lista = s2300trabEstrangeiro.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_infodeficiencia_form = form_s2300_infodeficiencia( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_infodeficiencia_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_infodeficiencia_lista = s2300infoDeficiencia.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_dependente_form = form_s2300_dependente( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_dependente_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_dependente_lista = s2300dependente.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_contato_form = form_s2300_contato( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_contato_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_contato_lista = s2300contato.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_infocomplementares_form = form_s2300_infocomplementares( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_infocomplementares_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_infocomplementares_lista = s2300infoComplementares.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_mudancacpf_form = form_s2300_mudancacpf( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_mudancacpf_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_mudancacpf_lista = s2300mudancaCPF.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_afastamento_form = form_s2300_afastamento( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_afastamento_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_afastamento_lista = s2300afastamento.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_termino_form = form_s2300_termino( initial={'s2300_evttsvinicio': s2300_evttsvinicio}) s2300_termino_form.fields['s2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_termino_lista = s2300termino.objects.\ filter(s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() else: s2300_evttsvinicio = None tabelas_secundarias = [] controle_alteracoes = Auditoria.objects.filter(identidade=pk, tabela='s2300_evttsvinicio').all() if not request.POST: request.session['return_page'] = request.META.get('HTTP_REFERER') context = { 'usuario': Usuarios.objects.get(user_id=request.user.id), 'pk': pk, 'output': output, 'evento_totalizador': False, 'controle_alteracoes': controle_alteracoes, 's2300_evttsvinicio': s2300_evttsvinicio, 's2300_evttsvinicio_form': s2300_evttsvinicio_form, 's2300_documentos_form': s2300_documentos_form, 's2300_documentos_lista': s2300_documentos_lista, 's2300_brasil_form': s2300_brasil_form, 's2300_brasil_lista': s2300_brasil_lista, 's2300_exterior_form': s2300_exterior_form, 's2300_exterior_lista': s2300_exterior_lista, 's2300_trabestrangeiro_form': s2300_trabestrangeiro_form, 's2300_trabestrangeiro_lista': s2300_trabestrangeiro_lista, 's2300_infodeficiencia_form': s2300_infodeficiencia_form, 's2300_infodeficiencia_lista': s2300_infodeficiencia_lista, 's2300_dependente_form': s2300_dependente_form, 's2300_dependente_lista': s2300_dependente_lista, 's2300_contato_form': s2300_contato_form, 's2300_contato_lista': s2300_contato_lista, 's2300_infocomplementares_form': s2300_infocomplementares_form, 's2300_infocomplementares_lista': s2300_infocomplementares_lista, 's2300_mudancacpf_form': s2300_mudancacpf_form, 's2300_mudancacpf_lista': s2300_mudancacpf_lista, 's2300_afastamento_form': s2300_afastamento_form, 's2300_afastamento_lista': s2300_afastamento_lista, 's2300_termino_form': s2300_termino_form, 's2300_termino_lista': s2300_termino_lista, 'data': datetime.datetime.now(), 'modulos': ['esocial', ], 'paginas': ['s2300_evttsvinicio', ], 'tabelas_secundarias': tabelas_secundarias, 'tab': tab, } if output == 'pdf': response = PDFTemplateResponse( request=request, template='s2300_evttsvinicio_salvar.html', filename="s2300_evttsvinicio.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 output == 'xls': response = render_to_response('s2300_evttsvinicio_salvar.html', context) filename = "s2300_evttsvinicio.xls" response['Content-Disposition'] = 'attachment; filename=' + filename response['Content-Type'] = 'application/vnd.ms-excel; charset=UTF-8' return response else: return render(request, 's2300_evttsvinicio_salvar.html', context) else: context = { 'usuario': Usuarios.objects.get(user_id=request.user.id), 'pk': pk, 'tab': tab, 'output': output, 'modulos': ['esocial', ], 'paginas': ['s2300_evttsvinicio', ], 'data': datetime.datetime.now(), } return render(request, 'permissao_negada.html', context)
def salvar(request, hash): from emensageriapro.settings import VERSAO_EMENSAGERIA, VERSAO_MODELO, TP_AMB db_slug = 'default' try: usuario_id = request.user.id dict_hash = get_hash_url(hash) s2300_evttsvinicio_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='s2300_evttsvinicio') permissao = ConfigPermissoes.objects.using(db_slug).get( excluido=False, config_paginas=pagina, config_perfis=usuario.config_perfis) if s2300_evttsvinicio_id: s2300_evttsvinicio = get_object_or_404( s2300evtTSVInicio.objects.using(db_slug), excluido=False, id=s2300_evttsvinicio_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 s2300_evttsvinicio_id: if s2300_evttsvinicio.status != 0: dict_permissoes['s2300_evttsvinicio_apagar'] = 0 dict_permissoes['s2300_evttsvinicio_editar'] = 0 if permissao.permite_visualizar: mensagem = None if s2300_evttsvinicio_id: s2300_evttsvinicio_form = form_s2300_evttsvinicio( request.POST or None, instance=s2300_evttsvinicio, slug=db_slug) else: s2300_evttsvinicio_form = form_s2300_evttsvinicio( request.POST or None, slug=db_slug, initial={ 'versao': VERSAO_MODELO, 'processamento_codigo_resposta': 0, 'tpamb': TP_AMB, 'procemi': 1, 'verproc': VERSAO_EMENSAGERIA }) if request.method == 'POST': if s2300_evttsvinicio_form.is_valid(): dados = s2300_evttsvinicio_form.cleaned_data import json from django.forms.models import model_to_dict if s2300_evttsvinicio_id: if s2300_evttsvinicio.status == 0: dados['modificado_por_id'] = usuario_id dados['modificado_em'] = datetime.datetime.now() #s2300_evttsvinicio_campos_multiple_passo1 s2300evtTSVInicio.objects.using(db_slug).filter( id=s2300_evttsvinicio_id).update(**dados) obj = s2300evtTSVInicio.objects.using(db_slug).get( id=s2300_evttsvinicio_id) #s2300_evttsvinicio_editar_custom #s2300_evttsvinicio_campos_multiple_passo2 messages.success(request, 'Alterado com sucesso!') gravar_auditoria( json.dumps(model_to_dict(s2300_evttsvinicio), indent=4, sort_keys=True, default=str), json.dumps(model_to_dict(obj), indent=4, sort_keys=True, default=str), 's2300_evttsvinicio', s2300_evttsvinicio_id, usuario_id, 2) else: messages.error( request, 'Não é possível salvar o evento, pois o mesmo não está com o status "Cadastrado"!' ) else: dados['arquivo_original'] = 0 dados['criado_por_id'] = usuario_id dados['criado_em'] = datetime.datetime.now() dados['excluido'] = False #s2300_evttsvinicio_cadastrar_campos_multiple_passo1 obj = s2300evtTSVInicio(**dados) obj.save(using=db_slug) #s2300_evttsvinicio_cadastrar_custom #s2300_evttsvinicio_cadastrar_campos_multiple_passo2 identidade_evento(obj.id, db_slug) messages.success(request, 'Cadastrado com sucesso!') gravar_auditoria( '{}', json.dumps(model_to_dict(obj), indent=4, sort_keys=True, default=str), 's2300_evttsvinicio', obj.id, usuario_id, 1) if request.session['retorno_pagina'] not in ( 's2300_evttsvinicio_apagar', 's2300_evttsvinicio_salvar', 's2300_evttsvinicio'): return redirect(request.session['retorno_pagina'], hash=request.session['retorno_hash']) if s2300_evttsvinicio_id != obj.id: url_hash = base64.urlsafe_b64encode( '{"print": "0", "id": "%s"}' % (obj.id)) return redirect('s2300_evttsvinicio_salvar', hash=url_hash) else: messages.error(request, 'Erro ao salvar!') s2300_evttsvinicio_form = disabled_form_fields( s2300_evttsvinicio_form, permissao.permite_editar) if s2300_evttsvinicio_id: if s2300_evttsvinicio.status != 0: s2300_evttsvinicio_form = disabled_form_fields( s2300_evttsvinicio_form, False) #s2300_evttsvinicio_campos_multiple_passo3 for field in s2300_evttsvinicio_form.fields.keys(): s2300_evttsvinicio_form.fields[field].widget.attrs[ 'ng-model'] = 's2300_evttsvinicio_' + field if int(dict_hash['print']): s2300_evttsvinicio_form = disabled_form_for_print( s2300_evttsvinicio_form) s2300_documentos_form = None s2300_documentos_lista = None s2300_brasil_form = None s2300_brasil_lista = None s2300_exterior_form = None s2300_exterior_lista = None s2300_trabestrangeiro_form = None s2300_trabestrangeiro_lista = None s2300_infodeficiencia_form = None s2300_infodeficiencia_lista = None s2300_dependente_form = None s2300_dependente_lista = None s2300_contato_form = None s2300_contato_lista = None s2300_infocomplementares_form = None s2300_infocomplementares_lista = None s2300_afastamento_form = None s2300_afastamento_lista = None s2300_termino_form = None s2300_termino_lista = None if s2300_evttsvinicio_id: s2300_evttsvinicio = get_object_or_404( s2300evtTSVInicio.objects.using(db_slug), excluido=False, id=s2300_evttsvinicio_id) s2300_documentos_form = form_s2300_documentos( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_documentos_form.fields['s2300_evttsvinicio'].widget.attrs[ 'readonly'] = True s2300_documentos_lista = s2300documentos.objects.using( db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_brasil_form = form_s2300_brasil( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_brasil_form.fields['s2300_evttsvinicio'].widget.attrs[ 'readonly'] = True s2300_brasil_lista = s2300brasil.objects.using(db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_exterior_form = form_s2300_exterior( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_exterior_form.fields['s2300_evttsvinicio'].widget.attrs[ 'readonly'] = True s2300_exterior_lista = s2300exterior.objects.using(db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_trabestrangeiro_form = form_s2300_trabestrangeiro( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_trabestrangeiro_form.fields[ 's2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_trabestrangeiro_lista = s2300trabEstrangeiro.objects.using( db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_infodeficiencia_form = form_s2300_infodeficiencia( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_infodeficiencia_form.fields[ 's2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_infodeficiencia_lista = s2300infoDeficiencia.objects.using( db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_dependente_form = form_s2300_dependente( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_dependente_form.fields['s2300_evttsvinicio'].widget.attrs[ 'readonly'] = True s2300_dependente_lista = s2300dependente.objects.using( db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_contato_form = form_s2300_contato( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_contato_form.fields['s2300_evttsvinicio'].widget.attrs[ 'readonly'] = True s2300_contato_lista = s2300contato.objects.using(db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_infocomplementares_form = form_s2300_infocomplementares( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_infocomplementares_form.fields[ 's2300_evttsvinicio'].widget.attrs['readonly'] = True s2300_infocomplementares_lista = s2300infoComplementares.objects.using( db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_afastamento_form = form_s2300_afastamento( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_afastamento_form.fields['s2300_evttsvinicio'].widget.attrs[ 'readonly'] = True s2300_afastamento_lista = s2300afastamento.objects.using( db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() s2300_termino_form = form_s2300_termino( initial={'s2300_evttsvinicio': s2300_evttsvinicio}, slug=db_slug) s2300_termino_form.fields['s2300_evttsvinicio'].widget.attrs[ 'readonly'] = True s2300_termino_lista = s2300termino.objects.using(db_slug).filter( excluido=False, s2300_evttsvinicio_id=s2300_evttsvinicio.id).all() else: s2300_evttsvinicio = None #s2300_evttsvinicio_salvar_custom_variaveis# tabelas_secundarias = [] #[FUNCOES_ESPECIAIS_SALVAR] if 's2300_evttsvinicio'[1] == '5': evento_totalizador = True else: evento_totalizador = False if not evento_totalizador: s2300_evttsvinicio_form.fields['tpamb'].widget.attrs[ 'disabled'] = True s2300_evttsvinicio_form.fields['tpamb'].widget.attrs[ 'readonly'] = True s2300_evttsvinicio_form.fields['tpamb'].value = TP_AMB s2300_evttsvinicio_form.fields['procemi'].widget.attrs[ 'disabled'] = True s2300_evttsvinicio_form.fields['procemi'].widget.attrs[ 'readonly'] = True s2300_evttsvinicio_form.fields['procemi'].value = 1 s2300_evttsvinicio_form.fields['verproc'].widget.attrs[ 'readonly'] = True s2300_evttsvinicio_form.fields[ 'verproc'].value = VERSAO_EMENSAGERIA if dict_hash['tab'] or 's2300_evttsvinicio' in request.session[ 'retorno_pagina']: request.session["retorno_hash"] = hash request.session["retorno_pagina"] = 's2300_evttsvinicio_salvar' controle_alteracoes = Auditoria.objects.using(db_slug).filter( identidade=s2300_evttsvinicio_id, tabela='s2300_evttsvinicio').all() context = { 'evento_totalizador': evento_totalizador, 'controle_alteracoes': controle_alteracoes, 's2300_evttsvinicio': s2300_evttsvinicio, 's2300_evttsvinicio_form': s2300_evttsvinicio_form, 'mensagem': mensagem, 's2300_evttsvinicio_id': int(s2300_evttsvinicio_id), 'usuario': usuario, 'hash': hash, 's2300_documentos_form': s2300_documentos_form, 's2300_documentos_lista': s2300_documentos_lista, 's2300_brasil_form': s2300_brasil_form, 's2300_brasil_lista': s2300_brasil_lista, 's2300_exterior_form': s2300_exterior_form, 's2300_exterior_lista': s2300_exterior_lista, 's2300_trabestrangeiro_form': s2300_trabestrangeiro_form, 's2300_trabestrangeiro_lista': s2300_trabestrangeiro_lista, 's2300_infodeficiencia_form': s2300_infodeficiencia_form, 's2300_infodeficiencia_lista': s2300_infodeficiencia_lista, 's2300_dependente_form': s2300_dependente_form, 's2300_dependente_lista': s2300_dependente_lista, 's2300_contato_form': s2300_contato_form, 's2300_contato_lista': s2300_contato_lista, 's2300_infocomplementares_form': s2300_infocomplementares_form, 's2300_infocomplementares_lista': s2300_infocomplementares_lista, 's2300_afastamento_form': s2300_afastamento_form, 's2300_afastamento_lista': s2300_afastamento_lista, 's2300_termino_form': s2300_termino_form, 's2300_termino_lista': s2300_termino_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'], #s2300_evttsvinicio_salvar_custom_variaveis_context# } if for_print in (0, 1): return render(request, 's2300_evttsvinicio_salvar.html', context) elif for_print == 2: from wkhtmltopdf.views import PDFTemplateResponse response = PDFTemplateResponse( request=request, template='s2300_evttsvinicio_salvar.html', filename="s2300_evttsvinicio.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('s2300_evttsvinicio_salvar.html', context) filename = "s2300_evttsvinicio.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)