Exemple #1
0
class UsersRoles(db.Model):
    __tablename__ = "users_roles"
    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id",
                                                  ondelete="CASCADE"))
    role_id = db.Column(db.Integer,
                        db.ForeignKey("roles.id", ondelete="CASCADE"))
Exemple #2
0
class Roles(db.Model):
    __tablename__ = "roles"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False, server_default="",
                     unique=True)  # for @roles_accepted()
    label = db.Column(db.Unicode(255),
                      server_default="")  # for display purposes
Exemple #3
0
class CompetitionScore(db.Model):
    __tablename__ = "competition_score"
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    competition_id = db.Column(db.Integer, db.ForeignKey("competition.id"))
    submission_id = db.Column(db.Integer,
                              db.ForeignKey("competition_submission.id"))
    score = db.Column(db.Numeric, nullable=True)
Exemple #4
0
class User(db.Model, UserMixin):
    __tablename__ = "user"
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String, unique=True)
    username = db.Column(db.String, unique=True)
    password_hash = db.Column(db.String(128))
    group_id = db.Column(db.Integer, db.ForeignKey("user_group.id"), default=1)
    last_seen = db.Column(db.DateTime, default=datetime.datetime.utcnow)
    from_ = db.Column(db.DateTime, default=datetime.datetime.utcnow())
    # Relationships
    roles = db.relationship("Roles",
                            secondary="users_roles",
                            backref=db.backref("user", lazy="dynamic"))

    def get_id(self):
        return self.id

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

    def avatar(self, size):
        digest = md5(self.email.lower().encode("utf-8")).hexdigest()
        return "https://www.gravatar.com/avatar/{}?d=identicon&s={}".format(
            digest, size)
Exemple #5
0
class CompetitionSubmission(db.Model):
    __tablename__ = "competition_submission"
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    competition_id = db.Column(db.Integer, db.ForeignKey("competition.id"))
    submit_date = db.Column(db.DateTime, default=datetime.datetime.now())
    file_name = db.Column(db.String, nullable=False)
    description = db.Column(db.String, nullable=True)
Exemple #6
0
class CompetitionAttendee(db.Model):
    __tablename__ = "competition_attendee"
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    competition_id = db.Column(db.Integer, db.ForeignKey("competition.id"))
    attended_date = db.Column(db.DateTime, default=datetime.datetime.now())
    quit_date = db.Column(db.DateTime, default=None)
    is_active = db.Column(db.Boolean, default=True)
Exemple #7
0
class CompetitionActivity(db.Model):
    __tablename__ = "competition_activity"
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    competition_id = db.Column(db.Integer, db.ForeignKey("competition.id"))
    content = db.Column(db.String, nullable=False)
Exemple #8
0
class Competition(db.Model):
    __tablename__ = "competition"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, unique=True)
    friendly_name = db.Column(db.String, nullable=True)
    description_overview = db.Column(db.String, nullable=True)
    description_eval = db.Column(db.String, nullable=True)
    description_data = db.Column(db.String, nullable=True)
    metric_type = db.Column(db.String, nullable=False)
    metric_name = db.Column(db.String, nullable=False)
    creator_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    access_level = db.Column(db.Integer)  # 1:personal, 2:group, 3:public
    created_date = db.Column(db.DateTime, default=datetime.datetime.now())
    deadline_date = db.Column(db.DateTime, nullable=True)
    is_open = db.Column(db.Boolean, default=True, nullable=False)

    def is_user_joined(self, user_id):
        res = (CompetitionAttendee.query.filter(
            CompetitionAttendee.competition_id == self.id).filter(
                CompetitionAttendee.user_id == user_id).first())
        if res:
            return True
        return False
Exemple #9
0
class UsersTeams(db.Model):
    __tablename__ = "users_teams"
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    team_id = db.Column(db.Integer, db.ForeignKey("user_team.id"))
    from_ = db.Column(db.DateTime, default=datetime.datetime.utcnow())
Exemple #10
0
class UserTeam(db.Model):
    __tablename__ = "user_team"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    from_ = db.Column(db.DateTime, default=datetime.datetime.utcnow())
    is_active = db.Column(db.Boolean, default=True)
Exemple #11
0
class UserGroup(db.Model):
    __tablename__ = "user_group"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    from_ = db.Column(db.DateTime, default=datetime.datetime.utcnow())
Exemple #12
0
class GeneralActivity(db.Model):
    __tablename__ = "general_activity"
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime, default=datetime.datetime.utcnow())
    content = db.Column(db.String, unique=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))