Open mgersh opened 9 years ago
Another option is to improve our formstack integration, or add a google docs or other survey/form-filling software integration, so that we don't have to do this ourselves at all. Or it's possible there's a pluggable django app out there that does what we want, although I didn't find anything that looks worth using in 10 seconds of googling.
I found a few pluggable apps that do most of what we want. The closest is probably https://github.com/stephenmcd/django-forms-builder. It's notably missing the ability to have questions with correct answers, although we could probably extend it to do that. But external dependencies are annoying and I like having fewer of them.
Formstack integration is powerful, but I'm skeptical that it could have the usability we want, given what I've seen of what we currently use it for. Google forms integration could probably work. I'm not sure it would be any easier or more maintainable than doing our own thing, though.
++ to this proposal
I'm hoping https://github.com/learning-unlimited/ESP-Website/pull/3273 will resolve many of the problems with custom forms. Of course, it's still a black box, and debugging will still be very difficult. However, the changes in the PR should hopefully reduce the amount of debugging that is required.
Continuation of conversation on #1337:
Custom forms is buggy and hard to use. One of the underlying issues, although not the only one, is pretty fundamental to its design: it creates its own database schema and handles the operations at a fairly low level, rather than going through Django models. This might theoretically get us some extra functionality over a system built like Surveys, but as far as I can tell we're not using any. It does cause plenty of problems, though: it's error-prone and hard to maintain (see #1779 for an example), and it means that it acts much more like a black box than everything else in our website. It takes a lot more knowledge and skill to debug than other components do, and admins can't use the admin panel to work around issues with the front end (another source of many bugs).
I'm proposing a rewrite to a system that works essentially the same as Surveys. I haven't really spent time looking into how hard this would be, but I suspect that the hardest part would be migrating the old data, since at the current level of bugginess, a system like Surveys that doesn't even have a front end for creation is still more usable than what custom forms is like right now.