forked from ScoDoc/ScoDoc
sanitize formations after upgrades + renumber modules
This commit is contained in:
parent
72b8e04064
commit
4c325b70de
@ -4,6 +4,7 @@
|
|||||||
from app import db
|
from app import db
|
||||||
from app.comp import df_cache
|
from app.comp import df_cache
|
||||||
from app.models import SHORT_STR_LEN
|
from app.models import SHORT_STR_LEN
|
||||||
|
from app.models.modules import Module
|
||||||
from app.scodoc import notesdb as ndb
|
from app.scodoc import notesdb as ndb
|
||||||
from app.scodoc import sco_cache
|
from app.scodoc import sco_cache
|
||||||
from app.scodoc import sco_codes_parcours
|
from app.scodoc import sco_codes_parcours
|
||||||
@ -114,6 +115,7 @@ class Formation(db.Model):
|
|||||||
return
|
return
|
||||||
change = False
|
change = False
|
||||||
for mod in self.modules:
|
for mod in self.modules:
|
||||||
|
# --- Indices de semestres:
|
||||||
if (
|
if (
|
||||||
mod.ue.semestre_idx is not None
|
mod.ue.semestre_idx is not None
|
||||||
and mod.ue.semestre_idx > 0
|
and mod.ue.semestre_idx > 0
|
||||||
@ -122,10 +124,15 @@ class Formation(db.Model):
|
|||||||
mod.semestre_id = mod.ue.semestre_idx
|
mod.semestre_id = mod.ue.semestre_idx
|
||||||
db.session.add(mod)
|
db.session.add(mod)
|
||||||
change = True
|
change = True
|
||||||
|
# --- Types de modules
|
||||||
if mod.module_type is None:
|
if mod.module_type is None:
|
||||||
mod.module_type = scu.ModuleType.STANDARD
|
mod.module_type = scu.ModuleType.STANDARD
|
||||||
db.session.add(mod)
|
db.session.add(mod)
|
||||||
change = True
|
change = True
|
||||||
|
# --- Numéros de modules
|
||||||
|
if Module.query.filter_by(formation_id=220, numero=None).count() > 0:
|
||||||
|
scu.objects_renumber(db, self.modules.all())
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
if change:
|
if change:
|
||||||
self.invalidate_module_coefs()
|
self.invalidate_module_coefs()
|
||||||
|
13
scodoc.py
13
scodoc.py
@ -449,14 +449,21 @@ def photos_import_files(formsemestre_id: int, xlsfile: str, zipfile: str):
|
|||||||
|
|
||||||
|
|
||||||
@app.cli.command()
|
@app.cli.command()
|
||||||
|
@click.option("--sanitize/--no-sanitize", default=False)
|
||||||
@with_appcontext
|
@with_appcontext
|
||||||
def clear_cache(): # clear-cache
|
def clear_cache(sanitize): # clear-cache
|
||||||
"""Clear ScoDoc cache
|
"""Clear ScoDoc cache
|
||||||
This cache (currently Redis) is persistent between invocation
|
This cache (currently Redis) is persistent between invocation
|
||||||
and it may be necessary to clear it during development or tests.
|
and it may be necessary to clear it during upgrades,
|
||||||
|
development or tests.
|
||||||
"""
|
"""
|
||||||
|
click.echo("Flushing Redis cache...")
|
||||||
clear_scodoc_cache()
|
clear_scodoc_cache()
|
||||||
click.echo("Redis caches flushed.")
|
if sanitize:
|
||||||
|
# sanitizes all formations:
|
||||||
|
click.echo("Checking formations...")
|
||||||
|
for formation in Formation.query:
|
||||||
|
formation.sanitize_old_formation()
|
||||||
|
|
||||||
|
|
||||||
def recursive_help(cmd, parent=None):
|
def recursive_help(cmd, parent=None):
|
||||||
|
@ -107,7 +107,7 @@ then
|
|||||||
# utilise les scripts dans migrations/version/
|
# utilise les scripts dans migrations/version/
|
||||||
# pour mettre à jour notre base (en tant qu'utilisateur scodoc)
|
# pour mettre à jour notre base (en tant qu'utilisateur scodoc)
|
||||||
export FLASK_ENV="production"
|
export FLASK_ENV="production"
|
||||||
su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade && flask clear-cache)" "$SCODOC_USER"
|
su -c "(cd $SCODOC_DIR && source venv/bin/activate && flask db upgrade && flask clear-cache --sanitize)" "$SCODOC_USER"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ------------ LOGROTATE
|
# ------------ LOGROTATE
|
||||||
|
Loading…
Reference in New Issue
Block a user