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 import messages
from django.contrib.auth.mixins import PermissionRequiredMixin from django.contrib.auth.mixins import PermissionRequiredMixin
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.urls import reverse
from django.db import models from django.db import models
from django.db.models.fields.related import ForeignKey, ManyToManyField from django.db.models.fields.related import ForeignKey, ManyToManyField
from django.http.response import Http404 from django.http.response import Http404
from django.shortcuts import redirect from django.shortcuts import redirect
from django.urls import reverse
from django.utils.decorators import classonlymethod from django.utils.decorators import classonlymethod
from django.utils.encoding import force_text from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _ 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) RP_LIST)
from sapl.utils import normalize from sapl.utils import normalize
logger = logging.getLogger(settings.BASE_DIR.name) logger = logging.getLogger(settings.BASE_DIR.name)
ACTION_LIST, ACTION_CREATE, ACTION_DETAIL, ACTION_UPDATE, ACTION_DELETE = \ 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) head = from_to(1, PAGINATION_LENGTH - len(tail) - 1)
return head + [None] + tail return head + [None] + tail
""" """
variáveis do crud: variáveis do crud:
help_topic help_topic
@ -416,16 +418,18 @@ class CrudListView(PermissionRequiredContainerCrudMixin, ListView):
for f in fn: for f in fn:
if not f: if not f:
continue continue
f = m._meta.get_field(f) try:
if hasattr(f, 'related_model') and f.related_model: f = m._meta.get_field(f)
m = f.related_model if hasattr(f, 'related_model') and f.related_model:
if f: m = f.related_model
hook = 'hook_header_{}'.format(''.join(fn)) except:
if hasattr(self, hook): f = None
header = getattr(self, hook)() hook = 'hook_header_{}'.format(''.join(fn))
s.append(header) if hasattr(self, hook):
else: header = getattr(self, hook)()
s.append(force_text(f.verbose_name)) s.append(header)
elif f:
s.append(force_text(f.verbose_name))
s = ' / '.join(s) s = ' / '.join(s)
r.append(s) r.append(s)
@ -607,7 +611,8 @@ class CrudListView(PermissionRequiredContainerCrudMixin, ListView):
# print(ordering) # print(ordering)
except Exception as e: 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) # print(queryset.query)
if not self.request.user.is_authenticated: 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 # Classe deve implementar um get_object(), i.e., deve ser uma View
deleted_object = self.get_object() deleted_object = self.get_object()
try: try:
return super(AuditLogMixin, self).delete(request, args, kwargs) return super(AuditLogMixin, self).delete(request, args, kwargs)
finally: finally:
post_delete_signal.send(sender=None, post_delete_signal.send(sender=None,
instance=deleted_object, 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.http.response import HttpResponseRedirect
from django.template import RequestContext, loader from django.template import RequestContext, loader
from django.urls import reverse from django.urls import reverse
from django.urls.base import reverse_lazy
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView, UpdateView from django.views.generic import TemplateView, UpdateView
from django.views.generic.base import RedirectView from django.views.generic.base import RedirectView
@ -186,7 +188,7 @@ class NormaCrud(Crud):
public = [RP_LIST, RP_DETAIL] public = [RP_LIST, RP_DETAIL]
class BaseMixin(Crud.BaseMixin): class BaseMixin(Crud.BaseMixin):
list_field_names = ['tipo', 'numero', 'ano', 'ementa'] list_field_names = ['epigrafe', 'ementa']
list_url = '' list_url = ''
@ -253,6 +255,15 @@ class NormaCrud(Crud):
url = self.get_redirect_url(*args, **kwargs) url = self.get_redirect_url(*args, **kwargs)
return HttpResponseRedirect(url) 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): def get_redirect_url(self, *args, **kwargs):
namespace = self.model._meta.app_config.name namespace = self.model._meta.app_config.name
return reverse('%s:%s' % (namespace, 'norma_pesquisa')) return reverse('%s:%s' % (namespace, 'norma_pesquisa'))

Loading…
Cancel
Save