Browse Source

Corrige bug no filtro do dashboard de serviços por ano

master 4.0.10
Sesóstris Vieira 1 week ago
parent
commit
ff2c504d4b
  1. 30
      sigi/apps/servicos/dashboards.py

30
sigi/apps/servicos/dashboards.py

@ -2,7 +2,7 @@ import calendar
import datetime
import locale
from dashboard import Dashcard, getcolor
from random import randint, seed
from random import choice, randint, seed
from django.db.models import Count, F, Q
from django.db.models.functions import TruncMonth
from django.http import QueryDict
@ -26,16 +26,24 @@ class UsoServicosFilter(django_filters.FilterSet):
fields = ["uf"]
def get_anos_servico():
return (
(ano, str(ano))
for ano in Servico.objects.filter(hospedagem_interlegis=True)
.order_by("data_ativacao__year")
.values_list("data_ativacao__year", flat=True)
.distinct("data_ativacao__year")
)
class AnoServicoFilter(django_filters.FilterSet):
ano = django_filters.ModelChoiceFilter(
field_name="data_ativacao__year",
ano = django_filters.ChoiceFilter(
field_name="data_ativacao",
lookup_expr="year",
label=_("Ano"),
queryset=(
Servico.objects.filter(hospedagem_interlegis=True)
.order_by("data_ativacao__year")
.values_list("data_ativacao__year", flat=True)
.distinct("data_ativacao__year")
),
choices=get_anos_servico,
empty_label=_("Todos os anos"),
)
class Meta:
@ -290,9 +298,7 @@ class UsoServicos(Dashcard):
return [
{
"label": label,
"data": {
r.sigla: getattr(r, f"{key}_count") for r in queryset
},
"data": {r.sigla: getattr(r, f"{key}_count") for r in queryset},
}
for key, label in Servico.RESULTADO_CHOICES
]

Loading…
Cancel
Save