from django.contrib import admin
from import_export.admin import ImportExportModelAdmin
from rangefilter.filters import DateRangeFilter, NumericRangeFilter

from Costos.models import Plantilla, Especies, CambioServicio
from TransitoApp.snnipers import Attr

class Tipo_vehiculo(admin.SimpleListFilter):
    title = "Filtrar por Tipo"
    parameter_name = "tipo"

    def lookups(self, request, model_admin):
        return [
            ("CARRO", "CARRO"),
            ("MOTOCICLETA","MOTOCICLETA"),
        ]

    def queryset(self, request, queryset):
        if self.value() == "MOTOCICLETA":
            return queryset.filter(
                tipo="MOTOCICLETA",
            )
        elif self.value() == "CARRO":
            return queryset.filter(
                tipo__icontains="CARRO",
            )

# Register your models here.
@admin.register(Plantilla)
class modelo(admin.ModelAdmin, Tipo_vehiculo):
    list_display = Attr(Plantilla)
    list_display_links = Attr(Plantilla)
    list_filter = [('fecha',DateRangeFilter),('numero_especie_matricula',NumericRangeFilter),('numero_especie_rtv',NumericRangeFilter),Tipo_vehiculo,'usuario',]
    search_fields = list_display

@admin.register(Especies)
class modelo(ImportExportModelAdmin,admin.ModelAdmin):
    list_display = Attr(Especies)
    list_display_links = Attr(Especies)
    list_filter = ['fecha_generacion','usuario']
    search_fields = list_display

@admin.register(CambioServicio)
class modelo(admin.ModelAdmin):
    list_display = Attr(CambioServicio)
    list_display_links = Attr(CambioServicio)