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 annet.verm...@gmail.com 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.