1 # -*- encoding: utf-8 -*-
4 from django
.contrib
.admin
.filterspecs
import FilterSpec
6 year
= datetime
.date
.today().year
10 class DateDebutFieldFilterSpec(FilterSpec
):
11 def __init__(self
, f
, request
, params
, model
, model_admin
,
13 super(DateDebutFieldFilterSpec
, self
).__init__(f
, request
, params
, model
,
15 field_path
=field_path
)
17 self
.field_generic
= '%s__' % self
.field_path
19 self
.date_params
= dict([(k
, v
) for k
, v
in params
.items()
20 if k
.startswith(self
.field_generic
)])
21 today
= datetime
.date
.today()
25 '%s__gte' % self
.field_path
: str(today
),
28 annees
= [i
for i
in range(start
, end
, -1)]
31 '%s__gte' % self
.field_path
: "%s-01-01" % str(i
),
36 return "Date borne gauche"
38 def choices(self
, cl
):
39 for title
, param_dict
in self
.links
:
40 yield {'selected': self
.date_params
== param_dict
,
41 'query_string': cl
.get_query_string(
43 [self
.field_generic
]),
46 class DateFinFieldFilterSpec(FilterSpec
):
47 def __init__(self
, f
, request
, params
, model
, model_admin
,
49 super(DateFinFieldFilterSpec
, self
).__init__(f
, request
, params
, model
,
51 field_path
=field_path
)
53 self
.field_generic
= '%s__' % self
.field_path
55 self
.date_params
= dict([(k
, v
) for k
, v
in params
.items()
56 if k
.startswith(self
.field_generic
)])
57 today
= datetime
.date
.today()
61 '%s__lte' % self
.field_path
: str(today
),
64 annees
= [i
for i
in range(start
, end
, -1)]
67 '%s__lte' % self
.field_path
: "%s-12-31" % str(i
),
72 return "Date borne droite"
74 def choices(self
, cl
):
75 for title
, param_dict
in self
.links
:
76 yield {'selected': self
.date_params
== param_dict
,
77 'query_string': cl
.get_query_string(
79 [self
.field_generic
]),
82 FilterSpec
.filter_specs
.insert(0, (lambda f
: f
.name
== 'date_debut', DateDebutFieldFilterSpec
))
83 FilterSpec
.filter_specs
.insert(0, (lambda f
: f
.name
== 'date_fin', DateFinFieldFilterSpec
))