1 # -*- coding: utf-8 -*-
3 from django
.utils
.encoding
import smart_unicode
4 from django
.template
import Library
5 from django
.utils
.http
import urlencode
7 from datamaster_modeles
.models
import Implantation
, Region
13 @register.inclusion_tag('admin/filter_select.html', takes_context
=True)
14 def filter_region(context
):
15 return {'title': u
"région",
16 'choices': prepare_choices(Region
.objects
.values_list('id', 'nom'), 'implantation__region', context
, remove
=['pays', 'nord_sud'])}
19 @register.inclusion_tag('admin/filter_select.html', takes_context
=True)
20 def filter_implantation(context
):
21 return {'title': u
"implantation",
22 'choices': prepare_choices(Implantation
.objects
.values_list('id', 'nom'), 'implantation', context
)}
25 def get_query_string(request
, new_params
=None, remove
=None):
26 if new_params
is None: new_params
= {}
27 if remove
is None: remove
= []
28 p
= dict(request
.GET
.items())
33 for k
, v
in new_params
.items():
39 return '?%s' % urlencode(p
)
42 def prepare_choices(choices
, query_param
, context
, remove
=[]):
43 request
= context
['request']
44 query_val
= request
.GET
.get(query_param
)
45 result
= [{'selected': query_val
is None,
46 'query_string': get_query_string(request
, {}, [query_param
] + remove
),
49 result
.append({'selected': smart_unicode(k
) == query_val
,
50 'query_string': get_query_string(request
, {query_param
: k
}, remove
),