Exemplo n.º 1
0
class Speakers(db.Model, ModelMixin):
    __tablename__ = 'speakers'

    name = db.Column(db.String(100), unique=True, nullable=False)

    company = db.Column(db.String(100))
    company_link = db.Column(db.String(100))
    position = db.Column(db.String(100))

    country = db.Column(db.String(100))
    bio = db.Column(db.String(300))

    linkedin_url = db.Column(db.String(100))
    youtube_url = db.Column(db.String(100))
    website_url = db.Column(db.String(100))

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

    activities = relationship(
        "Activities",
        secondary="speaker_activities",
        secondaryjoin=sql.and_(SpeakerActivities.activity_id == Activities.id))

    def __repr__(self):
        return 'Name: {}'.format(self.name)
Exemplo n.º 2
0
class BannedStudents(db.Model, ModelMixin):
    __tablename__ = 'banned_students'

    name = db.Column(db.String(100), unique=True, nullable=False)
    ist_id = db.Column(db.String(10), unique=True, nullable=False, index=True)
    email = db.Column(db.String(100))

    def __repr__(self):
        return 'Name: {}  |  IST id: {}'.format(self.name, self.ist_id)
Exemplo n.º 3
0
class StudentLogins(db.Model, ModelMixin):
    __tablename__ = 'student_logins'

    student_id = db.Column(db.Integer,
                           db.ForeignKey('students.id', ondelete='CASCADE'),
                           index=True)
    date = db.Column(db.String(30))

    def __repr__(self):
        return 'Date: {}'.format(self.date)
Exemplo n.º 4
0
class Users(db.Model, ModelMixin, UserMixin):
    __tablename__ = 'users'

    name = db.Column(db.String(100), unique=False, nullable=False)
    username = db.Column(db.String, unique=True, nullable=False)
    email = db.Column(db.String(100), unique=True)

    password = db.Column(db.String)

    role = db.Column(db.Enum(RolesEnum), nullable=False)

    sent_authentication_to_email = db.Column(db.Boolean, default=False)
    last_auth_email_destination = db.Column(db.String(100))

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

    chat_id = db.Column(db.String)

    def __repr__(self):
        return '<User %r>' % self.username

    def get_id(self):
        """
        Method used by Flask-Login to be used on user_loader callback. We want to use Argonath Session Token here.
        :return:
        """
        return self.username

    def get_role(self):
        return self.role
Exemplo n.º 5
0
class Logs(db.Model):
    __tablename__ = 'logs'

    id = db.Column(db.Integer, primary_key=True)

    user_id = db.Column(db.String(20))
    entrypoint = db.Column(db.String(200), nullable=False)
    create_date = db.Column(db.DateTime, server_default=db.func.now())

    def __repr__(self):
        return 'Id: {}'.format(self.id)
Exemplo n.º 6
0
class Levels(db.Model, ModelMixin):
    __tablename__ = 'levels'
    
    value = db.Column(db.Integer(), unique=True, nullable=False)
    points = db.Column(db.Integer(), nullable=False)

    reward_id = db.Column(db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    reward = relationship('Rewards')
    
    def __repr__(self):
        return 'Level: {}'.format(self.value)
Exemplo n.º 7
0
class ActivityCodes(db.Model, ModelMixin):
    __tablename__ = 'activity_codes'

    code = db.Column(db.String(16), unique=True, nullable=False, index=True)

    activity = relationship('Activities')
    activity_id = db.Column(db.Integer,
                            db.ForeignKey('activities.id', ondelete='CASCADE'))

    def __repr__(self):
        return 'Code: {}'.format(self.code)
Exemplo n.º 8
0
class SquadDailyPoints(db.Model, ModelMixin):
    __tablename__ = 'squad_daily_points'

    squad_id = db.Column(db.Integer,
                         db.ForeignKey('squads.id', ondelete='CASCADE'),
                         index=True)
    squad = relationship('Squads')

    date = db.Column(db.String(30))
    points = db.Column(db.Integer())

    def __repr__(self):
        return 'Date: {} Points: {}'.format(self.date, self.points)
Exemplo n.º 9
0
class Rewards(db.Model, ModelMixin):
    __tablename__ = 'rewards'

    name = db.Column(db.String(100), unique=True, nullable=False)

    description = db.Column(db.String(300))

    link = db.Column(db.String(100))

    quantity = db.Column(db.Integer)

    def __repr__(self):
        return 'Name: {}'.format(self.name)
Exemplo n.º 10
0
class Dishes(db.Model, ModelMixin):
    __tablename__ = 'dishes'

    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.String(300))
    type = db.Column(db.Enum(DishTypeEnum), nullable=False)

    meal_id = db.Column(db.Integer,
                        db.ForeignKey('meals.id', ondelete='CASCADE'),
                        index=True)

    def __repr__(self):
        return 'Dish: {}'.format(self.name)
