How do you suggest I arrange my controller for user? 2017-05-09 16:17 GMT+02:00 Anthony <abasta...@gmail.com>:
> No, you should still set session.flash in your controller code. However, > your view should have {{=response.flash}}, as the framework will move the > value of session.flash to response.flash after the redirect. > > Also, as already noted, you cannot define form=auth() and then > subsequently call form.process(). > > Anthony > > > On Tuesday, May 9, 2017 at 4:15:13 AM UTC-4, Yebach wrote: >> >> Hello >> >> Form is defined as form = auth() >> >> Changing session.flash to response.flash still does not work after user >> >> >> This is my whole user code >> >> def user(): >> form = auth() >> >> if request.args(0)=='profile': >> #uporabnikov Id >> uid = auth.user_id >> #preberem podatke za tega userja iz obeh tabel >> record = db((db.auth_user.organization==db.organizations.id) & ( >> db.auth_user.id == uid)).select().as_list()[0] >> recordd = db((db.auth_user.organization==db.organizations.id) & ( >> db.auth_user.id == uid)).select().first() >> >> #Skrijem nepotrebna polja >> fields_to_hide_org = ['id', 'o_usern', 'o_useru', >> 'o_daten','o_dateu', 'o_status', 'o_code', 'o_faxnumber',\ >> 'o_rootid', 'o_parentid', 'o_levelid', >> 'o_positionx','o_positiony' ] >> >> for fieldname in fields_to_hide_org: >> field = db.organizations[fieldname] >> field.readable = field.writable = False >> >> fields_to_hide_user = ['email', 'password', 'organization'] >> >> for fieldname in fields_to_hide_user: >> field = db.auth_user[fieldname] >> field.readable = field.writable = False >> >> #org_name = db(db.organization.id == >> record["organization"]).select(db.organization.o_name).as_ >> list()[0]["o_name"] >> >> >> #nastavim vrednsoti polj, ki so ze v bazi >> authfields = [field for field in db.auth_user if field.name != >> 'id'] >> >> #print record >> for field in authfields: >> #print field >> field.default = recordd.auth_user[field.name] >> >> orgfields = [field for field in db.organizations if field.name >> != 'id'] >> for field in orgfields: >> field.default = recordd.organizations[field.name] >> >> >> form=SQLFORM.factory(db.auth_user,db.organizations, keepvalues = >> True) >> >> orgid = record["organizations"]['id'] >> #print orgid >> >> if form.process().accepted: >> #Updatam polja v bazi >> org_forma = db.organizations._filter_fields(form.vars) >> for key, value in org_forma.iteritems(): >> #print key, value >> db(db.organizations._id==orgid).update(**{key:value}) >> #db(db.organization.id==orgid).update(key = value) >> >> user_forma = db.auth_user._filter_fields(form.vars) >> for key, value in user_forma.iteritems(): >> db(db.auth_user._id==orgid).update(**{key:value}) >> >> >> session.flash=T('Thanks for filling the form') >> redirect(URL('index')) >> >> return dict(form=form) >> >> >> >> """ >> Tole je sedaj tukaj ker ni delal foreing key na auth_user.organization >> """ >> if request.args(0) == 'register': >> >> #form = auth.register() >> if form.process().accepted: >> database = str(db).rpartition('/')[-1].replace('">', '') >> host = request.http_host >> port = request.http_port >> app = request.application >> if host: >> name = '%s/%s' % (host, app) >> else: >> name = app >> #print form.vars >> userid = form.vars.id >> email = form.vars.email >> first_name = form.vars.first_name >> last_name =form.vars.last_name >> org_name = form.vars.organization >> add_organization(form, userid) >> >> #glede na jezik se izbere formular >> if any("adminLanguage=sl" in s for s in >> request.env.HTTP_COOKIE.split(";")): >> formFile = os.path.join(request.folder, 'private', >> 'formular_WoShi_podatki.doc') >> else: >> formFile = os.path.join(request.folder, 'private', >> 'form_WoShi_data.doc') >> >> >> if not formFile or formFile is None: >> attachment = None >> else: >> attachment = mail.Attachment(formFile, content_id='file') >> >> #print URL(args=request.args, vars=request.get_vars, >> host=True) >> >> app_Url = '%s://%s' % (request.env.wsgi_url_scheme, >> request.env.http_host) >> #print app_Url >> >> regKey = db(db.auth_user.id == userid).select(db.auth_user.re >> gistration_key).first() >> key = regKey.registration_key >> message_content = T('Click on the link ') + app_Url + >> URL(r=request,c='default',f='user',args=['verify_email']) + '/%s ' % >> (key) + T('to verify your email') >> #print message_content >> >> mail.send(to=[email], >> subject='Woshi confirm registration', >> message=message_content, >> attachments = attachment >> ) >> >> ##dodamo še mail za i...@algit.si >> mail.send(to = 'somerandommail', >> subject= 'New user registered in WoShi', >> message = 'A new user '+ first_name + " " + >> last_name +' with e-mail address ' + email +" for organization " + org_name >> + ' has registered to Woshi with url >> address ' >> + name + ' in database ' + database >> ) >> >> #session.flash = T('Thank you for registering. Please check >> your e-mail account') >> response.flash = T('Thank you for registering. Please check >> your e-mail account for further instructions') >> >> #auth.settings.register_onaccept=[session.flash] >> #session.flash=response.flash >> #print response.flash >> #print session >> redirect(URL(request.application, 'default', 'index')) >> #redirect(URL('index')) >> >> return dict(form = form) >> >> 2017-05-08 14:34 GMT+02:00 Anthony <abasta...@gmail.com>: >> >>> On Monday, May 8, 2017 at 5:08:59 AM UTC-4, Yebach wrote: >>>> >>>> Flash is show on my index page so the position <div >>>> class="flash">{{=session.flash >>>> or ''}}</div> is ok >>>> I just put session.flash('Some random text') in my index function and >>>> it works >>>> >>> >>> session.flash is not intended to work that way. You use session.flash >>> only when you are doing a redirect, in which case, it gets moved from >>> session.flash to response.flash after the redirect. So, the template should >>> have {{=response.flash}}, not {{=session.flash}}. >>> >>> >>>> My code for user registration in index.py user >>>> >>>> if request.args(0) == 'register': >>>> >>>> #form = auth.register() >>>> if form.process().accepted: >>>> >>>> #some code >>>> >>>> session.flash = ('Thank you for registering. Please check your >>>> e-mail account') >>>> >>>> redirect(URL(request.application, 'default', 'index')) >>>> >>>> >>> How is "form" defined above? If it is defined as form=auth.register(), >>> then you cannot subsequently call form.process(), as auth.register() >>> already calls form.process(). >>> >>> Anthony >>> >>> -- >>> Resources: >>> - http://web2py.com >>> - http://web2py.com/book (Documentation) >>> - http://github.com/web2py/web2py (Source code) >>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>> --- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "web2py-users" group. >>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>> pic/web2py/Yfvnke6ABWM/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> web2py+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Lep pozdrav >> >> Vid Ogris >> >> >> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > You received this message because you are subscribed to a topic in the > Google Groups "web2py-users" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/web2py/Yfvnke6ABWM/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > web2py+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Lep pozdrav Vid Ogris -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.