# -*- coding: UTF-8 -* """ScoDoc models : departements """ from typing import Any from app import db from app.models import SHORT_STR_LEN class Departement(db.Model): """Un département ScoDoc""" id = db.Column(db.Integer, primary_key=True) acronym = db.Column(db.String(SHORT_STR_LEN), nullable=False, index=True) description = db.Column(db.Text()) date_creation = db.Column(db.DateTime(timezone=True), server_default=db.func.now()) visible = db.Column( db.Boolean(), nullable=False, default=True, server_default="true" ) # sur page d'accueil entreprises = db.relationship("Entreprise", lazy="dynamic", backref="departement") etudiants = db.relationship("Identite", lazy="dynamic", backref="departement") formations = db.relationship( "NotesFormation", lazy="dynamic", backref="departement" ) formsemestres = db.relationship( "FormSemestre", lazy="dynamic", backref="departement" ) preferences = db.relationship( "ScoPreference", lazy="dynamic", backref="departement" ) semsets = db.relationship("NotesSemSet", lazy="dynamic", backref="departement") def __repr__(self): return f"<Departement {self.acronym}>" def to_dict(self): data = { "id": self.id, "acronym": self.acronym, "description": self.description, "visible": self.visible, "date_creation": self.date_creation, } return data