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)