forked from ScoDoc/ScoDoc
Création d'une partition avec groupes de parcours
This commit is contained in:
parent
fd8116a772
commit
40f0bca74d
@ -325,7 +325,7 @@ def formsemestre_status_menubar(sem):
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Créer/modifier les partitions...",
|
"title": "Créer/modifier les partitions...",
|
||||||
"endpoint": "scolar.editPartitionForm",
|
"endpoint": "scolar.edit_partition_form",
|
||||||
"args": {"formsemestre_id": formsemestre_id},
|
"args": {"formsemestre_id": formsemestre_id},
|
||||||
"enabled": sco_groups.sco_permissions_check.can_change_groups(
|
"enabled": sco_groups.sco_permissions_check.can_change_groups(
|
||||||
formsemestre_id
|
formsemestre_id
|
||||||
@ -854,7 +854,7 @@ def _make_listes_sem(sem, with_absences=True):
|
|||||||
H.append(
|
H.append(
|
||||||
f"""<h4><a
|
f"""<h4><a
|
||||||
href="{
|
href="{
|
||||||
url_for("scolar.editPartitionForm",
|
url_for("scolar.edit_partition_form",
|
||||||
formsemestre_id=formsemestre_id,
|
formsemestre_id=formsemestre_id,
|
||||||
scodoc_dept=g.scodoc_dept,
|
scodoc_dept=g.scodoc_dept,
|
||||||
)
|
)
|
||||||
|
@ -881,7 +881,7 @@ def partition_create(
|
|||||||
if redirect:
|
if redirect:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
url_for(
|
url_for(
|
||||||
"scolar.editPartitionForm",
|
"scolar.edit_partition_form",
|
||||||
scodoc_dept=g.scodoc_dept,
|
scodoc_dept=g.scodoc_dept,
|
||||||
formsemestre_id=formsemestre_id,
|
formsemestre_id=formsemestre_id,
|
||||||
)
|
)
|
||||||
@ -900,11 +900,12 @@ def get_arrow_icons_tags():
|
|||||||
return arrow_up, arrow_down, arrow_none
|
return arrow_up, arrow_down, arrow_none
|
||||||
|
|
||||||
|
|
||||||
def editPartitionForm(formsemestre_id=None):
|
def edit_partition_form(formsemestre_id=None):
|
||||||
"""Form to create/suppress partitions"""
|
"""Form to create/suppress partitions"""
|
||||||
# ad-hoc form
|
# ad-hoc form
|
||||||
if not sco_permissions_check.can_change_groups(formsemestre_id):
|
if not sco_permissions_check.can_change_groups(formsemestre_id):
|
||||||
raise AccessDenied("Vous n'avez pas le droit d'effectuer cette opération !")
|
raise AccessDenied("Vous n'avez pas le droit d'effectuer cette opération !")
|
||||||
|
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||||
partitions = get_partitions_list(formsemestre_id)
|
partitions = get_partitions_list(formsemestre_id)
|
||||||
arrow_up, arrow_down, arrow_none = get_arrow_icons_tags()
|
arrow_up, arrow_down, arrow_none = get_arrow_icons_tags()
|
||||||
suppricon = scu.icontag(
|
suppricon = scu.icontag(
|
||||||
@ -914,7 +915,7 @@ def editPartitionForm(formsemestre_id=None):
|
|||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(
|
html_sco_header.sco_header(
|
||||||
page_title="Partitions...",
|
page_title="Partitions...",
|
||||||
javascripts=["js/editPartitionForm.js"],
|
javascripts=["js/edit_partition_form.js"],
|
||||||
),
|
),
|
||||||
# limite à SHORT_STR_LEN
|
# limite à SHORT_STR_LEN
|
||||||
r"""<script type="text/javascript">
|
r"""<script type="text/javascript">
|
||||||
@ -1000,28 +1001,49 @@ def editPartitionForm(formsemestre_id=None):
|
|||||||
#
|
#
|
||||||
H.append("</tr>")
|
H.append("</tr>")
|
||||||
H.append("</table>")
|
H.append("</table>")
|
||||||
H.append('<div class="form_rename_partition">')
|
|
||||||
H.append(
|
H.append(
|
||||||
'<input type="hidden" name="formsemestre_id" value="%s"/>' % formsemestre_id
|
f"""<div class="form_rename_partition">
|
||||||
|
<input type="hidden" name="formsemestre_id" value="{formsemestre_id}"/>
|
||||||
|
<input type="hidden" name="redirect" value="1"/>
|
||||||
|
<input type="text" name="partition_name" size="12" onkeyup="checkname();"/>
|
||||||
|
<input type="submit" name="ok" disabled="1" value="Nouvelle partition"/>
|
||||||
|
"""
|
||||||
)
|
)
|
||||||
H.append('<input type="hidden" name="redirect" value="1"/>')
|
if formsemestre.formation.is_apc() and "Parcours" not in (
|
||||||
|
p["partition_name"] for p in partitions
|
||||||
|
):
|
||||||
|
# propose création partition "Parcours"
|
||||||
|
H.append(
|
||||||
|
f"""
|
||||||
|
<div style="margin-top: 10px"><a class="stdlink" href="{
|
||||||
|
url_for("scolar.create_partition_parcours", scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id)
|
||||||
|
}">Créer une partition avec un groupe par parcours (BUT)</a>
|
||||||
|
</div>
|
||||||
|
"""
|
||||||
|
)
|
||||||
H.append(
|
H.append(
|
||||||
'<input type="text" name="partition_name" size="12" onkeyup="checkname();"/>'
|
"""
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
"""
|
||||||
)
|
)
|
||||||
H.append('<input type="submit" name="ok" disabled="1" value="Nouvelle partition"/>')
|
|
||||||
H.append("</div></form>")
|
|
||||||
H.append(
|
H.append(
|
||||||
"""<div class="help">
|
"""<div class="help">
|
||||||
<p>Les partitions sont des découpages de l'ensemble des étudiants.
|
<p>Les partitions sont des découpages de l'ensemble des étudiants.
|
||||||
Par exemple, les "groupes de TD" sont une partition.
|
Par exemple, les "groupes de TD" sont une partition.
|
||||||
On peut créer autant de partitions que nécessaire.
|
On peut créer autant de partitions que nécessaire.
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Dans chaque partition, un nombre de groupes quelconque peuvent être créés (suivre le lien "répartir").
|
<li>Dans chaque partition, un nombre de groupes quelconque peuvent
|
||||||
<li>On peut faire afficher le classement de l'étudiant dans son groupe d'une partition en cochant "afficher rang sur bulletins" (ainsi, on peut afficher le classement en groupes de TD mais pas en groupe de TP, si ce sont deux partitions).
|
être créés (suivre le lien "répartir").
|
||||||
|
<li>On peut faire afficher le classement de l'étudiant dans son
|
||||||
|
groupe d'une partition en cochant "afficher rang sur bulletins"
|
||||||
|
(ainsi, on peut afficher le classement en groupes de TD mais pas en
|
||||||
|
groupe de TP, si ce sont deux partitions).
|
||||||
|
</li>
|
||||||
|
<li>Décocher "afficher sur noms groupes" pour ne pas que cette partition
|
||||||
|
apparaisse dans les noms de groupes
|
||||||
</li>
|
</li>
|
||||||
<li>Décocher "afficher sur noms groupes" pour ne pas que cette partition apparaisse dans les noms de groupes
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
"""
|
"""
|
||||||
@ -1077,7 +1099,7 @@ def partition_delete(partition_id, force=False, redirect=1, dialog_confirmed=Fal
|
|||||||
"""
|
"""
|
||||||
% (partition["partition_name"], grnames),
|
% (partition["partition_name"], grnames),
|
||||||
dest_url="",
|
dest_url="",
|
||||||
cancel_url="editPartitionForm?formsemestre_id=%s" % formsemestre_id,
|
cancel_url="edit_partition_form?formsemestre_id=%s" % formsemestre_id,
|
||||||
parameters={"redirect": redirect, "partition_id": partition_id},
|
parameters={"redirect": redirect, "partition_id": partition_id},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1091,7 +1113,7 @@ def partition_delete(partition_id, force=False, redirect=1, dialog_confirmed=Fal
|
|||||||
# redirect to partition edit page:
|
# redirect to partition edit page:
|
||||||
if redirect:
|
if redirect:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
"editPartitionForm?formsemestre_id=" + str(formsemestre_id)
|
"edit_partition_form?formsemestre_id=" + str(formsemestre_id)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -1148,7 +1170,7 @@ def partition_move(partition_id, after=0, redirect=1):
|
|||||||
# redirect to partition edit page:
|
# redirect to partition edit page:
|
||||||
if redirect:
|
if redirect:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
"editPartitionForm?formsemestre_id=" + str(formsemestre_id)
|
"edit_partition_form?formsemestre_id=" + str(formsemestre_id)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -1188,7 +1210,7 @@ def partition_rename(partition_id):
|
|||||||
)
|
)
|
||||||
elif tf[0] == -1:
|
elif tf[0] == -1:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
"editPartitionForm?formsemestre_id=" + str(formsemestre_id)
|
"edit_partition_form?formsemestre_id=" + str(formsemestre_id)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
# form submission
|
# form submission
|
||||||
@ -1229,7 +1251,7 @@ def partition_set_name(partition_id, partition_name, redirect=1):
|
|||||||
# redirect to partition edit page:
|
# redirect to partition edit page:
|
||||||
if redirect:
|
if redirect:
|
||||||
return flask.redirect(
|
return flask.redirect(
|
||||||
"editPartitionForm?formsemestre_id=" + str(formsemestre_id)
|
"edit_partition_form?formsemestre_id=" + str(formsemestre_id)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,6 +54,7 @@ from app.decorators import (
|
|||||||
from app.models.etudiants import Identite
|
from app.models.etudiants import Identite
|
||||||
from app.models.etudiants import make_etud_args
|
from app.models.etudiants import make_etud_args
|
||||||
from app.models.events import ScolarNews
|
from app.models.events import ScolarNews
|
||||||
|
from app.models.formsemestre import FormSemestre
|
||||||
|
|
||||||
from app.views import scolar_bp as bp
|
from app.views import scolar_bp as bp
|
||||||
from app.views import ScoData
|
from app.views import ScoData
|
||||||
@ -860,8 +861,8 @@ sco_publish(
|
|||||||
)
|
)
|
||||||
|
|
||||||
sco_publish(
|
sco_publish(
|
||||||
"/editPartitionForm",
|
"/edit_partition_form",
|
||||||
sco_groups.editPartitionForm,
|
sco_groups.edit_partition_form,
|
||||||
Permission.ScoView,
|
Permission.ScoView,
|
||||||
methods=["GET", "POST"],
|
methods=["GET", "POST"],
|
||||||
)
|
)
|
||||||
@ -904,21 +905,37 @@ sco_publish(
|
|||||||
sco_publish(
|
sco_publish(
|
||||||
"/partition_create",
|
"/partition_create",
|
||||||
sco_groups.partition_create,
|
sco_groups.partition_create,
|
||||||
Permission.ScoView,
|
Permission.ScoView, # controle d'access ad-hoc
|
||||||
methods=["GET", "POST"],
|
methods=["GET", "POST"],
|
||||||
)
|
)
|
||||||
# @bp.route("/partition_create", methods=["GET", "POST"])
|
|
||||||
# @scodoc
|
|
||||||
# @permission_required(Permission.ScoView)
|
@bp.route("/create_partition_parcours", methods=["GET", "POST"])
|
||||||
# @scodoc7func
|
@scodoc
|
||||||
# def partition_create(
|
@permission_required(Permission.ScoView)
|
||||||
#
|
@scodoc7func
|
||||||
# formsemestre_id,
|
def create_partition_parcours(formsemestre_id):
|
||||||
# partition_name="",
|
"""Création d'une partitions nommée "Parcours" avec un groupe par parcours."""
|
||||||
# default=False,
|
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||||
# numero=None,
|
if "Parcours" in (p.partition_name for p in formsemestre.partitions):
|
||||||
# redirect=1):
|
flash("""Partition "Parcours" déjà existante""")
|
||||||
# return sco_groups.partition_create( formsemestre_id,
|
else:
|
||||||
|
partition_id = sco_groups.partition_create(
|
||||||
|
formsemestre_id, partition_name="Parcours", redirect=False
|
||||||
|
)
|
||||||
|
n = 0
|
||||||
|
for parcour in formsemestre.parcours:
|
||||||
|
if parcour.code:
|
||||||
|
_ = sco_groups.create_group(partition_id, group_name=parcour.code)
|
||||||
|
n += 1
|
||||||
|
flash(f"Partition Parcours créée avec {n} groupes.")
|
||||||
|
return flask.redirect(
|
||||||
|
url_for(
|
||||||
|
"scolar.edit_partition_form",
|
||||||
|
scodoc_dept=g.scodoc_dept,
|
||||||
|
formsemestre_id=formsemestre_id,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
sco_publish("/etud_info_html", sco_page_etud.etud_info_html, Permission.ScoView)
|
sco_publish("/etud_info_html", sco_page_etud.etud_info_html, Permission.ScoView)
|
||||||
|
Loading…
Reference in New Issue
Block a user