On Mon, Dec 14, 2009 at 12:17:31PM -0800, Almost George wrote: > An Attendee, being added to an Event, must already exist in the > system. If the given Attendee doesn't exist, the user should be > prompted to create it/them (validly) before continuing further. > > Likewise when selecting the Event Venue - if it doesn't exist, it must > be created. > > Of particular note, Venues have some required meta-information that > must be filled out before it can be considered valid. > > That's quite a bit of "add and/or create+validate", and I'm not sure > how to implement that. I'm assuming I'll be using the Form Wizards, > but at this point I'm just not sure where to start.
This is implemented in admin using popups, your easiest way would be to copy / reuse that. I'll have to work on a solution without popups in order to have: 1. A single browser window, to avoid user confusion if you have nested ForeignKeys (admin opens a popup for each). 2. Pagination / filtering, since admin's <select> controls don't scale if you have anything more than a dozen of Attendees. I've looked into form wizards for that, but I don't think they are flexible enough. First, if you already have an Attendee, I couldn't find a way to skip that form. Second, the state is held in the POST requests. The advantage is that a user may open several browser windows and use different forms with complex workflows. The disadvantage is POST -- if you want POST-redirect-GET to avoid some of the issues with back / refresh (I'm using 1.0; you might want to look at http://code.djangoproject.com/ticket/9200). So, ATM I think we need a "workflow engine", which would display forms with PRG and hold intermediate data and "return stack" in sessions. I've scribbled together a couple of lines (not general, and nothing working yet); the problem with my design is, it will always have its limitations. For instance, if the user opens two browser windows and would add two new Events, continuing in another window at an "unfavorable" moment may result in a mess, although one may always customize that for one's needs. Another hurdle was pickling the form data into the session; I've skimmed through #9200 for that, but couldn't find how it does that yet. If anyone has code or ideas, I'd like to hear about that, too. With kind regards, -- Baurzhan Ismagulov http://www.kz-easy.com/ -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.