skip to Main Content

I’m trying to add number of week in the grid of timesheet in Odoo V16.

Like this :
enter image description here

But my new function in my inherit js doesn’t be call and i don’t know why ?

This is my xml file (inherit from web_grid) :

<?xml version="1.0" encoding="UTF-8"?>
<templates>
    <t t-inherit="web_grid.Table" t-inherit-mode="extension" owl="1">
        <xpath expr="//th[@class='o_grid_title_header']" position="inside">
                <b>"<t t-esc="numberWeek"/>"</b>
        </xpath>
    </t>
</templates>

And this is my inherit js (inherit from web_grid.grid_renderer.js) :

odoo.define('my_custom_addon.GridRenderer', function (require) {
    "use strict";
        var GridRenderer = require('web_grid.GridRenderer');

        class ModifiedGridRenderer extends GridRenderer {
            get numberWeek() {
                console.log(this.props.timeBoundariesContext);
                return "Week 26";
            };
        };

        return ModifiedGridRenderer;
});

My xml file is correctly inherit because when i had manually number week, it appear without problems.
But when i use my function numberWeek in my xml, i don’t have any error but nothing appear.

Do you have any idea ?

Thank’s in advance 🙂

2

Answers


  1. Chosen as BEST ANSWER

    Thank to aekis.dev !

    Indeed the patch work great.

    This is my code example :

    /** @odoo-module **/
    import { patch } from 'web.utils';
    
    var GridRenderer = require('web_grid.GridRenderer');
    
    
    patch(GridRenderer.prototype, 'Number Week', {
        get numberWeek() {
            //timeBoundariesContext -> get the start and end date of the selected date in timesheet
            console.log(this.props.timeBoundariesContext);
            return "Week 26";
        }
    });
    

  2. The thing it’s that your Custom Renderer ModifiedGridRenderer wouldn’t be used at all by the Grid View

    https://github.com/odoo/enterprise/blob/59cfadfabc246d782e4a359d365efb11b8af7ae7/web_grid/static/src/js/grid_view.js#L24

    You could patch the original GridRenderer OWL Component to add your function

    or

    You could directly set the GridView.config.Renderer = ModifiedGridRenderer in order to be used by the GridView

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search