mirror of https://github.com/interlegis/sigi.git
Breno Teixeira
11 years ago
1 changed files with 45 additions and 0 deletions
@ -0,0 +1,45 @@ |
|||||
|
# coding: utf-8 |
||||
|
from django.contrib import admin |
||||
|
|
||||
|
|
||||
|
class PopulationFilter(admin.SimpleListFilter): |
||||
|
# Human-readable title which will be displayed in the |
||||
|
# right admin sidebar just above the filter options. |
||||
|
title = 'População' |
||||
|
|
||||
|
# Parameter for the filter that will be used in the URL query. |
||||
|
parameter_name = 'faixa' |
||||
|
|
||||
|
def lookups(self, request, model_admin): |
||||
|
""" |
||||
|
Returns a list of tuples. The first element in each |
||||
|
tuple is the coded value for the option that will |
||||
|
appear in the URL query. The second element is the |
||||
|
human-readable name for the option that will appear |
||||
|
in the right sidebar. |
||||
|
""" |
||||
|
return ( |
||||
|
( '1', '< 100 Mil'), |
||||
|
( '2', '100 Mil a 1 Milhão'), |
||||
|
( '3', '1 Milhão a 100 Milhões'), |
||||
|
( '4', '> 100 Milhões'), |
||||
|
) |
||||
|
|
||||
|
def queryset(self, request, queryset): |
||||
|
""" |
||||
|
Returns the filtered queryset based on the value |
||||
|
provided in the query string and retrievable via |
||||
|
`self.value()`. |
||||
|
""" |
||||
|
# Compare the requested value (either '1', '2', '3' or '4') |
||||
|
# to decide how to filter the queryset. |
||||
|
if self.value() == '1': |
||||
|
return queryset.filter(populacao__lt=100000) |
||||
|
elif self.value() == '2': |
||||
|
return queryset.filter(populacao__gte=100000, populacao__lt=1000000) |
||||
|
elif self.value() == '3': |
||||
|
return queryset.filter(populacao__gte=1000000, populacao__lt=10000000) |
||||
|
elif self.value() == '4': |
||||
|
return queryset.filter(populacao__gt=100000000) |
||||
|
else: |
||||
|
return queryset |
Loading…
Reference in new issue