Adds filtering by ranges of dates in the admin filter sidebar.
Python HTML
Switch branches/tags
Nothing to show
Pull request Compare This branch is 74 commits ahead of coolchevy:master.
Latest commit 5a7ba43 May 19, 2017 @simon-online simon-online committed with yeago Fix for the "fix daterange_filter function" merged pull request. (#17)
This fixes the issue of the date range filter being cleared when another filter is selected, as suggested by @f0x11.

README.rst

ABANDONED

Check this PR to get more info: https://github.com/tzulberti/django-datefilterspec/pull/17

Build status

django-daterange-filter

Add the option to filter by a custom date range on the admin. This allows to inputs to be used to get the custom date range filters.

See datefilter.png of a screenshot of how this is seen on the admin.

IMPORTANT: this will work with Django 1.4. I won't work with previous Django versions.

Installation

Use pip/easy_install

pip install django-daterange-filter

Add daterange_filter to settings.INSTALLED_APP. For this, edit the setup.py file:

INSTALLED_APPS = (
    ...
    'daterange_filter'
)

After this, if you have a model like this one:

class MyModel(models.Model):
    ...
    foo = models.CharField(max_length=1, choices=BAR_CHOICES)
    created_at = models.DateField()

To allow to filter the created_at field using the date ranges, you must edit the admin.ModelAdmin referenced to that class:

from daterange_filter.filter import DateRangeFilter
from django.contrib import admin
from models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    list_filter = (
        'foo',
        ('created', DateRangeFilter), # this is a tuple
        ...
    )

DateRangeFilter honours localization and supports local date formats for filtering.

Running tests

First pip install -r requirements.txt, then python ./runtests.py

If you wanna run tests on all supported Python/Django versions, execute tox.

Changes

1.3.0:

1.1.1:

0.2.0:

  • Updated README
  • Works with DateTime (special thanks to Andrea Rabbaglietti)

0.1.1: