learning-unlimited/ESP-Website — pull request #1525 by benjaminjkraft (2014-12-30 23:05:14+00:00)
Title: Flag search rewrite

This isn't done yet (so don't merge), but I figured I'd put the code up if anyone has comments. I rewrote what was formerly the class flag search with a much more general backend, which is in `esp.utils.query_builder`. This should be a lot easier to extend to add new fields and make other modifications, and it's general enough that we should be able to build other search interfaces without too much trouble.

Notes:
* It doesn't yet have any new features over the old one, but they should be easier to add now.
* I might eventually put it into a separate library -- the query builderr core is not very tightly bound to the ESP website or even django really -- but for now it's here.
* The client-side part is all in React; I also added another JS library called [lodash](http://lodash.com/) which gives various useful functional primitives like `_.map` that work in all browsers.

Known TODOs:
- [ ] fix styling because it's unusably ugly right now
- [ ] add documentation
- [ ] docstrings, docstrings everywhere (add some, update some)
- [ ] documentation of data interchange formats
- [ ] documentation of how to write a new input
- [ ] documentation of the interface of the QueryBuilder class
- [ ] remove old class flag search page and redirect to this one
- [ ] add new features including various open class flags issues