Exemplo n.º 11
0
class SquadsRewards(db.Model, ModelMixin):
    __tablename__ = 'squads_rewards'
    
    reward_id = db.Column(db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    reward = relationship('Rewards')

    date = db.Column(db.String(30), unique=True)

    winner = relationship('Squads')
    winner_id = db.Column(db.Integer, db.ForeignKey('squads.id', ondelete='SET NULL'))

    def __repr__(self):
        return 'Name: {}'.format(self.name)
Exemplo n.º 12
0
class Colaborators(db.Model, ModelMixin):
    __tablename__ = 'colaborators'

    name = db.Column(db.String(100), unique=True, nullable=False)
    ist_id = db.Column(db.String(10))
    email = db.Column(db.String(100))

    team = relationship('Teams', back_populates="members", uselist=False)
    team_id = db.Column(db.Integer, db.ForeignKey('teams.id'))

    linkedin_url = db.Column(db.String(150))

    def __repr__(self):
        return 'Name: {} | Team: {}'.format(self.name, self.team)
Exemplo n.º 13
0
class Bids(db.Model, ModelMixin):
    __tablename__ = 'bids'

    company_id = db.Column(db.Integer,
                           db.ForeignKey('companies.id'),
                           index=True)
    is_anonymous = db.Column(db.Boolean, default=False)

    value = db.Column(db.Float(), nullable=False)

    auction = db.relationship('Auctions', back_populates="bids", uselist=False)
    auction_id = db.Column(db.Integer, db.ForeignKey('auctions.id'))

    def __repr__(self):
        return 'Value: {}'.format(self.value)
Exemplo n.º 14
0
class Tags(db.Model, ModelMixin):
    __tablename__ = 'tags'
    
    name = db.Column(db.String(100), unique=True, nullable=False)

    def __repr__(self):
        return 'Name: {}'.format(self.name)
Exemplo n.º 15
0
class SquadInvitations(db.Model, ModelMixin):
    __tablename__ = 'squad_invitations'

    __table_args__ = (db.UniqueConstraint('sender_id',
                                          'receiver_id',
                                          name='uix_squads'), )

    sender_id = db.Column(db.Integer,
                          db.ForeignKey('students.id', ondelete='CASCADE'),
                          index=True)
    sender = relationship('Students', foreign_keys=sender_id)

    receiver_id = db.Column(db.Integer,
                            db.ForeignKey('students.id', ondelete='CASCADE'),
                            index=True)
    receiver = relationship('Students', foreign_keys=receiver_id)
Exemplo n.º 16
0
class Squads(db.Model, ModelMixin):
    __tablename__ = 'squads'

    name = db.Column(db.String(100), unique=True, nullable=False)
    cry = db.Column(db.String(100))

    members = relationship("Students",
                           back_populates='squad',
                           lazy='dynamic',
                           order_by="Students.total_points")

    captain_ist_id = db.Column(db.String(10), unique=True, nullable=False)

    daily_points = db.Column(db.Integer, default=0)
    total_points = db.Column(db.Integer, default=0)

    def __repr__(self):
        return 'Name: {}'.format(self.name)
Exemplo n.º 17
0
class Teams(db.Model, ModelMixin):
    __tablename__ = 'teams'

    name = db.Column(db.String(100), unique=True)
    description = db.Column(db.String(300))

    website_priority = db.Column(
        db.Integer(), default=0)  # for sorting the teams in the website

    members = relationship("Colaborators",
                           back_populates='team',
                           lazy='dynamic',
                           cascade="all,delete",
                           order_by="Colaborators.name")

    event = relationship('Events', back_populates="teams", uselist=False)
    event_id = db.Column(db.Integer, db.ForeignKey('events.id'))

    def __repr__(self):
        return 'Name: {}'.format(self.name)
Exemplo n.º 18
0
class Auctions(db.Model, ModelMixin):
    __tablename__ = 'auctions'

    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.String(300))

    closing_date = db.Column(db.String(200))

    minimum_value = db.Column(db.Float())
    is_open = db.Column(db.Boolean, default=False)

    bids = relationship("Bids",
                        back_populates='auction',
                        lazy='dynamic',
                        cascade="all,delete")

    participants = relationship(
        "Companies",
        secondary="company_auctions",
        secondaryjoin=sql.and_(CompanyAuctions.company_id == Companies.id))

    def __repr__(self):
        return 'Name: {}'.format(self.name)
