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)