- Appplied filters to queryset check for length of items in change list
- Added conditional in template to show/hide sort linkmaster
parent
1e395ab3f0
commit
478600fd5a
|
|
@ -40,7 +40,19 @@ class SortableAdminBase(object):
|
|||
its sort order can be changed. This view adds a link to the
|
||||
object_tools block to take people to the view to change the sorting.
|
||||
"""
|
||||
if get_is_sortable(self.get_queryset(request)):
|
||||
|
||||
# apply any filters via the querystring
|
||||
filters = {}
|
||||
|
||||
for k, v in request.GET.items():
|
||||
filters.update({ k: v })
|
||||
|
||||
# Check if the filtered queryset contains more than 1 item
|
||||
# to enable sort link
|
||||
queryset = self.get_queryset(request).filter(**filters)
|
||||
self.is_sortable = False
|
||||
|
||||
if get_is_sortable(queryset):
|
||||
self.change_list_template = \
|
||||
self.sortable_change_list_with_sort_link_template
|
||||
self.is_sortable = True
|
||||
|
|
@ -51,8 +63,10 @@ class SortableAdminBase(object):
|
|||
extra_context.update({
|
||||
'change_list_template_extends': self.change_list_template_extends,
|
||||
'sorting_filters': [sort_filter[0] for sort_filter
|
||||
in getattr(self.model, 'sorting_filters', [])]
|
||||
in getattr(self.model, 'sorting_filters', [])],
|
||||
'is_sortable': self.is_sortable
|
||||
})
|
||||
|
||||
return super(SortableAdminBase, self).changelist_view(request,
|
||||
extra_context=extra_context)
|
||||
|
||||
|
|
|
|||
|
|
@ -24,9 +24,11 @@
|
|||
<a href="./sort/?sort_filter={{ forloop.counter0 }}">{% trans 'Change Order of' %} {{ sorting_filter }}</a>
|
||||
</li>
|
||||
{% empty %}
|
||||
{% if is_sortable %}
|
||||
<li>
|
||||
<a id="change-order" href="./sort/">{% trans 'Change Order' %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{ block.super }}
|
||||
{% endblock %}
|
||||
|
|
|
|||
Loading…
Reference in New Issue