﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
29519	Django admin actions: _selected_action disregarded when `difference` is applied to queryset via filters	Andreas Galazis	nobody	"I have an admin with filters where one of them is: 
{{{
#!div style=""font-size: 80%""
Code highlighting:
  {{{#!python
class NegatedMyFiledFilter(MyFieldListFilter):
    title = ('excluded Fields')
    parameter_name = 'nonField'

    def queryset(self, request, queryset):
        if self.values():
            queryset_to_negate = super(
                NegatedMyFieldFilter, self
            ).queryset(request, queryset)
            return queryset.difference(queryset_to_negate)
  }}}
}}}
Where MyFieldListFilter is a filter that extends admin.SimpleListFilter
When the above filter is applied(alone or in combination with others) _selected_action is not respected when applying an action and as a result actions get applied to all records, not  just the selected ones 
As a hack I ended up doing in one of my custom actions :
{{{
#!div style=""font-size: 80%""
Code highlighting:
  {{{#!python
    qs_ids = queryset.values_list('pk', flat=True)
    selected_ids = request.POST.getlist('_selected_action',qs_ids)
    return TimeSheet.objects.filter(
        pk__in=qs_ids,
    ).filter(pk__in=selected_ids).update(my_flag=True)
  }}}
}}}
but I was expecting the framework to do the second filtering for me
The above happens in version 1.11.13"	Uncategorized	new	contrib.admin	1.11	Normal			Andreas Galazis	Unreviewed	0	0	0	0	0	0
