2021-08-27 17:03:47 +02:00
|
|
|
"""ScoDoc 9.0.3
|
|
|
|
|
|
|
|
Revision ID: 993ce4a01d57
|
|
|
|
Revises:
|
|
|
|
Create Date: 2021-08-27 11:17:55.205910
|
|
|
|
|
|
|
|
"""
|
|
|
|
from alembic import op
|
|
|
|
import sqlalchemy as sa
|
|
|
|
|
|
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
|
|
revision = "993ce4a01d57"
|
|
|
|
down_revision = None
|
|
|
|
branch_labels = None
|
|
|
|
depends_on = None
|
|
|
|
|
|
|
|
|
|
|
|
def upgrade():
|
|
|
|
# Added by Emmanuel: ScoDoc SQl functions creation
|
|
|
|
op.execute(
|
|
|
|
"""
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS notes_idgen_fcod;
|
|
|
|
CREATE OR REPLACE FUNCTION notes_newid_fcod() RETURNS TEXT
|
|
|
|
AS $$ SELECT 'FCOD' || to_char(nextval('notes_idgen_fcod'), 'FM999999999'); $$
|
|
|
|
LANGUAGE SQL;
|
|
|
|
CREATE OR REPLACE FUNCTION notes_newid_ucod() RETURNS TEXT
|
|
|
|
AS $$ SELECT 'UCOD' || to_char(nextval('notes_idgen_fcod'), 'FM999999999'); $$
|
|
|
|
LANGUAGE SQL;
|
|
|
|
|
|
|
|
CREATE OR REPLACE FUNCTION truncate_tables(username IN VARCHAR) RETURNS void AS $$
|
|
|
|
DECLARE
|
|
|
|
statements CURSOR FOR
|
|
|
|
SELECT tablename FROM pg_tables
|
|
|
|
WHERE tableowner = username AND schemaname = 'public'
|
|
|
|
AND tablename <> 'notes_semestres'
|
2022-08-04 16:09:02 +02:00
|
|
|
AND tablename <> 'notes_form_modalites'
|
|
|
|
AND tablename <> 'alembic_version';
|
2021-08-27 17:03:47 +02:00
|
|
|
BEGIN
|
|
|
|
FOR stmt IN statements LOOP
|
|
|
|
EXECUTE 'TRUNCATE TABLE ' || quote_ident(stmt.tablename) || ' CASCADE;';
|
|
|
|
END LOOP;
|
|
|
|
END;
|
|
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
|
|
|
|
-- Fonction pour anonymisation:
|
|
|
|
-- inspirée par https://www.simononsoftware.com/random-string-in-postgresql/
|
|
|
|
CREATE OR REPLACE FUNCTION random_text_md5( integer ) returns text
|
|
|
|
LANGUAGE SQL
|
|
|
|
AS $$
|
|
|
|
select upper( substring( (SELECT string_agg(md5(random()::TEXT), '')
|
|
|
|
FROM generate_series(
|
|
|
|
1,
|
|
|
|
CEIL($1 / 32.)::integer)
|
|
|
|
), 1, $1) );
|
|
|
|
$$;
|
|
|
|
"""
|
|
|
|
)
|
|
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
|
|
op.create_table(
|
|
|
|
"departement",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("acronym", sa.String(length=32), nullable=False),
|
|
|
|
sa.Column("description", sa.Text(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"date_creation",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("visible", sa.Boolean(), server_default="true", nullable=False),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_departement_acronym"), "departement", ["acronym"], unique=False
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"etud_annotations",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column(
|
|
|
|
"date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("author", sa.Text(), nullable=True),
|
|
|
|
sa.Column("comment", sa.Text(), nullable=True),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"itemsuivi_tags",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("title", sa.Text(), nullable=False),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("title"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_form_modalites",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("modalite", sa.String(length=32), server_default="FI", nullable=True),
|
|
|
|
sa.Column("titre", sa.Text(), nullable=True),
|
|
|
|
sa.Column("numero", sa.Integer(), nullable=True),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_form_modalites_modalite"),
|
|
|
|
"notes_form_modalites",
|
|
|
|
["modalite"],
|
|
|
|
unique=True,
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"role",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("name", sa.String(length=64), nullable=True),
|
|
|
|
sa.Column("default", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column("permissions", sa.BigInteger(), nullable=True),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("name"),
|
|
|
|
)
|
|
|
|
op.create_index(op.f("ix_role_default"), "role", ["default"], unique=False)
|
|
|
|
op.create_table(
|
|
|
|
"scolog",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column(
|
|
|
|
"date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("method", sa.Text(), nullable=True),
|
|
|
|
sa.Column("msg", sa.Text(), nullable=True),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("authenticated_user", sa.Text(), nullable=True),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"user",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("user_name", sa.String(length=64), nullable=True),
|
|
|
|
sa.Column("email", sa.String(length=120), nullable=True),
|
|
|
|
sa.Column("nom", sa.String(length=64), nullable=True),
|
|
|
|
sa.Column("prenom", sa.String(length=64), nullable=True),
|
|
|
|
sa.Column("dept", sa.String(length=32), nullable=True),
|
|
|
|
sa.Column("active", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column("password_hash", sa.String(length=128), nullable=True),
|
|
|
|
sa.Column("password_scodoc7", sa.String(length=42), nullable=True),
|
|
|
|
sa.Column("last_seen", sa.DateTime(), nullable=True),
|
|
|
|
sa.Column("date_modif_passwd", sa.DateTime(), nullable=True),
|
|
|
|
sa.Column("date_created", sa.DateTime(), nullable=True),
|
|
|
|
sa.Column("date_expiration", sa.DateTime(), nullable=True),
|
|
|
|
sa.Column("passwd_temp", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column("token", sa.String(length=32), nullable=True),
|
|
|
|
sa.Column("token_expiration", sa.DateTime(), nullable=True),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(op.f("ix_user_active"), "user", ["active"], unique=False)
|
|
|
|
op.create_index(op.f("ix_user_dept"), "user", ["dept"], unique=False)
|
|
|
|
op.create_index(op.f("ix_user_token"), "user", ["token"], unique=True)
|
|
|
|
op.create_index(op.f("ix_user_user_name"), "user", ["user_name"], unique=True)
|
|
|
|
op.create_table(
|
|
|
|
"entreprises",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("dept_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("nom", sa.Text(), nullable=True),
|
|
|
|
sa.Column("adresse", sa.Text(), nullable=True),
|
|
|
|
sa.Column("ville", sa.Text(), nullable=True),
|
|
|
|
sa.Column("codepostal", sa.Text(), nullable=True),
|
|
|
|
sa.Column("pays", sa.Text(), nullable=True),
|
|
|
|
sa.Column("contact_origine", sa.Text(), nullable=True),
|
|
|
|
sa.Column("secteur", sa.Text(), nullable=True),
|
|
|
|
sa.Column("note", sa.Text(), nullable=True),
|
|
|
|
sa.Column("privee", sa.Text(), nullable=True),
|
|
|
|
sa.Column("localisation", sa.Text(), nullable=True),
|
|
|
|
sa.Column("qualite_relation", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("plus10salaries", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"date_creation",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["dept_id"],
|
|
|
|
["departement.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_entreprises_dept_id"), "entreprises", ["dept_id"], unique=False
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"identite",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("dept_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("nom", sa.Text(), nullable=True),
|
|
|
|
sa.Column("prenom", sa.Text(), nullable=True),
|
|
|
|
sa.Column("nom_usuel", sa.Text(), nullable=True),
|
|
|
|
sa.Column("civilite", sa.String(length=1), nullable=False),
|
|
|
|
sa.Column("date_naissance", sa.Date(), nullable=True),
|
|
|
|
sa.Column("lieu_naissance", sa.Text(), nullable=True),
|
|
|
|
sa.Column("dept_naissance", sa.Text(), nullable=True),
|
|
|
|
sa.Column("nationalite", sa.Text(), nullable=True),
|
|
|
|
sa.Column("statut", sa.Text(), nullable=True),
|
|
|
|
sa.Column("boursier", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column("photo_filename", sa.Text(), nullable=True),
|
|
|
|
sa.Column("code_nip", sa.Text(), nullable=True),
|
|
|
|
sa.Column("code_ine", sa.Text(), nullable=True),
|
|
|
|
sa.CheckConstraint("civilite IN ('M', 'F', 'X')"),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["dept_id"],
|
|
|
|
["departement.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(op.f("ix_identite_dept_id"), "identite", ["dept_id"], unique=False)
|
|
|
|
op.create_table(
|
|
|
|
"notes_formations",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("dept_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("acronyme", sa.Text(), nullable=False),
|
|
|
|
sa.Column("titre", sa.Text(), nullable=False),
|
|
|
|
sa.Column("titre_officiel", sa.Text(), nullable=False),
|
|
|
|
sa.Column("version", sa.Integer(), server_default="1", nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"formation_code",
|
|
|
|
sa.String(length=32),
|
|
|
|
server_default=sa.text("notes_newid_fcod()"),
|
|
|
|
nullable=False,
|
|
|
|
),
|
|
|
|
sa.Column("type_parcours", sa.Integer(), server_default="0", nullable=True),
|
|
|
|
sa.Column("code_specialite", sa.String(length=32), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["dept_id"],
|
|
|
|
["departement.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("acronyme", "titre", "version"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_formations_dept_id"),
|
|
|
|
"notes_formations",
|
|
|
|
["dept_id"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_semset",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("dept_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("title", sa.Text(), nullable=True),
|
|
|
|
sa.Column("annee_scolaire", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("sem_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["dept_id"],
|
|
|
|
["departement.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_tags",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("dept_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("title", sa.Text(), nullable=False),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["dept_id"],
|
|
|
|
["departement.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("title", "dept_id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_tags_dept_id"), "notes_tags", ["dept_id"], unique=False
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"scolar_news",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("dept_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("authenticated_user", sa.Text(), nullable=True),
|
|
|
|
sa.Column("type", sa.String(length=32), nullable=True),
|
|
|
|
sa.Column("object", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("text", sa.Text(), nullable=True),
|
|
|
|
sa.Column("url", sa.Text(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["dept_id"],
|
|
|
|
["departement.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_scolar_news_dept_id"), "scolar_news", ["dept_id"], unique=False
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"user_role",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("user_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("role_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("dept", sa.String(length=64), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["role_id"],
|
|
|
|
["role.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["user_id"],
|
|
|
|
["user.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"admissions",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("annee", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("bac", sa.Text(), nullable=True),
|
|
|
|
sa.Column("specialite", sa.Text(), nullable=True),
|
|
|
|
sa.Column("annee_bac", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("math", sa.Text(), nullable=True),
|
|
|
|
sa.Column("physique", sa.Float(), nullable=True),
|
|
|
|
sa.Column("anglais", sa.Float(), nullable=True),
|
|
|
|
sa.Column("francais", sa.Float(), nullable=True),
|
|
|
|
sa.Column("rang", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("qualite", sa.Float(), nullable=True),
|
|
|
|
sa.Column("rapporteur", sa.Text(), nullable=True),
|
|
|
|
sa.Column("decision", sa.Text(), nullable=True),
|
|
|
|
sa.Column("score", sa.Float(), nullable=True),
|
|
|
|
sa.Column("commentaire", sa.Text(), nullable=True),
|
|
|
|
sa.Column("nomlycee", sa.Text(), nullable=True),
|
|
|
|
sa.Column("villelycee", sa.Text(), nullable=True),
|
|
|
|
sa.Column("codepostallycee", sa.Text(), nullable=True),
|
|
|
|
sa.Column("codelycee", sa.Text(), nullable=True),
|
|
|
|
sa.Column("type_admission", sa.Text(), nullable=True),
|
|
|
|
sa.Column("boursier_prec", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column("classement", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("apb_groupe", sa.Text(), nullable=True),
|
|
|
|
sa.Column("apb_classement_gr", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"adresse",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("email", sa.Text(), nullable=True),
|
|
|
|
sa.Column("emailperso", sa.Text(), nullable=True),
|
|
|
|
sa.Column("domicile", sa.Text(), nullable=True),
|
|
|
|
sa.Column("codepostaldomicile", sa.Text(), nullable=True),
|
|
|
|
sa.Column("villedomicile", sa.Text(), nullable=True),
|
|
|
|
sa.Column("paysdomicile", sa.Text(), nullable=True),
|
|
|
|
sa.Column("telephone", sa.Text(), nullable=True),
|
|
|
|
sa.Column("telephonemobile", sa.Text(), nullable=True),
|
|
|
|
sa.Column("fax", sa.Text(), nullable=True),
|
|
|
|
sa.Column("typeadresse", sa.Text(), server_default="domicile", nullable=False),
|
|
|
|
sa.Column("description", sa.Text(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"billet_absence",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("abs_begin", sa.DateTime(timezone=True), nullable=True),
|
|
|
|
sa.Column("abs_end", sa.DateTime(timezone=True), nullable=True),
|
|
|
|
sa.Column("description", sa.Text(), nullable=True),
|
|
|
|
sa.Column("etat", sa.Boolean(), server_default="false", nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"entry_date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("justified", sa.Boolean(), server_default="false", nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_billet_absence_etudid"), "billet_absence", ["etudid"], unique=False
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"entreprise_correspondant",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("entreprise_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("nom", sa.Text(), nullable=True),
|
|
|
|
sa.Column("prenom", sa.Text(), nullable=True),
|
|
|
|
sa.Column("civilite", sa.Text(), nullable=True),
|
|
|
|
sa.Column("fonction", sa.Text(), nullable=True),
|
|
|
|
sa.Column("phone1", sa.Text(), nullable=True),
|
|
|
|
sa.Column("phone2", sa.Text(), nullable=True),
|
|
|
|
sa.Column("mobile", sa.Text(), nullable=True),
|
|
|
|
sa.Column("mail1", sa.Text(), nullable=True),
|
|
|
|
sa.Column("mail2", sa.Text(), nullable=True),
|
|
|
|
sa.Column("fax", sa.Text(), nullable=True),
|
|
|
|
sa.Column("note", sa.Text(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["entreprise_id"],
|
|
|
|
["entreprises.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"itemsuivi",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"item_date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("situation", sa.Text(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_formsemestre",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("dept_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("formation_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("semestre_id", sa.Integer(), server_default="1", nullable=False),
|
|
|
|
sa.Column("titre", sa.Text(), nullable=True),
|
|
|
|
sa.Column("date_debut", sa.Date(), nullable=True),
|
|
|
|
sa.Column("date_fin", sa.Date(), nullable=True),
|
|
|
|
sa.Column("etat", sa.Boolean(), server_default="true", nullable=False),
|
|
|
|
sa.Column("modalite", sa.String(length=32), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"gestion_compensation", sa.Boolean(), server_default="false", nullable=False
|
|
|
|
),
|
|
|
|
sa.Column("bul_hide_xml", sa.Boolean(), server_default="false", nullable=False),
|
|
|
|
sa.Column(
|
|
|
|
"gestion_semestrielle", sa.Boolean(), server_default="false", nullable=False
|
|
|
|
),
|
|
|
|
sa.Column(
|
|
|
|
"bul_bgcolor", sa.String(length=32), server_default="white", nullable=True
|
|
|
|
),
|
|
|
|
sa.Column(
|
|
|
|
"resp_can_edit", sa.Boolean(), server_default="false", nullable=False
|
|
|
|
),
|
|
|
|
sa.Column(
|
|
|
|
"resp_can_change_ens", sa.Boolean(), server_default="true", nullable=False
|
|
|
|
),
|
|
|
|
sa.Column(
|
|
|
|
"ens_can_edit_eval", sa.Boolean(), server_default="False", nullable=False
|
|
|
|
),
|
|
|
|
sa.Column("elt_sem_apo", sa.Text(), nullable=True),
|
|
|
|
sa.Column("elt_annee_apo", sa.Text(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["dept_id"],
|
|
|
|
["departement.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formation_id"],
|
|
|
|
["notes_formations.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["modalite"],
|
|
|
|
["notes_form_modalites.modalite"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_formsemestre_dept_id"),
|
|
|
|
"notes_formsemestre",
|
|
|
|
["dept_id"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_notes_log",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("evaluation_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("value", sa.Float(), nullable=True),
|
|
|
|
sa.Column("comment", sa.Text(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("uid", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["uid"],
|
|
|
|
["user.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_notes_log_evaluation_id"),
|
|
|
|
"notes_notes_log",
|
|
|
|
["evaluation_id"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_ue",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("formation_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("acronyme", sa.Text(), nullable=False),
|
|
|
|
sa.Column("numero", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("titre", sa.Text(), nullable=True),
|
|
|
|
sa.Column("type", sa.Integer(), server_default="0", nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"ue_code",
|
|
|
|
sa.String(length=32),
|
|
|
|
server_default=sa.text("notes_newid_ucod()"),
|
|
|
|
nullable=False,
|
|
|
|
),
|
|
|
|
sa.Column("ects", sa.Float(), nullable=True),
|
|
|
|
sa.Column("is_external", sa.Boolean(), server_default="false", nullable=True),
|
|
|
|
sa.Column("code_apogee", sa.String(length=16), nullable=True),
|
|
|
|
sa.Column("coefficient", sa.Float(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formation_id"],
|
|
|
|
["notes_formations.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"absences_notifications",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"notification_date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("email", sa.Text(), nullable=True),
|
|
|
|
sa.Column("nbabs", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("nbabsjust", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"entreprise_contact",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("date", sa.DateTime(timezone=True), nullable=True),
|
|
|
|
sa.Column("type_contact", sa.Text(), nullable=True),
|
|
|
|
sa.Column("entreprise_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("entreprise_corresp_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("description", sa.Text(), nullable=True),
|
|
|
|
sa.Column("enseignant", sa.Text(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["entreprise_corresp_id"],
|
|
|
|
["entreprise_correspondant.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["entreprise_id"],
|
|
|
|
["entreprises.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"itemsuivi_tags_assoc",
|
|
|
|
sa.Column("tag_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("itemsuivi_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["itemsuivi_id"],
|
|
|
|
["itemsuivi.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["tag_id"],
|
|
|
|
["itemsuivi_tags.id"],
|
|
|
|
),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_appreciations",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column(
|
|
|
|
"date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("author", sa.Text(), nullable=True),
|
|
|
|
sa.Column("comment", sa.Text(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_appreciations_etudid"),
|
|
|
|
"notes_appreciations",
|
|
|
|
["etudid"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_formsemestre_custommenu",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("title", sa.Text(), nullable=True),
|
|
|
|
sa.Column("url", sa.Text(), nullable=True),
|
|
|
|
sa.Column("idx", sa.Integer(), server_default="0", nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_formsemestre_etapes",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("etape_apo", sa.String(length=16), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_formsemestre_inscription",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("etat", sa.String(length=16), nullable=True),
|
|
|
|
sa.Column("etape", sa.String(length=16), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("formsemestre_id", "etudid"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_formsemestre_responsables",
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("responsable_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["responsable_id"],
|
|
|
|
["user.id"],
|
|
|
|
),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_formsemestre_ue_computation_expr",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("ue_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("computation_expr", sa.Text(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["ue_id"],
|
|
|
|
["notes_ue.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("formsemestre_id", "ue_id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_formsemestre_uecoef",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("ue_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("coefficient", sa.Float(), nullable=False),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["ue_id"],
|
|
|
|
["notes_ue.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("formsemestre_id", "ue_id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_matieres",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("ue_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("titre", sa.Text(), nullable=True),
|
|
|
|
sa.Column("numero", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["ue_id"],
|
|
|
|
["notes_ue.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("ue_id", "titre"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_semset_formsemestre",
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("semset_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["semset_id"],
|
|
|
|
["notes_semset.id"],
|
|
|
|
),
|
|
|
|
sa.UniqueConstraint("formsemestre_id", "semset_id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"partition",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("partition_name", sa.String(length=32), nullable=True),
|
|
|
|
sa.Column("numero", sa.Integer(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"bul_show_rank", sa.Boolean(), server_default="false", nullable=False
|
|
|
|
),
|
|
|
|
sa.Column("show_in_lists", sa.Boolean(), server_default="true", nullable=False),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("formsemestre_id", "partition_name"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_partition_formsemestre_id"),
|
|
|
|
"partition",
|
|
|
|
["formsemestre_id"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"sco_prefs",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("dept_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("name", sa.String(length=128), nullable=False),
|
|
|
|
sa.Column("value", sa.Text(), nullable=True),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["dept_id"],
|
|
|
|
["departement.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(op.f("ix_sco_prefs_name"), "sco_prefs", ["name"], unique=False)
|
|
|
|
op.create_table(
|
|
|
|
"scolar_autorisation_inscription",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("formation_code", sa.String(length=32), nullable=False),
|
|
|
|
sa.Column("semestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("origin_formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["origin_formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"scolar_events",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"event_date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("ue_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("event_type", sa.String(length=32), nullable=True),
|
|
|
|
sa.Column("comp_formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["comp_formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["ue_id"],
|
|
|
|
["notes_ue.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"scolar_formsemestre_validation",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("ue_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("code", sa.String(length=16), nullable=False),
|
|
|
|
sa.Column("assidu", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"event_date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("compense_formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("moy_ue", sa.Float(), nullable=True),
|
|
|
|
sa.Column("semestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("is_external", sa.Boolean(), server_default="false", nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["compense_formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["ue_id"],
|
|
|
|
["notes_ue.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("etudid", "formsemestre_id", "ue_id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"group_descr",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("partition_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("group_name", sa.String(length=64), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["partition_id"],
|
|
|
|
["partition.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("partition_id", "group_name"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_modules",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("titre", sa.Text(), nullable=True),
|
|
|
|
sa.Column("abbrev", sa.Text(), nullable=True),
|
|
|
|
sa.Column("code", sa.String(length=32), nullable=False),
|
|
|
|
sa.Column("heures_cours", sa.Float(), nullable=True),
|
|
|
|
sa.Column("heures_td", sa.Float(), nullable=True),
|
|
|
|
sa.Column("heures_tp", sa.Float(), nullable=True),
|
|
|
|
sa.Column("coefficient", sa.Float(), nullable=True),
|
|
|
|
sa.Column("ects", sa.Float(), nullable=True),
|
|
|
|
sa.Column("ue_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("formation_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("matiere_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("semestre_id", sa.Integer(), server_default="1", nullable=False),
|
|
|
|
sa.Column("numero", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("code_apogee", sa.String(length=16), nullable=True),
|
|
|
|
sa.Column("module_type", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formation_id"],
|
|
|
|
["notes_formations.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["matiere_id"],
|
|
|
|
["notes_matieres.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["ue_id"],
|
|
|
|
["notes_ue.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_modules_ue_id"), "notes_modules", ["ue_id"], unique=False
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"group_membership",
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("group_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["group_id"],
|
|
|
|
["group_descr.id"],
|
|
|
|
),
|
|
|
|
sa.UniqueConstraint("etudid", "group_id"),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_moduleimpl",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("module_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("formsemestre_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("responsable_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("computation_expr", sa.Text(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["formsemestre_id"],
|
|
|
|
["notes_formsemestre.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["module_id"],
|
|
|
|
["notes_modules.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["responsable_id"],
|
|
|
|
["user.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("formsemestre_id", "module_id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_moduleimpl_formsemestre_id"),
|
|
|
|
"notes_moduleimpl",
|
|
|
|
["formsemestre_id"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_modules_tags",
|
|
|
|
sa.Column("tag_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("module_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["module_id"],
|
|
|
|
["notes_modules.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["tag_id"],
|
|
|
|
["notes_tags.id"],
|
|
|
|
),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"absences",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("jour", sa.Date(), nullable=True),
|
|
|
|
sa.Column("estabs", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column("estjust", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column("matin", sa.Boolean(), nullable=True),
|
|
|
|
sa.Column("description", sa.Text(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"entry_date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("moduleimpl_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["moduleimpl_id"],
|
|
|
|
["notes_moduleimpl.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(op.f("ix_absences_etudid"), "absences", ["etudid"], unique=False)
|
|
|
|
op.create_table(
|
|
|
|
"notes_evaluation",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("moduleimpl_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("jour", sa.Date(), nullable=True),
|
|
|
|
sa.Column("heure_debut", sa.Time(), nullable=True),
|
|
|
|
sa.Column("heure_fin", sa.Time(), nullable=True),
|
|
|
|
sa.Column("description", sa.Text(), nullable=True),
|
|
|
|
sa.Column("note_max", sa.Float(), nullable=True),
|
|
|
|
sa.Column("coefficient", sa.Float(), nullable=True),
|
|
|
|
sa.Column("visibulletin", sa.Boolean(), server_default="true", nullable=False),
|
|
|
|
sa.Column(
|
|
|
|
"publish_incomplete", sa.Boolean(), server_default="false", nullable=False
|
|
|
|
),
|
|
|
|
sa.Column("evaluation_type", sa.Integer(), server_default="0", nullable=False),
|
|
|
|
sa.Column("numero", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["moduleimpl_id"],
|
|
|
|
["notes_moduleimpl.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_evaluation_moduleimpl_id"),
|
|
|
|
"notes_evaluation",
|
|
|
|
["moduleimpl_id"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_moduleimpl_inscription",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("moduleimpl_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["moduleimpl_id"],
|
|
|
|
["notes_moduleimpl.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_moduleimpl_inscription_etudid"),
|
|
|
|
"notes_moduleimpl_inscription",
|
|
|
|
["etudid"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_moduleimpl_inscription_moduleimpl_id"),
|
|
|
|
"notes_moduleimpl_inscription",
|
|
|
|
["moduleimpl_id"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_modules_enseignants",
|
|
|
|
sa.Column("moduleimpl_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("ens_id", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["ens_id"],
|
|
|
|
["user.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["moduleimpl_id"],
|
|
|
|
["notes_moduleimpl.id"],
|
|
|
|
),
|
|
|
|
)
|
|
|
|
op.create_table(
|
|
|
|
"notes_notes",
|
|
|
|
sa.Column("id", sa.Integer(), nullable=False),
|
|
|
|
sa.Column("etudid", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("evaluation_id", sa.Integer(), nullable=True),
|
|
|
|
sa.Column("value", sa.Float(), nullable=True),
|
|
|
|
sa.Column("comment", sa.Text(), nullable=True),
|
|
|
|
sa.Column(
|
|
|
|
"date",
|
|
|
|
sa.DateTime(timezone=True),
|
|
|
|
server_default=sa.text("now()"),
|
|
|
|
nullable=True,
|
|
|
|
),
|
|
|
|
sa.Column("uid", sa.Integer(), nullable=True),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["etudid"],
|
|
|
|
["identite.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["evaluation_id"],
|
|
|
|
["notes_evaluation.id"],
|
|
|
|
),
|
|
|
|
sa.ForeignKeyConstraint(
|
|
|
|
["uid"],
|
|
|
|
["user.id"],
|
|
|
|
),
|
|
|
|
sa.PrimaryKeyConstraint("id"),
|
|
|
|
sa.UniqueConstraint("etudid", "evaluation_id"),
|
|
|
|
)
|
|
|
|
op.create_index(
|
|
|
|
op.f("ix_notes_notes_evaluation_id"),
|
|
|
|
"notes_notes",
|
|
|
|
["evaluation_id"],
|
|
|
|
unique=False,
|
|
|
|
)
|
|
|
|
# ### end Alembic commands ###
|
|
|
|
|
|
|
|
|
|
|
|
def downgrade():
|
|
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
|
|
op.drop_index(op.f("ix_notes_notes_evaluation_id"), table_name="notes_notes")
|
|
|
|
op.drop_table("notes_notes")
|
|
|
|
op.drop_table("notes_modules_enseignants")
|
|
|
|
op.drop_index(
|
|
|
|
op.f("ix_notes_moduleimpl_inscription_moduleimpl_id"),
|
|
|
|
table_name="notes_moduleimpl_inscription",
|
|
|
|
)
|
|
|
|
op.drop_index(
|
|
|
|
op.f("ix_notes_moduleimpl_inscription_etudid"),
|
|
|
|
table_name="notes_moduleimpl_inscription",
|
|
|
|
)
|
|
|
|
op.drop_table("notes_moduleimpl_inscription")
|
|
|
|
op.drop_index(
|
|
|
|
op.f("ix_notes_evaluation_moduleimpl_id"), table_name="notes_evaluation"
|
|
|
|
)
|
|
|
|
op.drop_table("notes_evaluation")
|
|
|
|
op.drop_index(op.f("ix_absences_etudid"), table_name="absences")
|
|
|
|
op.drop_table("absences")
|
|
|
|
op.drop_table("notes_modules_tags")
|
|
|
|
op.drop_index(
|
|
|
|
op.f("ix_notes_moduleimpl_formsemestre_id"), table_name="notes_moduleimpl"
|
|
|
|
)
|
|
|
|
op.drop_table("notes_moduleimpl")
|
|
|
|
op.drop_table("group_membership")
|
|
|
|
op.drop_index(op.f("ix_notes_modules_ue_id"), table_name="notes_modules")
|
|
|
|
op.drop_table("notes_modules")
|
|
|
|
op.drop_table("group_descr")
|
|
|
|
op.drop_table("scolar_formsemestre_validation")
|
|
|
|
op.drop_table("scolar_events")
|
|
|
|
op.drop_table("scolar_autorisation_inscription")
|
|
|
|
op.drop_index(op.f("ix_sco_prefs_name"), table_name="sco_prefs")
|
|
|
|
op.drop_table("sco_prefs")
|
|
|
|
op.drop_index(op.f("ix_partition_formsemestre_id"), table_name="partition")
|
|
|
|
op.drop_table("partition")
|
|
|
|
op.drop_table("notes_semset_formsemestre")
|
|
|
|
op.drop_table("notes_matieres")
|
|
|
|
op.drop_table("notes_formsemestre_uecoef")
|
|
|
|
op.drop_table("notes_formsemestre_ue_computation_expr")
|
|
|
|
op.drop_table("notes_formsemestre_responsables")
|
|
|
|
op.drop_table("notes_formsemestre_inscription")
|
|
|
|
op.drop_table("notes_formsemestre_etapes")
|
|
|
|
op.drop_table("notes_formsemestre_custommenu")
|
|
|
|
op.drop_index(
|
|
|
|
op.f("ix_notes_appreciations_etudid"), table_name="notes_appreciations"
|
|
|
|
)
|
|
|
|
op.drop_table("notes_appreciations")
|
|
|
|
op.drop_table("itemsuivi_tags_assoc")
|
|
|
|
op.drop_table("entreprise_contact")
|
|
|
|
op.drop_table("absences_notifications")
|
|
|
|
op.drop_table("notes_ue")
|
|
|
|
op.drop_index(
|
|
|
|
op.f("ix_notes_notes_log_evaluation_id"), table_name="notes_notes_log"
|
|
|
|
)
|
|
|
|
op.drop_table("notes_notes_log")
|
|
|
|
op.drop_index(
|
|
|
|
op.f("ix_notes_formsemestre_dept_id"), table_name="notes_formsemestre"
|
|
|
|
)
|
|
|
|
op.drop_table("notes_formsemestre")
|
|
|
|
op.drop_table("itemsuivi")
|
|
|
|
op.drop_table("entreprise_correspondant")
|
|
|
|
op.drop_index(op.f("ix_billet_absence_etudid"), table_name="billet_absence")
|
|
|
|
op.drop_table("billet_absence")
|
|
|
|
op.drop_table("adresse")
|
|
|
|
op.drop_table("admissions")
|
|
|
|
op.drop_table("user_role")
|
|
|
|
op.drop_index(op.f("ix_scolar_news_dept_id"), table_name="scolar_news")
|
|
|
|
op.drop_table("scolar_news")
|
|
|
|
op.drop_index(op.f("ix_notes_tags_dept_id"), table_name="notes_tags")
|
|
|
|
op.drop_table("notes_tags")
|
|
|
|
op.drop_table("notes_semset")
|
|
|
|
op.drop_index(op.f("ix_notes_formations_dept_id"), table_name="notes_formations")
|
|
|
|
op.drop_table("notes_formations")
|
|
|
|
op.drop_index(op.f("ix_identite_dept_id"), table_name="identite")
|
|
|
|
op.drop_table("identite")
|
|
|
|
op.drop_index(op.f("ix_entreprises_dept_id"), table_name="entreprises")
|
|
|
|
op.drop_table("entreprises")
|
|
|
|
op.drop_index(op.f("ix_user_user_name"), table_name="user")
|
|
|
|
op.drop_index(op.f("ix_user_token"), table_name="user")
|
|
|
|
op.drop_index(op.f("ix_user_dept"), table_name="user")
|
|
|
|
op.drop_index(op.f("ix_user_active"), table_name="user")
|
|
|
|
op.drop_table("user")
|
|
|
|
op.drop_table("scolog")
|
|
|
|
op.drop_index(op.f("ix_role_default"), table_name="role")
|
|
|
|
op.drop_table("role")
|
|
|
|
op.drop_index(
|
|
|
|
op.f("ix_notes_form_modalites_modalite"), table_name="notes_form_modalites"
|
|
|
|
)
|
|
|
|
op.drop_table("notes_form_modalites")
|
|
|
|
op.drop_table("itemsuivi_tags")
|
|
|
|
op.drop_table("etud_annotations")
|
|
|
|
op.drop_index(op.f("ix_departement_acronym"), table_name="departement")
|
|
|
|
op.drop_table("departement")
|
|
|
|
# ### end Alembic commands ###
|