diff --git a/app/scodoc/TrivialFormulator.py b/app/scodoc/TrivialFormulator.py index b15255105..a2afc76bf 100644 --- a/app/scodoc/TrivialFormulator.py +++ b/app/scodoc/TrivialFormulator.py @@ -47,6 +47,7 @@ def TrivialFormulator( title="", after_table="", before_table="{title}", + hidden_args: list[tuple] | None = None, ): """ form_url : URL for this form @@ -124,6 +125,7 @@ def TrivialFormulator( title=title, after_table=after_table, before_table=before_table, + hidden_args=hidden_args, ) form = t.getform() if t.canceled(): @@ -161,6 +163,7 @@ class TF(object): title="", after_table="", before_table="{title}", + hidden_args: list[tuple] | None = None, ): self.form_url = form_url self.values = values.copy() @@ -186,6 +189,7 @@ class TF(object): self.title = title self.after_table = after_table self.before_table = before_table + self.hidden_args = hidden_args or [] self.readonly = readonly self.result = None self.is_submitted = is_submitted @@ -470,6 +474,8 @@ class TF(object): }"/>""" ) R.append(f"""""") + for k, v in self.hidden_args: + R.append(f"""""") if self.top_buttons: R.append(buttons_markup + "
") R.append(self.before_table.format(title=self.title)) diff --git a/app/scodoc/sco_groups_view.py b/app/scodoc/sco_groups_view.py index 775e48aca..c2a478e27 100644 --- a/app/scodoc/sco_groups_view.py +++ b/app/scodoc/sco_groups_view.py @@ -42,7 +42,6 @@ from flask_login import current_user from app import db, log from app.models import FormSemestre, Identite, ScolarEvent import app.scodoc.sco_utils as scu -from app.scodoc import html_sco_header from app.scodoc import sco_assiduites as scass from app.scodoc import sco_excel from app.scodoc import sco_formsemestre @@ -170,11 +169,10 @@ def form_groups_choice( with_deselect_butt=False, submit_on_change=False, default_deselect_others=True, + args: dict | None = None, + title="Groupes :", ): - """form pour selection groupes - group_ids est la liste des groupes actuellement sélectionnés - et doit comporter au moins un élément, sauf si formsemestre_id est spécifié. - (utilisé pour retrouver le semestre et proposer la liste des autres groupes) + """Formulaire complet pour choix de groupe. Si submit_on_change, soumet (recharge la page) à chaque modif. Si default_deselect_others, désélectionne le groupe "Tous" quand on sélectionne un autre groupe. @@ -182,7 +180,14 @@ def form_groups_choice( Ces deux options ajoutent des classes utilisées en JS pour la gestion du formulaire. """ default_group_id = sco_groups.get_default_group(groups_infos.formsemestre_id) - + args = args or {} + args_wdg = "\n".join( + [ + f"""""" + for k, v in args.items() + if k not in ("formsemestre_id", "group_ids") + ] + ) H = [ f"""