Hi, ich recently found myself fighting with FormWizard, again. I think its a known fact that the integrated wizard lacks features and needs to be refactored, but this time I struggled using one of the third-party implementations out in the wild (http://github.com/stephrdev/django-formwizard). The limits a wizard for forms inevitable implies did catch me this time, which means I needed to do more than just iterate over forms (I'll write some more details at the end of this mail).
So this got me thinking. We now have shiny new View-classes, some of them to handle forms, but many to do other things. Why not use this to create a new wizard, which just iterates over views (or View-classes) to provide similar functionality like the current FormWizard does. There needs to be - of course - some Mixin to add methods to store/load the saved data into/of some storage, but this would be a thin layer extending the current views. Of course a ViewWizard would outplay the FormWizard, because a FormWizard would just be a ViewWizard containing only Form-Views. So creating a ViewWizard instead of restructuring a new FormWizard would mean creating a nice upgrade path, too (deprecate FormWizard, no need for maintaining backwards compatibility here). I currently have a working prototype, borrowing many things from django-formwizard (method names, storage implementation, ...) and it seems to work fine. This still misses most of the work (docs, test, etc). So, what do you think. Should we try to move forward to a ViewWizard? Greetings, David For the curious, about the shortcomings I ran into: I tried to build a registration process including payment based on the FormWizard. This all worked fine until we needed to add more payment options. Many payment providers (Paypal, Google Checkout, Amazon Whatever) need you to switch to their site for issuing the payment. As a Formizard handles the view-part for you there is no (sane) way to redirect your users to their sites and handle the success-response. A ViewWizard could just send an standard HttpResponseRedirect and do anything else a normal view could do. It'm sure there are many other use cases. -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.
