示例#1
0
class Events(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'events'

    name = db.Column(db.String(50), primary_key=True)
    full_name = db.Column(db.String(60), unique=True)
示例#2
0
class Coursera2020(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'coursera_2020'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    email = db.Column(db.String(50), unique=True)
    phone = db.Column(db.String(10), unique=True)
    prn = db.Column(db.String(10), unique=True)
    faculty = db.Column(db.String(30))
    school = db.Column(db.String(25))
    program = db.Column(db.String(35))
    year = db.Column(db.Integer())

    def __repr__(self):
        return '%r' % [
            self.id,
            self.name,
            self.email,
            self.phone,
            self.prn,
            self.faculty,
            self.school,
            self.program,
            self.year,
        ]

    def validate(self):
        if self.query.filter(Coursera2020.prn == self.prn).first():
            return f'PRN {self.prn} is already registered in the database'
        return super().validate()
示例#3
0
class CPPWSMay2019(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'cpp_workshop_may_2019'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    email = db.Column(db.String(50), unique=True)
    phone = db.Column(db.String(21), unique=True)

    def __repr__(self):
        return '%r' % [self.id, self.name, self.email, self.phone]
示例#4
0
class TestTable(db.Model):
    """
    Database model class
    """

    __tablename__ = 'test_users'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    email = db.Column(db.String(50), unique=True)
    phone = db.Column(db.String(21), unique=True)

    def __repr__(self):
        return '%r' % [self.id, self.name, self.email, self.phone]
示例#5
0
class User(db.Model, UserMixin):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(100), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    approved = db.Column(db.Boolean, nullable=False, default=False)

    events = db.relationship('Event', secondary='access')

    def __repr__(self):
        return f'User( Id : {self.id}, Username : {self.username}, Email : {self.email}, Approved : {self.approved})'
示例#6
0
class CSINovemberNonMember2019(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'csi_november_non_member_2019'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    email = db.Column(db.String(50), unique=True)
    phone = db.Column(db.String(21), unique=True)
    department = db.Column(db.String(50))
    year = db.Column(db.String(3))
    prn = db.Column(db.String(10), unique=True)
    paid = db.Column(db.String(20))

    def __repr__(self):
        return '%r' % [
            self.id,
            self.name,
            self.email,
            self.phone,
            self.department,
            self.year,
            self.prn,
        ]

    def validate(self):
        if self.query.filter(CSINovemberNonMember2019.prn == self.prn).first():
            return f'PRN {self.prn} is already registered in the database'
        return super().validate()
示例#7
0
class CodexApril2019(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'codex_april_2019'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    email = db.Column(db.String(50), unique=True)
    phone = db.Column(db.String(21), unique=True)
    department = db.Column(db.String(50))

    def __repr__(self):
        return '%r' % [
            self.id, self.name, self.email, self.phone, self.department
        ]
示例#8
0
class CNovember2019(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'c_november_2019'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    email = db.Column(db.String(50), unique=True)
    phone = db.Column(db.String(21), unique=True)
    year = db.Column(db.String(3))
    prn = db.Column(db.Integer, unique=True)
    roll = db.Column(db.String(4), unique=True)

    def __repr__(self):
        return '%r' % [
            self.id,
            self.name,
            self.email,
            self.phone,
            self.year,
            self.prn,
            self.roll,
        ]

    def validate(self):
        if self.year == '2nd':
            return super().validate()
        if self.query.filter(CNovember2019.prn == self.prn).first():
            return f'PRN {self.prn} has already been registered!'
        if self.query.filter(CNovember2019.roll == self.roll).first():
            return f'Roll number {self.roll} has already been registered!'
        return 'This workshop is <b>only</b> for SY students'
示例#9
0
class Access(db.Model):
    """
    Database model class
    """

    __tablename__ = 'access'

    event = db.Column(db.String(50),
                      db.ForeignKey('events.name'),
                      nullable=False,
                      primary_key=True)
    user = db.Column(db.String(20),
                     db.ForeignKey('users.username'),
                     nullable=False,
                     primary_key=True)

    def __repr__(self):
        return '%r' % [self.event, self.user]
示例#10
0
class Access(db.Model):

    __tablename__ = 'access'

    user_id = db.Column(db.Integer,
                        db.ForeignKey('users.id'),
                        primary_key=True)
    event_id = db.Column(db.Integer,
                         db.ForeignKey('events.id'),
                         primary_key=True)
    read_only = db.Column(db.Boolean, default=True, nullable=False)

    user = db.relationship(User,
                           backref=db.backref('access',
                                              cascade='all, delete-orphan'))
    event = db.relationship(Event,
                            backref=db.backref('access',
                                               cascade='all, delete-orphan'))

    def __repr__(self):
        return f'Access( UserId : {self.user_id}, EventId : {self.event_id}, ReadOnly : {self.read_only} )'
示例#11
0
class CCPPWSAugust2019(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'c_cpp_workshop_august_2019'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    email = db.Column(db.String(50), unique=True)
    phone = db.Column(db.String(21), unique=True)
    department = db.Column(db.String(50))
    year = db.Column(db.String(3))

    def __repr__(self):
        return '%r' % [
            self.id,
            self.name,
            self.email,
            self.phone,
            self.department,
            self.year,
        ]

    def validate(self):
        if self.year == '1st':
            return super().validate()
        return 'This workshop is <b>only</b> for FY students'
示例#12
0
class BOV2020(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'bov_2020'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(31))
    email = db.Column(db.String(51), unique=True)
    phone = db.Column(db.String(19))
    hackerrank_username = db.Column(db.String(50), unique=True)
    country = db.Column(db.String(24))

    def __repr__(self):
        return '%r' % [
            self.id,
            self.name,
            self.email,
            self.phone,
            self.hackerrank_username,
            self.country,
        ]

    def validate(self):
        if (get(f'https://hackerrank.com/{self.hackerrank_username}').content.
                decode().count(self.hackerrank_username) < 3):
            return f"Your hackerrank profile doesn't seem to exist!"

        if self.query.filter(BOV2020.hackerrank_username ==
                             self.hackerrank_username).first():
            return f"Someone has already registered with hackerrank username <code>{self.hackerrank_username}</code>.<br/>Kindly contact the team if that is your username and it wasn't your registration"
        return super().validate()
示例#13
0
class Users(db.Model, UserMixin):
    """
    Database model class
    """

    __tablename__ = 'users'
    name = db.Column(db.String(30))
    username = db.Column(db.String(20), primary_key=True)
    password = db.Column(db.String(100))
    email = db.Column(db.String(50), unique=True)

    def get_id(self):
        return self.username if self is not None else None

    def check_password_hash(self, password: str) -> bool:
        return bcrypt.check_password_hash(self.password, password)

    def generate_password_hash(self, password: str):
        self.password = bcrypt.generate_password_hash(password).decode('utf-8')

    def __repr__(self):
        return '%r' % [self.username, self.name, self.email]
示例#14
0
class Event(db.Model):

    __tablename__ = 'events'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), unique=True, nullable=False)
    description = db.Column(db.String(500), nullable=False)
    start_date = db.Column(db.Date, nullable=False)
    start_time = db.Column(db.Time, nullable=False)
    end_date = db.Column(db.Date, nullable=False)
    end_time = db.Column(db.Time, nullable=False)
    event_creator = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    contact_email = db.Column(db.String(100), unique=True, nullable=False)
    active_state = db.Column(db.Boolean, nullable=False, default=False)

    users = db.relationship('User', secondary='access')
    creator = db.relationship('User', foreign_keys='Event.event_creator')
    
    participants = db.relationship(Participant, backref=db.backref('events'))

    def __repr__(self):
        return f'Event( Id : {self.id}, Name : {self.name}, Description : <Use Obj.description to get description>, Start Date : {self.start_date}, Start Time : {self.start_time}, End Date : {self.end_date}, End Time : {self.end_time}, Event Creator : {self.event_creator} ActiveState : {self.active_state} )'
示例#15
0
class CodexDecember2019(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'codex_december_2019'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(62))
    email = db.Column(db.String(102), unique=True)
    phone = db.Column(db.String(21), unique=True)
    department = db.Column(db.String(20))
    year = db.Column(db.String(3))
    hackerrank_username = db.Column(db.String(50), unique=True)
    paid = db.Column(db.String(20))

    def __repr__(self):
        return '%r' % [
            self.id,
            self.name,
            self.email,
            self.phone,
            self.department,
            self.year,
            self.hackerrank_username,
            self.paid,
        ]

    def validate(self):
        if (get(f'https://hackerrank.com/{self.hackerrank_username}').content.
                decode().count(self.hackerrank_username) < 3):
            return f"Your hackerrank profile doesn't seem to exist!"

        if self.query.filter(CodexDecember2019.hackerrank_username ==
                             self.hackerrank_username).first():
            return f"Someone has already registered with hackerrank username <code>{self.hackerrank_username}</code>.<br/>Kindly contact the team if that is your username and it wasn't your registration"
        return super().validate()
示例#16
0
class Participant(db.Model):

    __tablename__ = 'participants'

    id = db.Column(db.Integer, primary_key=True)
    firstname = db.Column(db.String(100), nullable=False)
    lastname = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(100), nullable=False)
    event_id = db.Column(db.Integer,
                         db.ForeignKey('events.id'),
                         nullable=False)
    attended = db.Column(db.Boolean, nullable=False, default=False)

    event = db.relationship('Event', foreign_keys='Participant.event_id')

    def __repr__(self):
        return f'Participant( Id : {self.id}, FirstName : {self.firstname}, LastName : {self.lastname}, Email : {self.email}, EventId : {self.event_id}, Attended : {self.attended} )'
示例#17
0
class P5November2019(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'p5_november_2019'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    email = db.Column(db.String(50), unique=True)
    phone = db.Column(db.String(21), unique=True)
    department = db.Column(db.String(50))
    year = db.Column(db.String(3))
    level = db.Column(db.String(12))

    def __repr__(self):
        return '%r' % [
            self.id,
            self.name,
            self.email,
            self.phone,
            self.department,
            self.year,
            self.level,
        ]
示例#18
0
class Hacktoberfest2019(ValidateMixin, db.Model):
    """
    Database model class
    """

    __tablename__ = 'do_hacktoberfest_2019'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30))
    email = db.Column(db.String(50), unique=True)
    phone = db.Column(db.String(21), unique=True)
    department = db.Column(db.String(50))
    year = db.Column(db.String(3))
    date = db.Column(db.String(2))

    def __repr__(self):
        return '%r' % [
            self.id,
            self.name,
            self.email,
            self.phone,
            self.department,
            self.year,
            self.date,
        ]