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
|
from peewee import CharField, DateTimeField, BooleanField, ForeignKeyField
from peewee import create_model_tables
from datetime import datetime
from app import db, pad
class User(db.Model):
username = CharField()
api_id = CharField(null=True)
email = CharField()
last_login = DateTimeField(default=datetime.now)
active = BooleanField(default=True)
admin = BooleanField(default=False)
def __unicode__(self):
return self.username
class Group(db.Model):
name = CharField(unique=True)
api_id = CharField(null=True)
def __unicode__(self):
return self.name
def save(self, force_insert=False, only=None):
if self.id is None or force_insert:
self.api_id = pad.createGroup()
super(Group, self).save(force_insert=force_insert, only=only)
class Member(db.Model):
group = ForeignKeyField(Group, related_name='members')
user = ForeignKeyField(User, related_name='groups')
manager = BooleanField(default=False)
admin = BooleanField(default=False)
def __unicode__(self):
return "%s member of %s" % (self.user.username, self.group.name)
def create_tables():
create_model_tables([User, Group, Member], fail_silently = True)
|