Turns out our mixin is to blame; semantically, `list_of_items[:5].filter(is_available=True)` should, in theory, take the first 5 items and then return the only items of those five that are available, while `list_of_items.filter(is_available=True)[:5]` should return the first 5 tasks out of all tasks that are available.

The mixin filters tasks by their published status, which happens after the slice, and Django tries to prevent the confusion above by not letting you slice and then filter.

IMO the perfect form of this would then be to override `get_queryset` and do the slicing on the return value of the parent, but this way is fine too, so I left it in. :D