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 annees
= [i
for i
in range(start
, end
, -1)]
28 '%s__gte' % self
.field_path
: "%s-01-01" % str(i
),
33 return "Date borne gauche"
35 def choices(self
, cl
):
36 for title
, param_dict
in self
.links
:
37 yield {'selected': self
.date_params
== param_dict
,
38 'query_string': cl
.get_query_string(
40 [self
.field_generic
]),
43 class DateFinFieldFilterSpec(FilterSpec
):
44 def __init__(self
, f
, request
, params
, model
, model_admin
,
46 super(DateFinFieldFilterSpec
, self
).__init__(f
, request
, params
, model
,
48 field_path
=field_path
)
50 self
.field_generic
= '%s__' % self
.field_path
52 self
.date_params
= dict([(k
, v
) for k
, v
in params
.items()
53 if k
.startswith(self
.field_generic
)])
54 today
= datetime
.date
.today()
58 annees
= [i
for i
in range(start
, end
, -1)]
61 '%s__lte' % self
.field_path
: "%s-12-31" % str(i
),
66 return "Date borne droite"
68 def choices(self
, cl
):
69 for title
, param_dict
in self
.links
:
70 yield {'selected': self
.date_params
== param_dict
,
71 'query_string': cl
.get_query_string(
73 [self
.field_generic
]),
76 FilterSpec
.filter_specs
.insert(0, (lambda f
: f
.name
== 'date_debut', DateDebutFieldFilterSpec
))
77 FilterSpec
.filter_specs
.insert(0, (lambda f
: f
.name
== 'date_fin', DateFinFieldFilterSpec
))