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