You just need a view for register.html that does not extend layout and contains a custom form.
On Mar 26, 6:49 am, Yannick <ytchatch...@gmail.com> wrote: > Thanks Massimo, Yes it's working now... Thousand thanks... BUT I still > don't know how I can have more control on the display of each field: > Like it's possible to load each field and display them as I want ? > > - And I also wanted to know how to catch the error messages so I can > display them like I want... Like being able to get the error message > like this: > {{if formname.errors.email:}} Email {{=formname.errors.email}} > {{pass}} > > Please let me know, I feel like I don't have much flexibility for form > displayed other than putting this in the client side > "{{=LOAD('BuRegAuth', 'register', ajax_trap=True)}} " > > Thanks a lot for your help, > Yannick P. > > On Mar 26, 12:02 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > You have two problems: > > > 1) you are calling register twice. In index() and the LOAD callback. > > That generates two forms and confuses web2py on which one you are > > submitting. So index should just be > > > 2) You specify onaccept both in settings and as argument of the > > register function. The latter overrides the former. > > > Bottom line: replace this > > > auth.settings.register_onaccept = updateInfo > > ... > > def register(): > > ... > > return auth.register(onaccept=lambda > > form:response.headers.update({'web2py-component- > > command':"document.location='%s'"%next})) > > ... > > def index(): > > return dict(register = register()) > > > with this > > > # auth.settings.register_onaccept = updateInfo > > ... > > def register(): > > ... > > return auth.register(onaccept=lambda > > form:(updateinfo(form),response.headers.update({'web2py-component- > > command':"document.location='%s'"%next}))) > > ... > > def index(): > > return dict() > > > On Mar 25, 10:39 pm, Yannick <ytchatch...@gmail.com> wrote: > > > > Thanks. Here is the complete action: > > > > ############################################ > > > # I'm testing the registration with Ajax and here > > > # is my simple Controller > > > ############################################ > > > from applications.TestApp.modules.ControllerUtils import * > > > controlUtils = ControllerUtils(db) > > > > # Registration Setting Information > > > auth.settings.registration_requires_verification = False > > > auth.settings.registration_requires_approval = False > > > > def updateInfo(form): > > > setTrue = True > > > setFalse = False > > > # Create a brand new album for each newly created account > > > feedback = db.album.insert(buacct_fk = session.auth.user.id, > > > albumname="Default", albumdesc="This > > > is your default Album", > > > albumviewprv=setFalse, > > > albumactif=setTrue) > > > > # Send a welcome email > > > controlUtils.sendEmail(form.vars.email, > > > 'Welcome to ', > > > 'Enjoy the journey' > > > ) > > > return dict() > > > > auth.settings.register_onaccept = updateInfo > > > > def register(): > > > auth.settings.table_user.delete_email.writable = False > > > auth.settings.table_user.acct_frozen_cmt.writable = False > > > auth.settings.table_user.accountFrozen.writable = False > > > auth.settings.table_user.creationTime.writable = False > > > auth.settings.table_user.language.writable = False > > > auth.settings.table_user.birthday.writable = False > > > auth.settings.table_user.delete_email.readable = False > > > auth.settings.table_user.acct_frozen_cmt.readable = False > > > auth.settings.table_user.accountFrozen.readable = False > > > auth.settings.table_user.creationTime.readable = False > > > auth.settings.table_user.birthday.readable = False > > > auth.settings.table_user.language.readable = False > > > > next = URL(r=request,f='index') > > > return auth.register(onaccept=lambda > > > form:response.headers.update({'web2py-component- > > > command':"document.location='%s'"%next})) > > > > def index(): > > > return dict(register = register()) > > > > ######################################################## > > > # The View "index.html": Very simple since i'm testing registration > > > with Ajax... > > > ######################################################## > > > <div> > > > <br/> > > > <br/> > > > {{=LOAD('BuRegAuth', 'register', ajax_trap=True)}} > > > </div> > > > > ##### > > > And also I notice that everything is displayed as textfield, How can I > > > have more control, about being able to display some fields as drop > > > down etc... > > > I also notice that this below have NO effect : > > > - auth.settings.table_user.birthday.writable = False > > > - auth.settings.table_user.birthday.readable = False > > > (the fields still appear in the form) > > > > Thanks for your help. > > > > Yannick P. > > > > On Mar 25, 8:49 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > I think something else must be interfering with the session formkeys. > > > > I would need to look at the complete action and view. > > > > > On Mar 25, 7:27 pm, Yannick <ytchatch...@gmail.com> wrote: > > > > > > Thanks for the note... But I tried it, I don't have the error anymore > > > > > but the data is not saved in the DB... I run in debug mode and put and > > > > > break point in my action "def register():" and I notice that the form > > > > > validation is not successful in the method "register()" of the Class > > > > > Auth() of "Tools.py"... I have no clue why it fails... The same value > > > > > works fine (recorded in DB) without the AJAX... > > > > > > If you have any hint please let me know... I search a lot in the > > > > > threads of this Web2py group and I can't find an example of how to > > > > > used Auth Api with Ajax... > > > > > > Yannick P. > > > > > > On Mar 25, 1:19 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > > One more try > > > > > > > def register(): > > > > > > next = URL(r=request,f='index') > > > > > > return auth.register(onaccept=lambda > > > > > > form:response.headers.update({'web2py-component- > > > > > > command':"document.location='%s'"%next})) > > > > > > > On Mar 25, 11:58 am, Yannick <ytchatch...@gmail.com> wrote: > > > > > > > > Hello thanks Massimo for the note... But I can't make it work... > > > > > > > the > > > > > > > change_password() doesn't change the value in the DB... So I tried > > > > > > > other function just to test like "register()" and in this case i > > > > > > > even > > > > > > > have an error message saying "TypeError: list objects are > > > > > > > unhashable"... I really don't know what I'm doing wrong up here... > > > > > > > Below it's the controller and view... Please let me know if you > > > > > > > have > > > > > > > any idea... > > > > > > > > ################# > > > > > > > #View "index.html" > > > > > > > ################# > > > > > > > ..... > > > > > > > ..... > > > > > > > {{=LOAD('default','register',ajax_trap=True)}} > > > > > > > ..... > > > > > > > ..... > > > > > > > ################### > > > > > > > #Controller: "default.py" > > > > > > > ################### > > > > > > > def register(): > > > > > > > next = URL(r=request,f='index') > > > > > > > return auth.register(onaccept=lambda form: > > > > > > > response.headers.update({['web2py-component- > > > > > > > command']:"document.location='%s'"%next})) > > > > > > > > def otherAction(): > > > > > > > ..... > > > > > > > ..... > > > > > > > return dict(..........) > > > > > > > > def index(): > > > > > > > return (register = register(), otherAction=otherAction()) > > > > > > > > ######################### > > > > > > > # Here is the error message > > > > > > > ######################## > > > > > > > Traceback (most recent call last): > > > > > > > File "gluon/restricted.py", line 173, in restricted > > > > > > > File "C:/Documents and > > > > > > > Settings/YannickT/web2py/applications/events/ > > > > > > > controllers/default.py", line 70, in <module> > > > > > > > File "gluon/globals.py", line 96, in <lambda> > > > > > > > File "C:/Documents and > > > > > > > Settings/YannickT/web2py/applications/events/ > > > > > > > controllers/default.py", line 27, in register > > > > > > > File "gluon/tools.py", line 1271, in register > > > > > > > File "C:/Documents and > > > > > > > Settings/YannickT/web2py/applications/events/ > > > > > > > controllers/default.py", line 27, in <lambda> > > > > > > > TypeError: list objects are unhashable > > > > > > > > Thanks for your help, > > > > > > > Yannick P. > > > > > > > > On Mar 24, 10:17 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > > > > My bad > > > > > > > > > auth.change_password(onaccept=lambda form: > > > > > > > > response.headers.update({'web2py- > > > > > > > > component-command']:"document.location='%s'"%next})) > > > > > > > > > On Mar 24, 8:21 pm, Yannick <ytchatch...@gmail.com> wrote: > > > > > > > > > > Sorry but I have a lot of syntax error in the action: > > > > > > > > > > auth.change_password(onaccept=lambda form: > > > > > > > > > response.headers['web2py- > > > > > > > > > component-command']="document.location='%s'"%next)) > > > > > > > > > > I don't seems to see why... Please let me know if you see > > > > > > > > > it... > > > > > > > > > Thanks, > > > > > > > > > > On Mar 24, 2:00 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > > > > > > > > ################################################### > > > > > > > > > > <script> > > > > > > > > > > $("#pwdChangeForm").submit(function(){ > > > > > > > > > > url={{=URL(r=requet, f="changePwd")}}; > > > > > > > > > > ids = ['currentpwd', 'pwd1', 'pwd2']; > > > > > > > > > > ajax(url, ids, 'confirmationMsg'); # This is the Ajax > > > > > > > > > > method that > > > > > > > > > > is coming with Web2py > > > > > > > > > > return false; > > > > > > > > > > > }); > > > > > > > > > > > </script> > > > > > > > > > > > In view: > > > > > > > > > > {{=LOAD('defualt','changePwd',ajax_trap=True)}} > > > > > > > > > > > ###################################### > > > > > > > > > > # Action: (Here I want to use the Auth method named > > > > > > > > > > change_password. ) > > > > > > > > > > ############################## > > > > > > > > > > def changePwd: > > > > > > > > > > next = > > ... > > read more » -- You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web...@googlegroups.com. To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/web2py?hl=en.