diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/db.py | 50 | ||||
-rw-r--r-- | models/db.py.1 | 8 | ||||
-rw-r--r-- | models/db.py.bak | 9 | ||||
-rw-r--r-- | models/menu.py | 52 |
4 files changed, 119 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 + diff --git a/models/db.py.1 b/models/db.py.1 new file mode 100644 index 0000000..cd792cf --- /dev/null +++ b/models/db.py.1 @@ -0,0 +1,8 @@ +db = DAL("sqlite://storage.db") + +db.define_table('comment', + 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, 'comment.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')) diff --git a/models/db.py.bak b/models/db.py.bak new file mode 100644 index 0000000..17bc391 --- /dev/null +++ b/models/db.py.bak @@ -0,0 +1,9 @@ +db = DAL("sqlite://storage.db") + +db.define_table('comment', + 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, 'comment.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('newimage')) diff --git a/models/menu.py b/models/menu.py new file mode 100644 index 0000000..c387154 --- /dev/null +++ b/models/menu.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- + +######################################################################### +## Customize your APP title, subtitle and menus here +######################################################################### + +response.title = request.application +response.subtitle = T('customize me!') + +########################################## +## this is the main application menu +## add/remove items as required +########################################## + +response.menu = [ + [T('Index'), False, + URL(request.application,'default','index'), []], + ] + + +########################################## +## this is here to provide shortcuts +## during development. remove in production +########################################## + +response.menu_edit=[ + [T('Edit'), False, URL('admin', 'default', 'design/%s' % request.application), + [ + [T('Controller'), False, + URL('admin', 'default', 'edit/%s/controllers/%s.py' \ + % (request.application,request.controller=='appadmin' and + 'default' or request.controller))], + [T('View'), False, + URL('admin', 'default', 'edit/%s/views/%s' \ + % (request.application,response.view))], + [T('Layout'), False, + URL('admin', 'default', 'edit/%s/views/layout.html' \ + % request.application)], + [T('Stylesheet'), False, + URL('admin', 'default', 'edit/%s/static/base.css' \ + % request.application)], + [T('DB Model'), False, + URL('admin', 'default', 'edit/%s/models/db.py' \ + % request.application)], + [T('Menu Model'), False, + URL('admin', 'default', 'edit/%s/models/menu.py' \ + % request.application)], + [T('Database'), False, + URL(request.application, 'appadmin', 'index')], + ] + ], + ] |