119 lines
3.5 KiB
Python
119 lines
3.5 KiB
Python
from sqlalchemy import ForeignKey
|
|
|
|
from gncitizen.utils.sqlalchemy import serializable
|
|
from server import db
|
|
|
|
|
|
@serializable
|
|
class BibNoms(db.Model):
|
|
__tablename__ = "bib_noms"
|
|
__table_args__ = {"schema": "taxonomie", "extend_existing": True}
|
|
id_nom = db.Column(db.Integer, primary_key=True)
|
|
cd_nom = db.Column(db.Integer, nullable=True, unique=True)
|
|
cd_ref = db.Column(db.Integer, unique=True)
|
|
nom_francais = db.Column(db.Unicode)
|
|
comments = db.Column(db.Unicode)
|
|
|
|
|
|
@serializable
|
|
class BibListes(db.Model):
|
|
__tablename__ = "bib_listes"
|
|
__table_args__ = {"schema": "taxonomie", "extend_existing": True}
|
|
id_liste = db.Column(db.Integer, primary_key=True)
|
|
nom_liste = db.Column(db.Unicode)
|
|
desc_liste = db.Column(db.Text)
|
|
picto = db.Column(db.Unicode)
|
|
regne = db.Column(db.Unicode)
|
|
group2_inpn = db.Column(db.Unicode)
|
|
|
|
# cnl = db.relationship("CorNomListe", lazy='select')
|
|
|
|
def __repr__(self):
|
|
return "<BibListes %r>" % self.nom_liste
|
|
|
|
|
|
@serializable
|
|
class CorNomListe(db.Model):
|
|
__tablename__ = "cor_nom_liste"
|
|
__table_args__ = {"schema": "taxonomie", "extend_existing": True}
|
|
id_liste = db.Column(
|
|
db.Integer,
|
|
ForeignKey("taxonomie.bib_listes.id_liste"),
|
|
nullable=False,
|
|
primary_key=True,
|
|
)
|
|
id_nom = db.Column(
|
|
db.Integer,
|
|
ForeignKey("taxonomie.bib_noms.id_nom"),
|
|
nullable=False,
|
|
primary_key=True,
|
|
)
|
|
bib_nom = db.relationship("BibNoms")
|
|
bib_liste = db.relationship("BibListes")
|
|
|
|
def __repr__(self):
|
|
return "<CorNomListe %r>" % self.id_liste
|
|
|
|
# listes = db.relationship("CorNomListe", lazy='select')
|
|
# medias = db.relationship("TMedias", lazy='select')
|
|
#
|
|
|
|
|
|
@serializable
|
|
class TMedias(db.Model):
|
|
__tablename__ = "t_medias"
|
|
__table_args__ = {"schema": "taxonomie", "extend_existing": True}
|
|
id_media = db.Column(db.Integer, primary_key=True)
|
|
cd_ref = db.Column(
|
|
db.Integer,
|
|
ForeignKey("taxonomie.bib_noms.cd_ref"),
|
|
nullable=False,
|
|
primary_key=False,
|
|
)
|
|
titre = db.Column(db.Unicode)
|
|
url = db.Column(db.Unicode)
|
|
chemin = db.Column(db.Unicode)
|
|
auteur = db.Column(db.Unicode)
|
|
desc_media = db.Column(db.Text)
|
|
is_public = db.Column(db.BOOLEAN)
|
|
supprime = db.Column(db.BOOLEAN)
|
|
id_type = db.Column(db.Integer)
|
|
source = db.Column(db.Text)
|
|
licence = db.Column(db.Text)
|
|
|
|
def __repr__(self):
|
|
return "<TMedias %r>" % self.titre
|
|
|
|
|
|
@serializable
|
|
class Taxref(db.Model):
|
|
__tablename__ = "taxref"
|
|
__table_args__ = {"schema": "taxonomie"}
|
|
cd_nom = db.Column(db.Integer, primary_key=True)
|
|
id_statut = db.Column(db.Unicode)
|
|
id_habitat = db.Column(db.Integer)
|
|
id_rang = db.Column(db.Unicode)
|
|
regne = db.Column(db.Unicode)
|
|
phylum = db.Column(db.Unicode)
|
|
classe = db.Column(db.Unicode)
|
|
ordre = db.Column(db.Unicode)
|
|
famille = db.Column(db.Unicode)
|
|
sous_famille = db.Column(db.Unicode)
|
|
tribu = db.Column(db.Unicode)
|
|
cd_taxsup = db.Column(db.Integer)
|
|
cd_sup = db.Column(db.Integer)
|
|
cd_ref = db.Column(db.Integer)
|
|
lb_nom = db.Column(db.Unicode)
|
|
lb_auteur = db.Column(db.Unicode)
|
|
nom_complet = db.Column(db.Unicode)
|
|
nom_complet_html = db.Column(db.Unicode)
|
|
nom_vern = db.Column(db.Unicode)
|
|
nom_valide = db.Column(db.Unicode)
|
|
nom_vern_eng = db.Column(db.Unicode)
|
|
group1_inpn = db.Column(db.Unicode)
|
|
group2_inpn = db.Column(db.Unicode)
|
|
url = db.Column(db.Unicode)
|
|
|
|
def __repr__(self):
|
|
return "<Taxref %r>" % self.nom_complet
|