Login

Admin actions as buttons instead of a menu

Author:
andybak
Posted:
February 19, 2010
Language:
JavaScript
Version:
1.6
Tags:
admin actions
Score:
2 (after 2 ratings)

Add this to any admin changelist and your actions drop-down will be replaced with user-friendly buttons.

Why mess around with templates and subclassing admin classes when you can just mangle the page with jQuery! ;-)

It also adds a 'select all' label to explain the mystery top check-box (well it was a mystery to several of my clients).

The line "if ($('div.actions option:gt(0)').length<=8)" checks that there aren't more than 8 actions and falls back to the drop-down if there are.

Requires jQuery to be loaded.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
function do_action(action) {
    $('div.actions option[selected]').attr('selected', '');
    $('div.actions option[value='+action+']').attr('selected', 'selected');
    $("div.actions").parent().submit();
}

function fix_actions() {
    $('th.action-checkbox-column:first').prepend('select<br />all<br />');
    if ($('div.actions option:gt(0)').length<=8) { // Only do this for short lists. Probably need to tweak this number.
        
        $('div.actions label, div.actions button').hide();
        actions_html='<div id="action_buttons" style="padding: 2px 0 2px 0;">';
        $('div.actions option:gt(0)').each(function(i) {
            actions_html+='<a href="javascript:void(0);" onclick="do_action(\''+this.value+'\');">'+this.text+'</a>';
        });
        actions_html+='</div>';
        $('div.actions').append(actions_html);
    }
}

More like this

  1. Admin actions as buttons instead of a menu [v2] by itavor 3 years, 6 months ago
  2. Drag and drop admin list items by chrsgrrtt 4 years, 10 months ago
  3. Admin action for a generic "CSV Export" by javinievas 4 years, 4 months ago
  4. simple jquery example by lawgon 7 years, 2 months ago
  5. Add admin edit form buttons (work with django 1.6) by shoreward 1 year, 6 months ago

Comments

david_bgk (on February 20, 2010):

Looks interesting! Can you provide a screenshot of this feature?

#

andybak (on February 26, 2010):

I could but trying the code would take you less time than it will take me to upload a screenshot ;-)

#

hellboy (on January 11, 2011):

How can I use it in my projects?

{% extends "admin/change_list.html" %} {% block extrahead %} [HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED] [HTML_REMOVED] [HTML_REMOVED][HTML_REMOVED] {% endblock %}

and?

how to call fix_actions?

#

Please login first before commenting.