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...",
|
||||
"endpoint": "scolar.editPartitionForm",
|
||||
"endpoint": "scolar.edit_partition_form",
|
||||
"args": {"formsemestre_id": formsemestre_id},
|
||||
"enabled": sco_groups.sco_permissions_check.can_change_groups(
|
||||
formsemestre_id
|
||||
@ -854,7 +854,7 @@ def _make_listes_sem(sem, with_absences=True):
|
||||
H.append(
|
||||
f"""<h4><a
|
||||
href="{
|
||||
url_for("scolar.editPartitionForm",
|
||||
url_for("scolar.edit_partition_form",
|
||||
formsemestre_id=formsemestre_id,
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
)
|
||||
|
@ -881,7 +881,7 @@ def partition_create(
|
||||
if redirect:
|
||||
return flask.redirect(
|
||||
url_for(
|
||||
"scolar.editPartitionForm",
|
||||
"scolar.edit_partition_form",
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
formsemestre_id=formsemestre_id,
|
||||
)
|
||||
@ -900,11 +900,12 @@ def get_arrow_icons_tags():
|
||||
return arrow_up, arrow_down, arrow_none
|
||||
|
||||
|
||||
def editPartitionForm(formsemestre_id=None):
|
||||
def edit_partition_form(formsemestre_id=None):
|
||||
"""Form to create/suppress partitions"""
|
||||
# ad-hoc form
|
||||
if not sco_permissions_check.can_change_groups(formsemestre_id):
|
||||
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)
|
||||
arrow_up, arrow_down, arrow_none = get_arrow_icons_tags()
|
||||
suppricon = scu.icontag(
|
||||
@ -914,7 +915,7 @@ def editPartitionForm(formsemestre_id=None):
|
||||
H = [
|
||||
html_sco_header.sco_header(
|
||||
page_title="Partitions...",
|
||||
javascripts=["js/editPartitionForm.js"],
|
||||
javascripts=["js/edit_partition_form.js"],
|
||||
),
|
||||
# limite à SHORT_STR_LEN
|
||||
r"""<script type="text/javascript">
|
||||
@ -1000,16 +1001,32 @@ def editPartitionForm(formsemestre_id=None):
|
||||
#
|
||||
H.append("</tr>")
|
||||
H.append("</table>")
|
||||
H.append('<div class="form_rename_partition">')
|
||||
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(
|
||||
'<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(
|
||||
"""<div class="help">
|
||||
<p>Les partitions sont des découpages de l'ensemble des étudiants.
|
||||
@ -1017,10 +1034,15 @@ def editPartitionForm(formsemestre_id=None):
|
||||
On peut créer autant de partitions que nécessaire.
|
||||
</p>
|
||||
<ul>
|
||||
<li>Dans chaque partition, un nombre de groupes quelconque peuvent ê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>Dans chaque partition, un nombre de groupes quelconque peuvent
|
||||
ê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>Décocher "afficher sur noms groupes" pour ne pas que cette partition
|
||||
apparaisse dans les noms de groupes
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -1077,7 +1099,7 @@ def partition_delete(partition_id, force=False, redirect=1, dialog_confirmed=Fal
|
||||
"""
|
||||
% (partition["partition_name"], grnames),
|
||||
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},
|
||||
)
|
||||
|
||||
@ -1091,7 +1113,7 @@ def partition_delete(partition_id, force=False, redirect=1, dialog_confirmed=Fal
|
||||
# redirect to partition edit page:
|
||||
if 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:
|
||||
if 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:
|
||||
return flask.redirect(
|
||||
"editPartitionForm?formsemestre_id=" + str(formsemestre_id)
|
||||
"edit_partition_form?formsemestre_id=" + str(formsemestre_id)
|
||||
)
|
||||
else:
|
||||
# form submission
|
||||
@ -1229,7 +1251,7 @@ def partition_set_name(partition_id, partition_name, redirect=1):
|
||||
# redirect to partition edit page:
|
||||
if 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 make_etud_args
|
||||
from app.models.events import ScolarNews
|
||||
from app.models.formsemestre import FormSemestre
|
||||
|
||||
from app.views import scolar_bp as bp
|
||||
from app.views import ScoData
|
||||
@ -860,8 +861,8 @@ sco_publish(
|
||||
)
|
||||
|
||||
sco_publish(
|
||||
"/editPartitionForm",
|
||||
sco_groups.editPartitionForm,
|
||||
"/edit_partition_form",
|
||||
sco_groups.edit_partition_form,
|
||||
Permission.ScoView,
|
||||
methods=["GET", "POST"],
|
||||
)
|
||||
@ -904,21 +905,37 @@ sco_publish(
|
||||
sco_publish(
|
||||
"/partition_create",
|
||||
sco_groups.partition_create,
|
||||
Permission.ScoView,
|
||||
Permission.ScoView, # controle d'access ad-hoc
|
||||
methods=["GET", "POST"],
|
||||
)
|
||||
# @bp.route("/partition_create", methods=["GET", "POST"])
|
||||
# @scodoc
|
||||
# @permission_required(Permission.ScoView)
|
||||
# @scodoc7func
|
||||
# def partition_create(
|
||||
#
|
||||
# formsemestre_id,
|
||||
# partition_name="",
|
||||
# default=False,
|
||||
# numero=None,
|
||||
# redirect=1):
|
||||
# return sco_groups.partition_create( formsemestre_id,
|
||||
|
||||
|
||||
@bp.route("/create_partition_parcours", methods=["GET", "POST"])
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def create_partition_parcours(formsemestre_id):
|
||||
"""Création d'une partitions nommée "Parcours" avec un groupe par parcours."""
|
||||
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||
if "Parcours" in (p.partition_name for p in formsemestre.partitions):
|
||||
flash("""Partition "Parcours" déjà existante""")
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user