forked from ScoDoc/ScoDoc
Fix: ordre des partitions
This commit is contained in:
parent
66dbec86bf
commit
0c913dacdc
@ -806,8 +806,21 @@ def partition_create(
|
|||||||
)
|
)
|
||||||
|
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
|
if numero is None:
|
||||||
|
numero = (
|
||||||
|
ndb.SimpleQuery(
|
||||||
|
"SELECT MAX(id) FROM partition WHERE formsemestre_id=%(formsemestre_id)s",
|
||||||
|
{"formsemestre_id": formsemestre_id},
|
||||||
|
).fetchone()[0]
|
||||||
|
or 0
|
||||||
|
)
|
||||||
partition_id = partitionEditor.create(
|
partition_id = partitionEditor.create(
|
||||||
cnx, {"formsemestre_id": formsemestre_id, "partition_name": partition_name}
|
cnx,
|
||||||
|
{
|
||||||
|
"formsemestre_id": formsemestre_id,
|
||||||
|
"partition_name": partition_name,
|
||||||
|
"numero": numero,
|
||||||
|
},
|
||||||
)
|
)
|
||||||
log("createPartition: created partition_id=%s" % partition_id)
|
log("createPartition: created partition_id=%s" % partition_id)
|
||||||
#
|
#
|
||||||
@ -1041,7 +1054,7 @@ def partition_move(partition_id, after=0, redirect=1):
|
|||||||
others = get_partitions_list(formsemestre_id)
|
others = get_partitions_list(formsemestre_id)
|
||||||
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))
|
||||||
neigh = None # partition to swap with
|
neigh = None # partition to swap with
|
||||||
if after == 0 and pidx > 0:
|
if after == 0 and pidx > 0:
|
||||||
neigh = others[pidx - 1]
|
neigh = others[pidx - 1]
|
||||||
@ -1049,8 +1062,20 @@ def partition_move(partition_id, after=0, redirect=1):
|
|||||||
neigh = others[pidx + 1]
|
neigh = others[pidx + 1]
|
||||||
if neigh: #
|
if neigh: #
|
||||||
# swap numero between partition and its neighbor
|
# swap numero between partition and its neighbor
|
||||||
log("moving partition %s" % partition_id)
|
# log("moving partition %s" % partition_id)
|
||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
|
# Si aucun numéro n'a été affecté, le met au minimum
|
||||||
|
min_numero = (
|
||||||
|
ndb.SimpleQuery(
|
||||||
|
"SELECT MIN(numero) FROM partition WHERE formsemestre_id=%(formsemestre_id)s",
|
||||||
|
{"formsemestre_id": formsemestre_id},
|
||||||
|
).fetchone()[0]
|
||||||
|
or 0
|
||||||
|
)
|
||||||
|
if neigh["numero"] is None:
|
||||||
|
neigh["numero"] = min_numero - 1
|
||||||
|
if partition["numero"] is None:
|
||||||
|
partition["numero"] = min_numero - 1 - after
|
||||||
partition["numero"], neigh["numero"] = neigh["numero"], partition["numero"]
|
partition["numero"], neigh["numero"] = neigh["numero"], partition["numero"]
|
||||||
partitionEditor.edit(cnx, partition)
|
partitionEditor.edit(cnx, partition)
|
||||||
partitionEditor.edit(cnx, neigh)
|
partitionEditor.edit(cnx, neigh)
|
||||||
|
Loading…
Reference in New Issue
Block a user