Пример #1
0
class IndicatorValue(db.Model):
    __tablename__ = 'indicatorvalue'

    timestamp = db.Column(db.DateTime(), nullable=False)
    value = db.Column(db.Numeric(), nullable=False)

    indicator_id = db.Column(db.Integer(),
                             db.ForeignKey('indicator.id', ondelete='CASCADE'),
                             nullable=False,
                             index=True)

    __table_args__ = (db.PrimaryKeyConstraint(
        'timestamp',
        'indicator_id',
        name='indicatorvalue_timestamp_indicator_id_pkey'), )

    def as_dict(self):
        return {
            'timestamp': self.timestamp,
            'value': self.value,
            'indicator_id': self.indicator_id
        }

    def update_dict(self):
        return {'value': self.value}

    def __repr__(self):
        return '<SLI value {} | {}: {}>'.format(self.indicator.name,
                                                self.timestamp, self.value)
Пример #2
0
from flask_sqlalchemy import SQLAlchemy

from app.extensions import db

file_path = os.path.join(os.path.dirname(__file__), 'static/files')

term_category_relationship = db.Table('term_category_relationship',
                                      db.Column('term_id',
                                                db.Integer,
                                                db.ForeignKey('term.id'),
                                                nullable=False),
                                      db.Column('category_id',
                                                db.Integer,
                                                db.ForeignKey('category.id'),
                                                nullable=False),
                                      db.PrimaryKeyConstraint('term_id', 'category_id'))

document_types_relationship = db.Table('document_types_table',
                                       db.Column('document_id',
                                                 db.Integer,
                                                 db.ForeignKey('document.id'),
                                                 nullable=False),
                                       db.Column('document_type_id',
                                                 db.Integer,
                                                 db.ForeignKey('document_type.id'),
                                                 nullable=False),
                                       db.PrimaryKeyConstraint('document_id', 'document_type_id'))

term_column_relationship = db.Table('term_column_relationship',
                                    db.Column('term_id',
                                              db.Integer,
Пример #3
0
    STAFF = 'STAFF'
    GUEST = 'GUEST'
    ANONYMOUS = 'ANONYMOUS'


'''
Many to many relationship between roles and permissions
'''
role_permission = db.Table(
    'role_permission',
    db.Column('role_id', db.Integer, db.ForeignKey('role.id'), nullable=False),
    db.Column('permission_id',
              db.Integer,
              db.ForeignKey('permission.id'),
              nullable=False),
    db.PrimaryKeyConstraint('role_id', 'permission_id'))


class Role(db.Model):
    '''
    Database representation of a role
    '''
    __tablename__ = 'role'

    _id = db.Column('id', db.Integer, primary_key=True)
    _name = db.Column('name', db.String(120), unique=True, nullable=False)

    _permissions = db.relationship('Permission',
                                   secondary=role_permission,
                                   backref='roles')
Пример #4
0
    LIVE = "live"
    PAST = "past"
    DRAFT = "draft"


# association table between users and events tables
saved_events = db.Table(
    "saved_events",
    db.Column("user_id", db.Integer, db.ForeignKey("users.id"),
              nullable=False),
    db.Column("event_id",
              db.Integer,
              db.ForeignKey("events.id"),
              nullable=False),
    db.PrimaryKeyConstraint("user_id", "event_id"),
)


class Event(AbstractModel):
    """Class to represent an event"""

    __tablename__ = "events"
    __searchable__ = [
        "title",
        "description",
        "venue.state",
        "venue.city",
        "start_datetime",
        "end_datetime",
        "event_category_id",
Пример #5
0
    email = db.Column(db.String(120), unique=True, nullable=False)
    email_confirmed = db.Column(db.Boolean, default=False)
    email_confirmed_on = db.Column(db.DateTime(timezone=True))
    waitlist = db.relationship('Waitlist',
                               uselist=False,
                               back_populates='user')

    def __init__(self, email):
        self.email = email


referrals = db.Table(
    'referral',
    db.Column('referring', db.String(8), db.ForeignKey('waitlist.uuid')),
    db.Column('referred', db.String(8), db.ForeignKey('waitlist.uuid')),
    db.PrimaryKeyConstraint('referring', 'referred', name='referrals_pk'))


class Waitlist(BaseModel, db.Model):
    __tablename__ = 'waitlist'

    initial_score = 65231
    decrease_per_referral = 10

    uuid = db.Column(db.String(8), primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship('User', back_populates='waitlist')
    score = db.Column(db.Integer)
    referred = db.relationship('Waitlist',
                               secondary=referrals,
                               primaryjoin=(referrals.c.referring == uuid),