Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/models/db.py
diff options
context:
space:
mode:
Diffstat (limited to 'models/db.py')
-rw-r--r--models/db.py50
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
+