odoo-8
Widgets personnalisés pour les champs
Recherche…
Remarques
- assurez-vous d' ajouter correctement le fichier javascript à votre module
- N'oubliez pas d'ajouter 'web' comme dépendance dans __openerp__.py:
'depends': ['web',....]
Widget personnalisé pour les champs numériques à utiliser dans TreeView
Le widget d'exemple ci-dessous montre comment mettre en forme certaines cellules d'une colonne TreeView de manière conditionnelle, en fonction de la valeur du champ dans la cellule particulière. Si la valeur du champ est négative, elle sera affichée en rouge et le symbole moins sera masqué, sinon elle sera affichée en couleur normale.
Un widget doit être écrit en JavaScript, utilisons custom_widget_name
comme nom pour un nouveau widget et your_module_name
est un nom technique de votre module (identique au nom du répertoire racine de votre module)
Installez le fichier javascript statique (par exemple static / src / js / custom_widget .js) avec un widget personnalisé:
openerp.your_module_name = function (instance) {
instance.web.list.columns.add('field.custom_widget_name', 'instance.your_module_name.custom_widget_name');
instance.your_module_name.custom_widget_name = instance.web.list.Column.extend({
_format: function (row_data, options) {
res = this._super.apply(this, arguments);
var amount = parseFloat(res);
if (amount < 0){
return "<font color='#ff0000'>"+(-amount)+"</font>";
}
return res
}
});
//
//here you can add more widgets if you need, as above...
//
};
L'exemple de widget ci-dessus peut être utilisé dans une vue de liste pour le champ de type float et il applique des règles personnalisées comme suit:
- Nombres négatifs:
- Sont affichés en rouge.
- Le symbole moins (un caractère '-') est "caché".
- Pour les nombres positifs, la disposition par défaut est utilisée.
Cet exemple de widget peut être appliqué à un champ dans une vue arborescente d'Odoo. Vous pouvez utiliser un widget comme celui-ci pour une colonne dont vous avez besoin d'appliquer les règles personnalisées à:
. . . <tree > . . . <field name="some_field" widget="my_widget" /> . . . </tree> . . .