diff --git a/sapl/base/forms.py b/sapl/base/forms.py index 4043c1310..011cbc5b2 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -728,43 +728,32 @@ class RelatorioNormasMesFilterSet(django_filters.FilterSet): return parent.distinct().order_by('data') -class EstatisticasAcessoNormasFilterSet(django_filters.FilterSet): - - ano = django_filters.ChoiceFilter(required=True, - label='Ano de acesso', - choices=RANGE_ANOS) - - filter_overrides = {models.DateField: { - 'filter_class': django_filters.DateFromToRangeFilter, - 'extra': lambda f: { - 'label': '%s (%s)' % (f.verbose_name, _('Ano')), - 'widget': RangeWidgetOverride} - }} +class EstatisticasAcessoNormasForm(Form): + ano = forms.ChoiceField(required=True, + label='Ano de acesso', + choices=RANGE_ANOS) class Meta: - model = NormaEstatisticas fields = ['ano'] def __init__(self, *args, **kwargs): - super(EstatisticasAcessoNormasFilterSet, self).__init__( + super(EstatisticasAcessoNormasForm, self).__init__( *args, **kwargs) - self.filters['ano'].label = 'Ano' - self.form.fields['ano'].required = True row1 = to_row([('ano', 12)]) - self.form.helper = FormHelper() - self.form.helper.form_method = 'GET' - self.form.helper.layout = Layout( + self.helper = FormHelper() + self.helper.form_method = 'GET' + self.helper.layout = Layout( Fieldset(_('Normas por acessos nos meses do ano.'), row1, form_actions(label='Pesquisar')) ) - @property - def qs(self): - parent = super(EstatisticasAcessoNormasFilterSet, self).qs - return parent.distinct().order_by('horario_acesso') + def clean(self): + super(EstatisticasAcessoNormasForm, self).clean() + + return self.cleaned_data class RelatorioNormasVigenciaFilterSet(django_filters.FilterSet): diff --git a/sapl/base/views.py b/sapl/base/views.py index 40469741e..9b3863e55 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -51,7 +51,7 @@ from .forms import (AlterarSenhaForm, CasaLegislativaForm, RelatorioReuniaoFilterSet, UsuarioCreateForm, UsuarioEditForm, RelatorioNormasMesFilterSet, RelatorioNormasVigenciaFilterSet, - EstatisticasAcessoNormasFilterSet) + EstatisticasAcessoNormasForm) from .models import AppConfig, CasaLegislativa @@ -860,24 +860,20 @@ class RelatorioNormasVigenciaView(FilterView): return context -class EstatisticasAcessoNormas(FilterView): - model = NormaEstatisticas - filterset_class = EstatisticasAcessoNormasFilterSet +class EstatisticasAcessoNormas(TemplateView): template_name = 'base/EstatisticasAcessoNormas_filter.html' - def get_context_data(self, **kwargs): + def get(self, request, *args, **kwargs): context = super(EstatisticasAcessoNormas, self).get_context_data(**kwargs) context['title'] = _('Normas') - # Verifica se os campos foram preenchidos - if not self.filterset.form.is_valid(): - return context + form = EstatisticasAcessoNormasForm(request.GET or None) + context['form'] = form - qr = self.request.GET.copy() - context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else '' + if not form.is_valid(): + return self.render_to_response(context) - context['show_results'] = show_results_filter_set(qr) context['ano'] = self.request.GET['ano'] query = ''' @@ -905,12 +901,10 @@ class EstatisticasAcessoNormas(FilterView): for n in normas_mes: sorted_by_value = sorted(normas_mes[n], key=lambda kv: kv[1], reverse=True) normas_mes[n] = sorted_by_value[0:5] - - import ipdb; ipdb.set_trace() context['normas_mes'] = normas_mes - return context + return self.render_to_response(context) class ListarUsuarioView(PermissionRequiredMixin, ListView): diff --git a/sapl/templates/base/EstatisticasAcessoNormas_filter.html b/sapl/templates/base/EstatisticasAcessoNormas_filter.html index 27acb3419..a067a2112 100644 --- a/sapl/templates/base/EstatisticasAcessoNormas_filter.html +++ b/sapl/templates/base/EstatisticasAcessoNormas_filter.html @@ -3,10 +3,9 @@ {% load crispy_forms_tags %} {% block base_content %} - {% if not show_results %} - {% crispy filter.form %} - {% endif %} - {% if show_results %} + {% if not ano %} + {% crispy form %} + {% else %}