forked from ScoDoc/ScoDoc
Fix: cascade on ue coefs
This commit is contained in:
parent
47e752c95c
commit
83f522f08c
@ -43,6 +43,13 @@ class Formation(db.Model):
|
|||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"<{self.__class__.__name__}(id={self.id}, dept_id={self.dept_id}, acronyme='{self.acronyme}')>"
|
return f"<{self.__class__.__name__}(id={self.id}, dept_id={self.dept_id}, acronyme='{self.acronyme}')>"
|
||||||
|
|
||||||
|
def to_dict(self):
|
||||||
|
e = dict(self.__dict__)
|
||||||
|
e.pop("_sa_instance_state", None)
|
||||||
|
# ScoDoc7 output_formators: (backward compat)
|
||||||
|
e["formation_id"] = self.id
|
||||||
|
return e
|
||||||
|
|
||||||
def get_parcours(self):
|
def get_parcours(self):
|
||||||
"""get l'instance de TypeParcours de cette formation"""
|
"""get l'instance de TypeParcours de cette formation"""
|
||||||
return sco_codes_parcours.get_parcours_from_code(self.type_parcours)
|
return sco_codes_parcours.get_parcours_from_code(self.type_parcours)
|
||||||
@ -215,6 +222,19 @@ class Module(db.Model):
|
|||||||
f"<Module{ModuleType(self.module_type).name} id={self.id} code={self.code}>"
|
f"<Module{ModuleType(self.module_type).name} id={self.id} code={self.code}>"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def to_dict(self):
|
||||||
|
e = dict(self.__dict__)
|
||||||
|
e.pop("_sa_instance_state", None)
|
||||||
|
# ScoDoc7 output_formators: (backward compat)
|
||||||
|
e["module_id"] = self.id
|
||||||
|
e["heures_cours"] = 0.0 if self.heures_cours is None else self.heures_cours
|
||||||
|
e["heures_td"] = 0.0 if self.heures_td is None else self.heures_td
|
||||||
|
e["heures_tp"] = 0.0 if self.heures_tp is None else self.heures_tp
|
||||||
|
e["numero"] = 0 if self.numero is None else self.numero
|
||||||
|
e["coefficient"] = 0.0 if self.coefficient is None else self.coefficient
|
||||||
|
e["module_type"] = 0 if self.module_type is None else self.module_type
|
||||||
|
return e
|
||||||
|
|
||||||
def is_apc(self):
|
def is_apc(self):
|
||||||
"True si module SAÉ ou Ressource"
|
"True si module SAÉ ou Ressource"
|
||||||
return scu.ModuleType(self.module_type) in {
|
return scu.ModuleType(self.module_type) in {
|
||||||
@ -274,20 +294,34 @@ class ModuleUECoef(db.Model):
|
|||||||
__tablename__ = "module_ue_coef"
|
__tablename__ = "module_ue_coef"
|
||||||
|
|
||||||
module_id = db.Column(
|
module_id = db.Column(
|
||||||
db.Integer, db.ForeignKey("notes_modules.id"), primary_key=True
|
db.Integer,
|
||||||
|
db.ForeignKey("notes_modules.id", ondelete="CASCADE"),
|
||||||
|
primary_key=True,
|
||||||
|
)
|
||||||
|
ue_id = db.Column(
|
||||||
|
db.Integer,
|
||||||
|
db.ForeignKey("notes_ue.id", ondelete="CASCADE"),
|
||||||
|
primary_key=True,
|
||||||
)
|
)
|
||||||
ue_id = db.Column(db.Integer, db.ForeignKey("notes_ue.id"), primary_key=True)
|
|
||||||
coef = db.Column(
|
coef = db.Column(
|
||||||
db.Float,
|
db.Float,
|
||||||
nullable=False,
|
nullable=False,
|
||||||
)
|
)
|
||||||
module = db.relationship(
|
module = db.relationship(
|
||||||
Module,
|
Module,
|
||||||
backref=db.backref("ue_coefs", cascade="all, delete-orphan"),
|
backref=db.backref(
|
||||||
|
"ue_coefs",
|
||||||
|
passive_deletes=True,
|
||||||
|
cascade="save-update, merge, delete, delete-orphan",
|
||||||
|
),
|
||||||
)
|
)
|
||||||
ue = db.relationship(
|
ue = db.relationship(
|
||||||
UniteEns,
|
UniteEns,
|
||||||
backref=db.backref("module_ue_coefs", cascade="all, delete-orphan"),
|
backref=db.backref(
|
||||||
|
"module_ue_coefs",
|
||||||
|
passive_deletes=True,
|
||||||
|
cascade="save-update, merge, delete, delete-orphan",
|
||||||
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,64 @@
|
|||||||
|
"""fix cascades on ModuleUECoef
|
||||||
|
|
||||||
|
Revision ID: a26b3103697d
|
||||||
|
Revises: c8efc54586d8
|
||||||
|
Create Date: 2021-11-30 10:47:23.465897
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = "a26b3103697d"
|
||||||
|
down_revision = "c8efc54586d8"
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_constraint(
|
||||||
|
"module_ue_coef_module_id_fkey", "module_ue_coef", type_="foreignkey"
|
||||||
|
)
|
||||||
|
op.drop_constraint(
|
||||||
|
"module_ue_coef_ue_id_fkey", "module_ue_coef", type_="foreignkey"
|
||||||
|
)
|
||||||
|
op.create_foreign_key(
|
||||||
|
"ev_module_ue_coef_ue_id_fkey",
|
||||||
|
"module_ue_coef",
|
||||||
|
"notes_modules",
|
||||||
|
["module_id"],
|
||||||
|
["id"],
|
||||||
|
ondelete="CASCADE",
|
||||||
|
)
|
||||||
|
op.create_foreign_key(
|
||||||
|
"ev_module_ue_coef_module_id_fkey",
|
||||||
|
"module_ue_coef",
|
||||||
|
"notes_ue",
|
||||||
|
["ue_id"],
|
||||||
|
["id"],
|
||||||
|
ondelete="CASCADE",
|
||||||
|
)
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_constraint(
|
||||||
|
"ev_module_ue_coef_ue_id_fkey", "module_ue_coef", type_="foreignkey"
|
||||||
|
)
|
||||||
|
op.drop_constraint(
|
||||||
|
"ev_module_ue_coef_module_id_fkey", "module_ue_coef", type_="foreignkey"
|
||||||
|
)
|
||||||
|
op.create_foreign_key(
|
||||||
|
"module_ue_coef_ue_id_fkey", "module_ue_coef", "notes_ue", ["ue_id"], ["id"]
|
||||||
|
)
|
||||||
|
op.create_foreign_key(
|
||||||
|
"module_ue_coef_module_id_fkey",
|
||||||
|
"module_ue_coef",
|
||||||
|
"notes_modules",
|
||||||
|
["module_id"],
|
||||||
|
["id"],
|
||||||
|
)
|
||||||
|
# ### end Alembic commands ###
|
Loading…
Reference in New Issue
Block a user