Django time widget with custom time shortcuts

How to customize Django admin time widget to set desired time shortcuts.
Posted on Feb. 19, 2010 in archive, django django-admin, django.

This small javascript snippet replaces standard django clock shortcuts Midnight, Noon, Now & 6am with various time increments .

$(window).load(function() {
  $('.timelist').each(function(num, el) {
    time_format = get_format('TIME_INPUT_FORMATS')[0];
    $(el).html('');
    for (i=8; i<20; i++) {
      var time = new Date(1970,1,1,i,0,0);
      lnk = "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + 
                  ", '" + time.strftime(time_format) + "');"
      $(el).append('<li><a href="'lnk'">' + time.strftime('%H:%M') + '</a></li>');
    }
  });
});

This snippet use JQuery which is available with Django 1.2. (dev at time of writing)
Also, javascript should be loaded after DateTimeShortcuts.js but unfortunately I didn’t find a better way to achive this but to add in modified base admin site templates/admin/base_site.html. If you have any suggestion for improvement, let me know in comments.

Share on Reddit