Chris, this is something I was working on, based on the t2.pdf example... See if it is of any use to you. The indentation will be screwed up pretty badly, I'm afraid...
These instructions replicate the puppy example in the T2.PDF docs, pages 7-11, for the new tools.py environment in web2py 1.56 0. From the admin interface, add new app 'puppy' 1. Define table 'puppy' and create a crud instance # db.py: db.define_table('puppy', SQLField('name'), SQLField('image','upload') ) db.puppy.name.requires=IS_NOT_EMPTY() from gluon.tools import Mail, Auth, Crud crud=Crud(globals(),db) 2. Enable a RESTful interface through crud # controllers/default.py: def data(): return dict(form=crud()) def download(): return response.download(request,db) 3. Go to http://localhost:8000/puppy/default/data/create/puppy to see a 'create puppy' form and play around with the default CRUD interface 4. Create a template for the CRUD pages # views/default/data.html {{extend 'layout.html'}} {{=form}} <p>You are now using the data.html template.</p> ...and retry the CRUD URLs; the nice admin/session/etc buttons showed earlier should be missing now... 5. Define a combo page that shows items + a create form # views/default/customcreate.html {{extend 'layout.html'}} <div class="frame"> <h2>Post the image of a Puppy</h2> {{=form}} </div> <div class="frame"> <h2>Puppies</h2> {{=items}} </div> <p>You are now using the customcreate.html template.</p> # controllers/default.py def customcreate(): form = crud.create('puppy') items = crud.select('puppy', linkto=URL(r=request,f='data',args= ['read'])) return dict(form=form, items=items) 6. Optionally include the "search" widget from t2.py? (see t2.pdf, page 9) (the high-level stuff such as search, comments, etc has gracefully been split out of tools.py) 7. Add authentication # in models/db.py: # define your own auth_user table so you can extend it later... # you can also set auth.settings.table_user later, but you may lose users already registered (?) db.define_table('auth_user', SQLField('first_name',length=32,default=''), SQLField('last_name',length=50,default=''), SQLField('email',requires=IS_EMAIL()), SQLField('password','password',requires=CRYPT()), SQLField('registration_key',length=64), SQLField('pic','upload',default='')) # and add any field you want... auth=Auth(globals(),db) auth.settings.table_user=db.auth_user auth.define_tables() # in controllers/default.py: def user(): return dict(form=auth()) # and add a menu so we can see state if auth.user: response.menu=[ ['logout',False,URL(r=request,f='user',args=['logout'])]] else: response.menu=[ ['login',False,URL(r=request,f='user',args=['login'])], ['register',False,URL(r=request,f='user',args=['register'])]] Go to http://localhost:8000/puppy/default/user/register to register as a user. Go to http://localhost:8000/puppy/default/user/login to log in. 8. Now restrict access to these puppies to logged in users # in controllers/default.py: @auth.requires_login() def data(): return dict(form=crud()) @auth.requires_login() def download(): return response.download(request,db) @auth.requires_login() def customcreate(): form = crud.create('puppy') items = crud.select('puppy', linkto=URL(r=request,f='data',args= ['read'])) return dict(form=form, items=items) (Note: the T2 requires_login had the option of specifying a 'next' function which was passed in the vars._destination... This is missing in tools for now, AFAICT) --- I don't use the authorization stuff yet, powerful as it is, so I'll leave this to someone else. For myself, the next stop is subclassing Auth... one reason being to adapt email registration. Cheers, -Peter On Feb 8, 6:04 pm, murray3 <ch...@murraypost.net> wrote: > Massimo, > having trouble getting email registration to work on localhost with > the T2 Puppies app. What needs to be set up? > > Also how do you get the puppies app to run on GAE SDK, I keep getting > internal error, is it supposed to work? > > regards > chris > > On Feb 8, 1:31 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > asap. We need to rewrite T2 to use tools first. if anybody can help > > please raise your hand. > > > Massimo > > > On Feb 7, 6:58 pm, murray3 <ch...@murraypost.net> wrote: > > > > Could any of you guy's run through the T2 "puppy" example using the > > > new gluon.tools syntax. > > > I am missing something (porting my T2 based code) and I'm sure this > > > would get me restarted. > > > > thanks > > > chris --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@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 -~----------~----~----~----~------~----~------~--~---