Esempio n. 1
0
class UnregisteredPassword(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship("User", back_populates="unregistered_password")

    password = db.Column(db.String(10))
Esempio n. 2
0
class PassCard(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    owner_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    start_date = db.Column(db.DateTime)
    expire_date = db.Column(db.DateTime)

    events_max_count = db.Column(db.Integer, default=8)

    events_visited = db.relationship("Event", secondary=pass_card_use, lazy='dynamic')
Esempio n. 3
0
class EventResult(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    user_id = db.Column('user_id', db.Integer, db.ForeignKey('user.id'))
    event_id = db.Column('event_id', db.Integer, db.ForeignKey('event.id'))

    place = db.Column('place', db.Integer)
    reward = db.Column('reward', db.Integer)
    rewarded = db.Column('rewarded', db.Boolean)

    def __repr__(self):
        return "<EventResult %r>" % self.id
Esempio n. 4
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    login = db.Column(db.String(20), unique=True)
    password = db.Column(PasswordType(
        schemes=['pbkdf2_sha512', 'md5_crypt'], deprecated=['md5_crypt']
    ))

    unregistered_password = db.relationship("UnregisteredPassword", uselist=False, back_populates="user")

    gender = db.Column(db.String(6), default=Gender.MALE.name)

    xp = db.Column(db.Integer, default=0)

    image_big = db.Column(db.Text, default="img/male256.png")

    role = db.Column(db.String(10), default=UserRole.USER.name)

    events_created = db.relationship("Event", lazy='dynamic', backref="author")
    events_history = db.relationship("EventResult", backref="user", lazy='dynamic')

    pass_cards = db.relationship("PassCard", lazy='dynamic')#, backref="owner")

    def __repr__(self):
        return "<User %r>" % self.login
Esempio n. 5
0
class Event(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    author_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    title = db.Column(db.Text)
    description_short = db.Column(db.Text)
    description = db.Column(db.Text)

    max_participants = db.Column(db.Integer, default=10)

    participants = db.relationship("User",
                                   secondary=event_participate,
                                   lazy='dynamic',
                                   backref=db.backref("events_participate",
                                                      lazy='dynamic'))
    wait_list = db.relationship("User",
                                secondary=event_wait,
                                lazy='dynamic',
                                backref=db.backref("events_wait",
                                                   lazy='dynamic'))

    status = db.Column(db.String(20), default=EventStatus.NOT_READY.name)

    rewards = db.Column(db.ARRAY(db.Integer))
    best_player_reward = db.Column(db.Integer, default=0)

    result_file = db.Column(db.Text)
    results = db.relationship("EventResult", backref="event", lazy='dynamic')

    date_start = db.Column(db.DateTime)

    image_big = db.Column(db.Text, default="img/event.png")

    published = db.Column(db.Boolean, default=False)

    def __repr__(self):
        return "<Event %r>" % self.title

    def participantsCount(self):
        return len(self.participants.all())

    def waitersCount(self):
        return len(self.wait_list.all())

    def resultsCount(self):
        return len(self.results.all())

    def getReward(self, place):
        return 0

        if place > len(self.rewards):
            return 0
        return self.rewards[place - 1]

    def getDateStartStr(self):
        if self.date_start is None:
            return ""

        return self.date_start.strftime("%d.%m.%Y %H:%M")

    def hasParticipant(self, user):
        users = self.participants.all()
        for u in users:
            if u.id == user.id:
                return True

        return False

    def hasWaiter(self, user):
        users = self.wait_list.all()
        for u in users:
            if u.id == user.id:
                return True

        return False
Esempio n. 6
0
from initter import db

from models.event_result import EventResult
from models.user import User
from enums.enums import EventStatus

event_participate = db.Table(
    'event_participate', db.Model.metadata,
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('event_id', db.Integer, db.ForeignKey('event.id')))

event_wait = db.Table(
    'event_wait', db.Model.metadata,
    db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('event_id', db.Integer, db.ForeignKey('event.id')))


class Event(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    author_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    title = db.Column(db.Text)
    description_short = db.Column(db.Text)
    description = db.Column(db.Text)

    max_participants = db.Column(db.Integer, default=10)

    participants = db.relationship("User",
                                   secondary=event_participate,
                                   lazy='dynamic',
Esempio n. 7
0
from initter import db

from models.user import User
from models.event import Event

pass_card_use = db.Table('pass_card_use', db.Model.metadata,
                         db.Column('pass_card_id', db.Integer, db.ForeignKey('pass_card.id')),
                         db.Column('event_id', db.Integer, db.ForeignKey('event.id'))
                         )


class PassCard(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    owner_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    start_date = db.Column(db.DateTime)
    expire_date = db.Column(db.DateTime)

    events_max_count = db.Column(db.Integer, default=8)

    events_visited = db.relationship("Event", secondary=pass_card_use, lazy='dynamic')