Hello Annet!
Your example helps a lot! I'm not yet familiar enough with web2py/
python to realize that I could just extend the empty user() controller
(and I don't think I came across an example in the web2py book or the
online examples).
Since I already had my own my_profile() controller, what I did is,
def user():
...
if request.args(0)=='profile'
my_profile_dict = my_profile()
return my_profile_dict
...
I don't know if that's proper usage/style for python/web2py, but it
works fine!!
Thanks!!!
Luis.
On May 28, 11:22 pm, annet <[email protected]> wrote:
> Hi Luis,
>
> I am not sure I understand your question correctly, but as far as I
> know default/user/profile is based on the auth_user table, to which
> you can add any field you want e.g.
>
> # Custom Auth table definition
> db.define_table(auth.settings.table_user_name,
> Field('username', length=20, unique=True),
> Field('first_name', length=128, default='', comment='required'),
> Field('last_name', length=128, default='', comment='required'),
> Field('email', length=128, default='', unique=True),
> Field('hide_email', 'boolean', default=False),
> Field('phone', length=64, default=''),
> Field('homepage', requires=IS_EMPTY_OR(IS_URL())),
> Field('facebook_access_token', writable=False, readable=False),
> Field('flickr_user', label='Flickr Screenname'),
> Field('flickr_id', writable=False),#, readable=False), # computed,
> see below
> Field('twitter_user'),
> Field('bio', 'text', default=''),
> Field('ref_friends' , 'list:reference
> '+auth.settings.table_user_name,
> writable=False, readable=False),
> Field('password', 'password', length=64, readable=False,
> label='Password'),
> Field('registration_key', length=512, writable=False,
> readable=False,
> default=''),
> Field('reset_password_key', length=512, writable=False,
> readable=False,
> default=''),
> Field('registration_id', length=512, writable=False,
> readable=False,
> default=''),
> Field('record_created', 'datetime', default=request.now,
> writable=False,
> readable=False),
> Field('record_updated', 'datetime', default=request.now,
> update=request.now, writable=False, readable=False)
> )
>
> Whether a field is editable in default/user/profile depends on
> writable and readable being True or False.
>
> In one of my apps I wanted the form to display differently, I solved
> this by adding the following lines of code to the default/user
> function:
>
> form=auth()
> if isinstance(form,FORM):
> form[0][-1]
> [1].append(INPUT(_type="button",_value="Cancel",_onclick="window.location='
> %s';"%URL(r=request,c='usercms',f='index')))
> if request.args(0)=='login':
> form.element(_type='submit')['_value']='Login'
> if request.args(0)=='profile':
> response.view='default/profile.html'
> return dict(form=form)
>
> I hope this point you in the right direction.
>
> Kind regards,
>
> Annet.