Commits

Luke Plant committed 8e23f4d

Updated README

Comments (0)

Files changed (1)

 ====================
- Django EasyFilters
+ django-easyfilters
 ====================
 
-ALPHA software! Not much works yet...
+ALPHA software! Starting to get useful, but APIs still not quite settled.
 
 Overview
 ========
 
-The aim is to make it really easy to add filters to a page showing a
-queryset. The UI of the filters is links i.e. just click on links to add/remove
-filters. The filters also show the counts of the number of objects that would be
-returned with that filter applied, and do so efficiently.
+An app that provides filters like list_filter and date_hierarchy in Django's
+admin, but for use outside the admin, with result counts for the choices,
+and with more intelligence and things 'just working'.
 
-For fields where the values are more like a continuum, the aim is to use
-autogenerated, intelligent ranges. Dates will use something like the Django
-admin's date_hierarchy feature.
+The UI of the filters is links i.e. just click on links to add/remove
+filters.  For fields where the values are more like a continuum, the aim is
+to use autogenerated, intelligent ranges.  Dates will use something like the
+Django admin's date_hierarchy feature.
 
 
 Install
         price = models.DecimalField(max_digits=6, decimal_places=2)
         date_published = models.DateField()
 
+(BINDING_CHOICES, Author and Genre omitted for brevity).
+
 And you have a views.py something like this::
 
     from myapp.models import Book
             ('genre', FilterOptions(order_by_count=True))
         ]
 
+Done so far
+===========
+
+* Support for ForeignKey - RelatedFilter
+* Fallback support for CharField, IntegerField, everything else - ValuesFilter
+* Options:
+  * order_by_count
+* Very good test coverage
+
+TODO
+====
+
+* ManyToManyField
+* DateField, DateTimeField
+* Better support for Field.choices
+* Automatic range-based filters - e.g. for prices
+* More options for customisation
+  * max_links
+  * max_links_visible (javascript hiding)
+  * 'defaults' attribute for FilterSet
+* Docs for customisation
+  * Options provided by FilterOptions
+  * API of Filter
+  * API of FilterSet for overriding rendering
+
 
 Development
 ===========
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.