def get_success_url(self): pk_autor = self.object.id url_reverse = reverse('sapl.base:autor_detail', kwargs={'pk': pk_autor}) try: kwargs = {} user = self.object.user if not user: return url_reverse kwargs['token'] = default_token_generator.make_token(user) kwargs['uidb64'] = urlsafe_base64_encode(force_bytes(user.pk)) assunto = "SAPL - Confirmação de Conta" full_url = self.request.get_raw_uri() url_base = full_url[:full_url.find('sistema') - 1] mensagem = ( "Este e-mail foi utilizado para fazer cadastro no " + "SAPL com o perfil de Autor. Agora você pode " + "criar/editar/enviar Proposições.\n" + "Seu nome de usuário é: " + self.request.POST['username'] + "\n" "Caso você não tenha feito este cadastro, por favor " + "ignore esta mensagem. Caso tenha, clique " + "no link abaixo\n" + url_base + reverse('sapl.base:confirmar_email', kwargs=kwargs)) remetente = [settings.EMAIL_SEND_USER] destinatario = [user.email] send_mail(assunto, mensagem, remetente, destinatario, fail_silently=False) except: sapl_logger.error( _('Erro no envio de email na criação de Autores.')) return url_reverse
def get_success_url(self): pk_autor = self.object.id url_reverse = reverse('sapl.base:autor_detail', kwargs={'pk': pk_autor}) try: kwargs = {} user = self.object.user if not user: return url_reverse kwargs['token'] = default_token_generator.make_token(user) kwargs['uidb64'] = urlsafe_base64_encode(force_bytes(user.pk)) assunto = "SAPL - Confirmação de Conta" full_url = self.request.get_raw_uri() url_base = full_url[:full_url.find('sistema') - 1] mensagem = ( "Este e-mail foi utilizado para fazer cadastro no " + "SAPL com o perfil de Autor. Agora você pode " + "criar/editar/enviar Proposições.\n" + "Seu nome de usuário é: " + self.request.POST['username'] + "\n" "Caso você não tenha feito este cadastro, por favor " + "ignore esta mensagem. Caso tenha, clique " + "no link abaixo\n" + url_base + reverse('sapl.base:confirmar_email', kwargs=kwargs)) remetente = [settings.EMAIL_SEND_USER] destinatario = [user.email] send_mail(assunto, mensagem, remetente, destinatario, fail_silently=False) except: sapl_logger.error( _('Erro no envio de email na edição de Autores.')) return url_reverse
def nav_run(context, path=None): """Renderiza sub navegação para objetos no padrão Mestre Detalhe Existem três possíveis fontes de busca do yaml com precedência enumerada abaixo: 1) Se a variável path não é nula; 2) Se existe no contexto a chave subnav_template_name; 3) o path default: <app_name>/subnav.yaml Os campos esperados nos arquivos yaml são: title url check_permission - opcional. quando usado será realizado o teste de permissão para renderizá-lo. """ menu = None root_pk = context.get('root_pk', None) if not root_pk: obj = context.get('object', None) if obj: root_pk = obj.pk if root_pk or 'subnav_template_name' in context or path: request = context['request'] """ As implementações das Views de Modelos que são dados auxiliares e de diversas app's estão concentradas em urls com prefixo 'sistema'. Essas Views não possuem submenu de navegação e são incompativeis com a execução deste subnav. Inicialmente, a maneira mais prática encontrada de isolar foi com o teste abaixo. """ rm = request.resolver_match app_template = rm.app_name.rsplit('.', 1)[-1] if path: yaml_path = path elif 'subnav_template_name' in context: yaml_path = context['subnav_template_name'] else: yaml_path = '%s/%s' % (app_template, 'subnav.yaml') if not yaml_path: return """ Por padrão, são carragados dois Loaders, filesystem.Loader - busca em TEMPLATE_DIRS do projeto atual app_directories.Loader - busca em todas apps instaladas A função nativa abaixo busca em todos os Loaders Configurados. """ try: yaml_template = template.loader.get_template(yaml_path) except: return try: rendered = yaml_template.render() menu = yaml.load(rendered) resolve_urls_inplace(menu, root_pk, rm, context) except Exception as e: sapl_logger.error(_("""Erro na conversão do yaml %s. App: %s. Erro: %s """) % ( yaml_path, rm.app_name, str(e))) return {'menu': menu}
def nav_run(context, path=None): """Renderiza sub navegação para objetos no padrão Mestre Detalhe Existem três possíveis fontes de busca do yaml com precedência enumerada abaixo: 1) Se a variável path não é nula; 2) Se existe no contexto a chave subnav_template_name; 3) o path default: <app_name>/subnav.yaml Os campos esperados nos arquivos yaml são: title url check_permission - opcional. quando usado será realizado o teste de permissão para renderizá-lo. """ menu = None root_pk = context.get('root_pk', None) if not root_pk: obj = context.get('object', None) if obj: root_pk = obj.pk if root_pk or 'subnav_template_name' in context or path: request = context['request'] """ As implementações das Views de Modelos que são dados auxiliares e de diversas app's estão concentradas em urls com prefixo 'sistema'. Essas Views não possuem submenu de navegação e são incompativeis com a execução deste subnav. Inicialmente, a maneira mais prática encontrada de isolar foi com o teste abaixo. """ rm = request.resolver_match app_template = rm.app_name.rsplit('.', 1)[-1] if path: yaml_path = path elif 'subnav_template_name' in context: yaml_path = context['subnav_template_name'] else: yaml_path = '%s/%s' % (app_template, 'subnav.yaml') if not yaml_path: return """ Por padrão, são carragados dois Loaders, filesystem.Loader - busca em TEMPLATE_DIRS do projeto atual app_directories.Loader - busca em todas apps instaladas A função nativa abaixo busca em todos os Loaders Configurados. """ try: yaml_template = template.loader.get_template(yaml_path) except: return try: rendered = yaml_template.template.render(context) menu = yaml.load(rendered) resolve_urls_inplace(menu, root_pk, rm, context) except Exception as e: sapl_logger.error( _("""Erro na conversão do yaml %s. App: %s. Erro: %s """) % (yaml_path, rm.app_name, str(e))) return {'menu': menu}