Paramétrage des fichiers CSV Moodle
This commit is contained in:
parent
61d47e8fad
commit
bfc3557814
@ -123,6 +123,7 @@ class GenTable:
|
||||
pdf_col_widths=None,
|
||||
xml_outer_tag="table",
|
||||
xml_row_tag="row",
|
||||
text_with_titles=False, # CSV with header line
|
||||
text_fields_separator="\t",
|
||||
preferences=None,
|
||||
):
|
||||
@ -173,6 +174,7 @@ class GenTable:
|
||||
self.xml_row_tag = xml_row_tag
|
||||
# TEXT parameters
|
||||
self.text_fields_separator = text_fields_separator
|
||||
self.text_with_titles = text_with_titles
|
||||
#
|
||||
if preferences:
|
||||
self.preferences = preferences
|
||||
@ -265,8 +267,7 @@ class GenTable:
|
||||
|
||||
def get_titles_list(self):
|
||||
"list of titles"
|
||||
l = []
|
||||
return l + [self.titles.get(cid, "") for cid in self.columns_ids]
|
||||
return [self.titles.get(cid, "") for cid in self.columns_ids]
|
||||
|
||||
def gen(self, format="html", columns_ids=None):
|
||||
"""Build representation of the table in the specified format.
|
||||
@ -479,10 +480,14 @@ class GenTable:
|
||||
|
||||
def text(self):
|
||||
"raw text representation of the table"
|
||||
if self.text_with_titles:
|
||||
headline = [self.get_titles_list()]
|
||||
else:
|
||||
headline = []
|
||||
return "\n".join(
|
||||
[
|
||||
self.text_fields_separator.join([x for x in line])
|
||||
for line in self.get_data_list()
|
||||
for line in headline + self.get_data_list()
|
||||
]
|
||||
)
|
||||
|
||||
|
@ -578,6 +578,7 @@ def groups_table(
|
||||
else:
|
||||
filename = "etudiants_%s" % groups_infos.groups_filename
|
||||
|
||||
prefs = context.get_preferences(groups_infos.formsemestre_id)
|
||||
tab = GenTable(
|
||||
rows=groups_infos.members,
|
||||
columns_ids=columns_ids,
|
||||
@ -591,8 +592,9 @@ def groups_table(
|
||||
html_class="table_leftalign table_listegroupe",
|
||||
xml_outer_tag="group_list",
|
||||
xml_row_tag="etud",
|
||||
text_fields_separator=",", # pour csvmoodle
|
||||
preferences=context.get_preferences(groups_infos.formsemestre_id),
|
||||
text_fields_separator=prefs["moodle_csv_separator"],
|
||||
text_with_titles=prefs["moodle_csv_with_headerline"],
|
||||
preferences=prefs,
|
||||
)
|
||||
#
|
||||
if format == "html":
|
||||
@ -672,7 +674,10 @@ def groups_table(
|
||||
% (tab.base_url,),
|
||||
'<li><a class="stdlink" href="%s&format=moodlecsv">Fichier CSV pour Moodle (groupe sélectionné)</a></li>'
|
||||
% (tab.base_url,),
|
||||
'<li><a class="stdlink" href="export_groups_as_moodle_csv?formsemestre_id=%s">Fichier CSV pour Moodle (tous les groupes)</a></li>'
|
||||
"""<li>
|
||||
<a class="stdlink" href="export_groups_as_moodle_csv?formsemestre_id=%s">Fichier CSV pour Moodle (tous les groupes)</a>
|
||||
<em>(voir le paramétrage pour modifier le format des fichiers Moodle exportés)</em>
|
||||
</li>"""
|
||||
% groups_infos.formsemestre_id,
|
||||
]
|
||||
)
|
||||
@ -959,6 +964,7 @@ def export_groups_as_moodle_csv(context, formsemestre_id=None, REQUEST=None):
|
||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||
moodle_sem_name = sem["session_id"]
|
||||
|
||||
columns_ids = ("email", "semestre_groupe")
|
||||
T = []
|
||||
for partition_id in partitions_etud_groups:
|
||||
partition = sco_groups.get_partition(context, partition_id)
|
||||
@ -973,11 +979,14 @@ def export_groups_as_moodle_csv(context, formsemestre_id=None, REQUEST=None):
|
||||
elts.append(group_name)
|
||||
T.append({"email": etud["email"], "semestre_groupe": "-".join(elts)})
|
||||
# Make table
|
||||
prefs = context.get_preferences(formsemestre_id)
|
||||
tab = GenTable(
|
||||
rows=T,
|
||||
columns_ids=("email", "semestre_groupe"),
|
||||
filename=moodle_sem_name + "-moodle",
|
||||
text_fields_separator=",",
|
||||
preferences=context.get_preferences(formsemestre_id),
|
||||
titles={x: x for x in columns_ids},
|
||||
text_fields_separator=prefs["moodle_csv_separator"],
|
||||
text_with_titles=prefs["moodle_csv_with_headerline"],
|
||||
preferences=prefs,
|
||||
)
|
||||
return tab.make_page(context, format="csv", REQUEST=REQUEST)
|
||||
|
@ -175,7 +175,7 @@ PREF_CATEGORIES = (
|
||||
),
|
||||
(
|
||||
"feuilles",
|
||||
{"title": "Mise en forme des feuilles (Absences, Trombinoscopes, ...)"},
|
||||
{"title": "Mise en forme des feuilles (Absences, Trombinoscopes, Moodle, ...)"},
|
||||
),
|
||||
("pe", {"title": "Avis de poursuites d'études"}),
|
||||
("edt", {"title": "Connexion avec le logiciel d'emplois du temps"}),
|
||||
@ -1644,6 +1644,28 @@ Année scolaire: %(anneescolaire)s
|
||||
"only_global": True,
|
||||
},
|
||||
),
|
||||
# Exports pour Moodle:
|
||||
(
|
||||
"moodle_csv_with_headerline",
|
||||
{
|
||||
"initvalue": 0,
|
||||
"title": "Inclure une ligne d'en-têtes dans les fichiers CSV pour Moodle",
|
||||
"input_type": "boolcheckbox",
|
||||
"labels": ["non", "oui"],
|
||||
"only_global": True,
|
||||
"category": "feuilles",
|
||||
},
|
||||
),
|
||||
(
|
||||
"moodle_csv_separator",
|
||||
{
|
||||
"initvalue": ",",
|
||||
"title": "séparateur de colonnes dans les fichiers CSV pour Moodle",
|
||||
"size": 2,
|
||||
"only_global": True,
|
||||
"category": "feuilles",
|
||||
},
|
||||
),
|
||||
# Experimental: avis poursuite d'études
|
||||
(
|
||||
"NomResponsablePE",
|
||||
|
Loading…
Reference in New Issue
Block a user