9ae8adf22ee996fff390e3b05747b13055a84a9a
[htsworkflow.git] / htsworkflow / frontend / samples / changelist.py
1 from django.contrib.admin.views.main import ChangeList
2
3 class HTSChangeList(ChangeList):
4     def __init__(self, request, model, list_filter, search_fields,
5                  list_per_page, model_admin, extra_filters=None):
6         """Simplification of the django model filter view
7
8         The new parameter "extra_filter" should be a mapping
9         of that will be passed as keyword arguments to
10         queryset.filter
11         """
12         self.extra_filters = extra_filters
13         super(HTSChangeList, self).__init__(
14             request, #request
15             model, #model
16             [], # list_display
17             None, # list_display_links
18             list_filter, #list_filter
19             None, # date_hierarchy
20             search_fields, #search_fields
21             None, # list_select_related,
22             list_per_page, #list_per_page
23             20000, #list_max_show_all
24             None, # list_editable
25             model_admin #model_admin
26         )
27
28         self.is_popup = False
29         # I removed to field in the first version
30
31         self.multi_page = True
32         self.can_show_all = False
33
34     def get_query_set(self, request):
35         qs = super(HTSChangeList, self).get_query_set(request)
36         print qs
37         if self.extra_filters:
38             new_qs = qs.filter(**self.extra_filters)
39             if new_qs is not None:
40                 qs = new_qs
41         return qs