forked from ScoDoc/ScoDoc
Remplace variable 'format' par 'fmt' dans toutes les fonctions et URLs (sauf routes API documentées)
This commit is contained in:
parent
28149dd556
commit
e918b5bcb4
@ -399,7 +399,7 @@ def bulletin(
|
||||
formsemestre,
|
||||
etud,
|
||||
version=version,
|
||||
format="pdf",
|
||||
fmt="pdf",
|
||||
with_img_signatures_pdf=with_img_signatures_pdf,
|
||||
)
|
||||
return pdf_response
|
||||
|
@ -515,7 +515,7 @@ class BulletinBUT:
|
||||
infos, _ = sco_bulletins.etud_descr_situation_semestre(
|
||||
etud.id,
|
||||
self.res.formsemestre,
|
||||
format="html",
|
||||
fmt="html",
|
||||
show_date_inscr=self.prefs["bul_show_date_inscr"],
|
||||
show_decisions=self.prefs["bul_show_decision"],
|
||||
show_uevalid=self.prefs["bul_show_uevalid"],
|
||||
|
@ -50,7 +50,7 @@ def make_bulletin_but_court_pdf(
|
||||
try:
|
||||
PDFLOCK.acquire()
|
||||
bul_generator = BulletinGeneratorBUTCourt(**locals())
|
||||
bul_pdf = bul_generator.generate(format="pdf")
|
||||
bul_pdf = bul_generator.generate(fmt="pdf")
|
||||
finally:
|
||||
PDFLOCK.release()
|
||||
return bul_pdf
|
||||
|
@ -14,7 +14,7 @@ La génération du bulletin PDF suit le chemin suivant:
|
||||
|
||||
- sco_bulletins_generator.make_formsemestre_bulletin_etud()
|
||||
- instance de BulletinGeneratorStandardBUT
|
||||
- BulletinGeneratorStandardBUT.generate(format="pdf")
|
||||
- BulletinGeneratorStandardBUT.generate(fmt="pdf")
|
||||
sco_bulletins_generator.BulletinGenerator.generate()
|
||||
.generate_pdf()
|
||||
.bul_table() (ci-dessous)
|
||||
@ -74,7 +74,7 @@ class BulletinGeneratorStandardBUT(BulletinGeneratorStandard):
|
||||
html_class_ignore_default=True,
|
||||
html_with_td_classes=True,
|
||||
)
|
||||
table_objects = table.gen(format=fmt)
|
||||
table_objects = table.gen(fmt=fmt)
|
||||
objects += table_objects
|
||||
# objects += [KeepInFrame(0, 0, table_objects, mode="shrink")]
|
||||
if i != 2:
|
||||
|
@ -258,7 +258,7 @@ def bulletin_but_xml_compat(
|
||||
infos, dpv = sco_bulletins.etud_descr_situation_semestre(
|
||||
etudid,
|
||||
formsemestre,
|
||||
format="xml",
|
||||
fmt="xml",
|
||||
show_uevalid=sco_preferences.get_preference(
|
||||
"bul_show_uevalid", formsemestre_id
|
||||
),
|
||||
|
@ -94,7 +94,7 @@ def pvjury_page_but(formsemestre_id: int, fmt="html"):
|
||||
},
|
||||
xls_style_base=xls_style_base,
|
||||
)
|
||||
return tab.make_page(format=fmt, javascripts=["js/etud_info.js"], init_qtip=True)
|
||||
return tab.make_page(fmt=fmt, javascripts=["js/etud_info.js"], init_qtip=True)
|
||||
|
||||
|
||||
def pvjury_table_but(
|
||||
|
@ -297,23 +297,23 @@ class GenTable:
|
||||
"list of titles"
|
||||
return [self.titles.get(cid, "") for cid in self.columns_ids]
|
||||
|
||||
def gen(self, format="html", columns_ids=None):
|
||||
def gen(self, fmt="html", columns_ids=None):
|
||||
"""Build representation of the table in the specified format.
|
||||
See make_page() for more sophisticated output.
|
||||
"""
|
||||
if format == "html":
|
||||
if fmt == "html":
|
||||
return self.html()
|
||||
elif format == "xls" or format == "xlsx":
|
||||
elif fmt == "xls" or fmt == "xlsx":
|
||||
return self.excel()
|
||||
elif format == "text" or format == "csv":
|
||||
elif fmt == "text" or fmt == "csv":
|
||||
return self.text()
|
||||
elif format == "pdf":
|
||||
elif fmt == "pdf":
|
||||
return self.pdf()
|
||||
elif format == "xml":
|
||||
elif fmt == "xml":
|
||||
return self.xml()
|
||||
elif format == "json":
|
||||
elif fmt == "json":
|
||||
return self.json()
|
||||
raise ValueError(f"GenTable: invalid format: {format}")
|
||||
raise ValueError(f"GenTable: invalid format: {fmt}")
|
||||
|
||||
def _gen_html_row(self, row, line_num=0, elem="td", css_classes=""):
|
||||
"row is a dict, returns a string <tr...>...</tr>"
|
||||
@ -477,15 +477,13 @@ class GenTable:
|
||||
H.append('<span class="gt_export_icons">')
|
||||
if self.xls_link:
|
||||
H.append(
|
||||
' <a href="%s&format=xls">%s</a>'
|
||||
% (self.base_url, scu.ICON_XLS)
|
||||
' <a href="%s&fmt=xls">%s</a>' % (self.base_url, scu.ICON_XLS)
|
||||
)
|
||||
if self.xls_link and self.pdf_link:
|
||||
H.append(" ")
|
||||
if self.pdf_link:
|
||||
H.append(
|
||||
' <a href="%s&format=pdf">%s</a>'
|
||||
% (self.base_url, scu.ICON_PDF)
|
||||
' <a href="%s&fmt=pdf">%s</a>' % (self.base_url, scu.ICON_PDF)
|
||||
)
|
||||
H.append("</span>")
|
||||
H.append("</p>")
|
||||
@ -653,7 +651,7 @@ class GenTable:
|
||||
def make_page(
|
||||
self,
|
||||
title="",
|
||||
format="html",
|
||||
fmt="html",
|
||||
page_title="",
|
||||
filename=None,
|
||||
javascripts=[],
|
||||
@ -670,7 +668,7 @@ class GenTable:
|
||||
filename = self.filename
|
||||
page_title = page_title or self.page_title
|
||||
html_title = self.html_title or title
|
||||
if format == "html":
|
||||
if fmt == "html":
|
||||
H = []
|
||||
if with_html_headers:
|
||||
H.append(
|
||||
@ -687,7 +685,7 @@ class GenTable:
|
||||
if with_html_headers:
|
||||
H.append(html_sco_header.sco_footer())
|
||||
return "\n".join(H)
|
||||
elif format == "pdf":
|
||||
elif fmt == "pdf":
|
||||
pdf_objs = self.pdf()
|
||||
pdf_doc = sco_pdf.pdf_basic_page(
|
||||
pdf_objs, title=title, preferences=self.preferences
|
||||
@ -701,7 +699,7 @@ class GenTable:
|
||||
)
|
||||
else:
|
||||
return pdf_doc
|
||||
elif format == "xls" or format == "xlsx": # dans les 2 cas retourne du xlsx
|
||||
elif fmt == "xls" or fmt == "xlsx": # dans les 2 cas retourne du xlsx
|
||||
xls = self.excel()
|
||||
if publish:
|
||||
return scu.send_file(
|
||||
@ -712,9 +710,9 @@ class GenTable:
|
||||
)
|
||||
else:
|
||||
return xls
|
||||
elif format == "text":
|
||||
elif fmt == "text":
|
||||
return self.text()
|
||||
elif format == "csv":
|
||||
elif fmt == "csv":
|
||||
return scu.send_file(
|
||||
self.text(),
|
||||
filename,
|
||||
@ -722,14 +720,14 @@ class GenTable:
|
||||
mime=scu.CSV_MIMETYPE,
|
||||
attached=True,
|
||||
)
|
||||
elif format == "xml":
|
||||
elif fmt == "xml":
|
||||
xml = self.xml()
|
||||
if publish:
|
||||
return scu.send_file(
|
||||
xml, filename, suffix=".xml", mime=scu.XML_MIMETYPE
|
||||
)
|
||||
return xml
|
||||
elif format == "json":
|
||||
elif fmt == "json":
|
||||
js = self.json()
|
||||
if publish:
|
||||
return scu.send_file(
|
||||
@ -737,7 +735,7 @@ class GenTable:
|
||||
)
|
||||
return js
|
||||
else:
|
||||
log("make_page: format=%s" % format)
|
||||
log(f"make_page: format={fmt}")
|
||||
raise ValueError("_make_page: invalid format")
|
||||
|
||||
|
||||
@ -771,18 +769,18 @@ if __name__ == "__main__":
|
||||
columns_ids=("nom", "age"),
|
||||
)
|
||||
print("--- HTML:")
|
||||
print(table.gen(format="html"))
|
||||
print(table.gen(fmt="html"))
|
||||
print("\n--- XML:")
|
||||
print(table.gen(format="xml"))
|
||||
print(table.gen(fmt="xml"))
|
||||
print("\n--- JSON:")
|
||||
print(table.gen(format="json"))
|
||||
print(table.gen(fmt="json"))
|
||||
# Test pdf:
|
||||
import io
|
||||
from app.scodoc import sco_preferences
|
||||
|
||||
preferences = sco_preferences.SemPreferences()
|
||||
table.preferences = preferences
|
||||
objects = table.gen(format="pdf")
|
||||
objects = table.gen(fmt="pdf")
|
||||
objects = [KeepInFrame(0, 0, objects, mode="shrink")]
|
||||
doc = io.BytesIO()
|
||||
document = sco_pdf.BaseDocTemplate(doc)
|
||||
@ -795,6 +793,6 @@ if __name__ == "__main__":
|
||||
data = doc.getvalue()
|
||||
with open("/tmp/gen_table.pdf", "wb") as f:
|
||||
f.write(data)
|
||||
p = table.make_page(format="pdf")
|
||||
p = table.make_page(fmt="pdf")
|
||||
with open("toto.pdf", "wb") as f:
|
||||
f.write(p)
|
||||
|
@ -406,7 +406,7 @@ def do_formsemestre_archive(
|
||||
data = response.get_data()
|
||||
else: # formations classiques
|
||||
data = sco_pv_forms.formsemestre_pvjury(
|
||||
formsemestre_id, format="xls", publish=False
|
||||
formsemestre_id, fmt="xls", publish=False
|
||||
)
|
||||
if data:
|
||||
PV_ARCHIVER.store(
|
||||
|
@ -95,7 +95,7 @@ def get_formsemestre_bulletin_etud_json(
|
||||
return formsemestre_bulletinetud(
|
||||
etud,
|
||||
formsemestre_id=formsemestre.id,
|
||||
format="json",
|
||||
fmt="json",
|
||||
version=version,
|
||||
xml_with_decisions=True,
|
||||
force_publishing=force_publishing,
|
||||
@ -201,7 +201,7 @@ def formsemestre_bulletinetud_dict(formsemestre_id, etudid, version="long"):
|
||||
infos, dpv = etud_descr_situation_semestre(
|
||||
etudid,
|
||||
formsemestre,
|
||||
format="html",
|
||||
fmt="html",
|
||||
show_date_inscr=prefs["bul_show_date_inscr"],
|
||||
show_decisions=prefs["bul_show_decision"],
|
||||
show_uevalid=prefs["bul_show_uevalid"],
|
||||
@ -582,7 +582,7 @@ def _ue_mod_bulletin(
|
||||
"notes.evaluation_listenotes",
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
evaluation_id=e.id,
|
||||
format="html",
|
||||
fmt="html",
|
||||
tf_submitted=1,
|
||||
)
|
||||
e_dict[
|
||||
@ -679,14 +679,14 @@ def etud_descr_situation_semestre(
|
||||
etudid,
|
||||
formsemestre: FormSemestre,
|
||||
ne="",
|
||||
format="html", # currently unused
|
||||
fmt="html", # currently unused
|
||||
show_decisions=True,
|
||||
show_uevalid=True,
|
||||
show_date_inscr=True,
|
||||
show_mention=False,
|
||||
):
|
||||
"""Dict décrivant la situation de l'étudiant dans ce semestre.
|
||||
Si format == 'html', peut inclure du balisage html (actuellement inutilisé)
|
||||
Si fmt == 'html', peut inclure du balisage html (actuellement inutilisé)
|
||||
|
||||
situation : chaine résumant en français la situation de l'étudiant.
|
||||
Par ex. "Inscrit le 31/12/1999. Décision jury: Validé. ..."
|
||||
@ -889,7 +889,7 @@ def _format_situation_fields(
|
||||
def formsemestre_bulletinetud(
|
||||
etud: Identite = None,
|
||||
formsemestre_id=None,
|
||||
format=None,
|
||||
fmt=None,
|
||||
version="long",
|
||||
xml_with_decisions=False,
|
||||
force_publishing=False, # force publication meme si semestre non publie sur "portail"
|
||||
@ -910,7 +910,7 @@ def formsemestre_bulletinetud(
|
||||
- prefer_mail_perso: pour pdfmail, utilise adresse mail perso en priorité.
|
||||
|
||||
"""
|
||||
format = format or "html"
|
||||
fmt = fmt or "html"
|
||||
formsemestre: FormSemestre = db.session.get(FormSemestre, formsemestre_id)
|
||||
if not formsemestre:
|
||||
raise ScoValueError(f"semestre {formsemestre_id} inconnu !")
|
||||
@ -918,21 +918,21 @@ def formsemestre_bulletinetud(
|
||||
bulletin = do_formsemestre_bulletinetud(
|
||||
formsemestre,
|
||||
etud,
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
version=version,
|
||||
xml_with_decisions=xml_with_decisions,
|
||||
force_publishing=force_publishing,
|
||||
prefer_mail_perso=prefer_mail_perso,
|
||||
)[0]
|
||||
|
||||
if format not in {"html", "pdfmail"}:
|
||||
if fmt not in {"html", "pdfmail"}:
|
||||
filename = scu.bul_filename(formsemestre, etud)
|
||||
mime, suffix = scu.get_mime_suffix(format)
|
||||
mime, suffix = scu.get_mime_suffix(fmt)
|
||||
return scu.send_file(bulletin, filename, mime=mime, suffix=suffix)
|
||||
elif format == "pdfmail":
|
||||
elif fmt == "pdfmail":
|
||||
return ""
|
||||
H = [
|
||||
_formsemestre_bulletinetud_header_html(etud, formsemestre, format, version),
|
||||
_formsemestre_bulletinetud_header_html(etud, formsemestre, fmt, version),
|
||||
bulletin,
|
||||
render_template(
|
||||
"bul_foot.j2",
|
||||
@ -963,7 +963,7 @@ def do_formsemestre_bulletinetud(
|
||||
formsemestre: FormSemestre,
|
||||
etud: Identite,
|
||||
version="long", # short, long, selectedevals
|
||||
format=None,
|
||||
fmt=None,
|
||||
xml_with_decisions: bool = False,
|
||||
force_publishing: bool = False,
|
||||
prefer_mail_perso: bool = False,
|
||||
@ -985,8 +985,8 @@ def do_formsemestre_bulletinetud(
|
||||
où bul est str ou bytes au format demandé (html, pdf, pdfmail, pdfpart, xml, json)
|
||||
et filigranne est un message à placer en "filigranne" (eg "Provisoire").
|
||||
"""
|
||||
format = format or "html"
|
||||
if format == "xml":
|
||||
fmt = fmt or "html"
|
||||
if fmt == "xml":
|
||||
bul = sco_bulletins_xml.make_xml_formsemestre_bulletinetud(
|
||||
formsemestre.id,
|
||||
etud.id,
|
||||
@ -997,7 +997,7 @@ def do_formsemestre_bulletinetud(
|
||||
|
||||
return bul, ""
|
||||
|
||||
elif format == "json": # utilisé pour classic et "oldjson"
|
||||
elif fmt == "json": # utilisé pour classic et "oldjson"
|
||||
bul = sco_bulletins_json.make_json_formsemestre_bulletinetud(
|
||||
formsemestre.id,
|
||||
etud.id,
|
||||
@ -1015,23 +1015,23 @@ def do_formsemestre_bulletinetud(
|
||||
else:
|
||||
bul_dict = formsemestre_bulletinetud_dict(formsemestre.id, etud.id)
|
||||
|
||||
if format == "html":
|
||||
if fmt == "html":
|
||||
htm, _ = sco_bulletins_generator.make_formsemestre_bulletin_etud(
|
||||
bul_dict, etud=etud, formsemestre=formsemestre, version=version, fmt="html"
|
||||
)
|
||||
return htm, bul_dict["filigranne"]
|
||||
|
||||
elif format == "pdf" or format == "pdfpart":
|
||||
if fmt == "pdf" or fmt == "pdfpart":
|
||||
bul, filename = sco_bulletins_generator.make_formsemestre_bulletin_etud(
|
||||
bul_dict,
|
||||
etud=etud,
|
||||
formsemestre=formsemestre,
|
||||
version=version,
|
||||
fmt="pdf",
|
||||
stand_alone=(format != "pdfpart"),
|
||||
stand_alone=(fmt != "pdfpart"),
|
||||
with_img_signatures_pdf=with_img_signatures_pdf,
|
||||
)
|
||||
if format == "pdf":
|
||||
if fmt == "pdf":
|
||||
return (
|
||||
scu.sendPDFFile(bul, filename),
|
||||
bul_dict["filigranne"],
|
||||
@ -1039,7 +1039,7 @@ def do_formsemestre_bulletinetud(
|
||||
else:
|
||||
return bul, bul_dict["filigranne"]
|
||||
|
||||
elif format == "pdfmail":
|
||||
elif fmt == "pdfmail":
|
||||
# format pdfmail: envoie le pdf par mail a l'etud, et affiche le html
|
||||
# check permission
|
||||
if not can_send_bulletin_by_mail(formsemestre.id):
|
||||
@ -1067,7 +1067,7 @@ def do_formsemestre_bulletinetud(
|
||||
|
||||
return True, bul_dict["filigranne"]
|
||||
|
||||
raise ValueError(f"do_formsemestre_bulletinetud: invalid format ({format})")
|
||||
raise ValueError(f"do_formsemestre_bulletinetud: invalid format ({fmt})")
|
||||
|
||||
|
||||
def mail_bulletin(formsemestre_id, infos, pdfdata, filename, recipient_addr):
|
||||
@ -1156,7 +1156,7 @@ def make_menu_autres_operations(
|
||||
"formsemestre_id": formsemestre.id,
|
||||
"etudid": etud.id,
|
||||
"version": version,
|
||||
"format": "pdf",
|
||||
"fmt": "pdf",
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -1166,7 +1166,7 @@ def make_menu_autres_operations(
|
||||
"formsemestre_id": formsemestre.id,
|
||||
"etudid": etud.id,
|
||||
"version": version,
|
||||
"format": "pdfmail",
|
||||
"fmt": "pdfmail",
|
||||
},
|
||||
# possible slt si on a un mail...
|
||||
"enabled": etud_email and can_send_bulletin_by_mail(formsemestre.id),
|
||||
@ -1178,7 +1178,7 @@ def make_menu_autres_operations(
|
||||
"formsemestre_id": formsemestre.id,
|
||||
"etudid": etud.id,
|
||||
"version": version,
|
||||
"format": "pdfmail",
|
||||
"fmt": "pdfmail",
|
||||
"prefer_mail_perso": 1,
|
||||
},
|
||||
# possible slt si on a un mail...
|
||||
@ -1191,7 +1191,7 @@ def make_menu_autres_operations(
|
||||
"formsemestre_id": formsemestre.id,
|
||||
"etudid": etud.id,
|
||||
"version": version,
|
||||
"format": "json",
|
||||
"fmt": "json",
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -1201,7 +1201,7 @@ def make_menu_autres_operations(
|
||||
"formsemestre_id": formsemestre.id,
|
||||
"etudid": etud.id,
|
||||
"version": version,
|
||||
"format": "xml",
|
||||
"fmt": "xml",
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -1269,7 +1269,7 @@ def make_menu_autres_operations(
|
||||
def _formsemestre_bulletinetud_header_html(
|
||||
etud,
|
||||
formsemestre: FormSemestre,
|
||||
format=None,
|
||||
fmt=None,
|
||||
version=None,
|
||||
):
|
||||
H = [
|
||||
@ -1285,7 +1285,7 @@ def _formsemestre_bulletinetud_header_html(
|
||||
render_template(
|
||||
"bul_head.j2",
|
||||
etud=etud,
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
formsemestre=formsemestre,
|
||||
menu_autres_operations=make_menu_autres_operations(
|
||||
etud=etud,
|
||||
|
@ -35,7 +35,7 @@ class BulletinGenerator:
|
||||
.bul_part_below(fmt)
|
||||
.bul_signatures_pdf()
|
||||
|
||||
.__init__ et .generate(format) methodes appelees par le client (sco_bulletin)
|
||||
.__init__ et .generate(fmt) methodes appelees par le client (sco_bulletin)
|
||||
|
||||
La préférence 'bul_class_name' donne le nom de la classe generateur.
|
||||
La préférence 'bul_pdf_class_name' est obsolete (inutilisée).
|
||||
@ -139,18 +139,18 @@ class BulletinGenerator:
|
||||
sem = sco_formsemestre.get_formsemestre(self.bul_dict["formsemestre_id"])
|
||||
return scu.bul_filename_old(sem, self.bul_dict["etud"], "pdf")
|
||||
|
||||
def generate(self, format="", stand_alone=True):
|
||||
def generate(self, fmt="", stand_alone=True):
|
||||
"""Return bulletin in specified format"""
|
||||
if not format in self.supported_formats:
|
||||
raise ValueError(f"unsupported bulletin format ({format})")
|
||||
if not fmt in self.supported_formats:
|
||||
raise ValueError(f"unsupported bulletin format ({fmt})")
|
||||
try:
|
||||
PDFLOCK.acquire() # this lock is necessary since reportlab is not re-entrant
|
||||
if format == "html":
|
||||
if fmt == "html":
|
||||
return self.generate_html()
|
||||
elif format == "pdf":
|
||||
elif fmt == "pdf":
|
||||
return self.generate_pdf(stand_alone=stand_alone)
|
||||
else:
|
||||
raise ValueError(f"invalid bulletin format ({format})")
|
||||
raise ValueError(f"invalid bulletin format ({fmt})")
|
||||
finally:
|
||||
PDFLOCK.release()
|
||||
|
||||
@ -330,7 +330,7 @@ def make_formsemestre_bulletin_etud(
|
||||
version=version,
|
||||
with_img_signatures_pdf=with_img_signatures_pdf,
|
||||
)
|
||||
data = bul_generator.generate(format=fmt, stand_alone=stand_alone)
|
||||
data = bul_generator.generate(fmt=fmt, stand_alone=stand_alone)
|
||||
finally:
|
||||
PDFLOCK.release()
|
||||
|
||||
|
@ -252,7 +252,7 @@ class BulletinGeneratorLegacy(sco_bulletins_generator.BulletinGenerator):
|
||||
elif fmt == "html":
|
||||
return self.bul_part_below_html()
|
||||
else:
|
||||
raise ValueError("invalid bulletin format (%s)" % fmt)
|
||||
raise ValueError(f"invalid bulletin format ({fmt})")
|
||||
|
||||
def bul_part_below_pdf(self):
|
||||
"""
|
||||
|
@ -146,15 +146,15 @@ def process_field(
|
||||
field, cdict, style, suppress_empty_pars=False, fmt="pdf", field_name=None
|
||||
):
|
||||
"""Process a field given in preferences, returns
|
||||
- if format = 'pdf': a list of Platypus objects
|
||||
- if format = 'html' : a string
|
||||
- if fmt = 'pdf': a list of Platypus objects
|
||||
- if fmt = 'html' : a string
|
||||
|
||||
Substitutes all %()s markup
|
||||
Remove potentialy harmful <img> tags
|
||||
Replaces <logo name="header" width="xxx" height="xxx">
|
||||
by <img src=".../logos/logo_header" width="xxx" height="xxx">
|
||||
|
||||
If format = 'html', replaces <para> by <p>. HTML does not allow logos.
|
||||
If fmt = 'html', replaces <para> by <p>. HTML does not allow logos.
|
||||
"""
|
||||
try:
|
||||
# None values are mapped to empty strings by WrapDict
|
||||
@ -225,7 +225,7 @@ def get_formsemestre_bulletins_pdf(formsemestre_id, version="selectedevals"):
|
||||
frag, _ = sco_bulletins.do_formsemestre_bulletinetud(
|
||||
formsemestre,
|
||||
etud,
|
||||
format="pdfpart",
|
||||
fmt="pdfpart",
|
||||
version=version,
|
||||
)
|
||||
fragments += frag
|
||||
@ -270,7 +270,7 @@ def get_etud_bulletins_pdf(etudid, version="selectedevals"):
|
||||
frag, filigranne = sco_bulletins.do_formsemestre_bulletinetud(
|
||||
formsemestre,
|
||||
etud,
|
||||
format="pdfpart",
|
||||
fmt="pdfpart",
|
||||
version=version,
|
||||
)
|
||||
fragments += frag
|
||||
|
@ -116,7 +116,7 @@ class BulletinGeneratorStandard(sco_bulletins_generator.BulletinGenerator):
|
||||
html_with_td_classes=True,
|
||||
)
|
||||
|
||||
return T.gen(format=fmt)
|
||||
return T.gen(fmt=fmt)
|
||||
|
||||
def bul_part_below(self, fmt="html"):
|
||||
"""Génère les informations placées sous la table de notes
|
||||
|
@ -357,7 +357,7 @@ def make_xml_formsemestre_bulletinetud(
|
||||
infos, dpv = sco_bulletins.etud_descr_situation_semestre(
|
||||
etudid,
|
||||
formsemestre,
|
||||
format="xml",
|
||||
fmt="xml",
|
||||
show_uevalid=sco_preferences.get_preference(
|
||||
"bul_show_uevalid", formsemestre_id
|
||||
),
|
||||
|
@ -152,7 +152,7 @@ def formsemestre_estim_cost(
|
||||
n_group_tp=1,
|
||||
coef_tp=1,
|
||||
coef_cours=1.5,
|
||||
format="html",
|
||||
fmt="html",
|
||||
):
|
||||
"""Page (formulaire) estimation coûts"""
|
||||
|
||||
@ -192,4 +192,4 @@ def formsemestre_estim_cost(
|
||||
coef_tp,
|
||||
)
|
||||
|
||||
return tab.make_page(format=format)
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
@ -49,7 +49,7 @@ from app.scodoc import sco_etud
|
||||
import sco_version
|
||||
|
||||
|
||||
def report_debouche_date(start_year=None, format="html"):
|
||||
def report_debouche_date(start_year=None, fmt="html"):
|
||||
"""Rapport (table) pour les débouchés des étudiants sortis
|
||||
à partir de l'année indiquée.
|
||||
"""
|
||||
@ -63,7 +63,7 @@ def report_debouche_date(start_year=None, format="html"):
|
||||
"Année invalide. Année de début de la recherche"
|
||||
)
|
||||
|
||||
if format == "xls":
|
||||
if fmt == "xls":
|
||||
keep_numeric = True # pas de conversion des notes en strings
|
||||
else:
|
||||
keep_numeric = False
|
||||
@ -81,7 +81,7 @@ def report_debouche_date(start_year=None, format="html"):
|
||||
title="""<h2 class="formsemestre">Débouchés étudiants </h2>""",
|
||||
init_qtip=True,
|
||||
javascripts=["js/etud_info.js"],
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
with_html_headers=True,
|
||||
)
|
||||
|
||||
@ -276,7 +276,7 @@ def itemsuivi_suppress(itemsuivi_id):
|
||||
return ("", 204)
|
||||
|
||||
|
||||
def itemsuivi_create(etudid, item_date=None, situation="", format=None):
|
||||
def itemsuivi_create(etudid, item_date=None, situation="", fmt=None):
|
||||
"""Creation d'un item"""
|
||||
if not sco_permissions_check.can_edit_suivi():
|
||||
raise AccessDenied("Vous n'avez pas le droit d'effectuer cette opération !")
|
||||
@ -287,7 +287,7 @@ def itemsuivi_create(etudid, item_date=None, situation="", format=None):
|
||||
logdb(cnx, method="itemsuivi_create", etudid=etudid)
|
||||
log("created itemsuivi %s for %s" % (itemsuivi_id, etudid))
|
||||
item = itemsuivi_get(cnx, itemsuivi_id)
|
||||
if format == "json":
|
||||
if fmt == "json":
|
||||
return scu.sendJSON(item)
|
||||
return item
|
||||
|
||||
@ -320,13 +320,13 @@ def itemsuivi_set_situation(object, value):
|
||||
return situation or scu.IT_SITUATION_MISSING_STR
|
||||
|
||||
|
||||
def itemsuivi_list_etud(etudid, format=None):
|
||||
def itemsuivi_list_etud(etudid, fmt=None):
|
||||
"""Liste des items pour cet étudiant, avec tags"""
|
||||
cnx = ndb.GetDBConnexion()
|
||||
items = _itemsuivi_list(cnx, {"etudid": etudid})
|
||||
for it in items:
|
||||
it["tags"] = ", ".join(itemsuivi_tag_list(it["itemsuivi_id"]))
|
||||
if format == "json":
|
||||
if fmt == "json":
|
||||
return scu.sendJSON(items)
|
||||
return items
|
||||
|
||||
|
@ -979,18 +979,18 @@ du programme" (menu "Semestre") si vous avez un semestre en cours);
|
||||
</li>
|
||||
<li><a class="stdlink" href="{
|
||||
url_for('notes.formation_export', scodoc_dept=g.scodoc_dept,
|
||||
formation_id=formation_id, format='xml')
|
||||
formation_id=formation_id, fmt='xml')
|
||||
}">Export XML de la formation</a> ou
|
||||
<a class="stdlink" href="{
|
||||
url_for('notes.formation_export', scodoc_dept=g.scodoc_dept,
|
||||
formation_id=formation_id, format='xml', export_codes_apo=0)
|
||||
formation_id=formation_id, fmt='xml', export_codes_apo=0)
|
||||
}">sans codes Apogée</a>
|
||||
(permet de l'enregistrer pour l'échanger avec un autre site)
|
||||
</li>
|
||||
|
||||
<li><a class="stdlink" href="{
|
||||
url_for('notes.formation_export', scodoc_dept=g.scodoc_dept,
|
||||
formation_id=formation_id, format='json')
|
||||
formation_id=formation_id, fmt='json')
|
||||
}">Export JSON de la formation</a>
|
||||
</li>
|
||||
|
||||
|
@ -495,7 +495,7 @@ def table_apo_csv_list(semset):
|
||||
return tab
|
||||
|
||||
|
||||
def view_apo_etuds(semset_id, title="", nip_list="", format="html"):
|
||||
def view_apo_etuds(semset_id, title="", nip_list="", fmt="html"):
|
||||
"""Table des étudiants Apogée par nips
|
||||
nip_list est une chaine, codes nip séparés par des ,
|
||||
"""
|
||||
@ -530,11 +530,11 @@ def view_apo_etuds(semset_id, title="", nip_list="", format="html"):
|
||||
title=title,
|
||||
etuds=list(etuds.values()),
|
||||
keys=("nip", "etape_apo", "nom", "prenom", "inscriptions_scodoc"),
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
)
|
||||
|
||||
|
||||
def view_scodoc_etuds(semset_id, title="", nip_list="", format="html"):
|
||||
def view_scodoc_etuds(semset_id, title="", nip_list="", fmt="html"):
|
||||
"""Table des étudiants ScoDoc par nips ou etudids"""
|
||||
if not isinstance(nip_list, str):
|
||||
nip_list = str(nip_list)
|
||||
@ -553,12 +553,12 @@ def view_scodoc_etuds(semset_id, title="", nip_list="", format="html"):
|
||||
title=title,
|
||||
etuds=etuds,
|
||||
keys=("code_nip", "nom", "prenom"),
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
)
|
||||
|
||||
|
||||
def _view_etuds_page(
|
||||
semset_id: int, title="", etuds: list = None, keys=(), format="html"
|
||||
semset_id: int, title="", etuds: list = None, keys=(), fmt="html"
|
||||
) -> str:
|
||||
"Affiche les étudiants indiqués"
|
||||
# Tri les étudiants par nom:
|
||||
@ -581,8 +581,8 @@ def _view_etuds_page(
|
||||
filename="students_apo",
|
||||
preferences=sco_preferences.SemPreferences(),
|
||||
)
|
||||
if format != "html":
|
||||
return tab.make_page(format=format)
|
||||
if fmt != "html":
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
return f"""
|
||||
{html_sco_header.sco_header(
|
||||
@ -711,9 +711,9 @@ def view_apo_csv_delete(etape_apo="", semset_id="", dialog_confirmed=False):
|
||||
return flask.redirect(dest_url)
|
||||
|
||||
|
||||
def view_apo_csv(etape_apo="", semset_id="", format="html"):
|
||||
def view_apo_csv(etape_apo="", semset_id="", fmt="html"):
|
||||
"""Visualise une maquette stockée
|
||||
Si format="raw", renvoie le fichier maquette tel quel
|
||||
Si fmt="raw", renvoie le fichier maquette tel quel
|
||||
"""
|
||||
if not semset_id:
|
||||
raise ValueError("invalid null semset_id")
|
||||
@ -721,7 +721,7 @@ def view_apo_csv(etape_apo="", semset_id="", format="html"):
|
||||
annee_scolaire = semset["annee_scolaire"]
|
||||
sem_id = semset["sem_id"]
|
||||
csv_data = sco_etape_apogee.apo_csv_get(etape_apo, annee_scolaire, sem_id)
|
||||
if format == "raw":
|
||||
if fmt == "raw":
|
||||
return scu.send_file(csv_data, etape_apo, suffix=".txt", mime=scu.CSV_MIMETYPE)
|
||||
|
||||
apo_data = sco_apogee_csv.ApoData(csv_data, periode=semset["sem_id"])
|
||||
@ -798,8 +798,8 @@ def view_apo_csv(etape_apo="", semset_id="", format="html"):
|
||||
preferences=sco_preferences.SemPreferences(),
|
||||
)
|
||||
|
||||
if format != "html":
|
||||
return tab.make_page(format=format)
|
||||
if fmt != "html":
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
H += [
|
||||
f"""
|
||||
@ -807,7 +807,7 @@ def view_apo_csv(etape_apo="", semset_id="", format="html"):
|
||||
<p><a class="stdlink" href="{
|
||||
url_for("notes.view_apo_csv",
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
etape_apo=etape_apo, semset_id=semset_id, format="raw")
|
||||
etape_apo=etape_apo, semset_id=semset_id, fmt="raw")
|
||||
}">fichier maquette CSV brut (non rempli par ScoDoc)</a>
|
||||
</p>
|
||||
<div>
|
||||
|
@ -668,7 +668,7 @@ class EtapeBilan:
|
||||
self.titres,
|
||||
html_class="repartition",
|
||||
html_with_td_classes=True,
|
||||
).gen(format="html")
|
||||
).gen(fmt="html")
|
||||
)
|
||||
return "\n".join(H)
|
||||
|
||||
@ -766,7 +766,7 @@ class EtapeBilan:
|
||||
table_id="detail",
|
||||
html_class="table_leftalign",
|
||||
html_sortable=True,
|
||||
).gen(format="html")
|
||||
).gen(fmt="html")
|
||||
)
|
||||
return "\n".join(H)
|
||||
|
||||
|
@ -561,7 +561,7 @@ def evaluation_date_first_completion(evaluation_id) -> datetime.datetime:
|
||||
return max(date_premiere_note.values())
|
||||
|
||||
|
||||
def formsemestre_evaluations_delai_correction(formsemestre_id, format="html"):
|
||||
def formsemestre_evaluations_delai_correction(formsemestre_id, fmt="html"):
|
||||
"""Experimental: un tableau indiquant pour chaque évaluation
|
||||
le nombre de jours avant la publication des notes.
|
||||
|
||||
@ -638,7 +638,7 @@ def formsemestre_evaluations_delai_correction(formsemestre_id, format="html"):
|
||||
origin=f"""Généré par {sco_version.SCONAME} le {scu.timedate_human_repr()}""",
|
||||
filename=scu.make_filename("evaluations_delais_" + formsemestre.titre_annee()),
|
||||
)
|
||||
return tab.make_page(format=format)
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
|
||||
# -------------- VIEWS
|
||||
|
@ -220,7 +220,7 @@ def get_set_formsemestre_id_dates(start_date, end_date) -> set:
|
||||
|
||||
|
||||
def scodoc_table_results(
|
||||
start_date="", end_date="", types_parcours: list = None, format="html"
|
||||
start_date="", end_date="", types_parcours: list = None, fmt="html"
|
||||
):
|
||||
"""Page affichant la table des résultats
|
||||
Les dates sont en dd/mm/yyyy (datepicker javascript)
|
||||
@ -248,8 +248,8 @@ def scodoc_table_results(
|
||||
end_date,
|
||||
"&types_parcours=".join([str(x) for x in types_parcours]),
|
||||
)
|
||||
if format != "html":
|
||||
return tab.make_page(format=format, with_html_headers=False)
|
||||
if fmt != "html":
|
||||
return tab.make_page(fmt=fmt, with_html_headers=False)
|
||||
tab_html = tab.html()
|
||||
nb_rows = tab.get_nb_rows()
|
||||
else:
|
||||
|
@ -366,7 +366,7 @@ def table_etud_in_accessible_depts(expnom=None):
|
||||
)
|
||||
|
||||
|
||||
def search_inscr_etud_by_nip(code_nip, format="json"):
|
||||
def search_inscr_etud_by_nip(code_nip, fmt="json"):
|
||||
"""Recherche multi-departement d'un étudiant par son code NIP
|
||||
Seuls les départements accessibles par l'utilisateur sont cherchés.
|
||||
|
||||
@ -408,4 +408,4 @@ def search_inscr_etud_by_nip(code_nip, format="json"):
|
||||
)
|
||||
tab = GenTable(columns_ids=columns_ids, rows=T)
|
||||
|
||||
return tab.make_page(format=format, with_html_headers=False, publish=True)
|
||||
return tab.make_page(fmt=fmt, with_html_headers=False, publish=True)
|
||||
|
@ -45,7 +45,7 @@ import app.scodoc.sco_utils as scu
|
||||
|
||||
|
||||
# ---- Table recap formation
|
||||
def formation_table_recap(formation_id, format="html") -> Response:
|
||||
def formation_table_recap(formation_id, fmt="html") -> Response:
|
||||
"""Table recapitulant formation."""
|
||||
T = []
|
||||
formation = Formation.query.get_or_404(formation_id)
|
||||
@ -162,7 +162,7 @@ def formation_table_recap(formation_id, format="html") -> Response:
|
||||
preferences=sco_preferences.SemPreferences(),
|
||||
table_id="formation_table_recap",
|
||||
)
|
||||
return tab.make_page(format=format, javascripts=["js/formation_recap.js"])
|
||||
return tab.make_page(fmt=fmt, javascripts=["js/formation_recap.js"])
|
||||
|
||||
|
||||
def export_recap_formations_annee_scolaire(annee_scolaire):
|
||||
@ -179,7 +179,7 @@ def export_recap_formations_annee_scolaire(annee_scolaire):
|
||||
formation_ids = {formsemestre.formation.id for formsemestre in formsemestres}
|
||||
for formation_id in formation_ids:
|
||||
formation = db.session.get(Formation, formation_id)
|
||||
xls = formation_table_recap(formation_id, format="xlsx").data
|
||||
xls = formation_table_recap(formation_id, fmt="xlsx").data
|
||||
filename = (
|
||||
scu.sanitize_filename(formation.get_titre_version()) + scu.XLSX_SUFFIX
|
||||
)
|
||||
|
@ -212,7 +212,7 @@ def formation_export(
|
||||
export_tags=True,
|
||||
export_external_ues=False,
|
||||
export_codes_apo=True,
|
||||
format=None,
|
||||
fmt=None,
|
||||
) -> flask.Response:
|
||||
"""Get a formation, with UE, matieres, modules
|
||||
in desired format
|
||||
@ -224,13 +224,13 @@ def formation_export(
|
||||
export_tags=export_tags,
|
||||
export_external_ues=export_external_ues,
|
||||
export_codes_apo=export_codes_apo,
|
||||
ac_as_list=format == "xml",
|
||||
ac_as_list=fmt == "xml",
|
||||
)
|
||||
filename = f"scodoc_formation_{formation.departement.acronym}_{formation.acronyme or ''}_v{formation.version}"
|
||||
return scu.sendResult(
|
||||
f_dict,
|
||||
name="formation",
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
force_outer_xml_tag=False,
|
||||
attached=True,
|
||||
filename=filename,
|
||||
@ -283,7 +283,7 @@ def _formation_retreive_apc_niveau(
|
||||
|
||||
def formation_import_xml(doc: str, import_tags=True, use_local_refcomp=False):
|
||||
"""Create a formation from XML representation
|
||||
(format dumped by formation_export( format='xml' ))
|
||||
(format dumped by formation_export( fmt='xml' ))
|
||||
XML may contain object (UE, modules) ids: this function returns two
|
||||
dicts mapping these ids to the created ids.
|
||||
|
||||
@ -627,7 +627,7 @@ def formation_create_new_version(formation_id, redirect=True):
|
||||
"duplicate formation, with new version number"
|
||||
formation = Formation.query.get_or_404(formation_id)
|
||||
resp = formation_export(
|
||||
formation_id, export_ids=True, export_external_ues=True, format="xml"
|
||||
formation_id, export_ids=True, export_external_ues=True, fmt="xml"
|
||||
)
|
||||
xml_data = resp.get_data(as_text=True)
|
||||
new_id, modules_old2new, ues_old2new = formation_import_xml(
|
||||
|
@ -559,7 +559,7 @@ def list_formsemestre_by_etape(etape_apo=False, annee_scolaire=False) -> list[di
|
||||
return sems
|
||||
|
||||
|
||||
def view_formsemestre_by_etape(etape_apo=None, format="html"):
|
||||
def view_formsemestre_by_etape(etape_apo=None, fmt="html"):
|
||||
"""Affiche table des semestres correspondants à l'étape"""
|
||||
if etape_apo:
|
||||
html_title = f"""<h2>Semestres courants de l'étape <tt>{etape_apo}</tt></h2>"""
|
||||
@ -575,7 +575,7 @@ def view_formsemestre_by_etape(etape_apo=None, format="html"):
|
||||
</form>""",
|
||||
)
|
||||
tab.base_url = "%s?etape_apo=%s" % (request.base_url, etape_apo or "")
|
||||
return tab.make_page(format=format)
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
|
||||
def sem_has_etape(sem, code_etape):
|
||||
|
@ -325,7 +325,7 @@ def formsemestre_status_menubar(formsemestre: FormSemestre) -> str:
|
||||
"title": "Exporter table des étudiants",
|
||||
"endpoint": "scolar.groups_view",
|
||||
"args": {
|
||||
"format": "allxls",
|
||||
"fmt": "allxls",
|
||||
"group_ids": sco_groups.get_default_group(
|
||||
formsemestre_id, fix_if_missing=True
|
||||
),
|
||||
@ -787,7 +787,7 @@ def formsemestre_description_table(
|
||||
|
||||
|
||||
def formsemestre_description(
|
||||
formsemestre_id, format="html", with_evals=False, with_parcours=False
|
||||
formsemestre_id, fmt="html", with_evals=False, with_parcours=False
|
||||
):
|
||||
"""Description du semestre sous forme de table exportable
|
||||
Liste des modules et de leurs coefficients
|
||||
@ -807,7 +807,7 @@ def formsemestre_description(
|
||||
>indiquer les parcours BUT</input>
|
||||
"""
|
||||
|
||||
return tab.make_page(format=format)
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
|
||||
# genere liste html pour accès aux groupes de ce semestre
|
||||
|
@ -516,7 +516,7 @@ def get_etud_groups_in_partition(partition_id):
|
||||
return R
|
||||
|
||||
|
||||
def formsemestre_partition_list(formsemestre_id, format="xml"):
|
||||
def formsemestre_partition_list(formsemestre_id, fmt="xml"):
|
||||
"""Get partitions and groups in this semestre
|
||||
Supported formats: xml, json
|
||||
"""
|
||||
@ -524,7 +524,7 @@ def formsemestre_partition_list(formsemestre_id, format="xml"):
|
||||
# Ajoute les groupes
|
||||
for p in partitions:
|
||||
p["group"] = get_partition_groups(p)
|
||||
return scu.sendResult(partitions, name="partition", format=format)
|
||||
return scu.sendResult(partitions, name="partition", fmt=fmt)
|
||||
|
||||
|
||||
# Encore utilisé par groupmgr.js
|
||||
|
@ -60,7 +60,7 @@ def groups_list_annotation(group_ids: list[int]) -> list[dict]:
|
||||
return annotations
|
||||
|
||||
|
||||
def groups_export_annotations(group_ids, formsemestre_id=None, format="html"):
|
||||
def groups_export_annotations(group_ids, formsemestre_id=None, fmt="html"):
|
||||
"""Les annotations"""
|
||||
groups_infos = sco_groups_view.DisplayedGroupsInfos(
|
||||
group_ids, formsemestre_id=formsemestre_id
|
||||
@ -68,7 +68,7 @@ def groups_export_annotations(group_ids, formsemestre_id=None, format="html"):
|
||||
annotations = groups_list_annotation(groups_infos.group_ids)
|
||||
for annotation in annotations:
|
||||
annotation["date_str"] = annotation["date"].strftime("%d/%m/%Y à %Hh%M")
|
||||
if format == "xls":
|
||||
if fmt == "xls":
|
||||
columns_ids = ("etudid", "nom", "prenom", "date", "comment")
|
||||
else:
|
||||
columns_ids = ("etudid", "nom", "prenom", "date_str", "comment")
|
||||
@ -93,4 +93,4 @@ def groups_export_annotations(group_ids, formsemestre_id=None, format="html"):
|
||||
html_class="table_leftalign",
|
||||
preferences=sco_preferences.SemPreferences(formsemestre_id),
|
||||
)
|
||||
return table.make_page(format=format)
|
||||
return table.make_page(fmt=fmt)
|
||||
|
@ -70,7 +70,7 @@ CSSSTYLES = html_sco_header.BOOTSTRAP_MULTISELECT_CSS
|
||||
# view:
|
||||
def groups_view(
|
||||
group_ids=(),
|
||||
format="html",
|
||||
fmt="html",
|
||||
# Options pour listes:
|
||||
with_codes=0,
|
||||
etat=None,
|
||||
@ -82,7 +82,7 @@ def groups_view(
|
||||
):
|
||||
"""Affichage des étudiants des groupes indiqués
|
||||
group_ids: liste de group_id
|
||||
format: csv, json, xml, xls, allxls, xlsappel, moodlecsv, pdf
|
||||
fmt: csv, json, xml, xls, allxls, xlsappel, moodlecsv, pdf
|
||||
"""
|
||||
# Informations sur les groupes à afficher:
|
||||
groups_infos = DisplayedGroupsInfos(
|
||||
@ -92,10 +92,10 @@ def groups_view(
|
||||
select_all_when_unspecified=True,
|
||||
)
|
||||
# Formats spéciaux: download direct
|
||||
if format != "html":
|
||||
if fmt != "html":
|
||||
return groups_table(
|
||||
groups_infos=groups_infos,
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
with_codes=with_codes,
|
||||
etat=etat,
|
||||
with_paiement=with_paiement,
|
||||
@ -135,7 +135,7 @@ def groups_view(
|
||||
""",
|
||||
groups_table(
|
||||
groups_infos=groups_infos,
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
with_codes=with_codes,
|
||||
etat=etat,
|
||||
with_paiement=with_paiement,
|
||||
@ -437,14 +437,14 @@ def groups_table(
|
||||
groups_infos: DisplayedGroupsInfos = None,
|
||||
with_codes=0,
|
||||
etat=None,
|
||||
format="html",
|
||||
fmt="html",
|
||||
with_paiement=0, # si vrai, ajoute colonnes infos paiement droits et finalisation inscription (lent car interrogation portail)
|
||||
with_archives=0, # ajoute colonne avec noms fichiers archivés
|
||||
with_annotations=0,
|
||||
with_bourse=0,
|
||||
):
|
||||
"""liste etudiants inscrits dans ce semestre
|
||||
format: csv, json, xml, xls, allxls, xlsappel, moodlecsv, pdf
|
||||
fmt: csv, json, xml, xls, allxls, xlsappel, moodlecsv, pdf
|
||||
Si with_codes, ajoute 4 colonnes avec les codes etudid, NIP, INE et etape
|
||||
"""
|
||||
from app.scodoc import sco_report
|
||||
@ -499,12 +499,12 @@ def groups_table(
|
||||
p["partition_id"]: p["partition_name"] for p in groups_infos.partitions
|
||||
}
|
||||
|
||||
if format != "html": # ne mentionne l'état que en Excel (style en html)
|
||||
if fmt != "html": # ne mentionne l'état que en Excel (style en html)
|
||||
columns_ids.append("etat")
|
||||
columns_ids.append("email")
|
||||
columns_ids.append("emailperso")
|
||||
|
||||
if format == "moodlecsv":
|
||||
if fmt == "moodlecsv":
|
||||
columns_ids = ["email", "semestre_groupe"]
|
||||
|
||||
if with_codes:
|
||||
@ -579,7 +579,7 @@ def groups_table(
|
||||
else:
|
||||
s = ""
|
||||
|
||||
if format == "moodlecsv":
|
||||
if fmt == "moodlecsv":
|
||||
# de la forme S1-[FI][FA]-groupe.csv
|
||||
if not moodle_groupenames:
|
||||
moodle_groupenames = {"tous"}
|
||||
@ -612,7 +612,7 @@ def groups_table(
|
||||
preferences=prefs,
|
||||
)
|
||||
#
|
||||
if format == "html":
|
||||
if fmt == "html":
|
||||
amail_inst = [
|
||||
x["email"] for x in groups_infos.members if x["email"] and x["etat"] != "D"
|
||||
]
|
||||
@ -683,11 +683,11 @@ def groups_table(
|
||||
[
|
||||
tab.html(),
|
||||
"<ul>",
|
||||
'<li><a class="stdlink" href="%s&format=xlsappel">Feuille d\'appel Excel</a></li>'
|
||||
'<li><a class="stdlink" href="%s&fmt=xlsappel">Feuille d\'appel Excel</a></li>'
|
||||
% (tab.base_url,),
|
||||
'<li><a class="stdlink" href="%s&format=xls">Table Excel</a></li>'
|
||||
'<li><a class="stdlink" href="%s&fmt=xls">Table Excel</a></li>'
|
||||
% (tab.base_url,),
|
||||
'<li><a class="stdlink" href="%s&format=moodlecsv">Fichier CSV pour Moodle (groupe sélectionné)</a></li>'
|
||||
'<li><a class="stdlink" href="%s&fmt=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>
|
||||
@ -723,17 +723,17 @@ def groups_table(
|
||||
return "".join(H) + "</div>"
|
||||
|
||||
elif (
|
||||
format == "pdf"
|
||||
or format == "xml"
|
||||
or format == "json"
|
||||
or format == "xls"
|
||||
or format == "moodlecsv"
|
||||
fmt == "pdf"
|
||||
or fmt == "xml"
|
||||
or fmt == "json"
|
||||
or fmt == "xls"
|
||||
or fmt == "moodlecsv"
|
||||
):
|
||||
if format == "moodlecsv":
|
||||
format = "csv"
|
||||
return tab.make_page(format=format)
|
||||
if fmt == "moodlecsv":
|
||||
fmt = "csv"
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
elif format == "xlsappel":
|
||||
elif fmt == "xlsappel":
|
||||
xls = sco_excel.excel_feuille_listeappel(
|
||||
groups_infos.formsemestre,
|
||||
groups_infos.groups_titles,
|
||||
@ -745,7 +745,7 @@ def groups_table(
|
||||
)
|
||||
filename = "liste_%s" % groups_infos.groups_filename
|
||||
return scu.send_file(xls, filename, scu.XLSX_SUFFIX, scu.XLSX_MIMETYPE)
|
||||
elif format == "allxls":
|
||||
elif fmt == "allxls":
|
||||
# feuille Excel avec toutes les infos etudiants
|
||||
if not groups_infos.members:
|
||||
return ""
|
||||
@ -834,20 +834,24 @@ def tab_absences_html(groups_infos, etat=None):
|
||||
form_choix_jour_saisie_hebdo(groups_infos),
|
||||
"</li>",
|
||||
f"""<li><a class="stdlink" href="{
|
||||
url_for("assiduites.visu_assi_group", scodoc_dept=g.scodoc_dept, group_ids=group_ids, date_debut=formsemestre.date_debut.isoformat(), date_fin=formsemestre.date_fin.isoformat())
|
||||
url_for("assiduites.visu_assi_group", scodoc_dept=g.scodoc_dept,
|
||||
group_ids=group_ids,
|
||||
date_debut=formsemestre.date_debut.isoformat(),
|
||||
date_fin=formsemestre.date_fin.isoformat()
|
||||
)
|
||||
}">État de l'assiduité du groupe</a></li>""",
|
||||
"</ul>",
|
||||
"<h3>Feuilles</h3>",
|
||||
'<ul class="ul_feuilles">',
|
||||
"""<li><a class="stdlink" href="%s&format=xlsappel">Feuille d'émargement %s (Excel)</a></li>"""
|
||||
"""<li><a class="stdlink" href="%s&fmt=xlsappel">Feuille d'émargement %s (Excel)</a></li>"""
|
||||
% (groups_infos.base_url, groups_infos.groups_titles),
|
||||
"""<li><a class="stdlink" href="trombino?%s&format=pdf">Trombinoscope en PDF</a></li>"""
|
||||
"""<li><a class="stdlink" href="trombino?%s&fmt=pdf">Trombinoscope en PDF</a></li>"""
|
||||
% groups_infos.groups_query_args,
|
||||
"""<li><a class="stdlink" href="pdf_trombino_tours?%s&format=pdf">Trombinoscope en PDF (format "IUT de Tours", beta)</a></li>"""
|
||||
"""<li><a class="stdlink" href="pdf_trombino_tours?%s&fmt=pdf">Trombinoscope en PDF (format "IUT de Tours", beta)</a></li>"""
|
||||
% groups_infos.groups_query_args,
|
||||
"""<li><a class="stdlink" href="pdf_feuille_releve_absences?%s&format=pdf">Feuille relevé absences hebdomadaire (beta)</a></li>"""
|
||||
"""<li><a class="stdlink" href="pdf_feuille_releve_absences?%s&fmt=pdf">Feuille relevé absences hebdomadaire (beta)</a></li>"""
|
||||
% groups_infos.groups_query_args,
|
||||
"""<li><a class="stdlink" href="trombino?%s&format=pdflist">Liste d'appel avec photos</a></li>"""
|
||||
"""<li><a class="stdlink" href="trombino?%s&fmt=pdflist">Liste d'appel avec photos</a></li>"""
|
||||
% groups_infos.groups_query_args,
|
||||
"""<li><a class="stdlink" href="groups_export_annotations?%s">Liste des annotations</a></li>"""
|
||||
% groups_infos.groups_query_args,
|
||||
@ -966,4 +970,4 @@ def export_groups_as_moodle_csv(formsemestre_id=None):
|
||||
text_with_titles=prefs["moodle_csv_with_headerline"],
|
||||
preferences=prefs,
|
||||
)
|
||||
return tab.make_page(format="csv")
|
||||
return tab.make_page(fmt="csv")
|
||||
|
@ -60,7 +60,7 @@ from app.scodoc.htmlutils import histogram_notes
|
||||
|
||||
|
||||
def do_evaluation_listenotes(
|
||||
evaluation_id=None, moduleimpl_id=None, format="html"
|
||||
evaluation_id=None, moduleimpl_id=None, fmt="html"
|
||||
) -> tuple[str, str]:
|
||||
"""
|
||||
Affichage des notes d'une évaluation (si evaluation_id)
|
||||
@ -220,7 +220,7 @@ def do_evaluation_listenotes(
|
||||
_make_table_notes(
|
||||
tf[1],
|
||||
evals,
|
||||
fmt=format,
|
||||
fmt=fmt,
|
||||
note_sur_20=note_sur_20,
|
||||
anonymous_listing=anonymous_listing,
|
||||
group_ids=group_ids,
|
||||
@ -424,7 +424,7 @@ def _make_table_notes(
|
||||
key_mgr,
|
||||
note_sur_20,
|
||||
keep_numeric,
|
||||
format=fmt,
|
||||
fmt=fmt,
|
||||
)
|
||||
columns_ids.append(e["evaluation_id"])
|
||||
#
|
||||
@ -596,7 +596,7 @@ def _make_table_notes(
|
||||
)
|
||||
if fmt == "bordereau":
|
||||
fmt = "pdf"
|
||||
t = tab.make_page(format=fmt, with_html_headers=False)
|
||||
t = tab.make_page(fmt=fmt, with_html_headers=False)
|
||||
if fmt != "html":
|
||||
return t
|
||||
|
||||
@ -622,7 +622,7 @@ def _make_table_notes(
|
||||
histo = histogram_notes(notes)
|
||||
# 2 colonnes: histo, comments
|
||||
C = [
|
||||
f'<br><a class="stdlink" href="{base_url}&format=bordereau">Bordereau de Signatures (version PDF)</a>',
|
||||
f'<br><a class="stdlink" href="{base_url}&fmt=bordereau">Bordereau de Signatures (version PDF)</a>',
|
||||
"<table><tr><td><div><h4>Répartition des notes:</h4>"
|
||||
+ histo
|
||||
+ "</div></td>\n",
|
||||
@ -670,7 +670,7 @@ def _add_eval_columns(
|
||||
K,
|
||||
note_sur_20,
|
||||
keep_numeric,
|
||||
format="html",
|
||||
fmt="html",
|
||||
):
|
||||
"""Add eval e"""
|
||||
nb_notes = 0
|
||||
@ -774,7 +774,7 @@ def _add_eval_columns(
|
||||
|
||||
row_coefs[evaluation_id] = "coef. %s" % e["coefficient"]
|
||||
if is_apc:
|
||||
if format == "html":
|
||||
if fmt == "html":
|
||||
row_poids[evaluation_id] = _mini_table_eval_ue_poids(
|
||||
evaluation_id, evals_poids, ues
|
||||
)
|
||||
|
@ -63,7 +63,7 @@ def formsemestre_table_etuds_lycees(
|
||||
)
|
||||
|
||||
|
||||
def scodoc_table_etuds_lycees(format="html"):
|
||||
def scodoc_table_etuds_lycees(fmt="html"):
|
||||
"""Table avec _tous_ les étudiants des semestres non verrouillés
|
||||
de _tous_ les départements.
|
||||
"""
|
||||
@ -71,7 +71,7 @@ def scodoc_table_etuds_lycees(format="html"):
|
||||
semdepts = sco_formsemestre.scodoc_get_all_unlocked_sems()
|
||||
etuds = []
|
||||
try:
|
||||
for (sem, dept) in semdepts:
|
||||
for sem, dept in semdepts:
|
||||
app.set_sco_dept(dept.acronym)
|
||||
etuds += sco_report.tsp_etud_list(sem["formsemestre_id"])[0]
|
||||
finally:
|
||||
@ -85,8 +85,8 @@ def scodoc_table_etuds_lycees(format="html"):
|
||||
no_links=True,
|
||||
)
|
||||
tab.base_url = request.base_url
|
||||
t = tab.make_page(format=format, with_html_headers=False)
|
||||
if format != "html":
|
||||
t = tab.make_page(fmt=fmt, with_html_headers=False)
|
||||
if fmt != "html":
|
||||
return t
|
||||
H = [
|
||||
html_sco_header.sco_header(
|
||||
@ -178,7 +178,7 @@ def _table_etuds_lycees(etuds, group_lycees, title, preferences, no_links=False)
|
||||
|
||||
def formsemestre_etuds_lycees(
|
||||
formsemestre_id,
|
||||
format="html",
|
||||
fmt="html",
|
||||
only_primo=False,
|
||||
no_grouping=False,
|
||||
):
|
||||
@ -191,14 +191,10 @@ def formsemestre_etuds_lycees(
|
||||
tab.base_url += "&only_primo=1"
|
||||
if no_grouping:
|
||||
tab.base_url += "&no_grouping=1"
|
||||
t = tab.make_page(format=format, with_html_headers=False)
|
||||
if format != "html":
|
||||
t = tab.make_page(fmt=fmt, with_html_headers=False)
|
||||
if fmt != "html":
|
||||
return t
|
||||
F = [
|
||||
sco_report.tsp_form_primo_group(
|
||||
only_primo, no_grouping, formsemestre_id, format
|
||||
)
|
||||
]
|
||||
F = [sco_report.tsp_form_primo_group(only_primo, no_grouping, formsemestre_id, fmt)]
|
||||
H = [
|
||||
html_sco_header.sco_header(
|
||||
page_title=tab.page_title,
|
||||
|
@ -383,7 +383,7 @@ class PlacementRunner:
|
||||
self.moduleimpl_data["formsemestre_id"]
|
||||
),
|
||||
)
|
||||
return tab.make_page(format="pdf", with_html_headers=False)
|
||||
return tab.make_page(fmt="pdf", with_html_headers=False)
|
||||
|
||||
def _one_header(self, worksheet):
|
||||
cells = [
|
||||
|
@ -178,7 +178,7 @@ def _getEtudInfoGroupes(group_ids, etat=None):
|
||||
return etuds
|
||||
|
||||
|
||||
def formsemestre_poursuite_report(formsemestre_id, format="html"):
|
||||
def formsemestre_poursuite_report(formsemestre_id, fmt="html"):
|
||||
"""Table avec informations "poursuite" """
|
||||
sem = sco_formsemestre.get_formsemestre(formsemestre_id)
|
||||
etuds = _getEtudInfoGroupes([sco_groups.get_default_group(formsemestre_id)])
|
||||
@ -230,6 +230,6 @@ def formsemestre_poursuite_report(formsemestre_id, format="html"):
|
||||
title="""<h2 class="formsemestre">Poursuite d'études</h2>""",
|
||||
init_qtip=True,
|
||||
javascripts=["js/etud_info.js"],
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
with_html_headers=True,
|
||||
)
|
||||
|
@ -206,14 +206,14 @@ def pvjury_table(
|
||||
return lines, titles, columns_ids
|
||||
|
||||
|
||||
def formsemestre_pvjury(formsemestre_id, format="html", publish=True):
|
||||
def formsemestre_pvjury(formsemestre_id, fmt="html", publish=True):
|
||||
"""Page récapitulant les décisions de jury
|
||||
En classique: table spécifique avec les deux semestres pour le DUT
|
||||
En APC/BUT: renvoie vers table recap, en mode jury.
|
||||
"""
|
||||
formsemestre = FormSemestre.get_formsemestre(formsemestre_id)
|
||||
is_apc = formsemestre.formation.is_apc()
|
||||
if format == "html" and is_apc:
|
||||
if fmt == "html" and is_apc:
|
||||
return redirect(
|
||||
url_for(
|
||||
"notes.formsemestre_recapcomplet",
|
||||
@ -227,7 +227,7 @@ def formsemestre_pvjury(formsemestre_id, format="html", publish=True):
|
||||
|
||||
dpv = sco_pv_dict.dict_pvjury(formsemestre_id, with_prev=True)
|
||||
if not dpv:
|
||||
if format == "html":
|
||||
if fmt == "html":
|
||||
return (
|
||||
html_sco_header.sco_header()
|
||||
+ "<h2>Aucune information disponible !</h2>"
|
||||
@ -239,7 +239,7 @@ def formsemestre_pvjury(formsemestre_id, format="html", publish=True):
|
||||
formsemestre_id = sem["formsemestre_id"]
|
||||
|
||||
rows, titles, columns_ids = pvjury_table(dpv)
|
||||
if format != "html" and format != "pdf":
|
||||
if fmt != "html" and fmt != "pdf":
|
||||
columns_ids = ["etudid", "code_nip"] + columns_ids
|
||||
|
||||
tab = GenTable(
|
||||
@ -255,9 +255,9 @@ def formsemestre_pvjury(formsemestre_id, format="html", publish=True):
|
||||
html_sortable=True,
|
||||
preferences=sco_preferences.SemPreferences(formsemestre_id),
|
||||
)
|
||||
if format != "html":
|
||||
if fmt != "html":
|
||||
return tab.make_page(
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
with_html_headers=False,
|
||||
publish=publish,
|
||||
)
|
||||
|
@ -205,7 +205,7 @@ def _results_by_category(
|
||||
bottom_titles["row_title"] = "Total"
|
||||
|
||||
# ajout titre ligne:
|
||||
for (cat, l) in zip(categories, C):
|
||||
for cat, l in zip(categories, C):
|
||||
l["row_title"] = cat if cat is not None else "?"
|
||||
|
||||
#
|
||||
@ -274,7 +274,7 @@ def formsemestre_report(
|
||||
return tab
|
||||
|
||||
|
||||
# def formsemestre_report_bacs(formsemestre_id, format='html'):
|
||||
# def formsemestre_report_bacs(formsemestre_id, fmt='html'):
|
||||
# """
|
||||
# Tableau sur résultats par type de bac
|
||||
# """
|
||||
@ -287,12 +287,12 @@ def formsemestre_report(
|
||||
# title=title)
|
||||
# return tab.make_page(
|
||||
# title = """<h2>Résultats de <a href="formsemestre_status?formsemestre_id=%(formsemestre_id)s">%(titreannee)s</a></h2>""" % sem,
|
||||
# format=format, page_title = title)
|
||||
# fmt=fmt, page_title = title)
|
||||
|
||||
|
||||
def formsemestre_report_counts(
|
||||
formsemestre_id: int,
|
||||
format="html",
|
||||
fmt="html",
|
||||
category: str = "bac",
|
||||
result: str = None,
|
||||
allkeys: bool = False,
|
||||
@ -397,10 +397,10 @@ def formsemestre_report_counts(
|
||||
|
||||
t = tab.make_page(
|
||||
title="""<h2 class="formsemestre">Comptes croisés</h2>""",
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
with_html_headers=False,
|
||||
)
|
||||
if format != "html":
|
||||
if fmt != "html":
|
||||
return t
|
||||
H = [
|
||||
html_sco_header.sco_header(page_title=title),
|
||||
@ -734,7 +734,7 @@ def table_suivi_cohorte(
|
||||
|
||||
def formsemestre_suivi_cohorte(
|
||||
formsemestre_id,
|
||||
format="html",
|
||||
fmt="html",
|
||||
percent=1,
|
||||
bac="",
|
||||
bacspecialite="",
|
||||
@ -774,8 +774,8 @@ def formsemestre_suivi_cohorte(
|
||||
)
|
||||
if only_primo:
|
||||
tab.base_url += "&only_primo=on"
|
||||
t = tab.make_page(format=format, with_html_headers=False)
|
||||
if format != "html":
|
||||
t = tab.make_page(fmt=fmt, with_html_headers=False)
|
||||
if fmt != "html":
|
||||
return t
|
||||
|
||||
base_url = request.base_url
|
||||
@ -1246,7 +1246,7 @@ def table_suivi_cursus(formsemestre_id, only_primo=False, grouped_parcours=True)
|
||||
return tab
|
||||
|
||||
|
||||
def tsp_form_primo_group(only_primo, no_grouping, formsemestre_id, format):
|
||||
def tsp_form_primo_group(only_primo, no_grouping, formsemestre_id, fmt):
|
||||
"""Element de formulaire pour choisir si restriction aux primos entrants et groupement par lycees"""
|
||||
F = ["""<form name="f" method="get" action="%s">""" % request.base_url]
|
||||
if only_primo:
|
||||
@ -1268,14 +1268,14 @@ def tsp_form_primo_group(only_primo, no_grouping, formsemestre_id, format):
|
||||
F.append(
|
||||
'<input type="hidden" name="formsemestre_id" value="%s"/>' % formsemestre_id
|
||||
)
|
||||
F.append('<input type="hidden" name="format" value="%s"/>' % format)
|
||||
F.append('<input type="hidden" name="fmt" value="%s"/>' % fmt)
|
||||
F.append("""</form>""")
|
||||
return "\n".join(F)
|
||||
|
||||
|
||||
def formsemestre_suivi_cursus(
|
||||
formsemestre_id,
|
||||
format="html",
|
||||
fmt="html",
|
||||
only_primo=False,
|
||||
no_grouping=False,
|
||||
):
|
||||
@ -1290,10 +1290,10 @@ def formsemestre_suivi_cursus(
|
||||
tab.base_url += "&only_primo=1"
|
||||
if no_grouping:
|
||||
tab.base_url += "&no_grouping=1"
|
||||
t = tab.make_page(format=format, with_html_headers=False)
|
||||
if format != "html":
|
||||
t = tab.make_page(fmt=fmt, with_html_headers=False)
|
||||
if fmt != "html":
|
||||
return t
|
||||
F = [tsp_form_primo_group(only_primo, no_grouping, formsemestre_id, format)]
|
||||
F = [tsp_form_primo_group(only_primo, no_grouping, formsemestre_id, fmt)]
|
||||
|
||||
H = [
|
||||
html_sco_header.sco_header(
|
||||
@ -1312,7 +1312,7 @@ def formsemestre_suivi_cursus(
|
||||
# -------------
|
||||
def graph_cursus(
|
||||
formsemestre_id,
|
||||
format="svg",
|
||||
fmt="svg",
|
||||
only_primo=False,
|
||||
bac="", # selection sur type de bac
|
||||
bacspecialite="",
|
||||
@ -1437,7 +1437,7 @@ def graph_cursus(
|
||||
g.add_node(n)
|
||||
g.set("rankdir", "LR") # left to right
|
||||
g.set_fontname("Helvetica")
|
||||
if format == "svg":
|
||||
if fmt == "svg":
|
||||
g.set_bgcolor("#fffff0") # ou 'transparent'
|
||||
# titres des semestres:
|
||||
for s in sems.values():
|
||||
@ -1489,7 +1489,7 @@ def graph_cursus(
|
||||
n.set("label", "Diplome") # bug si accent (pas compris pourquoi)
|
||||
# Arètes:
|
||||
bubbles = {} # substitue titres pour bulle aides: src_id:dst_id : etud_descr
|
||||
for (src_id, dst_id) in edges.keys():
|
||||
for src_id, dst_id in edges.keys():
|
||||
e = g.get_edge(src_id, dst_id)[0]
|
||||
e.set("arrowhead", "normal")
|
||||
e.set("arrowsize", 1)
|
||||
@ -1503,20 +1503,19 @@ def graph_cursus(
|
||||
e.set_URL(f"__xxxetudlist__?{src_id}:{dst_id}")
|
||||
# Genere graphe
|
||||
_, path = tempfile.mkstemp(".gr")
|
||||
g.write(path=path, format=format)
|
||||
g.write(path=path, format=fmt)
|
||||
with open(path, "rb") as f:
|
||||
data = f.read()
|
||||
log("dot generated %d bytes in %s format" % (len(data), format))
|
||||
log("dot generated %d bytes in %s format" % (len(data), fmt))
|
||||
if not data:
|
||||
log("graph.to_string=%s" % g.to_string())
|
||||
raise ValueError(
|
||||
"Erreur lors de la génération du document au format %s" % format
|
||||
)
|
||||
raise ValueError("Erreur lors de la génération du document au format %s" % fmt)
|
||||
os.unlink(path)
|
||||
if format == "svg":
|
||||
if fmt == "svg":
|
||||
# dot génère un document XML complet, il faut enlever l'en-tête
|
||||
data_str = data.decode("utf-8")
|
||||
data = "<svg" + "<svg".join(data_str.split("<svg")[1:])
|
||||
|
||||
# Substitution des titres des URL des aretes pour bulles aide
|
||||
def repl(m):
|
||||
return '<a title="%s"' % bubbles[m.group("sd")]
|
||||
@ -1563,7 +1562,7 @@ def graph_cursus(
|
||||
|
||||
def formsemestre_graph_cursus(
|
||||
formsemestre_id,
|
||||
format="html",
|
||||
fmt="html",
|
||||
only_primo=False,
|
||||
bac="", # selection sur type de bac
|
||||
bacspecialite="",
|
||||
@ -1578,7 +1577,7 @@ def formsemestre_graph_cursus(
|
||||
annee_admission = str(annee_admission or "")
|
||||
# log("formsemestre_graph_cursus")
|
||||
sem = sco_formsemestre.get_formsemestre(formsemestre_id)
|
||||
if format == "pdf":
|
||||
if fmt == "pdf":
|
||||
(
|
||||
doc,
|
||||
etuds,
|
||||
@ -1590,7 +1589,7 @@ def formsemestre_graph_cursus(
|
||||
statuts,
|
||||
) = graph_cursus(
|
||||
formsemestre_id,
|
||||
format="pdf",
|
||||
fmt="pdf",
|
||||
only_primo=only_primo,
|
||||
bac=bac,
|
||||
bacspecialite=bacspecialite,
|
||||
@ -1601,7 +1600,7 @@ def formsemestre_graph_cursus(
|
||||
)
|
||||
filename = scu.make_filename("flux " + sem["titreannee"])
|
||||
return scu.sendPDFFile(doc, filename + ".pdf")
|
||||
elif format == "png":
|
||||
elif fmt == "png":
|
||||
#
|
||||
(
|
||||
doc,
|
||||
@ -1614,7 +1613,7 @@ def formsemestre_graph_cursus(
|
||||
statuts,
|
||||
) = graph_cursus(
|
||||
formsemestre_id,
|
||||
format="png",
|
||||
fmt="png",
|
||||
only_primo=only_primo,
|
||||
bac=bac,
|
||||
bacspecialite=bacspecialite,
|
||||
@ -1630,7 +1629,7 @@ def formsemestre_graph_cursus(
|
||||
attached=True,
|
||||
mime="image/png",
|
||||
)
|
||||
elif format == "html":
|
||||
elif fmt == "html":
|
||||
url_kw = {
|
||||
"scodoc_dept": g.scodoc_dept,
|
||||
"formsemestre_id": formsemestre_id,
|
||||
@ -1689,19 +1688,20 @@ def formsemestre_graph_cursus(
|
||||
"""<p>Origine et devenir des étudiants inscrits dans %(titreannee)s"""
|
||||
% sem,
|
||||
"""(<a href="%s">version pdf</a>"""
|
||||
% url_for("notes.formsemestre_graph_cursus", format="pdf", **url_kw),
|
||||
% url_for("notes.formsemestre_graph_cursus", fmt="pdf", **url_kw),
|
||||
""", <a href="%s">image PNG</a>)"""
|
||||
% url_for("notes.formsemestre_graph_cursus", format="png", **url_kw),
|
||||
"""</p>""",
|
||||
"""<p class="help">Le graphe permet de suivre les étudiants inscrits dans le semestre
|
||||
% url_for("notes.formsemestre_graph_cursus", fmt="png", **url_kw),
|
||||
f"""
|
||||
</p>
|
||||
<p class="help">Le graphe permet de suivre les étudiants inscrits dans le semestre
|
||||
sélectionné (dessiné en vert). Chaque rectangle représente un semestre (cliquez dedans
|
||||
pour afficher son tableau de bord). Les flèches indiquent le nombre d'étudiants passant
|
||||
d'un semestre à l'autre (s'il y en a moins de %s, vous pouvez visualiser leurs noms en
|
||||
passant la souris sur le chiffre).
|
||||
</p>"""
|
||||
% MAX_ETUD_IN_DESCR,
|
||||
pour afficher son tableau de bord). Les flèches indiquent le nombre d'étudiants
|
||||
passant d'un semestre à l'autre (s'il y en a moins de {MAX_ETUD_IN_DESCR}, vous
|
||||
pouvez visualiser leurs noms en passant le curseur sur le chiffre).
|
||||
</p>
|
||||
""",
|
||||
html_sco_header.sco_footer(),
|
||||
]
|
||||
return "\n".join(H)
|
||||
else:
|
||||
raise ValueError("invalid format: %s" % format)
|
||||
raise ValueError(f"invalid format: {fmt}")
|
||||
|
@ -67,7 +67,7 @@ INDICATEUR_NAMES = {
|
||||
}
|
||||
|
||||
|
||||
def formsemestre_but_indicateurs(formsemestre_id: int, format="html"):
|
||||
def formsemestre_but_indicateurs(formsemestre_id: int, fmt="html"):
|
||||
"""Page avec tableau indicateurs enquête ADIUT BUT 2022"""
|
||||
formsemestre: FormSemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||
|
||||
@ -100,10 +100,10 @@ def formsemestre_but_indicateurs(formsemestre_id: int, format="html"):
|
||||
title = "Indicateurs suivi annuel BUT"
|
||||
t = tab.make_page(
|
||||
title=f"""<h2 class="formsemestre">{title}</h2>""",
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
with_html_headers=False,
|
||||
)
|
||||
if format != "html":
|
||||
if fmt != "html":
|
||||
return t
|
||||
H = [
|
||||
html_sco_header.sco_header(page_title=title),
|
||||
|
@ -465,7 +465,7 @@ def do_semset_remove_sem(semset_id, formsemestre_id):
|
||||
# ----------------------------------------
|
||||
|
||||
|
||||
def semset_page(format="html"):
|
||||
def semset_page(fmt="html"):
|
||||
"""Page avec liste semsets:
|
||||
Table avec : date_debut date_fin titre liste des semestres
|
||||
"""
|
||||
@ -514,8 +514,8 @@ def semset_page(format="html"):
|
||||
filename="semsets",
|
||||
preferences=sco_preferences.SemPreferences(),
|
||||
)
|
||||
if format != "html":
|
||||
return tab.make_page(format=format)
|
||||
if fmt != "html":
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
page_title = "Ensembles de semestres"
|
||||
H = [
|
||||
|
@ -66,7 +66,7 @@ def trombino(
|
||||
group_ids=(), # liste des groupes à afficher
|
||||
formsemestre_id=None, # utilisé si pas de groupes selectionné
|
||||
etat=None,
|
||||
format="html",
|
||||
fmt="html",
|
||||
dialog_confirmed=False,
|
||||
):
|
||||
"""Trombinoscope"""
|
||||
@ -78,18 +78,18 @@ def trombino(
|
||||
)
|
||||
|
||||
#
|
||||
if format != "html" and not dialog_confirmed:
|
||||
ok, dialog = check_local_photos_availability(groups_infos, fmt=format)
|
||||
if fmt != "html" and not dialog_confirmed:
|
||||
ok, dialog = check_local_photos_availability(groups_infos, fmt=fmt)
|
||||
if not ok:
|
||||
return dialog
|
||||
|
||||
if format == "zip":
|
||||
if fmt == "zip":
|
||||
return _trombino_zip(groups_infos)
|
||||
elif format == "pdf":
|
||||
elif fmt == "pdf":
|
||||
return _trombino_pdf(groups_infos)
|
||||
elif format == "pdflist":
|
||||
elif fmt == "pdflist":
|
||||
return _listeappel_photos_pdf(groups_infos)
|
||||
elif format == "doc":
|
||||
elif fmt == "doc":
|
||||
return sco_trombino_doc.trombino_doc(groups_infos)
|
||||
else:
|
||||
raise Exception("invalid format")
|
||||
@ -110,7 +110,7 @@ def trombino_html(groups_infos):
|
||||
{
|
||||
"title": "Obtenir archive Zip des photos",
|
||||
"endpoint": "scolar.trombino",
|
||||
"args": {"group_ids": groups_infos.group_ids, "format": "zip"},
|
||||
"args": {"group_ids": groups_infos.group_ids, "fmt": "zip"},
|
||||
},
|
||||
{
|
||||
"title": "Recopier les photos depuis le portail",
|
||||
@ -176,10 +176,10 @@ def trombino_html(groups_infos):
|
||||
H.append(
|
||||
f"""<div style="margin-bottom:15px;">
|
||||
<a class="stdlink" href="{url_for('scolar.trombino', scodoc_dept=g.scodoc_dept,
|
||||
format='pdf', group_ids=groups_infos.group_ids)}">Version PDF</a>
|
||||
fmt='pdf', group_ids=groups_infos.group_ids)}">Version PDF</a>
|
||||
|
||||
<a class="stdlink" href="{url_for('scolar.trombino', scodoc_dept=g.scodoc_dept,
|
||||
format='doc', group_ids=groups_infos.group_ids)}">Version doc</a>
|
||||
fmt='doc', group_ids=groups_infos.group_ids)}">Version doc</a>
|
||||
</div>"""
|
||||
)
|
||||
return "\n".join(H)
|
||||
@ -198,14 +198,14 @@ def check_local_photos_availability(groups_infos, fmt=""):
|
||||
if not sco_photos.etud_photo_is_local(t["photo_filename"]):
|
||||
nb_missing += 1
|
||||
if nb_missing > 0:
|
||||
parameters = {"group_ids": groups_infos.group_ids, "format": fmt}
|
||||
parameters = {"group_ids": groups_infos.group_ids, "fmt": fmt}
|
||||
return (
|
||||
False,
|
||||
scu.confirm_dialog(
|
||||
f"""<p>Attention: {nb_missing} photos ne sont pas disponibles
|
||||
et ne peuvent pas être exportées.</p>
|
||||
<p>Vous pouvez <a class="stdlink"
|
||||
href="{groups_infos.base_url}&dialog_confirmed=1&format={fmt}"
|
||||
href="{groups_infos.base_url}&dialog_confirmed=1&fmt={fmt}"
|
||||
>exporter seulement les photos existantes</a>""",
|
||||
dest_url="trombino",
|
||||
OK="Exporter seulement les photos existantes",
|
||||
|
@ -173,7 +173,7 @@ def evaluation_list_operations(evaluation_id):
|
||||
return tab.make_page()
|
||||
|
||||
|
||||
def formsemestre_list_saisies_notes(formsemestre_id, format="html"):
|
||||
def formsemestre_list_saisies_notes(formsemestre_id, fmt="html"):
|
||||
"""Table listant toutes les opérations de saisies de notes, dans toutes
|
||||
les évaluations du semestre.
|
||||
"""
|
||||
@ -194,7 +194,7 @@ def formsemestre_list_saisies_notes(formsemestre_id, format="html"):
|
||||
{"formsemestre_id": formsemestre_id},
|
||||
)
|
||||
# Formate les notes
|
||||
keep_numeric = format in scu.FORMATS_NUMERIQUES
|
||||
keep_numeric = fmt in scu.FORMATS_NUMERIQUES
|
||||
for row in rows:
|
||||
row["value"] = scu.fmt_note(row["value"], keep_numeric=keep_numeric)
|
||||
row["date_evaluation"] = (
|
||||
@ -242,7 +242,7 @@ def formsemestre_list_saisies_notes(formsemestre_id, format="html"):
|
||||
base_url="%s?formsemestre_id=%s" % (request.base_url, formsemestre_id),
|
||||
origin=f"Généré par {sco_version.SCONAME} le " + scu.timedate_human_repr() + "",
|
||||
)
|
||||
return tab.make_page(format=format)
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
|
||||
def get_note_history(evaluation_id, etudid, fmt=""):
|
||||
|
@ -240,7 +240,7 @@ def list_users(
|
||||
preferences=sco_preferences.SemPreferences(),
|
||||
)
|
||||
|
||||
return tab.make_page(format=fmt, with_html_headers=False)
|
||||
return tab.make_page(fmt=fmt, with_html_headers=False)
|
||||
|
||||
|
||||
def get_users_count(dept=None) -> int:
|
||||
|
@ -879,10 +879,10 @@ DB_MIN_INT = -(1 << 31)
|
||||
DB_MAX_INT = (1 << 31) - 1
|
||||
|
||||
|
||||
def bul_filename_old(sem: dict, etud: dict, format):
|
||||
def bul_filename_old(sem: dict, etud: dict, fmt):
|
||||
"""Build a filename for this bulletin"""
|
||||
dt = time.strftime("%Y-%m-%d")
|
||||
filename = f"bul-{sem['titre_num']}-{dt}-{etud['nom']}.{format}"
|
||||
filename = f"bul-{sem['titre_num']}-{dt}-{etud['nom']}.{fmt}"
|
||||
filename = make_filename(filename)
|
||||
return filename
|
||||
|
||||
@ -952,15 +952,15 @@ def sendXML(
|
||||
def sendResult(
|
||||
data,
|
||||
name=None,
|
||||
format=None,
|
||||
fmt=None,
|
||||
force_outer_xml_tag=True,
|
||||
attached=False,
|
||||
quote_xml=False,
|
||||
filename=None,
|
||||
):
|
||||
if (format is None) or (format == "html"):
|
||||
if (fmt is None) or (fmt == "html"):
|
||||
return data
|
||||
elif format == "xml": # name is outer tagname
|
||||
elif fmt == "xml": # name is outer tagname
|
||||
return sendXML(
|
||||
data,
|
||||
tagname=name,
|
||||
@ -969,10 +969,10 @@ def sendResult(
|
||||
quote=quote_xml,
|
||||
filename=filename,
|
||||
)
|
||||
elif format == "json":
|
||||
elif fmt == "json":
|
||||
return sendJSON(data, attached=attached, filename=filename)
|
||||
else:
|
||||
raise ValueError("invalid format: %s" % format)
|
||||
raise ValueError(f"invalid format: {fmt}")
|
||||
|
||||
|
||||
def send_file(data, filename="", suffix="", mime=None, attached=None):
|
||||
|
@ -16,7 +16,7 @@
|
||||
value="{{date_fin}}"></label>
|
||||
<button onclick="stats()">Changer</button>
|
||||
|
||||
<a style="margin-left:32px;" href="{{request.url}}&format=xlsx">{{scu.ICON_XLS|safe}}</a>
|
||||
<a style="margin-left:32px;" href="{{request.url}}&fmt=xlsx">{{scu.ICON_XLS|safe}}</a>
|
||||
</div>
|
||||
|
||||
{{tableau | safe}}
|
||||
|
@ -13,7 +13,7 @@
|
||||
<form name="f" method="GET" action="{{request.base_url}}">
|
||||
<input type="hidden" name="formsemestre_id" value="{{formsemestre.id}}"></input>
|
||||
<input type="hidden" name="etudid" value="{{etud.id}}"></input>
|
||||
<input type="hidden" name="format" value="{{format}}"></input>
|
||||
<input type="hidden" name="fmt" value="{{fmt}}"></input>
|
||||
Bulletin
|
||||
<span class="bull_liensemestre">
|
||||
{{formsemestre.html_link_status() | safe}}
|
||||
@ -39,7 +39,7 @@
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
formsemestre_id=formsemestre.id,
|
||||
etudid=etud.id,
|
||||
format='pdf',
|
||||
fmt='pdf',
|
||||
version=version,
|
||||
)}}">{{scu.ICON_PDF|safe}}</a>
|
||||
</span>
|
||||
|
@ -110,7 +110,7 @@ def AddBilletAbsence(
|
||||
code_nip=None,
|
||||
code_ine=None,
|
||||
justified=True,
|
||||
format="json",
|
||||
fmt="json",
|
||||
xml_reply=True, # deprecated
|
||||
):
|
||||
"""Mémorise un "billet"
|
||||
@ -131,7 +131,7 @@ def AddBilletAbsence(
|
||||
justified = bool(justified)
|
||||
xml_reply = bool(xml_reply)
|
||||
if xml_reply: # backward compat
|
||||
format = "xml"
|
||||
fmt = "xml"
|
||||
#
|
||||
billet = BilletAbsence(
|
||||
etudid=etud.id,
|
||||
@ -147,7 +147,7 @@ def AddBilletAbsence(
|
||||
# Renvoie le nouveau billet au format demandé
|
||||
table = sco_abs_billets.table_billets([billet], etud=etud)
|
||||
log(f"AddBilletAbsence: new billet_id={billet.id}")
|
||||
return table.make_page(format=format)
|
||||
return table.make_page(fmt=fmt)
|
||||
|
||||
|
||||
@bp.route("/add_billets_absence_form", methods=["GET", "POST"])
|
||||
@ -203,14 +203,14 @@ def add_billets_absence_form(etudid):
|
||||
@bp.route("/billets_etud/<int:etudid>")
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
def billets_etud(etudid=False, format=False):
|
||||
def billets_etud(etudid=False, fmt=False):
|
||||
"""Liste billets pour un étudiant"""
|
||||
fmt = format or request.args.get("format", "html")
|
||||
fmt = fmt or request.args.get("fmt", "html")
|
||||
if not fmt in {"html", "json", "xml", "xls", "xlsx"}:
|
||||
return ScoValueError("Format invalide")
|
||||
table = sco_abs_billets.table_billets_etud(etudid)
|
||||
if table:
|
||||
return table.make_page(format=fmt)
|
||||
return table.make_page(fmt=fmt)
|
||||
return ""
|
||||
|
||||
|
||||
@ -229,7 +229,7 @@ def XMLgetBilletsEtud(etudid=False, code_nip=False):
|
||||
etudid = etud.id
|
||||
table = sco_abs_billets.table_billets_etud(etudid)
|
||||
if table:
|
||||
return table.make_page(format="xml")
|
||||
return table.make_page(fmt="xml")
|
||||
return ""
|
||||
|
||||
|
||||
|
@ -958,7 +958,7 @@ def visu_assi_group():
|
||||
"debut": request.args.get("date_debut"),
|
||||
"fin": request.args.get("date_fin"),
|
||||
}
|
||||
fmt = request.args.get("format", "html")
|
||||
fmt = request.args.get("fmt", "html")
|
||||
|
||||
group_ids: list[int] = request.args.get("group_ids", None)
|
||||
if group_ids is None:
|
||||
|
@ -280,7 +280,7 @@ sco_publish(
|
||||
def formsemestre_bulletinetud(
|
||||
etudid=None,
|
||||
formsemestre_id=None,
|
||||
format=None,
|
||||
fmt=None,
|
||||
version="long",
|
||||
xml_with_decisions=False,
|
||||
force_publishing=False,
|
||||
@ -288,7 +288,7 @@ def formsemestre_bulletinetud(
|
||||
code_nip=None,
|
||||
code_ine=None,
|
||||
):
|
||||
format = format or "html"
|
||||
fmt = fmt or "html"
|
||||
if not isinstance(etudid, int):
|
||||
raise ScoInvalidIdType("formsemestre_bulletinetud: etudid must be an integer !")
|
||||
if formsemestre_id is not None and not isinstance(formsemestre_id, int):
|
||||
@ -312,11 +312,11 @@ def formsemestre_bulletinetud(
|
||||
raise ScoValueError(
|
||||
"Paramètre manquant: spécifier etudid, code_nip ou code_ine"
|
||||
)
|
||||
if format == "json":
|
||||
if fmt == "json":
|
||||
return sco_bulletins.get_formsemestre_bulletin_etud_json(
|
||||
formsemestre, etud, version=version, force_publishing=force_publishing
|
||||
)
|
||||
if formsemestre.formation.is_apc() and format == "html":
|
||||
if formsemestre.formation.is_apc() and fmt == "html":
|
||||
return render_template(
|
||||
"but/bulletin.j2",
|
||||
appreciations=BulAppreciations.get_appreciations_list(
|
||||
@ -327,7 +327,7 @@ def formsemestre_bulletinetud(
|
||||
scodoc_dept=g.scodoc_dept,
|
||||
formsemestre_id=formsemestre_id,
|
||||
etudid=etud.id,
|
||||
format="json",
|
||||
fmt="json",
|
||||
force_publishing=1, # pour ScoDoc lui même
|
||||
version=version,
|
||||
),
|
||||
@ -348,20 +348,20 @@ def formsemestre_bulletinetud(
|
||||
version=version,
|
||||
)
|
||||
|
||||
if format == "oldjson":
|
||||
format = "json"
|
||||
if fmt == "oldjson":
|
||||
fmt = "json"
|
||||
|
||||
response = sco_bulletins.formsemestre_bulletinetud(
|
||||
etud,
|
||||
formsemestre_id=formsemestre_id,
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
version=version,
|
||||
xml_with_decisions=xml_with_decisions,
|
||||
force_publishing=force_publishing,
|
||||
prefer_mail_perso=prefer_mail_perso,
|
||||
)
|
||||
|
||||
if format == "pdfmail": # ne renvoie rien dans ce cas (mails envoyés)
|
||||
if fmt == "pdfmail": # ne renvoie rien dans ce cas (mails envoyés)
|
||||
return redirect(
|
||||
url_for(
|
||||
"notes.formsemestre_bulletinetud",
|
||||
@ -557,8 +557,8 @@ sco_publish(
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def formation_table_recap(formation_id, format="html"):
|
||||
return sco_formation_recap.formation_table_recap(formation_id, format=format)
|
||||
def formation_table_recap(formation_id, fmt="html"):
|
||||
return sco_formation_recap.formation_table_recap(formation_id, fmt=fmt)
|
||||
|
||||
|
||||
sco_publish(
|
||||
@ -724,14 +724,12 @@ def index_html():
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def formation_export(
|
||||
formation_id, export_ids=False, format=None, export_codes_apo=True
|
||||
):
|
||||
def formation_export(formation_id, export_ids=False, fmt=None, export_codes_apo=True):
|
||||
"Export de la formation au format indiqué (xml ou json)"
|
||||
return sco_formations.formation_export(
|
||||
formation_id,
|
||||
export_ids=export_ids,
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
export_codes_apo=export_codes_apo,
|
||||
)
|
||||
|
||||
@ -840,14 +838,14 @@ def ue_clone():
|
||||
@permission_required_compat_scodoc7(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def formsemestre_list(
|
||||
format="json",
|
||||
fmt="json",
|
||||
formsemestre_id=None,
|
||||
formation_id=None,
|
||||
etape_apo=None,
|
||||
):
|
||||
"""List formsemestres in given format.
|
||||
kw can specify some conditions: examples:
|
||||
formsemestre_list( format='json', formation_id='F777')
|
||||
formsemestre_list( fmt='json', formation_id='F777')
|
||||
"""
|
||||
log("Warning: calling deprecated view formsemestre_list")
|
||||
try:
|
||||
@ -861,7 +859,7 @@ def formsemestre_list(
|
||||
if L[argname] is not None:
|
||||
args[argname] = L[argname]
|
||||
sems = sco_formsemestre.do_formsemestre_list(args=args)
|
||||
return scu.sendResult(sems, name="formsemestre", format=format)
|
||||
return scu.sendResult(sems, name="formsemestre", fmt=fmt)
|
||||
|
||||
|
||||
sco_publish(
|
||||
@ -1224,7 +1222,7 @@ def view_module_abs(moduleimpl_id, fmt="html"):
|
||||
)
|
||||
|
||||
if fmt != "html":
|
||||
return tab.make_page(format=fmt)
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
return "\n".join(H) + tab.html() + html_sco_header.sco_footer()
|
||||
|
||||
@ -1256,7 +1254,7 @@ def delete_ue_expr(formsemestre_id: int, ue_id: int):
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def formsemestre_enseignants_list(formsemestre_id, format="html"):
|
||||
def formsemestre_enseignants_list(formsemestre_id, fmt="html"):
|
||||
"""Liste les enseignants intervenants dans le semestre (resp. modules et chargés de TD)
|
||||
et indique les absences saisies par chacun.
|
||||
"""
|
||||
@ -1340,7 +1338,7 @@ def formsemestre_enseignants_list(formsemestre_id, format="html"):
|
||||
caption="Tous les enseignants (responsables ou associés aux modules de ce semestre) apparaissent. Le nombre de saisies d'absences est le nombre d'opérations d'ajout effectuées sur ce semestre, sans tenir compte des annulations ou double saisies.",
|
||||
preferences=sco_preferences.SemPreferences(formsemestre_id),
|
||||
)
|
||||
return T.make_page(page_title=title, title=title, format=format)
|
||||
return T.make_page(page_title=title, title=title, fmt=fmt)
|
||||
|
||||
|
||||
@bp.route("/edit_enseignants_form_delete", methods=["GET", "POST"])
|
||||
@ -1402,12 +1400,12 @@ sco_publish(
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def do_formsemestre_inscription_listinscrits(formsemestre_id, format=None):
|
||||
def do_formsemestre_inscription_listinscrits(formsemestre_id, fmt=None):
|
||||
"""Liste les inscrits (état I) à ce semestre et cache le résultat"""
|
||||
r = sco_formsemestre_inscriptions.do_formsemestre_inscription_listinscrits(
|
||||
formsemestre_id
|
||||
)
|
||||
return scu.sendResult(r, format=format, name="inscrits")
|
||||
return scu.sendResult(r, fmt=fmt, name="inscrits")
|
||||
|
||||
|
||||
@bp.route("/formsemestre_desinscription", methods=["GET", "POST"])
|
||||
@ -1770,11 +1768,11 @@ def evaluation_listenotes():
|
||||
except ValueError as exc:
|
||||
raise ScoValueError("evaluation_listenotes: id invalides !") from exc
|
||||
|
||||
format = vals.get("format", "html")
|
||||
fmt = vals.get("fmt", "html")
|
||||
html_content, page_title = sco_liste_notes.do_evaluation_listenotes(
|
||||
evaluation_id=evaluation_id, moduleimpl_id=moduleimpl_id, format=format
|
||||
evaluation_id=evaluation_id, moduleimpl_id=moduleimpl_id, fmt=fmt
|
||||
)
|
||||
if format == "html":
|
||||
if fmt == "html":
|
||||
H = html_sco_header.sco_header(
|
||||
page_title=page_title,
|
||||
cssstyles=["css/verticalhisto.css"],
|
||||
@ -2022,7 +2020,7 @@ def formsemestre_bulletins_mailetuds(
|
||||
inscription.etud,
|
||||
version=version,
|
||||
prefer_mail_perso=prefer_mail_perso,
|
||||
format="pdfmail",
|
||||
fmt="pdfmail",
|
||||
)
|
||||
if sent:
|
||||
nb_sent += 1
|
||||
|
@ -364,7 +364,7 @@ def get_etud_dept():
|
||||
) # pour compat anciens clients PHP
|
||||
@scodoc
|
||||
@scodoc7func
|
||||
def search_inscr_etud_by_nip(code_nip, format="json", __ac_name="", __ac_password=""):
|
||||
def search_inscr_etud_by_nip(code_nip, fmt="json", __ac_name="", __ac_password=""):
|
||||
auth_ok = False
|
||||
user_name = __ac_name
|
||||
user_password = __ac_password
|
||||
@ -376,7 +376,7 @@ def search_inscr_etud_by_nip(code_nip, format="json", __ac_name="", __ac_passwor
|
||||
if not auth_ok:
|
||||
abort(403)
|
||||
else:
|
||||
return sco_find_etud.search_inscr_etud_by_nip(code_nip=code_nip, format=format)
|
||||
return sco_find_etud.search_inscr_etud_by_nip(code_nip=code_nip, fmt=fmt)
|
||||
|
||||
|
||||
@bp.route("/ScoDoc/about")
|
||||
|
@ -294,7 +294,7 @@ class DeptLogosConfigurationForm(FlaskForm):
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def showEtudLog(etudid, format="html"):
|
||||
def showEtudLog(etudid, fmt="html"):
|
||||
"""Display log of operations on this student"""
|
||||
etud = sco_etud.get_etud_info(filled=True)[0]
|
||||
|
||||
@ -324,7 +324,7 @@ def showEtudLog(etudid, format="html"):
|
||||
preferences=sco_preferences.SemPreferences(),
|
||||
)
|
||||
|
||||
return tab.make_page(format=format)
|
||||
return tab.make_page(fmt=fmt)
|
||||
|
||||
|
||||
# ---------- PAGE ACCUEIL (listes) --------------
|
||||
@ -442,7 +442,7 @@ sco_publish(
|
||||
@scodoc7func
|
||||
def groups_view(
|
||||
group_ids=(),
|
||||
format="html",
|
||||
fmt="html",
|
||||
# Options pour listes:
|
||||
with_codes=0,
|
||||
etat=None,
|
||||
@ -454,7 +454,7 @@ def groups_view(
|
||||
):
|
||||
return sco_groups_view.groups_view(
|
||||
group_ids=group_ids,
|
||||
format=format,
|
||||
fmt=fmt,
|
||||
# Options pour listes:
|
||||
with_codes=with_codes,
|
||||
etat=etat,
|
||||
@ -478,17 +478,16 @@ sco_publish(
|
||||
@scodoc
|
||||
@permission_required(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def getEtudInfo(etudid=False, code_nip=False, filled=False, format=None):
|
||||
def getEtudInfo(etudid=False, code_nip=False, filled=False, fmt=None):
|
||||
"""infos sur un etudiant (API)
|
||||
On peut specifier etudid ou code_nip
|
||||
ou bien cherche dans les arguments de la requête: etudid, code_nip, code_ine
|
||||
(dans cet ordre).
|
||||
"""
|
||||
etud = sco_etud.get_etud_info(etudid=etudid, code_nip=code_nip, filled=filled)
|
||||
if format is None:
|
||||
if fmt is None:
|
||||
return etud
|
||||
else:
|
||||
return scu.sendResult(etud, name="etud", format=format)
|
||||
return scu.sendResult(etud, name="etud", fmt=fmt)
|
||||
|
||||
|
||||
sco_publish(
|
||||
@ -524,9 +523,9 @@ def search_etud_by_name():
|
||||
@scodoc
|
||||
@permission_required_compat_scodoc7(Permission.ScoView)
|
||||
@scodoc7func
|
||||
def etud_info(etudid=None, format="xml"):
|
||||
def etud_info(etudid=None, fmt="xml"):
|
||||
"Donne les informations sur un etudiant"
|
||||
if not format in ("xml", "json"):
|
||||
if not fmt in ("xml", "json"):
|
||||
raise ScoValueError("format demandé non supporté par cette fonction.")
|
||||
t0 = time.time()
|
||||
args = make_etud_args(etudid=etudid)
|
||||
@ -545,9 +544,7 @@ def etud_info(etudid=None, format="xml"):
|
||||
"emailperso": "",
|
||||
"error": "code etudiant inconnu",
|
||||
}
|
||||
return scu.sendResult(
|
||||
d, name="etudiant", format=format, force_outer_xml_tag=False
|
||||
)
|
||||
return scu.sendResult(d, name="etudiant", fmt=fmt, force_outer_xml_tag=False)
|
||||
d = {}
|
||||
etud = etuds[0]
|
||||
sco_etud.fill_etuds_info([etud])
|
||||
@ -615,7 +612,7 @@ def etud_info(etudid=None, format="xml"):
|
||||
|
||||
log("etud_info (%gs)" % (time.time() - t0))
|
||||
return scu.sendResult(
|
||||
d, name="etudiant", format=format, force_outer_xml_tag=False, quote_xml=False
|
||||
d, name="etudiant", fmt=fmt, force_outer_xml_tag=False, quote_xml=False
|
||||
)
|
||||
|
||||
|
||||
@ -2145,9 +2142,9 @@ def import_generate_excel_sample(with_codesemestre="1"):
|
||||
with_codesemestre = int(with_codesemestre)
|
||||
else:
|
||||
with_codesemestre = 0
|
||||
format = sco_import_etuds.sco_import_format()
|
||||
fmt = sco_import_etuds.sco_import_format()
|
||||
data = sco_import_etuds.sco_import_generate_excel_sample(
|
||||
format, with_codesemestre, exclude_cols=["photo_filename"]
|
||||
fmt, with_codesemestre, exclude_cols=["photo_filename"]
|
||||
)
|
||||
return scu.send_file(
|
||||
data, "ImportEtudiants", scu.XLSX_SUFFIX, mime=scu.XLSX_MIMETYPE
|
||||
|
@ -32,12 +32,12 @@ response = urllib2.urlopen(req)
|
||||
# --- Use API
|
||||
|
||||
# Affiche la liste des formations en format XML
|
||||
req = urllib2.Request(BASEURL + "/Notes/formation_list?format=xml")
|
||||
req = urllib2.Request(BASEURL + "/Notes/formation_list?fmt=xml")
|
||||
response = urllib2.urlopen(req)
|
||||
print response.read()[:100] # limite aux 100 premiers caracteres...
|
||||
|
||||
# Recupere la liste de tous les semestres:
|
||||
req = urllib2.Request(BASEURL + "/Notes/formsemestre_list?format=json") # format json
|
||||
req = urllib2.Request(BASEURL + "/Notes/formsemestre_list?fmt=json") # format json
|
||||
response = urllib2.urlopen(req)
|
||||
js_data = response.read()
|
||||
|
||||
@ -55,7 +55,7 @@ else:
|
||||
# Obtient la liste des groupes:
|
||||
req = urllib2.Request(
|
||||
BASEURL
|
||||
+ "/Notes/formsemestre_partition_list?format=json&formsemestre_id="
|
||||
+ "/Notes/formsemestre_partition_list?fmt=json&formsemestre_id="
|
||||
+ str(formsemestre_id)
|
||||
) # format json
|
||||
response = urllib2.urlopen(req)
|
||||
@ -66,7 +66,7 @@ else:
|
||||
] # premier groupe (normalement existe toujours)
|
||||
# Liste les étudiants de ce groupe:
|
||||
req = urllib2.Request(
|
||||
BASEURL + "/Notes/group_list?format=json&with_codes=1&group_id=" + str(group_id)
|
||||
BASEURL + "/Notes/group_list?fmt=json&with_codes=1&group_id=" + str(group_id)
|
||||
) # format json
|
||||
response = urllib2.urlopen(req)
|
||||
js_data = response.read()
|
||||
@ -83,7 +83,7 @@ else:
|
||||
+ str(formsemestre_id)
|
||||
+ "&etudid="
|
||||
+ str(etudid)
|
||||
+ "&format=xml"
|
||||
+ "&fmt=xml"
|
||||
) # format XML ici !
|
||||
response = urllib2.urlopen(req)
|
||||
xml_bulletin = response.read()
|
||||
|
@ -293,43 +293,3 @@ pp(GET(f"/formsemestre/880/resultats", headers=HEADERS)[0])
|
||||
|
||||
# # Affiche le semestre trouvé:
|
||||
# pp(sem)
|
||||
|
||||
# # ---- Récupère la description de ce semestre:
|
||||
# # semdescr = GET(s, f"Notes/formsemestre_description?formsemestre_id={sem['formsemestre_id']}&with_evals=0&format=json" )
|
||||
|
||||
# # ---- Liste les modules et prend le premier
|
||||
# mods = GET(s, f"/Notes/moduleimpl_list?formsemestre_id={sem['formsemestre_id']}")
|
||||
# print(f"{len(mods)} modules dans le semestre {sem['titre']}")
|
||||
|
||||
# mod = mods[0]
|
||||
|
||||
# # ---- Etudiants inscrits dans ce module
|
||||
# inscrits = GET(
|
||||
# s, f"Notes/do_moduleimpl_inscription_list?moduleimpl_id={mod['moduleimpl_id']}"
|
||||
# )
|
||||
# print(f"{len(inscrits)} inscrits dans ce module")
|
||||
# # prend le premier inscrit, au hasard:
|
||||
# etudid = inscrits[0]["etudid"]
|
||||
|
||||
# # ---- Création d'une evaluation le dernier jour du semestre
|
||||
# jour = sem["date_fin"]
|
||||
# evaluation_id = POST(
|
||||
# s,
|
||||
# f"/moduleimpl/{mod['moduleimpl_id']}/evaluation/create",
|
||||
# data={
|
||||
# "coefficient": 1,
|
||||
# "jour": jour, # "2023-08-23",
|
||||
# "heure_debut": "9:00",
|
||||
# "heure_fin": "10:00",
|
||||
# "note_max": 20, # notes sur 20
|
||||
# "description": "essai",
|
||||
# },
|
||||
# errmsg="échec création évaluation",
|
||||
# )
|
||||
|
||||
# print(
|
||||
# f"Evaluation créée dans le module {mod['moduleimpl_id']}, evaluation_id={evaluation_id}"
|
||||
# )
|
||||
# print(
|
||||
# f"Pour vérifier, aller sur: {DEPT_URL}/Notes/moduleimpl_status?moduleimpl_id={mod['moduleimpl_id']}",
|
||||
# )
|
||||
|
@ -2,6 +2,9 @@
|
||||
# -*- mode: python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# OBSOLETE - NE PLUS UTILISER CETTE API
|
||||
# VOIR https://scodoc.org/ScoDoc9API/
|
||||
|
||||
"""Exemple connexion sur ScoDoc 9 et utilisation de l'ancienne API ScoDoc 7
|
||||
à la mode "PHP": les gens passaient directement __ac_name et __ac_password
|
||||
dans chaque requête, en POST ou en GET.
|
||||
@ -81,7 +84,7 @@ def POST(path: str, data: dict, errmsg=None):
|
||||
# pas besoin d'ouvrir une session, on y va directement:
|
||||
|
||||
# --- Recupere la liste de tous les semestres:
|
||||
sems = GET("Notes/formsemestre_list", params={"format": "json"})
|
||||
sems = GET("Notes/formsemestre_list", params={"fmt": "json"})
|
||||
|
||||
# sems est une liste de semestres (dictionnaires)
|
||||
for sem in sems:
|
||||
@ -100,7 +103,7 @@ group_list = GET(
|
||||
params={
|
||||
"formsemestre_id": sem["formsemestre_id"],
|
||||
"with_codes": 1,
|
||||
"format": "json",
|
||||
"fmt": "json",
|
||||
},
|
||||
)
|
||||
if not group_list:
|
||||
|
@ -184,7 +184,7 @@ def test_formations(test_client):
|
||||
|
||||
# --- Export de formation vers JSON
|
||||
exp = sco_formations.formation_export(
|
||||
formation_id=formation_id, format="json", export_ids=True
|
||||
formation_id=formation_id, fmt="json", export_ids=True
|
||||
).get_data(as_text=True)
|
||||
assert isinstance(exp, str)
|
||||
load_exp = json.loads(exp)
|
||||
@ -201,7 +201,7 @@ def test_formations(test_client):
|
||||
# --- Liste des semestres
|
||||
|
||||
li_sem1 = notes.formsemestre_list(
|
||||
formsemestre_id=formsemestre_id1, format="json"
|
||||
formsemestre_id=formsemestre_id1, fmt="json"
|
||||
).get_data(as_text=True)
|
||||
assert isinstance(li_sem1, str)
|
||||
load_li_sem1 = json.loads(li_sem1) # uniquement le semestre 1 dans la liste
|
||||
@ -214,7 +214,7 @@ def test_formations(test_client):
|
||||
|
||||
li_semf = notes.formsemestre_list(
|
||||
formation_id=formation_id,
|
||||
format="json",
|
||||
fmt="json",
|
||||
).get_data(as_text=True)
|
||||
assert isinstance(li_semf, str)
|
||||
load_li_semf = json.loads(li_semf)
|
||||
@ -224,7 +224,7 @@ def test_formations(test_client):
|
||||
sem2 = sco_formsemestre.get_formsemestre(formsemestre_id2)
|
||||
assert load_li_semf[1]["semestre_id"] == sem2["semestre_id"]
|
||||
|
||||
li_sem = notes.formsemestre_list(format="json").get_data(as_text=True)
|
||||
li_sem = notes.formsemestre_list(fmt="json").get_data(as_text=True)
|
||||
load_li_sem = json.loads(li_sem)
|
||||
|
||||
assert len(load_li_sem) == 3
|
||||
@ -379,7 +379,7 @@ def test_import_formation(test_client, filename="formation-exemple-1.xml"):
|
||||
assert mi["module_id"] == mod["module_id"]
|
||||
|
||||
# --- Export formation en XML
|
||||
doc1 = sco_formations.formation_export(formation_id, format="xml").get_data(
|
||||
doc1 = sco_formations.formation_export(formation_id, fmt="xml").get_data(
|
||||
as_text=True
|
||||
)
|
||||
assert isinstance(doc1, str)
|
||||
|
@ -105,13 +105,13 @@ def test_formsemestre_misc_views(test_client):
|
||||
)
|
||||
assert isinstance(ans, (str, Response)) # ici c'est une str
|
||||
ans = sco_formsemestre_status.formsemestre_description(
|
||||
formsemestre.id, with_evals=True, format="xls"
|
||||
formsemestre.id, with_evals=True, fmt="xls"
|
||||
)
|
||||
assert isinstance(ans, Response)
|
||||
assert ans.status == "200 OK"
|
||||
assert ans.mimetype == scu.XLSX_MIMETYPE
|
||||
ans = sco_formsemestre_status.formsemestre_description(
|
||||
formsemestre.id, with_evals=True, format="pdf"
|
||||
formsemestre.id, with_evals=True, fmt="pdf"
|
||||
)
|
||||
assert isinstance(ans, Response)
|
||||
assert ans.status == "200 OK"
|
||||
@ -187,12 +187,12 @@ def test_formsemestre_misc_views(test_client):
|
||||
|
||||
# ----- MENU STATISTIQUES
|
||||
ans = sco_report.formsemestre_report_counts(formsemestre.id)
|
||||
ans = sco_report.formsemestre_report_counts(formsemestre.id, format="xls")
|
||||
ans = sco_report.formsemestre_report_counts(formsemestre.id, fmt="xls")
|
||||
assert isinstance(ans, Response)
|
||||
assert ans.status == "200 OK"
|
||||
assert ans.mimetype == scu.XLSX_MIMETYPE
|
||||
ans = sco_report.formsemestre_suivi_cohorte(formsemestre.id)
|
||||
ans = sco_report.formsemestre_suivi_cohorte(formsemestre.id, format="pdf")
|
||||
ans = sco_report.formsemestre_suivi_cohorte(formsemestre.id, fmt="pdf")
|
||||
assert isinstance(ans, Response)
|
||||
assert ans.status == "200 OK"
|
||||
assert ans.mimetype == scu.PDF_MIMETYPE
|
||||
|
Loading…
Reference in New Issue
Block a user