İçereği Atla
Menü
Bu soru işaretlendi
1 Cevapla
10534 Görünümler

Dear Friends,

I am in a situation to change the colour of particular column's. In accounting for chart of accounts if balance is in negative(-) i have to show it in red colour for that particular account(Note: balance column only to be shown in red colour). So please reply if anyone knows if it is possible.Thanks in advance.

Avatar
Vazgeç
En İyi Yanıt

Yes, it's possible using custom widget and quite simple.

you'll need to write your widget in javascript lets say with a name: "my_widget" 


under static/src/js/ folder in your module add javascript file with a custom widget (say static/src/js/mywidget.js):

 openerp.your_module_name = function (instance) {
    instance.web.list.columns.add('field.your_widget_name', 'instance.your_module_name.your_widget_name');
    instance.your_module_name.your_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...
// };

the above example widget can be used in a list view for field of type float and it displays a content in red if value < 0, also "hides" '-' sign. adapt it to your requirements.


don't forget to add javascript file to your module:

in v7.0 through __openerp__.py manifest:

'js':['static/src/js/mywidget.js'], 

in v8.0 through XML file:

  <template id="assets_backend" name="your_module_name assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/your_module_name/static/src/js/mywidget.js"></script>
</xpath> </template>



then in your tree view, use this widget for the column you need to apply your rules to:

<tree >
    ....
    <field name="field_name" widget="my_widget"/>
    ....
</tree>


do not forget to add 'web' as dependency in __openerp__.py:

'depends': ['web',....]

that's it.

Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
1
May 25
3977
1
Ara 24
5298
1
Kas 24
3226
1
Oca 18
12865
1
Ara 17
5339