Laurent Mignon a écrit : > Jean-Michel FRANCOIS wrote: >> Laurent Mignon a écrit : >>> Jean-Michel FRANCOIS wrote: >>>> Martin Aspeli a écrit : >>>>> Jean-Michel FRANCOIS wrote: >>>>>> Dylan Jay a écrit : >>>>>>> On 12/08/2009, at 1:11 AM, Jean-Michel FRANCOIS wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I need to make a complex form this week. I need to do the same >>>>>>>> form as >>>>>>>> the contact advanced search inside thunderbird. For those who >>>>>>>> doesn't >>>>>>>> know it here is a screen shot: >>>>>>>> http://nsit.uchicago.edu/img/email/tbird-advanced-search.png >>>>>>>> >>>>>>>> The form is built by the user. He can add form fields define >>>>>>>> 'where' to >>>>>>>> search, ... >>>>>>> Do you mean that you want an admin user to be able to change the >>>>>>> schema (fields) through a web UI? >>>>>>> If so I don't think z3cform is for you. That is purely a code based >>>>>>> way setting up a form. >>>>>>> You want PloneFormGen if you want a to email the result or store the >>>>>>> information in a simple table. Otherwise I believe dexterity has a >>>>>>> TTW >>>>>>> schema editing interface right? or at least planned to. >>>>>>> >>>>>>> >>>>>>> >>>>>>>> My question is: >>>>>>>> * Could I use z3cform to do this ? I have tried it but I need to >>>>>>>> define >>>>>>>> a schema. But in my case, I don't know the schema ... it seems >>>>>>>> not the >>>>>>>> good way >>>>>>>> * CMF FormController. I know how to do it with this technology, >>>>>>>> but it >>>>>>>> seems very old and I want my product to be fashionned and have a >>>>>>>> good >>>>>>>> future. >>>>>>>> * By hand ? Coding every things and do not use any other >>>>>>>> technologies >>>>>>>> than browserview. >>>>>>>> * Any other idea ? >>>>>>>> >>>>>>>> -- >>>>>>>> Cordialement, >>>>>>>> Jean-Michel FRANCOIS >>>>>>>> Makina-Corpus >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Product-Developers mailing list >>>>>>>> [email protected] >>>>>>>> http://lists.plone.org/mailman/listinfo/product-developers >>>>>> No. I mean the user build the form. He is able to add or remove form >>>>>> field. What is a form field in this case: It is a set containing >>>>>> those >>>>>> things: >>>>>> >>>>>> A select input with all indexes as options. >>>>>> A select input with constraints as options. >>>>>> An input type text where the user put the value he wants to search >>>>>> for. >>>>>> >>>>>> The UI give the user the ability to add/remove as many form field >>>>>> as he >>>>>> wants throw two buttons: 'more' and 'fewer'. >>>>>> >>>>>> But you have answered at one question: z3cform seems not >>>>>> appropriate. It >>>>>> is better for 'static' forms. >>>>> I'm not sure. You can change the set of fields and widgets quite >>>>> easily in the update() method (or one of the methods it calls), e.g. >>>>> in response to something in the request. >>>>> >>>>> z3c.form would mainly give you fields, widget and validation. How you >>>>> construct the set of fields is up to you. The most common (and most >>>>> documented) pattern is to use an interface, but zope.schema fields can >>>>> exist without an interface and forms can be constructed without a >>>>> context. >>>>> >>>>> But you should expect to spend a few days figuring out z3c.form. I'm >>>>> not aware of any documentation or examples that cover your use case. >>>>> >>>>> Martin >>>>> >>>> Yes I have started doing some codes to learn z3cform. The documentation >>>> is very verbose but I have found a way of doing, you can find the >>>> code here: >>>> http://plone.pastebin.com/m5590d336 >>>> >>>> The idea: using subforms and the more and fewer buttons will be >>>> javascript + css effects that display or not the fields. >>>> >>>> This code seems pretty good to me but failed with this error: >>>> AttributeError: 'SearchForm' object has no attribute 'actions' . >>>> It happens if I define the update method in the global search form. I >>>> don't understand I m calling the upper class, so no differences. If >>>> someone can help me on this, I would be glade. The complete trace is >>>> here: http://plone.pastebin.com/m4f71b339 >>> Update your searchForm before updating subforms. During subform >>> update, the subform try to access the actions defined by parentForm. >>> you can modify your code with: >>> >>> def update(self): >>> super(SearchForm, self).update() >>> for i in range(NUM_FIELDS): >>> setattr(self, 'criteria-%s'%i, >>> CriteriaForm(self.context, self.request, self)) >>> getattr(self, 'criteria-%s'%i).update() >>> or >>> def update(self): >>> super(SearchForm, self).updateActions() >>> for i in range(NUM_FIELDS): >>> setattr(self, 'criteria-%s'%i, >>> CriteriaForm(self.context, self.request, self)) >>> getattr(self, 'criteria-%s'%i).update() >>> super(SearchForm, self).update() >>> >>> Since the update on parentForm call updatActions, I've the feeling >>> that the first way is the right way >>>> Now I m sure z3cform will fit with my needs. >>>> >>>> >>> >>> _______________________________________________ >>> Product-Developers mailing list >>> [email protected] >>> http://lists.plone.org/mailman/listinfo/product-developers >> Thank you for the help, it fix the problem, but the documentation of >> z3cform.subform explicitly show the way I was doing ... so may be >> updating the documentation will be nice. >> >> The code has been cleaned up a bit by using a list to store sub forms >> and I have also past the part of the documentation of z3c.form.subform: >> http://plone.pastebin.com/m5db665e5 >> > The example doesn't use subform.EditSubForm as base class for CarForm > but form.EditForm. So a CarForm instance is not a subform but a simple > form.... > > In your code you use subform.EditSubFrom as baseclass for your > CriteriaForm ... > > That's the difference > >> I don't know if this is a bug coming from z3c.form or plone integration >> but It may need to be said somewhere... I have lost about one hour on >> this ... >>
You must remove the non relevant part of the message. -- Encolpe DEGOUTE http://encolpe.degoute.free.fr/ Logiciels libres, hockey sur glace et autres activités cérébrales _______________________________________________ Product-Developers mailing list [email protected] http://lists.plone.org/mailman/listinfo/product-developers
