You are very correct, my row is None (and I should have checked this
before sending all those lines of sad looking code ;) )

row:
None

Thanks,
Mart :)



On Sep 27, 12:53 pm, mart <msenecal...@gmail.com> wrote:
> here I go (hope there is enough room here...), and yes, I know it
> looks sad ;):
>
> Controller:
>
> ## -*- coding: utf-8 -*-
>
> #########################################################################
> ## This is a samples controller
> ## - index is the default action of any application
> ## - user is required for authentication and authorization
> ## - download is for downloading files uploaded in the db (does
> streaming)
> ## - call exposes all registered services (none by default)
> #########################################################################
>
> import os, sys, string, re
> from collections import deque
>
> @auth.requires_login()
> def index():
>     """
>     example action using the internationalization operator T and flash
>     rendered by views/default/index.html or views/generic.html
>     """
>     #response.flash = T('P4 user account cleanup!')
>
>     return dict()
>
> @auth.requires_login()
> def test():
>     return(dict)
>
> def data():
>     return dict(form=crud())
>
> '''
> def populateP4Users():
>     # proposed list to start -> suspect MANY more to come
>     non_active_list = [
>                             'benoit.nadeau',
>                             'bernard.sjiariel',
>                             'binh.dang',
>                             'bulucc',
>                             'craigt',
>                             'davidk',
>                             'gabriels',
>                             'kevin',
>                             'kyans',
>                             'max',
>                             'mikem',
>                             'nam.phan',
>                             'nguyen.tran',
>                             'nirbhay.vashi',
>                             'rachel',
>                             'rachelv',
>                             'reuben',
>                             'ron.prior',
>                             'sanamm',
>                             'sang.vo',
>                             'thinh.phan',
>                             'tom.zhang',
>                             'trang.mai',
>                             'van.nguyen',
>                             'vesna.cakarevic',
>                             'will',
>                             'yosef',
>                             'yuehuay'
>               ]
>
>     form = SQLFORM(db.p4users)
>     if form.accepts(request.vars, session, dbio=False):
>         response.flash = T('in populateP4Users!')
>         f = open('./p4users.txt', 'r')
>         users = f.readlines()
>         f.close()
>         uInfo = deque()
>         garbageList = deque()
>         for user in users:
>             uDictList = {}
>             one = string.split(user, '<')
>             if one:
>                 p4UserStatus = None
>                 strP4_user = string.strip(one[0])
>                 two = string.split(one[1],'>')
>                 strMail = string.strip(two[0])
>                 three = string.split(two[1],'(')
>                 four = string.split(user, '(')
> [1]
>                 strName = string.split(four,')')[0]
>                 last_accessDate = string.split(three[1],')')[1]
>                 date = string.split(last_accessDate,'accessed')[1]
>                 strAccessed = string.strip(date,'\\n')
>                 if not 'tao' in user or not 'error:' in user:
>                     if strP4_user in non_active_list:
>                         p4UserStatus = 1
>
> db.p4users.insert(p4_user=strP4_user,mail=strMail,p4_name=strName,accessed=strAccessed,p4status=p4UserStatus)
>
> SQLFORM(table, record=None, deletable=False,
>         linkto=None, upload=None, fields=None, labels=None, col3={},
>         submit_button='Submit', delete_label='Check to delete:',
>         id_label='Record id: ', showid=True,
>         readonly=False, comments=True, keepopts=[],
>         ignore_rw=False, formstyle='table3cols',**attributes)
>
> '''
> def update_user():
>     form = SQLFORM(db.p4users_all,record)
>     if form.accepts(request.vars, session, dbio=False):
>         if form.vars.get('delete_this_record', False):
>             db(db.person.id==record.id).delete()
>         else:
>             record.update_record(**dict(form.vars))
>         response.flash = 'record updated'
>
> def edit():
>     row = db.p4users_all[request.args(0)]
>     form = SQLFORM(db.p4users_all, row, deletable=True)
>     if form.accepts(request.vars, session):
>         response.flash = 'record updated'
>     return dict(form=form)
>
> def display_form():
> #   record = db.p4users_all(request.args(0))
>    row = db.p4users_all[request.args(0)]
>    form = SQLFORM(db.p4users_all, row, deletable=True)
>    form.vars.id = request.vars.id
>    if form.accepts(request.vars, session):
>
>        response.flash = 'form accepted'
>    elif form.errors:
>        response.flash = 'form has errors'
>    return dict(form=form)
>
> def countUsers():
>     pass # will do this later -> for pie chart
>
> '''
>
> didn't work out  -> page for for update wasn't 'pretty'
> '''
> @auth.requires_login()
> def p4():
>     grid = webgrid.WebGrid(crud)
>     grid.crud_function = 'data'
>     grid.datasource = db(db.p4users.p4status==db.p4Status.id)
>     grid.pagesize = 200
>     grid.fields = ['p4users.id',
>                    'p4users.p4_user',
>                    'p4users.mail',
>                    'p4users.p4_name',
>                    'p4users.accessed',
>                    'p4users.p4status',
>                    'p4users.license_status',
>                    'p4users.comments']
>    # grid.filters =
> ['summitTrackableItems.responsible','summitTrackableItems.status']
>     grid.filters = ['p4users.p4status']
>     grid.filter_query = lambda f, v: f >= v
>     return dict(grid=grid())
>
> def user():
>     """
>     exposes:
>    http://..../[app]/default/user/login
>    http://..../[app]/default/user/logout
>    http://..../[app]/default/user/register
>    http://..../[app]/default/user/profile
>    http://..../[app]/default/user/retrieve_password
>    http://..../[app]/default/user/change_password
>     use @auth.requires_login()
>         @auth.requires_membership('group name')
>         @auth.requires_permission('read','table name',record_id)
>     to decorate functions that need access control
>     """
>     return dict(form=auth())
>
> def download():
>     """
>     allows downloading of uploaded files
>    http://..../[app]/default/download/[filename]
>     """
>     return response.download(request,db)
>
> def call():
>     """
>     exposes services. for example:
>    http://..../[app]/default/call/jsonrpc
>     decorate with @services.jsonrpc the functions to expose
>     supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
>     """
>     session.forget()
>     return service()
>
> Model:
>
> # -*- coding: utf-8 -*-
>
> #########################################################################
> ## This scaffolding model makes your app work on Google App Engine too
> #########################################################################
>
> if request.env.web2py_runtime_gae:            # if running on Google
> App Engine
>     db = DAL('gae')                           # connect to Google
> BigTable
>     session.connect(request, response, db = db) # and store sessions
> and tickets there
>     ### or use the following lines to store sessions in Memcache
>     # from gluon.contrib.memdb import MEMDB
>     # from google.appengine.api.memcache import Client
>     # session.connect(request, response, db = MEMDB(Client()))
> else:                                         # else use a normal
> relational database
>     db = DAL('sqlite://storage.sqlite')       # if not, use SQLite or
> other DB
> ## if no need for session
> # session.forget()
>
> #########################################################################
> ## Here is sample code if you need for
> ## - email capabilities
> ## - authentication (registration, login, logout, ... )
> ## - authorization (role based authorization)
> ## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
> ## - crud actions
> ## (more options discussed in gluon/tools.py)
> #########################################################################
>
> from gluon.tools import *
> mail = Mail()                                  # mailer
> auth = Auth(globals(),db)                      # authentication/
> authorization
> crud = Crud(globals(),db)                      # for CRUD helpers
> using auth
> service = Service(globals())                   # for json, xml,
> jsonrpc, xmlrpc, amfrpc
> plugins = PluginManager()
>
> mail.settings.server = 'logging' or 'smtp.gmail.com:587'  # your SMTP
> server
> mail.settings.sender = '....@gmail.com'         # your email
> mail.settings.login = 'username:password'      # your credentials or
> None
>
> auth.settings.hmac_key =
> 'sha512:15cd54c5-8b0a-400d-8a39-6bf56b40696a'   # before
> define_tables()
> auth.define_tables()                           # creates all needed
> tables
> auth.settings.mailer = mail                    # for user email
> verification
> auth.settings.registration_requires_verification = False
> auth.settings.registration_requires_approval = False
> auth.messages.verify_email = 'Click on the link
> http://'+request.env.http_host+URL(r=request,c='default',f='user',args=['verify_email'])+'/%(key)s
> to verify your email'
> auth.settings.reset_password_requires_verification = True
> auth.messages.reset_password = 'Click on the link
> http://'+request.env.http_host+URL(r=request,c='default',f='user',args=['reset_password'])+'/%(key)s
> to reset your password'
>
> #########################################################################
> ## If you need to use OpenID, Facebook, MySpace, Twitter, Linkedin,
> etc.
> ## register with janrain.com, uncomment and customize following
> # from gluon.contrib.login_methods.rpx_account import RPXAccount
> #
> auth.settings.actions_disabled=['register','change_password','request_reset_password']
> # auth.settings.login_form = RPXAccount(request,
> api_key='...',domain='...',
> #    url = "http://localhost:8000/%s/default/user/login"; %
> request.application)
> ## other login methods are...
>
> read more »

Reply via email to