Exemple #1
0
class VColorAreaTaxon(DB.Model):
    __tablename__ = "v_color_taxon_area"
    __table_args__ = {"schema": "gn_synthese"}
    cd_nom = DB.Column(DB.Integer(), ForeignKey("taxonomie.taxref.cd_nom"), primary_key=True)
    id_area = DB.Column(DB.Integer(), ForeignKey("ref_geo.l_area.id_area"), primary_key=True)
    nb_obs = DB.Column(DB.Integer())
    last_date = DB.Column(DB.DateTime())
    color = DB.Column(DB.Unicode())
Exemple #2
0
class ExportSchedules(DB.Model):
    __tablename__ = 't_export_schedules'
    __table_args__ = {'schema': 'gn_exports'}
    id_export_schedule = DB.Column(DB.Integer,
                                   primary_key=True,
                                   nullable=False)
    frequency = DB.Column(DB.Integer(), nullable=False)
    format = DB.Column(DB.String(10), nullable=False)
    id_export = DB.Column(DB.Integer(), DB.ForeignKey(Export.id))

    export = DB.relationship(
        'Export',
        primaryjoin='Export.id==ExportSchedules.id_export',
        backref='exports',
        lazy='subquery')
Exemple #3
0
class Export(DB.Model):
    __tablename__ = 't_exports'
    __table_args__ = {'schema': 'gn_exports'}
    id = DB.Column(DB.Integer, primary_key=True, nullable=False)  # noqa: A003
    label = DB.Column(DB.Text, nullable=False, unique=True, index=True)
    schema_name = DB.Column(DB.Text, nullable=False)
    view_name = DB.Column(DB.Text, nullable=False)
    desc = DB.Column(DB.Text)
    geometry_field = DB.Column(DB.Text)
    geometry_srid = DB.Column(DB.Integer)
    public = DB.Column(DB.Boolean, nullable=False, default=False)
    id_licence = DB.Column(DB.Integer(),
                           DB.ForeignKey(Licences.id_licence),
                           primary_key=True,
                           nullable=False)

    licence = DB.relationship(
        'Licences',
        primaryjoin='Export.id_licence==Licences.id_licence',
        backref='exports')

    def __str__(self):
        return "{}".format(self.label)

    __repr__ = __str__
Exemple #4
0
class CorExportsRoles(DB.Model):
    __tablename__ = 'cor_exports_roles'
    __table_args__ = {'schema': 'gn_exports'}
    id_export = DB.Column(DB.Integer(),
                          DB.ForeignKey(Export.id),
                          primary_key=True,
                          nullable=False)
    export = DB.relationship('Export', foreign_keys=[id_export], lazy='joined')
    id_role = DB.Column(DB.Integer,
                        DB.ForeignKey(User.id_role),
                        primary_key=True,
                        nullable=False)
    role = DB.relationship('User', foreign_keys=[id_role], lazy='joined')
Exemple #5
0
class ExportLog(DB.Model):
    __tablename__ = 't_exports_logs'
    __table_args__ = {'schema': 'gn_exports'}
    id = DB.Column(DB.Integer, primary_key=True, nullable=False)  # noqa: A003
    id_role = DB.Column(DB.Integer, DB.ForeignKey(User.id_role))
    role = DB.relationship('User', foreign_keys=[id_role], lazy='joined')
    id_export = DB.Column(DB.Integer(), DB.ForeignKey(Export.id))
    export = DB.relationship('Export', lazy='joined')
    format = DB.Column(DB.String(4), nullable=False)  # noqa: A003
    start_time = DB.Column(DB.DateTime, nullable=False)
    end_time = DB.Column(DB.DateTime)
    status = DB.Column(DB.Integer, default=-2)
    log = DB.Column(DB.Text)

    def __init__(self, id_role, id_export, export_format, start_time, end_time,
                 status, log):
        self.id_role = id_role
        self.id_export = id_export
        self.format = export_format
        self.start_time = start_time
        self.end_time = end_time
        self.status = status
        self.log = log

    @classmethod
    def from_dict(cls, adict):
        export_log = ExportLog(id_role=adict['id_role'],
                               id_export=adict['id_export'],
                               export_format=adict['export_format'],
                               start_time=adict['start_time'],
                               end_time=adict['end_time'],
                               status=adict['status'],
                               log=adict['log'])
        return export_log

    @classmethod
    def record(cls, adict):
        try:
            x = ExportLog.from_dict(adict)
            DB.session.add(x)
            DB.session.commit()
        except Exception as e:
            DB.session.rollback()
            raise e('Echec de journalisation.')
Exemple #6
0
class Export(DB.Model):
    __tablename__ = 't_exports_logs'
    __table_args__ = {'schema': 'gn_intero', 'extend_existing': True}
    id = DB.Column(DB.TIMESTAMP(timezone=False),
                   primary_key=True, nullable=False)
    standard = DB.Column(DB.Numeric, default=0)
    format = DB.Column(DB.Integer, nullable=False)
    status = DB.Column(DB.Numeric, default=-2)
    log = DB.Column(DB.UnicodeText)
    start = DB.Column(DB.DateTime)
    end = DB.Column(DB.DateTime)
    id_export = DB.Column(DB.Integer(),
                          DB.ForeignKey('gn_intero.t_exports.id'))
    export = DB.relationship('ExportType', foreign_keys='Export.id_export',
                             backref=DB.backref('ExportType', lazy='dynamic'))

    def __init__(self, standard, format, selection=None):
        self.standard = standard
        self.id = datetime.utcnow()
        self.format = int(format)
        if selection:
            self.selection = selection

    def __repr__(self):
        return "<Export(id='{}', selection='{}', date='{}', standard='{}', format='{}')>".format(  # noqa E501
            float(self.id), self.export.selection, self.start, self.standard, self.format)  # noqa E501

    def as_dict(self):
        return {
            'id': float(self.ts()),
            'extension': format_map_ext[self.format],
            'selection': self.export.selection,
            'label': self.export.label,
            'standard': standard_map_label[self.standard],
            'date': self.start,
        }

    def ts(self):
        return (datetime.strptime(str(self.id), '%Y-%m-%d %H:%M:%S.%f')
                - datetime.utcfromtimestamp(0)).total_seconds()
Exemple #7
0
class ExportLog(DB.Model):
    __tablename__ = 't_exports_logs'
    __table_args__ = {'schema': 'gn_exports'}
    id = DB.Column(DB.Integer, primary_key=True, nullable=False)  # noqa: A003
    id_role = DB.Column(DB.Integer, DB.ForeignKey(User.id_role))
    role = DB.relationship('User', foreign_keys=[id_role], lazy='joined')
    id_export = DB.Column(DB.Integer(), DB.ForeignKey(Export.id))
    export = DB.relationship('Export', lazy='joined')
    format = DB.Column(DB.String(10), nullable=False)  # noqa: A003
    start_time = DB.Column(DB.DateTime, nullable=False)
    end_time = DB.Column(DB.DateTime)
    status = DB.Column(DB.Integer, default=-2)
    log = DB.Column(DB.Text)

    @classmethod
    def record(cls, adict):
        try:
            exportLog = cls()
            exportLog.from_dict(adict)
            DB.session.add(exportLog)
            DB.session.commit()
        except Exception as e:
            DB.session.rollback()