I successfully added the radio button i wanted on my login page but instead 
of using a column in the auth_user table I only created a radio button that 
will assign its value in a session variable. To do so I need to modify the 
if form.accepts(): block to gather the value on submission but I'm not sure 
where to find this piece of code (or what should be in a custom one to keep 
the authentication process working).

my default.py :
user():

if request.args(0)== "login":
    form=auth()
    form.elements()[0].insert(0,LABEL('text1',_class='radioButton'))
    
form.elements()[0].insert(0,INPUT(_type='radio',_class='radioButton',_value='text1'))
    #same for all values 

    #frest of the form (username and password) same as Richard 
implementation
    
    return dict(form=form)

[...]

then if I want to gather the data in a session variable I'll have to change 
the behavior of the auth() form on accepts:

if form.accepts(request,session):
    session.radioButtonValue = form.vars.radioButton    
    
but this will stop the auth to process the rest of the form but I don't 
know what are the mandatory steps to add (couldn't locate the original auth 
accepts process)



On Friday, December 4, 2015 at 4:45:52 PM UTC-5, Jonathan R wrote:
>
> Hi everyone,
> I'm trying to add a radio button on my login form to let the user decide 
> which authentication method he wants to use.
>
> I added a field in the auth_user table and i try to display the 
> corresponding radio button in my login page as follow:
>
> in bd.py
>
> [......]
>
> auth.settings.extra_fields['auth_user']=[Field]('choice', 
> requires=IS_IN_SET(['choice 1','choice 
> 2']),widget=SQLFORM.widgets.radio.widget),]
>
> auth.define_tables(username=True)
>
>
> [...]
>
> in user.html    
>
> [...]
>
> {{form=auth.login()}}
>
> [...]
>
> {{=form.custom.begin}} 
> Method to Use:
> {{=form.custom.widget.choice}}
> </br>
> Username:
> {{=form.custom.widget.username}}
> </br>
> Password:
> {{=form.custom.widget.password}}
> {{=form.custom.submit}} 
> {{=form.custom.end}} 
>
>
> [...]
>
> This displays correctly the Username and password fields as text and 
> password field but instead of the radio Button the app return None.
>
> I checked the db table and the field is created.
>
> What am I doing wrong ?
>
> Thank you for your help.
>
>

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to