No problem :) I haven't came across any specific attendance system, and this topic being very broad on how it can be implemented and used, I'm not sure if you will find ready made app which fulfils all your requirements. My suggestion is to start with web2py example appliances page ( http://www.web2py.com/appliances ) and see if you can fork some of the apps. Additional websites worth checking are github ( https://github.com/search?q=web2py&type=Everything&repo=&langOverride=&start_value=1) and google code ( http://code.google.com)
To get you started, you might find these apps useful. http://code.google.com/p/pyodel/ http://code.google.com/p/web2conf/ Cheers Ivica On 22 May 2012 07:30, alazar baharu <alazarbhr...@gmail.com> wrote: > hi Ivica Kralj your posts are help full to me and now i have fixed my > problem with your great full help thanks and again let me ask you one > question is there any application developed for an attendance system in one > organization using web2py what can you will recommend me. 10ks ok man > > On Mon, May 21, 2012 at 8:00 AM, Ivica Kralj <ivicakr...@gmail.com> wrote: > >> error report is saying you have a problem with this line >> >> >> purchased = \n (db.person.id==db.purchase.buyer_id)&\n >> (db.product.id==db.purchase.product_id) >> >> >> >> >> >> >> >> try replacing above line with this one >> >> purchased = (db.person.id==db.purchase.buyer_id) & (db.product.id >> ==db.purchase.product_id) >> >> >> >> >> On 21 May 2012 09:30, alazar baharu <alazarbhr...@gmail.com> wrote: >> >>> am new to web2py and am trying to develop some database driven >>> application and am reading the quick example for web2py on the officila >>> site but it is not working for me in creating the db.py. the eror looks >>> like >>> >>> >>> unexpected character after line continuation character >>> (C:/Users/Alazar/Desktop/web2py/applications/database/models/db.py, line >>> 113) >>> i hope its is on the line >>> purchased = \n (db.person.id==db.purchase.buyer_id)&\n >>> (db.product.id==db.purchase.product_id) >>> >>> >>> >>> >>> >>> >>> >>> and the entire code is this one >>> >>> # -*- coding: utf-8 -*- >>> >>> ######################################################################### >>> ## This scaffolding model makes your app work on Google App Engine too >>> >>> >>> >>> >>> >>> >>> >>> ## File is released under public domain and you can use without limitations >>> ######################################################################### >>> >>> ## if SSL/HTTPS is properly configured and you want all HTTP requests to >>> >>> >>> >>> >>> >>> >>> >>> ## be redirected to HTTPS, uncomment the line below: >>> # request.requires_https() >>> >>> if not request.env.web2py_runtime_gae: >>> ## if NOT running on Google App Engine use SQLite or other DB >>> db = DAL('sqlite://storage.sqlite') >>> >>> >>> >>> >>> >>> >>> >>> else: >>> ## connect to Google BigTable (optional 'google:datastore://namespace') >>> db = DAL('google:datastore') >>> ## store sessions and tickets there >>> session.connect(request, response, db = db) >>> >>> >>> >>> >>> >>> >>> >>> ## or store session in Memcache, Redis, etc. >>> ## from gluon.contrib.memdb import MEMDB >>> ## from google.appengine.api.memcache import Client >>> ## session.connect(request, response, db = MEMDB(Client())) >>> >>> >>> >>> >>> >>> >>> >>> ## by default give a view/generic.extension to all actions from localhost >>> ## none otherwise. a pattern can be 'controller/function.extension' >>> response.generic_patterns = ['*'] if request.is_local else [] >>> >>> >>> >>> >>> >>> >>> >>> ## (optional) optimize handling of static files >>> # response.optimize_css = 'concat,minify,inline' >>> # response.optimize_js = 'concat,minify,inline' >>> >>> ######################################################################### >>> >>> >>> >>> >>> >>> >>> >>> ## 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) >>> >>> >>> >>> >>> >>> >>> >>> ## - old style crud actions >>> ## (more options discussed in gluon/tools.py) >>> ######################################################################### >>> >>> from gluon.tools import Auth, Crud, Service, PluginManager, prettydate >>> >>> >>> >>> >>> >>> >>> >>> auth = Auth(db, hmac_key=Auth.get_or_create_key()) >>> crud, service, plugins = Crud(db), Service(), PluginManager() >>> >>> ## create all tables needed by auth if not custom tables >>> auth.define_tables() >>> >>> ## configure email >>> >>> >>> >>> >>> >>> >>> >>> mail=auth.settings.mailer >>> mail.settings.server = 'logging' or 'smtp.gmail.com:587' >>> mail.settings.sender = 'y...@gmail.com' >>> >>> >>> >>> >>> >>> >>> >>> mail.settings.login = 'username:password' >>> >>> ## configure auth policy >>> auth.settings.registration_requires_verification = False >>> auth.settings.registration_requires_approval = False >>> auth.settings.reset_password_requires_verification = True >>> >>> >>> >>> >>> >>> >>> >>> ## if you need to use OpenID, Facebook, MySpace, Twitter, Linkedin, etc. >>> ## register with janrain.com, write your domain:api_key in >>> private/janrain.key >>> from gluon.contrib.login_methods.rpx_account import use_janrain >>> >>> >>> >>> >>> >>> >>> >>> use_janrain(auth,filename='private/janrain.key') >>> >>> ######################################################################### >>> ## Define your tables below (or better in another model file) for example >>> ## >>> >>> >>> >>> >>> >>> >>> >>> ## >>> db.define_table('mytable',Field('myfield','string')) >>> ## >>> ## Fields can be 'string','text','password','integer','double','boolean' >>> >>> >>> >>> >>> >>> >>> >>> ## 'date','time','datetime','blob','upload', 'reference TABLENAME' >>> ## There is an implicit 'id integer autoincrement' field >>> ## Consult manual for more options, validators, etc. >>> >>> >>> >>> >>> >>> >>> >>> ## >>> ## More API examples for controllers: >>> ## >>> ## >>> db.mytable.insert(myfield='value') >>> ## >>> rows=db(db.mytable.myfield=='value').select(db.mytable.ALL) >>> ## >>> for row in rows: print row.id, row.myfield >>> >>> >>> >>> >>> >>> >>> >>> ######################################################################### >>> db.define_table( >>> 'person', >>> Field('name'), >>> Field('email'), >>> format = '%(name)s') >>> >>> >>> >>> >>> >>> >>> >>> >>> # ONE (person) TO MANY (dogs) >>> >>> db.define_table( >>> 'dog', >>> Field('owner_id', db.person), >>> Field('name'), >>> Field('type'), >>> Field('vaccinated', 'boolean', default=False), >>> >>> >>> >>> >>> >>> >>> >>> Field('picture', 'upload', default=''), >>> format = '%(name)s') >>> >>> db.define_table( >>> 'product', >>> Field('name'), >>> Field('description', 'text'), >>> >>> >>> >>> >>> >>> >>> >>> format = '%(name)s') >>> >>> # MANY (persons) TO MANY (purchases) >>> >>> db.define_table( >>> 'purchase', >>> Field('buyer_id', db.person), >>> Field('product_id', db.product), >>> >>> >>> >>> >>> >>> >>> >>> Field('quantity', 'integer'), >>> format = '%(quantity)s %(product_id)s -> %(buyer_id)s') >>> >>> purchased = \n (db.person.id==db.purchase.buyer_id)&\n >>> (db.product.id==db.purchase.product_id) >>> >>> >>> >>> >>> >>> >>> >>> db.person.name.requires = IS_NOT_EMPTY() >>> db.person.email.requires = [IS_EMAIL(), IS_NOT_IN_DB(db, 'person.email')] >>> db.dog.name.requires = IS_NOT_EMPTY() >>> db.dog.type.requires = IS_IN_SET(('small', 'medium', 'large')) >>> >>> >>> >>> >>> >>> >>> >>> db.purchase.quantity.requires = IS_INT_IN_RANGE(0, 10) >>> >>> >>> >> >