Ne quote plus par défaut le HTML des chaines entrants en base

This commit is contained in:
Emmanuel Viennet 2021-09-07 23:54:33 +02:00
parent 998f28d4a4
commit 97fe4cc73f
4 changed files with 12 additions and 6 deletions

View File

@ -287,7 +287,7 @@ class EditableTable(object):
input_formators={}, input_formators={},
aux_tables=[], aux_tables=[],
convert_null_outputs_to_empty=True, convert_null_outputs_to_empty=True,
html_quote=True, html_quote=False, # changed in 9.0.10
fields_creators={}, # { field : [ sql_command_to_create_it ] } fields_creators={}, # { field : [ sql_command_to_create_it ] }
filter_nulls=True, # dont allow to set fields to null filter_nulls=True, # dont allow to set fields to null
filter_dept=False, # ajoute selection sur g.scodoc_dept_id filter_dept=False, # ajoute selection sur g.scodoc_dept_id
@ -321,8 +321,10 @@ class EditableTable(object):
del vals["id"] del vals["id"]
if self.filter_dept: if self.filter_dept:
vals["dept_id"] = g.scodoc_dept_id vals["dept_id"] = g.scodoc_dept_id
if self.html_quote: if (
quote_dict(vals) # quote all HTML markup self.html_quote
): # quote all HTML markup (une bien mauvaise idée venue des ages obscurs)
quote_dict(vals)
# format value # format value
for title in vals: for title in vals:
if title in self.input_formators: if title in self.input_formators:

View File

@ -221,7 +221,6 @@ _moduleimpl_inscriptionEditor = ndb.EditableTable(
def do_moduleimpl_inscription_create(args, formsemestre_id=None): def do_moduleimpl_inscription_create(args, formsemestre_id=None):
"create a moduleimpl_inscription" "create a moduleimpl_inscription"
cnx = ndb.GetDBConnexion() cnx = ndb.GetDBConnexion()
log("do_moduleimpl_inscription_create: " + str(args))
r = _moduleimpl_inscriptionEditor.create(cnx, args) r = _moduleimpl_inscriptionEditor.create(cnx, args)
sco_cache.invalidate_formsemestre( sco_cache.invalidate_formsemestre(
formsemestre_id=formsemestre_id formsemestre_id=formsemestre_id

View File

@ -33,6 +33,7 @@
En ScoDoc 9, ce n'est pas nécessaire car on est multiptocessus / monothread. En ScoDoc 9, ce n'est pas nécessaire car on est multiptocessus / monothread.
""" """
import html
import io import io
import os import os
import queue import queue
@ -85,7 +86,11 @@ def SU(s):
# car les "combining accents" ne sont pas traités par ReportLab mais peuvent # car les "combining accents" ne sont pas traités par ReportLab mais peuvent
# nous être envoyés par certains navigateurs ou imports # nous être envoyés par certains navigateurs ou imports
# (on en a dans les bases de données) # (on en a dans les bases de données)
return unicodedata.normalize("NFC", s) s = unicodedata.normalize("NFC", s)
# Remplace les entité XML/HTML
# reportlab ne les supporte pas non plus.
s = html.unescape(s)
return s
def _splitPara(txt): def _splitPara(txt):

View File

@ -100,7 +100,7 @@ class MyHttpRequestHandler(http.server.SimpleHTTPRequestHandler):
if "etapes" in self.path.lower(): if "etapes" in self.path.lower():
self.path = str(Path(script_dir / "etapes.xml").relative_to(Path.cwd())) self.path = str(Path(script_dir / "etapes.xml").relative_to(Path.cwd()))
elif "scodocEtudiant" in self.path: elif "scodocEtudiant" in self.path: # API v2
# 2 forms: nip=xxx or etape=eee&annee=aaa # 2 forms: nip=xxx or etape=eee&annee=aaa
if "nip" in query_components: if "nip" in query_components:
nip = query_components["nip"][0] nip = query_components["nip"][0]