Browse Source

ajusta listagem e link para pendência

pull/3285/head
Leandro Roberto 5 years ago
parent
commit
f14dacef63
  1. 31
      sapl/crud/base.py
  2. 13
      sapl/norma/views.py

31
sapl/crud/base.py

@ -9,11 +9,11 @@ from django.conf.urls import url
from django.contrib import messages
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.core.exceptions import ObjectDoesNotExist
from django.urls import reverse
from django.db import models
from django.db.models.fields.related import ForeignKey, ManyToManyField
from django.http.response import Http404
from django.shortcuts import redirect
from django.urls import reverse
from django.utils.decorators import classonlymethod
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
@ -29,6 +29,7 @@ from sapl.rules.map_rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL,
RP_LIST)
from sapl.utils import normalize
logger = logging.getLogger(settings.BASE_DIR.name)
ACTION_LIST, ACTION_CREATE, ACTION_DETAIL, ACTION_UPDATE, ACTION_DELETE = \
@ -79,6 +80,7 @@ def make_pagination(index, num_pages):
head = from_to(1, PAGINATION_LENGTH - len(tail) - 1)
return head + [None] + tail
"""
variáveis do crud:
help_topic
@ -416,16 +418,18 @@ class CrudListView(PermissionRequiredContainerCrudMixin, ListView):
for f in fn:
if not f:
continue
f = m._meta.get_field(f)
if hasattr(f, 'related_model') and f.related_model:
m = f.related_model
if f:
hook = 'hook_header_{}'.format(''.join(fn))
if hasattr(self, hook):
header = getattr(self, hook)()
s.append(header)
else:
s.append(force_text(f.verbose_name))
try:
f = m._meta.get_field(f)
if hasattr(f, 'related_model') and f.related_model:
m = f.related_model
except:
f = None
hook = 'hook_header_{}'.format(''.join(fn))
if hasattr(self, hook):
header = getattr(self, hook)()
s.append(header)
elif f:
s.append(force_text(f.verbose_name))
s = ' / '.join(s)
r.append(s)
@ -607,7 +611,8 @@ class CrudListView(PermissionRequiredContainerCrudMixin, ListView):
# print(ordering)
except Exception as e:
logger.warning(_(f"ERRO: construção da tupla de ordenação. {e}"))
logger.warning(
_(f"ERRO: construção da tupla de ordenação. {e}"))
# print(queryset.query)
if not self.request.user.is_authenticated:
@ -627,7 +632,7 @@ class AuditLogMixin(object):
# Classe deve implementar um get_object(), i.e., deve ser uma View
deleted_object = self.get_object()
try:
return super(AuditLogMixin, self).delete(request, args, kwargs)
return super(AuditLogMixin, self).delete(request, args, kwargs)
finally:
post_delete_signal.send(sender=None,
instance=deleted_object,

13
sapl/norma/views.py

@ -9,7 +9,9 @@ from django.http import HttpResponse, JsonResponse
from django.http.response import HttpResponseRedirect
from django.template import RequestContext, loader
from django.urls import reverse
from django.urls.base import reverse_lazy
from django.utils import timezone
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView, UpdateView
from django.views.generic.base import RedirectView
@ -186,7 +188,7 @@ class NormaCrud(Crud):
public = [RP_LIST, RP_DETAIL]
class BaseMixin(Crud.BaseMixin):
list_field_names = ['tipo', 'numero', 'ano', 'ementa']
list_field_names = ['epigrafe', 'ementa']
list_url = ''
@ -253,6 +255,15 @@ class NormaCrud(Crud):
url = self.get_redirect_url(*args, **kwargs)
return HttpResponseRedirect(url)
def hook_header_epigrafe(self, *args, **kwargs):
return force_text(_('Epigrafe'))
def hook_epigrafe(self, obj, ss, url):
return obj.epigrafe, reverse_lazy(
'sapl.norma:norma_ta',
kwargs={'pk': obj.id})
def get_redirect_url(self, *args, **kwargs):
namespace = self.model._meta.app_config.name
return reverse('%s:%s' % (namespace, 'norma_pesquisa'))

Loading…
Cancel
Save