Hi all,

I am trying to make the "jobsite" appliance work on GAE. I edited  the
model(db.py) of jobsite to suit GAE.
I am getting the following error when running under devappserver of
gae sdk.
***************************************
WARNING  2010-10-08 18:10:40,069 datastore_file_stub.py:657] Could not
read datastore data from /tmp/dev_appserver.datastore
WARNING  2010-10-08 18:10:40,080 dev_appserver.py:3637] Could not
initialize images API; you are likely missing the Python "PIL" module.
ImportError: No module named _imaging
INFO     2010-10-08 18:10:40,108 dev_appserver_main.py:431] Running
application wcj on port 8080: http://localhost:8080
WARNING  2010-10-08 18:12:29,440 portalocker.py:92] no file locking
ERROR    2010-10-08 18:12:30,790 restricted.py:151] Traceback (most
recent call last):
  File "/home/sujith/Desktop/wcj/gluon/restricted.py", line 188, in
restricted
    exec ccode in environment
  File "/home/sujith/Desktop/wcj/applications/init/models/db.py", line
7, in <module>
    session.connect(request,response,db)
  File "/home/sujith/Desktop/wcj/gluon/globals.py", line 298, in
connect
    migrate=table_migrate,
  File "/home/sujith/Desktop/wcj/gluon/dal.py", line 2117, in
define_table
    t._create(migrate=migrate, fake_migrate=fake_migrate)
  File "/home/sujith/Desktop/wcj/gluon/dal.py", line 2555, in _create
    elif not field.type in self._db._adapter.types:
AttributeError: 'BaseAdapter' object has no attribute 'types'
*************************************

This is the model
*************************************
import datetime
now=datetime.datetime.today()

if request.env.web2py_runtime_gae:
    from gluon.dal import *
    db = DAL('gae')
    session.connect(request,response,db)
else:
    db = DAL('sqlite://storage.sqlite')

db.define_table('user',
                Field('name'),
                Field('email'),
                Field('phone_country_code',default='1'),
                Field('phone'),
                Field('user_type'),
                Field('password','password'),
                Field('authorized',default='True'),
                Field('verification',default=''))

db.user.name.requires=IS_NOT_EMPTY()
db.user.user_type.requires=IS_IN_SET('Administrator','Applicant','Recruiter')
db.user.email.requires=[IS_EMAIL(), IS_NOT_IN_DB(db,'user.email'),
IS_NOT_EMPTY()]

db.define_table('country',
                Field('country_code'),
                Field('country_name'))

db.country.country_code.requires=IS_NOT_EMPTY()
db.country.country_name.requires=IS_NOT_EMPTY()

db.define_table('state',
                Field('country_code'),
                Field('state_code'),
                Field('state_name'))

db.state.country_code.requires=IS_IN_DB(db,'country.country_code')
db.state.state_code.requires=IS_NOT_EMPTY()
db.state.state_name.requires=IS_NOT_EMPTY()

db.define_table('company',
                Field('company_name'),
                Field('profile','text'),
                Field('address1'),
                Field('address2'),
                Field('city'),
                Field('state'),
                Field('zip'),
                Field('country'),
                Field('owner',db.user,default=session.user_id))

db.company.company_name.requires=IS_NOT_EMPTY()
db.company.profile.requires=IS_NOT_EMPTY()
db.company.country.requires=IS_IN_DB(db,'country.country_name')
db.company.owner.requires=IS_IN_DB(db,'user.id','%(name)s')
db.company.state.requires=IS_IN_DB(db,'state.state_name')
db.company.owner.requires=IS_NOT_EMPTY()

db.define_table('categories',
                Field('cat_name'),
                Field('cat_descr','text'))

db.categories.cat_name.requires=IS_NOT_EMPTY()

db.define_table('positions',
                Field('company_name'),
                Field('title'),
                Field('category'),
                Field('description','text',default=''),
                Field('timestamp','datetime',default=now),
                Field('expires_on','datetime'),
                Field('access',default='Private'),
                Field('owner','integer',default=session.user_id))

#db.positions.access.requires=IS_IN_SET('P','R','A')
db.positions.company_name.requires=IS_IN_DB(db,'company.company_name')
db.positions.category.requires=IS_IN_DB(db,'categories.cat_name')
#db.positions.expires_on.requires=IS_NOT_EMPTY()
db.company.owner.requires=IS_NOT_EMPTY()

db.define_table('position_requirements',
                Field('position_id'),
                Field('requirement'))

db.position_requirements.position_id.requires=IS_IN_DB(db,'positions.id','position.title')

db.define_table('applicants',
                Field('user_id'),
                Field('applicant_name'),
                Field('address1'),
                Field('address2'),
                Field('city'),
                Field('state'),
                Field('zip'),
                Field('country'),
                Field('phone_country_code',default='1'),
                Field('phone'),
                Field('email'),
                Field('access',default='Public'),
                Field('updated','datetime',default=now))

#db.applicants.access.requires=IS_IN_SET('P','R','A')
db.applicants.applicant_name.requires=IS_NOT_EMPTY()
db.applicants.email.requires=[IS_EMAIL(),IS_NOT_EMPTY()]
db.applicants.country.requires=IS_IN_DB(db,'country.country_code','country.country_name')
db.applicants.state.requires=IS_IN_DB(db,'state.state_code','state.state_name')

db.define_table('applied_for',
                Field('position_id'),
                Field('applicant'),
                Field('applicant_name'),
                Field('applied','datetime',default=now))

db.applied_for.position_id.requires=IS_IN_DB(db,'positions.id','positions.title')
#db.applied_for.applicant.requires=IS_IN_DB(db,'applicants.id','applicants.id')
#db.applied_for.applicant.requires=IS_IN_DB(db,'applicants.applicant_name','applicants.applicant_name')

db.define_table('resumes',
                Field('user_id',db.user,default=session.user_id),
                Field('title'),
                Field('body','text'),
                Field('keywords','text'),
                Field('updated','datetime',default=now),
                Field('access',default='Public'))

#db.resumes.access.requires=IS_IN_SET('P','R','A')
db.resumes.user_id.requires=IS_NOT_EMPTY()
***************************************

I am using python2.5 on Ubuntu 10.4 (lucid). I am a noob in python and
also a newbie to web2py.

Thanks for the help.

Sujith


Reply via email to