Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/models/db.py
blob: 6ce49227c4da613e425102ec5fef839fc2f229df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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