Exemplo n.º 19
0
class Meals(db.Model, ModelMixin):
    __tablename__ = 'meals'

    location = db.Column(db.String(100), default="Instituto Superior Técnico")
    day = db.Column(db.String(20), nullable=False)
    time = db.Column(db.String(10))

    registration_day = db.Column(db.String(20), nullable=False)
    registration_time = db.Column(db.String(10))

    type = db.Column(db.Enum(MealTypeEnum), nullable=False)

    def __repr__(self):
        return 'Meal: {} | Day: {}'.format(self.type.name, self.day)
Exemplo n.º 20
0
class ActivityTypes(db.Model, ModelMixin):
    __tablename__ = 'activity_types'

    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.String(300))
    price = db.Column(db.Float())

    show_in_home = db.Column(db.Boolean, default=True)
    show_in_schedule = db.Column(db.Boolean, default=True)
    show_in_app = db.Column(db.Boolean, default=True)

    event = relationship('Events',
                         back_populates="activity_types",
                         uselist=False)
    event_id = db.Column(db.Integer,
                         db.ForeignKey('events.id', ondelete='SET NULL'))

    activities = relationship("Activities",
                              back_populates='activity_type',
                              lazy='dynamic',
                              cascade="all,delete")

    def __repr__(self):
        return 'Name: {}  |  Price: {}'.format(self.name, self.price)
Exemplo n.º 21
0
class CompanyUsers(db.Model, ModelMixin):
    __tablename__ = 'company_users'

    company = db.relationship('Companies',
                              back_populates="users",
                              uselist=False)
    company_id = db.Column(db.Integer,
                           db.ForeignKey('companies.id', ondelete='CASCADE'))

    post = db.Column(db.String(50))

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

    user = relationship('Users', cascade="all,delete")
    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.id', ondelete='CASCADE'))

    evf_username = db.Column(db.String)
    evf_password = db.Column(db.String)

    def __repr__(self):
        return 'Name: {}  |  Company: {}'.format(self.user.name,
                                                 self.company.name)
