odoo-8
Benutzerdefinierte Widgets für Felder
Suche…
Bemerkungen
- Stellen Sie sicher, dass Sie die JavaScript-Datei ordnungsgemäß zu Ihrem Modul hinzufügen
- Vergessen Sie nicht, 'web' als Abhängigkeit in __openerp__.py hinzuzufügen:
'depends': ['web',....]
Benutzerdefiniertes Widget für numerische Felder zur Verwendung in TreeView
Das folgende Beispiel-Widget veranschaulicht, wie einzelne Zellen einer TreeView-Spalte abhängig vom Wert des Felds in der jeweiligen Zelle bedingt formatiert werden. Wenn der Wert des Feldes negativ ist, wird er in roter Farbe angezeigt und das Minus-Symbol wird ausgeblendet. Andernfalls wird es in normaler Farbe angezeigt.
Ein Widget sollte in JavaScript geschrieben sein. custom_widget_name
als Namen für ein neues Widget verwenden. your_module_name
ist ein technischer Name Ihres Moduls (derselbe wie der Name des Stammverzeichnisses Ihres Moduls)
Fügen Sie im Ordner static / src / js / in Ihrem Modul die Javascript-Datei hinzu (z. B. static / src / js / custom_widget .js) und fügen Sie ein benutzerdefiniertes Widget hinzu:
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...
//
};
Das obige Beispiel-Widget kann in einer Listenansicht für das Feld vom Typ Float verwendet werden und wendet benutzerdefinierte Regeln wie folgt an:
- Negative Zahlen:
- Werden rot angezeigt
- Das Minuszeichen (ein "-" - Zeichen) ist "versteckt".
- Bei positiven Zahlen wird das Standardlayout verwendet.
Dieses Beispiel-Widget kann auf ein Feld in einer Baumansicht von Odoo angewendet werden. Sie können ein Widget wie folgt für eine Spalte verwenden, auf die Sie die benutzerdefinierten Regeln anwenden müssen:
. . . <tree > . . . <field name="some_field" widget="my_widget" /> . . . </tree> . . .