Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
10551 Zobrazení

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
Zrušit
Nejlepší odpověď

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
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
kvě 25
3987
1
pro 24
5307
1
lis 24
3231
1
led 18
12871
1
pro 17
5344