Anomalie #9806
[métadonnées complémentaires] Problème de gestion des Where Clause issu du fichier index_letterbox.xml
Description
Remontée du SGAMI à partir de la 18.04 :
Nous relevons une anomalie lié aux Where Clause du fichier index_letterbox.xml :
Test Case : Bug dans la page 'plan de classement' si clause where vide dans index_letterbox.xml
Nos instances contiennent une table de mapping entre les n° de procédure et des champs complémentaire custom qui sont chargés avec des identifiants.
Cette table procédure ne contient que 2 colonnes : des identifiants et des libellés en clairs.
index_letterbox.xml doit contenir un tag where_clause vide.
<INDEX> <column>custom_f1</column> <label>Thématique SVE</label> <type>float</type> <img>plus.png</img> <table> <table_name>procedures</table_name> <foreign_key>procedure_id</foreign_key> <foreign_label>procedure_label</foreign_label> <where_clause>1=1</where_clause> <order>order by procedure_label</order> </table> <default_value></default_value> </INDEX>
Test Case:
1 - Dans la page "Administration Typologie(s) documentaire(s) 33 Typologie(s) documentaire(s)"
1.1 sélectionner 'plan de classement'
1.2 sélectionner un sous-sous élément comme par exemple : 'invitation'
Résultat : un pop up avec un icône de warning apparaît sans texte. Pas d'affichage à droite pour modifier le choix sélectionné.
Debug : la requête dans la classe DatabaseModel.php contient un clause where vide :
SELECT procedure_id, procedure_label FROM procedures WHERE ORDER BY procedure_label
Note :
Les paramètres de l'appel de la fonction DatabaseModel:select ne semblent pas correctement implémentés pour la classe DoctypeIndexesModelAbstract.php
~~~
class DoctypeIndexesModelAbstract : function getAllIndexes()
$tableXml = $item->table; $tableName = (string) $tableXml->table_name; $foreignKey = (string) $tableXml->foreign_key; $foreignLabel = (string) $tableXml->foreign_label; $whereClause = (string) $tableXml->where_clause; $order = (string) $tableXml->order; $res = DatabaseModel::select([ 'select' => [$foreignKey, $foreignLabel], 'table' => [$tableName], 'where' => [$whereClause], 'order_by' => [str_ireplace("order by", "", $order)] ]);
Il conviendrait de prendre exemple sur la classe DocserverTypeModelAbstract.php
class DocserverTypeModelAbstract public static function get(...) $aDocserverTypes = DatabaseModel::select([ 'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'], 'table' => ['docserver_types'], 'where' => empty($aArgs['where']) ? [] : $aArgs['where'], 'data' => empty($aArgs['data']) ? [] : $aArgs['data'], 'order_by' => empty($aArgs['orderBy']) ? [] : $aArgs['orderBy'], 'limit' => empty($aArgs['limit']) ? 0 : $aArgs['limit'] ]);
Historique
#2 Mis à jour par Emmanuel DILLARD il y a environ 5 ans
- Statut changé de A traiter à R&D - A étudier
- Priorité changé de 2-Sérieux à 1-Majeur
- Tags Courrier 18.04.12, 18.10.6 ajouté
#3 Mis à jour par Emmanuel DILLARD il y a environ 5 ans
- Statut changé de R&D - A étudier à R&D - A planifier
- Version cible changé de 18.04 à 19.04 (Fin de vie)
- Tags Courrier 18.10.7 ajouté
- Tags Courrier
18.10.6supprimé
#4 Mis à jour par Emmanuel DILLARD il y a presque 5 ans
- Projet changé de Backlog à CURRENT SPRINT
- Statut changé de R&D - A planifier à R&D - En cours
- Tags Courrier
18.04.12, 18.10.7supprimé
#5 Mis à jour par Emmanuel DILLARD il y a presque 5 ans
- Tags Courrier 18.04.13, 18.10.8 ajouté
#6 Mis à jour par Emmanuel DILLARD il y a presque 5 ans
- Statut changé de R&D - En cours à R&D - Terminé
#7 Mis à jour par Emmanuel DILLARD il y a presque 5 ans
- Projet changé de CURRENT SPRINT à Backlog
#8 Mis à jour par Emmanuel DILLARD il y a presque 3 ans
- Projet changé de Backlog à Backlog Courrier
- Version cible changé de 19.04 (Fin de vie) à 19.04 (Sécurité)