sql: add f_ before varnames in on views to prevent name conflicts (#19385)

This commit is contained in:
Thomas NOËL 2017-10-11 22:58:00 +02:00
parent 2b193960e9
commit 32d7fd745c
2 changed files with 9 additions and 6 deletions

View File

@ -51,11 +51,14 @@ réservé aux usages internes.
<p>
Les différents champs du formulaire sont ensuite présents en autant de
colonnes, elles sont nommées selon le nom de variable utilisé dans la
définition du champ ou, quand celui-ci n'est pas défini, selon la forme
<code>f_<var>identifiant</var>_<var>libellé</var></code>. Pour un certain nombre
de champs, différenciant la valeur présentée de la valeur de stockage, un
second champ est disponible, au nom suffixé de <code>_display</code>.
colonnes, elles sont nommées selon le format
<code>f_<var>identifiant</var></code> où identifiant est le nom de variable
utilisé dans la définition du champ. Quand celui-ci n'est pas défini, la
colonne est nommée
<code>f_<var>identifiant-numérique-interne</var>_<var>libellé</var></code>.
Pour un certain nombre de champs, différenciant la valeur présentée de la
valeur de stockage, un second champ est disponible, au nom suffixé de
<code>_display</code>.
</p>
<p>

View File

@ -674,7 +674,7 @@ def do_views(formdef, conn, cur, rebuild_global_views=True):
# the variable should be fine as is but we pass it through
# get_name_as_sql_identifier nevertheless, to be extra sure it
# doesn't contain invalid characters.
field_name = get_name_as_sql_identifier(field.varname)[:50]
field_name = 'f_%s' % get_name_as_sql_identifier(field.varname)[:50]
else:
field_name = 'f%s_%s' % (field.id, get_name_as_sql_identifier(field.label))
field_name = field_name[:50]