I try to explain with an example:
{{{
class Person(models.Model):
name = models.CharField()
hair_color = models.CharField()
eye_color = models.CharField()
class PersonAdmin(admin.ModelAdmin):
list_filter = ["hair_color", "eye_color"]
}}}
At first I'll see all hair color and eye color values in the filter.
When I select an hair color value from the filter I'll see only person
with that hair color.
I would view in the eye color filter only distinct values of eye colors of
person that have hair color I selected from the filter.
--
Ticket URL: <https://code.djangoproject.com/ticket/19755>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* stage: Unreviewed => Design decision needed
* needs_tests: => 0
* needs_docs: => 0
Comment:
I was just about to close this as worksforme, because your description was
a bit ambiguous -- you're proposing to remove choices from the list
filters if you're already filtering on another value and the filtered set
no longer contains all the choices.
i.e. you have three people:
{{{
[{
'name': 'Bob',
'hair_color': 'brown',
'eye_color': 'blue'
}, {
'name': 'Bruce',
'hair_color': 'brown',
'eye_color': 'hazel'
}, {
'name': 'Brett',
'hair_color': 'ginger',
'eye_color': 'brown'
}]
}}}
and when you filter on brown hair, the list filter for eye color no longer
lists brown, as there are now only two people in the filtered set and they
have blue and hazel eyes.
Seems like an OK idea, though it does require backwards-incompatible
changes to django.contrib.admin. Marking as DDN.
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:1>
Comment (by paulox@…):
Sorry for my ambiguous description.
You're example it's ok and I hope my idea will be implemented in Django
1.6 !
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:2>
Comment (by aaugustin):
I've found it useful to select several filters and check that no records
matched. I think there's some value in showing all the options even if
some of them don't have matching records.
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:3>
Comment (by paulox@…):
I think both cases are useful. You could choose one of two cases
specifying it in the code ?
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:4>
Comment (by aaugustin):
This is a new feature, I suggest starting a discussion on the django-
developers mailing list to see if it gets some traction.
A patch would help (at least a proof of concept).
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:5>
Comment (by paulox@…):
I'm sorry but I'm not a Django core developer and I'm not able to provide
a proof of concept.
I hope you can submit this new feature on the django-developers mailing
list and discuss with other django core developer.
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:6>
Comment (by aaugustin):
Large parts of development of Django is done by people who aren't core
developers :)
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:7>
* status: new => closed
* resolution: => wontfix
Comment:
Since no one is sufficiently interested in the idea to write a patch, or
even send a proposal to django-developers, I'm going to close this feature
request.
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:8>
* status: closed => new
* cc: suligap@… (added)
* has_patch: 0 => 1
* resolution: wontfix =>
Comment:
Patch makes all default `FieldListFilter`s incremental if
`list_filter_incremental` option is `True` for particular `ModelAdmin`.
Incremental filters will contain only choices which when clicked will
result in non-empty changelist.
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:9>
* owner: nobody => suligap
* status: new => assigned
Comment:
I would be happy to finish this patch if it gets any traction.
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:10>
* cc: Collin Anderson (added)
* needs_better_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/19755#comment:11>