Hey Massimo, I think for the SQLFORM custom forms you should add <input type="hidden" value="<field id>" name="id"/> to {{=post_save.hidden_fields()}} and maybe even a {{=post_save.form_start ()}} {{=post_save.form_end()}} function so it can include the correct headers like enctype="multipart/form-data" into the form. This would make make updates with custom forms really easy instead of having to add those lines yourself.
On Nov 20, 10:51 am, ceej <[EMAIL PROTECTED]> wrote: > Using post_save=SQLFORM(db.videos,_video,fields=_update_clip_fields) > can you not specify just certain fields you would like to update > because I'm getting SyntaxError: user is tampering with form. (_video) > being my records. > > On Nov 20, 10:24 am, ceej <[EMAIL PROTECTED]> wrote: > > > Massimo, I totally missed that. I've been up to 4am working to get > > some of the other projects live. Think I might need to take a nap > > lol :) > > > On Nov 20, 10:20 am, mdipierro <[EMAIL PROTECTED]> wrote: > > > > if post_save.accepts(post_save,session): > > > > should be > > > > if post_save.accepts(request.vars,session): > > > > but you know this already. > > > > Massimo > > > > On Nov 20, 12:17 pm, ceej <[EMAIL PROTECTED]> wrote: > > > > > Hi Massimo, > > > > > I've tried: > > > > > _update_clip_fields=[ > > > > 'title', > > > > 'description', > > > > 'tags', > > > > 'length' > > > > ] > > > > post_save=SQLFORM(db.videos,fields=_update_clip_fields) > > > > if post_save.accepts(post_save,session): > > > > response.flash="Updated Video" > > > > return dict(_video=_video,post_save=post_save) > > > > > But I get an error: > > > > > Traceback (most recent call last): > > > > File "/Users/blank/Dropbox/Sites/myapp/source/gluon/restricted.py", > > > > line 62, in restricted > > > > exec ccode in environment > > > > File "/Users/blank/Dropbox/Sites/myapp/source/applications/myapp/ > > > > controllers/api.py", line 150, in <module> > > > > File "/Users/blank/Dropbox/Sites/myapp/source/gluon/globals.py", > > > > line 55, in <lambda> > > > > self._caller=lambda f: f() > > > > File "/Users/blank/Dropbox/Sites/myapp/source/applications/myapp/ > > > > controllers/api.py", line 105, in edit_clip > > > > if post_save.accepts(post_save,session): > > > > File "/Users/blank/Dropbox/Sites/myapp/source/gluon/sqlhtml.py", > > > > line 155, in accepts > > > > raw_vars=dict(vars.items()) > > > > AttributeError: 'SQLFORM' object has no attribute 'items' > > > > > On Nov 9, 11:01 pm, mdipierro <[EMAIL PROTECTED]> wrote: > > > > > > Attention!!! I posted in trunk a complete rewrite of gluon/html.py > > > > > > In my tests it does not break anything but please try it and let me > > > > > know if it break something before I post an new web2py version. > > > > > > The reason for the rewrite is mainly to make form processing twice as > > > > > fast and the code more readable, but also to include Bill's patch in a > > > > > more elegant way. The new html is 5% smaller than the previous one. > > > > > > About the comments below: > > > > > > 1) I agree with Bill > > > > > 2) one can do db.table[fieldname].label and get the label (*) > > > > > 3) I agree. One can do {{if form.errors.has_key(fieldname):}} > > > > > {{=form.errors[fieldname}}{{pass}} (*) > > > > > 4) Now you can do acustomform like > > > > > > db.define_table('person',SQLField('name')) > > > > > > def index(): > > > > > form=SQLFORM(db.person) > > > > > if form.accepts(request.vars,session) > > > > > return dict(form=form) > > > > > > {{if form.errors:}}{{=form.errors}}{{pass}} > > > > > <form> > > > > > <input type="text" name='name' value="{{=form.values.name}}" /> > > > > > <input type="submit" /> > > > > > {{=form.hidden_fields()}} <!--you need this to prevent double > > > > > submission and allow multipleforms//--> > > > > > </form> > > > > > > Please let me know if it works. I am hoping to post a new release > > > > > before my talk at pyworks2008. > > > > > > Massimo > > > > > > On Nov 10, 12:06 am, billf <[EMAIL PROTECTED]> wrote: > > > > > > > 1) tables over something else: it does seem to be a subject of > > > > > > great > > > > > > discussion that people get very energised about. But I guess that > > > > > > if > > > > > > you take out tables then someone else will object :-) Isn't the > > > > > > idea > > > > > > ofcustomformsthat if you want labels you code your own view? > > > > > > > 2) labels: personally I don't think the specification of labels fits > > > > > > elegantly in the model or the controller but I recognise the need to > > > > > > put them somewhere if you want to avoid duplicating them in multiple > > > > > > views. Ideally, they could be defined in an application view, e.g. > > > > > > layout.html, and referenced by views that extend that - is that > > > > > > possible? I would interested to hear other people's views. > > > > > > > 3) I thinkcustomerror handling is part ofcustomviews: the > > > > > > developer has access to the field value and error messages so can do > > > > > > what they want. > > > > > > > 4) Sounds great: once spec'd it will be interesting to see if these > > > > > > are core web2py or not. > > > > > > > My original proposal grew out of my own requirements to convert an > > > > > > existing app to web2py: I just wanted access to the latest values > > > > > > and/ > > > > > > or html component (to handle SELECTs). As such the proposal works > > > > > > fine. > > > > > > > However, since then, I have got interested in (IMHO) cleaning up the > > > > > > web2py approach to MVC. By that I mean, no view stuff in the model > > > > > > (e.g. labels) or the controller (passing labels to SQLFORM) and > > > > > > separating db updates from html creation (both in SQLFORM). So I > > > > > > have > > > > > > been developing some ideas that are probably at the point where > > > > > > group > > > > > > comment would be really useful. I would post them as a blueprint > > > > > > but > > > > > > this forum seems to be the place to get feedback so I am going to > > > > > > create a new thread. > > > > > > > On Nov 10, 4:39 am, mdipierro <[EMAIL PROTECTED]> wrote: > > > > > > > > fine with everything but what's the problem of table in form. You > > > > > > > can > > > > > > > use CSS to completely override the table layout and more the TD > > > > > > > anywhere you like on the screen as if they were a DIV. Am I wrong? > > > > > > > > Massimo > > > > > > > > On Nov 9, 10:30 pm, DenesL <[EMAIL PROTECTED]> wrote: > > > > > > > > > Regarding this subject, I have been running some tests as time > > > > > > > > permits. > > > > > > > > May I suggest the following (which I might have mentioned > > > > > > > > before): > > > > > > > > > 1) The form needs to be more CSS friendly (following the MVC > > > > > > > > pattern). > > > > > > > > This means no tables. > > > > > > > > In my tests I have been able to trim the fields to: <label...> > > > > > > > > +<input...>+comment+<br/> > > > > > > > > and with very simple CSS make the form look like the current > > > > > > > > one. > > > > > > > > More complex CSS could be used to position each element > > > > > > > > individually > > > > > > > > if desired. > > > > > > > > > 2) For each field passed to the form its label and its value > > > > > > > > must be > > > > > > > > accessible in the view via a statement similar to the one > > > > > > > > mentioned > > > > > > > > above: {{=form.latest.field}}, mine look like > > > > > > > > {{=form.label.field}} > > > > > > > > and {{=form.value.field}}. Labels are required for translation > > > > > > > > purposes. Some field values, like those of select type fields, > > > > > > > > require > > > > > > > > special consideration; specially when the fields can be > > > > > > > > converted to > > > > > > > > display only (e.g. using DIV instead of INPUT). > > > > > > > > > 3)Customformsalso needcustomform error handling. My solution so > > > > > > > > far is to use a small JS to change the background color of the > > > > > > > > fields > > > > > > > > in error and change the title attribute to hold the error, so > > > > > > > > hovering > > > > > > > > a field in error displays the error message. But this is > > > > > > > > probably a > > > > > > > > matter of personal preference. Same as replacing the comment > > > > > > > > with an > > > > > > > > image of a question mark that opens the text when requested > > > > > > > > without > > > > > > > > cluttering the form. > > > > > > > > > 4) In the future I would like to integrate the automatic > > > > > > > > creation of > > > > > > > > cascaded fields and autocompletes if possible. > > > > > > > > > I could be leaving something out but things tend to come out on > > > > > > > > the > > > > > > > > ensuing discussion. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---