Ejemplo n.º 1
0
class Dataset(db.Model):

    __tablename__ = 'datasets'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False)
    number_of_rows = db.Column(db.Integer)
    filename = db.Column(db.String(40), nullable=False)
    latitude_attr = db.Column(db.String(50))
    longitude_attr = db.Column(db.String(50))
    attributes = db.relationship('Attribute',
                                 backref='dataset',
                                 cascade='all, delete-orphan')
    created_at = db.Column(db.DateTime, nullable=False)
    indexed_at = db.Column(db.DateTime)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)

    def __init__(self,
                 title,
                 filename,
                 number_of_rows=None,
                 latitude_attr=None,
                 longitude_attr=None):
        self.title = title
        self.filename = filename
        self.number_of_rows = number_of_rows
        self.latitude_attr = latitude_attr
        self.longitude_attr = longitude_attr
        self.created_at = datetime.datetime.now()
        self.user_id = current_user.id

    def __repr__(self):
        return '<Dataset {}>'.format(self.filename)
Ejemplo n.º 2
0
class Session(db.Model):

    __tablename__ = 'sessions'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    created_at = db.Column(db.DateTime, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    dataset_id = db.Column(db.Integer, db.ForeignKey('datasets.id'))

    def __init__(self, dataset):
        self.user_id = current_user.id
        self.created_at = datetime.datetime.now(datetime.timezone.utc)
        self.dataset_id = dataset.id

    def __repr__(self):
        return '<Session {}>'.format(self.created_at)
Ejemplo n.º 3
0
class Attribute(db.Model):

    __tablename__ = 'attributes'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    description = db.Column(db.String(50), nullable=False)
    type = db.Column(ChoiceType(AttributeType, impl=db.Integer()))
    dataset_id = db.Column(db.Integer,
                           db.ForeignKey('datasets.id'),
                           nullable=False)
    visible = db.Column(db.Boolean, default=True)

    def __init__(self, description, type, dataset_id, visible=True):
        self.description = description
        self.type = type
        self.dataset_id = dataset_id
        self.visible = visible

    def __repr__(self):
        return '<Attribute {}>'.format(self.description)
Ejemplo n.º 4
0
class Polygon(db.Model):

    __tablename__ = 'polygons'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    geom = db.Column(Geometry('POLYGON'))
    created_at = db.Column(db.DateTime, nullable=False)
    session_id = db.Column(db.Integer,
                           db.ForeignKey('sessions.id'),
                           nullable=False)
    iteration = db.Column(db.Integer)
    profile = db.Column(JSON)

    def __init__(self, session_id, geom, iteration):
        self.geom = geom
        self.iteration = iteration
        self.session_id = session_id
        self.created_at = datetime.datetime.now(datetime.timezone.utc)

    def __repr__(self):
        return '<Polygon {}>'.format(self.id)