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())
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')
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__
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')
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.')
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()
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()