From 5e50b2ef7aa098317df067968bb7f8a7a5c1d66e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ses=C3=B3stris=20Vieira?= Date: Tue, 22 Sep 2026 20:51:17 -0300 Subject: [PATCH] =?UTF-8?q?Adiciona=20op=C3=A7=C3=B5es=20no=20filtro=20de?= =?UTF-8?q?=20uso.=20Filtro=20por=20daterange=20do=20=C3=BAltimo=20uso?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sigi/apps/servicos/admin.py | 1 + sigi/apps/servicos/filters.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/sigi/apps/servicos/admin.py b/sigi/apps/servicos/admin.py index 98136f5..51772d0 100644 --- a/sigi/apps/servicos/admin.py +++ b/sigi/apps/servicos/admin.py @@ -116,6 +116,7 @@ class ServicoAdmin(ReturnMixin, ExportActionMixin, admin.ModelAdmin): ("data_desativacao", ServicoAtivoFilter), "resultado_verificacao", DataUtimoUsoFilter, + ("data_ultimo_uso", DateRangeFilterBuilder()), ("casa_legislativa__gerentes_interlegis", GerentesInterlegisFilter), "casa_legislativa__municipio__uf", ("casa_legislativa__convenio__projeto_id", TipoProjetoFilter), diff --git a/sigi/apps/servicos/filters.py b/sigi/apps/servicos/filters.py index 1e4723c..527e304 100644 --- a/sigi/apps/servicos/filters.py +++ b/sigi/apps/servicos/filters.py @@ -65,6 +65,10 @@ class DataUtimoUsoFilter(admin.SimpleListFilter): ("month", _("Sem atualização de um a três meses")), ("week", _("Sem atualização de uma semana a um mês")), ("updated", _("Atualizado na última semana")), + ("updmonth", _("Atualizado no último mês")), + ("updquarter", _("Atualizado no último trimestre")), + ("updsemester", _("Atualizado no último semestre")), + ("updyear", _("Atualizado no último ano")), ) def queryset(self, request, queryset): @@ -78,6 +82,18 @@ class DataUtimoUsoFilter(admin.SimpleListFilter): if self.value() == "updated": limite = date.today() - timedelta(days=7) return queryset.filter(data_ultimo_uso__gte=limite) + if self.value() == "updmonth": + limite = date.today() - timedelta(days=30) + return queryset.filter(data_ultimo_uso__gte=limite) + if self.value() == "updquarter": + limite = date.today() - timedelta(days=3 * 30) + return queryset.filter(data_ultimo_uso__gte=limite) + if self.value() == "updsemester": + limite = date.today() - timedelta(days=6 * 30) + return queryset.filter(data_ultimo_uso__gte=limite) + if self.value() == "updyear": + limite = date.today() - timedelta(days=365) + return queryset.filter(data_ultimo_uso__gte=limite) if self.value() == "semester": de = date.today() - timedelta(days=365) ate = date.today() - timedelta(days=6 * 30 + 1)