forked from ScoDoc/DocScoDoc
initialise numéros partitions pour tri (#225)
This commit is contained in:
parent
5f409f0267
commit
40b31602d2
@ -307,15 +307,6 @@ def do_formation_edit(args):
|
|||||||
formation.force_semestre_modules_aux_ues()
|
formation.force_semestre_modules_aux_ues()
|
||||||
|
|
||||||
|
|
||||||
def objects_renumber(obj_list) -> None:
|
|
||||||
"fixe les numeros des objets de la liste pour ne pas changer son ordre"
|
|
||||||
log(f"objects_renumber {obj_list}")
|
|
||||||
for i, obj in enumerate(obj_list):
|
|
||||||
obj.numero = i
|
|
||||||
db.session.add(obj)
|
|
||||||
db.session.commit()
|
|
||||||
|
|
||||||
|
|
||||||
def module_move(module_id, after=0, redirect=True):
|
def module_move(module_id, after=0, redirect=True):
|
||||||
"""Move before/after previous one (decrement/increment numero)"""
|
"""Move before/after previous one (decrement/increment numero)"""
|
||||||
redirect = bool(redirect)
|
redirect = bool(redirect)
|
||||||
@ -335,7 +326,7 @@ def module_move(module_id, after=0, redirect=True):
|
|||||||
modules = query.order_by(Module.numero, Module.code).all()
|
modules = query.order_by(Module.numero, Module.code).all()
|
||||||
if len({o.numero for o in modules}) != len(modules):
|
if len({o.numero for o in modules}) != len(modules):
|
||||||
# il y a des numeros identiques !
|
# il y a des numeros identiques !
|
||||||
objects_renumber(modules)
|
scu.objects_renumber(modules)
|
||||||
if len(modules) > 1:
|
if len(modules) > 1:
|
||||||
idx = [m.id for m in modules].index(module.id)
|
idx = [m.id for m in modules].index(module.id)
|
||||||
neigh = None # object to swap with
|
neigh = None # object to swap with
|
||||||
|
@ -45,6 +45,7 @@ import flask
|
|||||||
from flask import g, request
|
from flask import g, request
|
||||||
from flask import url_for, make_response
|
from flask import url_for, make_response
|
||||||
|
|
||||||
|
from app.models import Partition
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
import app.scodoc.notesdb as ndb
|
import app.scodoc.notesdb as ndb
|
||||||
from app import log, cache
|
from app import log, cache
|
||||||
@ -1059,6 +1060,16 @@ def partition_move(partition_id, after=0, redirect=1):
|
|||||||
if after not in (0, 1):
|
if after not in (0, 1):
|
||||||
raise ValueError('invalid value for "after"')
|
raise ValueError('invalid value for "after"')
|
||||||
others = get_partitions_list(formsemestre_id)
|
others = get_partitions_list(formsemestre_id)
|
||||||
|
|
||||||
|
objs = (
|
||||||
|
Partition.query.filter_by(formsemestre_id=formsemestre_id)
|
||||||
|
.order_by(Partition.numero, Partition.partition_name)
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
if len({o.numero for o in objs}) != len(objs):
|
||||||
|
# il y a des numeros identiques !
|
||||||
|
scu.objects_renumber(objs)
|
||||||
|
|
||||||
if len(others) > 1:
|
if len(others) > 1:
|
||||||
pidx = [p["partition_id"] for p in others].index(partition_id)
|
pidx = [p["partition_id"] for p in others].index(partition_id)
|
||||||
# log("partition_move: after=%s pidx=%s" % (after, pidx))
|
# log("partition_move: after=%s pidx=%s" % (after, pidx))
|
||||||
|
@ -990,3 +990,13 @@ def confirm_dialog(
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return "\n".join(H)
|
return "\n".join(H)
|
||||||
|
|
||||||
|
|
||||||
|
def objects_renumber(obj_list) -> None:
|
||||||
|
"""fixe les numeros des objets d'une liste de modèles
|
||||||
|
pour ne pas changer son ordre"""
|
||||||
|
log(f"objects_renumber {obj_list}")
|
||||||
|
for i, obj in enumerate(obj_list):
|
||||||
|
obj.numero = i
|
||||||
|
db.session.add(obj)
|
||||||
|
db.session.commit()
|
||||||
|
Loading…
Reference in New Issue
Block a user