[Bug #8786] Faire fonctionner le tri DESC de tab.php au delà de 10 colonnes

Porteur principal : Laurent GROLEAU

Porteur secondaire : ?

Résumé

En OM 4.6.3, le tri sur les colonnes en croissant (ASC) renvoie un résultat décroissant, qu’il s’agisse d’une date ou pas, dès qu’on est au delà de la 10ème colonne.

Motivation

Faire fonctionner les tris dans les tableaux à plus de 10 colonnes, plus courant avec les écrans actuels de plus de 20 pouces.

Pré-requis

Vérifier s’il est opportun de classer ce point en bogue et de le corriger en 4.6

Proposition et implémentation

Dans core/om_table.class.php , méthode composeTri()

Remplacer le test qui évalue si le paramètre d’URL tricol est positif :
if (strlen((string) $this->getParam(“tricol”)) == 1 )

par le test suivant:
if ( intval($this->getParam(“tricol”)) > 0 )

Risques

à évaluer par la communauté

Bonjour Laurent,

Ce point est déjà signalé comme un bug ici : https://adullact.net/tracker/index.php?func=detail&aid=8786&group_id=265&atid=1998

Je le sors donc de la rubrique des propositions et renomme le titre.

Merci pour la proposition de correction, mais celle ci casse le tri sur la première colonne dont la valeur $this->getParam(“tricol”) peut être 0 ou -0.

Florent
PS : la prop0036 était déjà prise donc inutile de renommer la prop0037.

Merci pour le lien avec le bug, qui ne semble pas priorisé (04/2017) et pour la solution: il faut véritablement tester le 1er caractère:
if ( substr($this->getParam("tricol"),0,1) !== "-" ) { ...

En ce qui concerne la numérotation des propositions, je n’ai pas trouvé de tri par sujet sur le forum pour m’assurer du dernier numéro. Y aurait-il une astuce ?

Correctif et test PHPunit d’OM4.7.0 effectués sur la branche bug8786_tri_liste_colonne_apres_indice_9
DIFF sur core/om_table.class.php: [https://adullact.net/scm/viewvc.php/openmairie/openmairie_exemple/branches/bug8786_tri_liste_colonne_apres_indice_9/core/om_table.class.php?r1=4112&r2=4113&pathrev=4113]

Merci pour cette contribution.

La correction a été intégrée à la branche 4.8.0 :