Séléction de la déscription d'un attribut enum lors de publication HTML

Séléction de la déscription d'un attribut enum lors de publication HTML
0
Tags: #<Tag:0x00007f768f13c5b0>

Bonjour,

Dans mon process de publication HTML je suis en face d’un attribut de type enum, et quand j’utilise le mustache {{MonAttributEnum}} j’obtiens le code de l’attribut, ce que je trouve normal.

Existe-il une manière d’appeler une méthode pour avoir la description de l’enum en HTML ?

Merci d’avance,
Hamza

Ca dépend de ce que vous passez à votre template Mustache… Comment fabriquez vous le JSON en question ?

PS: ce que vous voulez ce n’est pas la “description” de l’attribut mais la “traduction” du code de la liste de valeur de l’attribut

Le code de publication :

	public String pubDevis(){
		BootstrapWebPage wp = new BootstrapWebPage(
			HTMLTool.getRoot(), 
			"Webpage publication pattern example", 
			true
		);
		
	    ObjectDB d = getGrant().getTmpObject("DF_Devis");
	    d.setFieldFilter("row_id",getRowId());
		
	    wp.append(MustacheTool.apply(
			this,
			"DF_Devis_HTML", 
			"{'rows':"+d.toJSON(d.search(), null, false, false)
			));
			
		return wp.getHTML();
	
	}

HTML

<table>
            <tr class="top">
                <td colspan="2">
					
		{{#rows}}
                    <table>
                        <tr>
                            <td class="title">{{monAttributEnum}} </td>
                        </tr>			
                    </table>
                    {{/rows}}
                    
                </td>
            </tr>            
</table>

Ok vous passez les données brutes issues du search, donc pour les attributs il n’y a que les valeurs techniques (codes de listes de valeurs, 0/1 pour les booleens, dates au format YYYY-MM-DD, etc.)

Avant de voir comment ajouter/substituer les valeurs d’affichages je vous suggère déjà de revoir votre code car faire un search avec un unique filtre sur le row ID n’est pas du tout logique et pas efficace, mieux vaut faire un simple select mais de toute façon, ici, re-sélectionner dans un objet temporaire ce que vous avez déjà dans le record courant du this je ne comprend vraiment pas la logique… Bref votre code est inutilement compliqué et donc pas du tout optimal

Envoyez moi le code optimisé et je vous indiquerai comment faire pour les valeurs d’affichages dans ce contexte

PS: êtes vous bien sûr d’avoir besoin d’une page avec includes Bootstrap (BootstrapWebPage) ? Pour du HTML de base, à fortiori si on parle d’une page de publication, une simple WebPage suffit

Bon, indépendamment de mes remarques ci-dessus qui restent valables on a enrichi la classe helper MustacheTool avec des méthodes getRecord/getRecords qui permettent de formatter en JSON les données de l’objet soit au format technique soit au format displayable cf.

Ces méthodes sont utilisées par de nouvelles variantes de apply, par exemple il est désormais possible de publier simplement le record courant sur un template Mustache avec un code du genre:

public Object printHTML(PrintTemplate pt) {
	WebPage wp = new WebPage(pt.getDisplay());
	wp.append(MustacheTool.apply(this, "MY_MUSTACHE_TEMPLATE"));
	return wp.toString();
}

MY_MUSTACHE_TEMPLATE est une ressource HTML de l’objet