I've been working quite a lot on the upcoming Grappelli version (2.1). But the changes made were too big and took much longer than expected. So the other team members decided to make a quick 2.1 release just to be comptatible with Django 1.2 as soon as possible and delay the other changes to version 2.2.
I think it was a good move, 2.2 will bring lots of new changes and rushing things could spoil an awesome release.
So here's a quick preview of what's coming for Grappelli 2.2:
Having a new clean DOM structure along with jQuery/UI at hand got me thinking a lot about the general UI design of Grappelli. We will now have way more latitude to explore new or exotic UI patterns to make the admin even more usable.
One of the first thing that bugs me is the right sidebar that contains the search and filter boxes in object list, I think it's not as useful as it could be.
Someone else in the team decided to put a fixed position footer bar which shows the object count in the object list view and shows the save/delete buttons in the object views. I think it was pretty clever since it allowed to make those button available permanently, from wherever scroll position you are.
So I started thinking abour some kind of data drilling bar or whatever for the object list. I had the picture quite clearly in my mind, but there's one thing I could find any simple answer for.. how to display filters in a horizontal manner so that many filters can by applied. In other words, how to make it scale.
So I decided to try to make a mockup, maybe I would find some idea along the way .. but the most compact way I could devise is still somewhat unscalable. I can't see 15 applied filters could fit 17" monitor. I know this is an edge case, but rock solid UI design is also about edge cases.
I decided to take a chance post my ideas on my blog to see if someone smarter than me could come up with a better idea.
Here's what my concept looks like:
I am an Experience Architect (like a senior UX Designer) at Microsoft and a few other places.
You are onto some good things here and have an interesting problem. I don't fully understand your use cases but I have a few comments for you that maybe will help you and whomever mock up a few things.
Why do all of the filters have to be plainly visible at the same time? Could they collapse after you have reached X number of Filters? Then some method to reveal them all? If you went down that road, the reveal could be much more usable, giving more space to show options and selections.
Get rid of the check boxes. Make the text of each selection a button. It will make it faster and more apparent.
If you do go down the physical metaphor route, I would recommend designing a query builder type mechanism. Allowing people to rearrange the order, the items, and have a method to use them in an interesting way.
Other question. Do you allow saving of filter strings? If you are designing for a set of 15 filters, you need to allow them to save them and interchange them.
Now if you follow all of my ideas, you can see how easily the switching between filters AND saved filters would all have the same interactions and thus easily learned. For some context you can read my paper and blog on OCGM, a method for designing Modern Experiences at http://blog.rongeorge.com
Good Luck.
@Ron
Very insightful input thank you.
I think that from a usability POV it make sense to show them because they affect directly the main content that the user is looking at..
Agree.
I like the query builder analogy and this is basically what I want the bar to be, a query builder. That said I have to verify how django deals with the parameters. I'm not 100% sure the ORM really cares about the order of the filters.
I think the idea of being able to save a query set (not just filters) is pretty good and would be quite useful. I will definitely explore this route eventually.
Thanks a lot for your advices.