콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
3 답글
4658 화면

I want to change position number field to left in list view odoo 16. I tried:   style="text-align: left" and type="char" but not working for me.

아바타
취소
작성자

Thanks for your help. I have tried both ways ,but it's still not working. :((


베스트 답변

By default, Odoo aligns numeric fields to the right in both the header and body of tree views. To left-align a specific field, you can patch the ListRenderer and adjust the DOM once it's mounted.


Here’s how I solved it using JavaScript in Odoo 16+ (OWL architecture):


/** @odoo-module **/
import { patch } from "@web/core/utils/patch";
import { ListRenderer } from "@web/views/list/list_renderer";
import { onMounted } from "@odoo/owl";
patch(ListRenderer.prototype, "align_left_area_size", {
    setup() {
        this._super(...arguments);

        onMounted(() => {
            const headers = document.querySelectorAll('div[name="one2many_ids"] th[data-name="integer_field"]');
            const cells = document.querySelectorAll('div[name="one2many_ids"] td[name="integer_field"]');

            headers.forEach((el) => {
                el.classList.remove("text-end");
                el.style.textAlign = "left";
                const labelSpan = el.querySelector("span.text-end");
                if (labelSpan) {
                    labelSpan.classList.remove("text-end");
                    labelSpan.style.textAlign = "left";
                }
            });
            cells.forEach((el) => {
                el.style.textAlign = "left";
            });

            document.querySelectorAll('div[name="one2many_ids"] th[data-name="integer_field"] div.d-flex').forEach((div) => {
                div.classList.remove("text-end", "flex-row-reverse");
            });
        });
    },
});


This works for fields in nested One2many lists too, and you can adapt the selector for any other field. (I invite you to inspect the elements on your navigator to local better your field) 

Don't forget to add your file in the assets of your module's manifest.

I hope this helps!

아바타
취소
베스트 답변

Hi

Try this inside a css file 

th.o_column_sortable[data-name="field_name"]

{

text-align: center;

}


Hope it helps

아바타
취소
베스트 답변

Hi BB,

Try class="text-left",




Hope it helps.
Kiran K

아바타
취소

<field name="date" class="text-left"/>
<field name="amount" class="text-right"/>

관련 게시물 답글 화면 활동
5
11월 23
42968
3
9월 23
9457
1
9월 22
3730
1
6월 22
12551
3
3월 20
11019