Exemplo n.º 22
0
class Activities(db.Model, ModelMixin):
    __tablename__ = 'activities'
    
    name = db.Column(db.String(100), unique=False, nullable=False)
    description = db.Column(db.String(300))

    location = db.Column(db.String(100), default="Instituto Superior Técnico")
    day = db.Column(db.String(20))
    time = db.Column(db.String(10))
    end_time = db.Column(db.String(10))

    registration_open = db.Column(db.Boolean, default=False)
    registration_link = db.Column(db.String(100))

    activity_type = relationship('ActivityTypes', back_populates="activities", uselist=False)
    activity_type_id = db.Column(db.Integer, db.ForeignKey('activity_types.id', ondelete='SET NULL'))

    event = relationship('Events', back_populates="activities", uselist=False)
    event_id = db.Column(db.Integer, db.ForeignKey('events.id'))

    chat_id = db.Column(db.String)
    chat_code = db.Column(db.String)
    chat_type = db.Column(db.Enum(ActivityChatEnum))

    zoom_link = db.Column(db.String)

    reward_id = db.Column(db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    reward = relationship('Rewards')

    moderator_id = db.Column(db.Integer, db.ForeignKey('speakers.id', ondelete='SET NULL'))
    moderator = relationship('Speakers')

    tags = relationship("Tags",
        secondary="activities_tags",
        secondaryjoin=sql.and_(ActivitiesTags.tag_id == Tags.id))

    points = db.Column(db.Integer())
    quest = db.Column(db.Boolean, default=False)
   
    def __repr__(self):
        return 'Type: {}  |  Name: {}'.format(self.activity_type.name, self.name)
Exemplo n.º 23
0
class CompanyActivities(db.Model, ModelMixin):
    __tablename__ = 'company_activities'

    company_id = Column(Integer, ForeignKey('companies.id', ondelete='CASCADE'), index=True)
    activity_id = Column(Integer, ForeignKey('activities.id', ondelete='CASCADE'), index=True)
    zoom_link = db.Column(db.String)
Exemplo n.º 24
0
class JeecpotRewards(db.Model, ModelMixin):
    __tablename__ = 'jeecpot_rewards'

    first_student_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    first_student_reward = relationship('Rewards',
                                        foreign_keys=first_student_reward_id)
    first_student_winner_id = db.Column(
        db.Integer, db.ForeignKey('students.id', ondelete='SET NULL'))
    first_student_winner = relationship('Students',
                                        foreign_keys=first_student_winner_id)

    second_student_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    second_student_reward = relationship('Rewards',
                                         foreign_keys=second_student_reward_id)
    second_student_winner_id = db.Column(
        db.Integer, db.ForeignKey('students.id', ondelete='SET NULL'))
    second_student_winner = relationship('Students',
                                         foreign_keys=second_student_winner_id)

    third_student_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    third_student_reward = relationship('Rewards',
                                        foreign_keys=third_student_reward_id)
    third_student_winner_id = db.Column(
        db.Integer, db.ForeignKey('students.id', ondelete='SET NULL'))
    third_student_winner = relationship('Students',
                                        foreign_keys=third_student_winner_id)

    first_squad_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    first_squad_reward = relationship('Rewards',
                                      foreign_keys=first_squad_reward_id)
    first_squad_winner_id = db.Column(
        db.Integer, db.ForeignKey('squads.id', ondelete='SET NULL'))
    first_squad_winner = relationship('Squads',
                                      foreign_keys=first_squad_winner_id)

    second_squad_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    second_squad_reward = relationship('Rewards',
                                       foreign_keys=second_squad_reward_id)
    second_squad_winner_id = db.Column(
        db.Integer, db.ForeignKey('squads.id', ondelete='SET NULL'))
    second_squad_winner = relationship('Squads',
                                       foreign_keys=second_squad_winner_id)

    third_squad_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    third_squad_reward = relationship('Rewards',
                                      foreign_keys=third_squad_reward_id)
    third_squad_winner_id = db.Column(
        db.Integer, db.ForeignKey('squads.id', ondelete='SET NULL'))
    third_squad_winner = relationship('Squads',
                                      foreign_keys=third_squad_winner_id)

    king_job_fair_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    king_job_fair_reward = relationship('Rewards',
                                        foreign_keys=king_job_fair_reward_id)
    king_job_fair_winner_id = db.Column(
        db.Integer, db.ForeignKey('students.id', ondelete='SET NULL'))
    king_job_fair_winner = relationship('Students',
                                        foreign_keys=king_job_fair_winner_id)

    king_knowledge_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    king_knowledge_reward = relationship('Rewards',
                                         foreign_keys=king_knowledge_reward_id)
    king_knowledge_winner_id = db.Column(
        db.Integer, db.ForeignKey('students.id', ondelete='SET NULL'))
    king_knowledge_winner = relationship('Students',
                                         foreign_keys=king_knowledge_winner_id)

    king_hacking_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    king_hacking_reward = relationship('Rewards',
                                       foreign_keys=king_hacking_reward_id)
    king_hacking_winner_id = db.Column(
        db.Integer, db.ForeignKey('students.id', ondelete='SET NULL'))
    king_hacking_winner = relationship('Students',
                                       foreign_keys=king_hacking_winner_id)

    king_networking_reward_id = db.Column(
        db.Integer, db.ForeignKey('rewards.id', ondelete='SET NULL'))
    king_networking_reward = relationship(
        'Rewards', foreign_keys=king_networking_reward_id)
    king_networking_winner_id = db.Column(
        db.Integer, db.ForeignKey('students.id', ondelete='SET NULL'))
    king_networking_winner = relationship(
        'Students', foreign_keys=king_networking_winner_id)

    def __repr__(self):
        return 'Name: {}'.format(self.name)
Exemplo n.º 25
0
class Events(db.Model, ModelMixin):
    __tablename__ = 'events'

    name = db.Column(db.String(100), nullable=False)

    start_date = db.Column(db.String(30))
    end_date = db.Column(db.String(30))

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

    email = db.Column(db.String(100))
    location = db.Column(db.String(100))

    facebook_link = db.Column(db.String(100))
    facebook_event_link = db.Column(db.String(100))
    youtube_link = db.Column(db.String(100))
    instagram_link = db.Column(db.String(100))

    show_schedule = db.Column(db.Boolean, default=False)
    show_registrations = db.Column(db.Boolean, default=False)

    cvs_submission_start = db.Column(db.String(30))
    cvs_submission_end = db.Column(db.String(30))
    cvs_access_start = db.Column(db.String(30))
    cvs_access_end = db.Column(db.String(30))
    cvs_purged = db.Column(db.Boolean, default=False)

    activity_types = relationship("ActivityTypes",
                                  back_populates='event',
                                  lazy='dynamic',
                                  cascade="all,delete",
                                  order_by="ActivityTypes.name")
    activities = relationship("Activities",
                              back_populates='event',
                              lazy='dynamic',
                              cascade="all,delete",
                              order_by="Activities.day, Activities.time")
    teams = relationship("Teams",
                         back_populates='event',
                         lazy='dynamic',
                         cascade="all,delete",
                         order_by="Teams.website_priority")

    def __repr__(self):
        return 'Name: {} | date: {}'.format(self.name, self.start_date)
Exemplo n.º 26
0
class StudentActivities(db.Model, ModelMixin):
    __tablename__ = 'student_activities'

    student_id = db.Column(db.Integer, db.ForeignKey('students.id', ondelete='CASCADE'), index=True)
    activity_id = db.Column(db.Integer, db.ForeignKey('activities.id', ondelete='CASCADE'), index=True)
Exemplo n.º 27
0
class StudentCompanies(db.Model, ModelMixin):
    __tablename__ = 'student_companies'

    student_id = db.Column(db.Integer, db.ForeignKey('students.id', ondelete='CASCADE'), index=True)
    company_id = db.Column(db.Integer, db.ForeignKey('companies.id', ondelete='CASCADE'), index=True)
Exemplo n.º 28
0
class Students(db.Model, ModelMixin):
    __tablename__ = 'students'

    name = db.Column(db.String(100), nullable=False)
    ist_id = db.Column(db.String(10), unique=True, nullable=False, index=True)
    photo = db.Column(db.Text())
    photo_type = db.Column(db.String(20))
    linkedin_url = deferred(db.Column(db.String(150)))
    uploaded_cv = deferred(db.Column(db.Boolean, default=False))

    level = relationship('Levels')
    level_id = db.Column(db.Integer, db.ForeignKey('levels.id'))

    daily_points = db.Column(db.Integer())
    total_points = db.Column(db.Integer())
    squad_points = db.Column(db.Integer())

    referral_code = db.Column(db.String(16),
                              unique=True,
                              nullable=False,
                              index=True)
    course = db.Column(db.String(10))
    entry_year = db.Column(db.String())

    user = relationship('Users', cascade="all,delete")
    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.id', ondelete='CASCADE'))

    squad = relationship('Squads', back_populates="members", uselist=False)
    squad_id = db.Column(db.Integer,
                         db.ForeignKey('squads.id', ondelete='SET NULL'))

    tags = relationship("Tags",
                        secondary="students_tags",
                        secondaryjoin=sql.and_(StudentsTags.tag_id == Tags.id))

    companies = relationship(
        "Companies",
        secondary="student_companies",
        secondaryjoin=sql.and_(StudentCompanies.company_id == Companies.id))

    login_dates = relationship("StudentLogins")

    activities = relationship(
        "Activities",
        secondary="student_activities",
        secondaryjoin=sql.and_(StudentActivities.activity_id == Activities.id))

    def is_captain(self):
        if self.squad:
            return self.user.username == self.squad.captain_ist_id
        return False

    def __repr__(self):
        return 'Name: {}  |  IST Id: {}'.format(self.user.name,
                                                self.user.username)
Exemplo n.º 29
0
class Companies(db.Model, ModelMixin):
    __tablename__ = 'companies'

    name = db.Column(db.String(100), unique=True)
    email = db.Column(db.String(100))
    link = db.Column(db.String(100))
    business_area = db.Column(db.String(100))

    chat_id = db.Column(db.String)
    chat_code = db.Column(db.String)

    partnership_tier = db.Column(db.String(20))

    show_in_website = db.Column(db.Boolean, default=True)
    cvs_access = db.Column(db.Boolean, default=False)

    evf_username = db.Column(db.String)
    evf_password = db.Column(db.String)

    activities = relationship(
        "Activities",
        secondary="company_activities",
        order_by="Activities.day, Activities.time",
        secondaryjoin=sql.and_(CompanyActivities.activity_id == Activities.id,
                               Activities.event_id == Events.id,
                               Events.default == True))

    dishes = relationship(
        "Dishes",
        secondary="company_dishes",
        secondaryjoin=sql.and_(CompanyDishes.dish_id == Dishes.id))

    meals = relationship(
        "Meals",
        secondary="company_meals",
        secondaryjoin=sql.and_(CompanyMeals.meal_id == Meals.id))

    tags = relationship(
        "Tags",
        secondary="companies_tags",
        secondaryjoin=sql.and_(CompaniesTags.tag_id == Tags.id))

    users = relationship("CompanyUsers",
                         back_populates='company',
                         lazy='dynamic',
                         cascade="all,delete")

    def __repr__(self):
        return 'Name: {}'.format(self.name)