diff options
Diffstat (limited to 'models/db.py')
-rw-r--r-- | models/db.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/models/db.py b/models/db.py new file mode 100644 index 0000000..6ce4922 --- /dev/null +++ b/models/db.py @@ -0,0 +1,50 @@ +if request.env.web2py_runtime_gae: + db = DAL('gae') + session.connect(request,response,db=db) +else:db = DAL("sqlite://storage.db") + +db.define_table('image', + Field('file', 'upload', requires=[IS_NOT_EMPTY(error_message="Please select a file to upload"), IS_UPLOAD_FILENAME(extension='ta', error_message="Must be a Turtle Art file")]), + Field('title', requires=[IS_NOT_EMPTY(error_message="You must include a title"), IS_NOT_IN_DB(db, 'image.title', error_message="Title is already taken")]), + Field('image_id'), + Field('creator', requires=IS_NOT_EMPTY(error_message="You must include your name")), + Field('description', 'text'), + Field('views'), + Field('newimage', 'upload', requires=[IS_NOT_EMPTY(error_message="Please select a image to upload"), IS_UPLOAD_FILENAME(extension='png', error_message="Must be a PNG image")])) + +db.define_table('comment', + Field('image_id', db.image), + Field('author'), + Field('body', 'text')) + +from gluon.tools import Auth +auth = Auth(globals(),db) +auth_table = db.define_table( + auth.settings.table_user_name, + Field('username', length=128, default="", unique = True), + Field('email', length=128, default="", unique=True), + Field('password', 'password', length=256, + readable=False, label='Password'), + Field('registration_key', length=128, default= "", + writable=False, readable=False), + Field('reset_password_key', length=128, default="",readable=False)) + +db.comment.image_id.requires = IS_IN_DB(db, db.image.image_id, '%(title)s') +db.comment.author.requires = IS_NOT_EMPTY() +db.comment.body.requires = IS_NOT_EMPTY() + +auth_table.username.requires = [IS_EXPR('str(value).count(" ") == 0', error_message='Username must be one word'), IS_NOT_IN_DB(db, auth_table.username)] +auth_table.password.requires = [CRYPT()] +auth_table.email.requires = [ + IS_EMAIL(error_message=auth.messages.invalid_email), + IS_NOT_IN_DB(db, auth_table.email)] +auth.settings.table_user = auth_table +auth.define_tables() + +from gluon.tools import Mail +mail = Mail() +mail.settings.server = 'gae' +mail.settings.sender = 'turtlesite.authentication@gmail.com' +mail.settings.login = None +auth.settings.mailer = mail + |