Overslaan naar inhoud
Odoo Menu
  • Aanmelden
  • Probeer het gratis
  • Apps
    Financiën
    • Boekhouding
    • Facturatie
    • Onkosten
    • Spreadsheet (BI)
    • Documenten
    • Ondertekenen
    Verkoop
    • CRM
    • Verkoop
    • Kassasysteem winkel
    • Kassasysteem Restaurant
    • Abonnementen
    • Verhuur
    Websites
    • Websitebouwer
    • E-commerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Bevoorradingsketen
    • Voorraad
    • Productie
    • PLM
    • Inkoop
    • Onderhoud
    • Kwaliteit
    Personeelsbeheer
    • Werknemers
    • Werving & Selectie
    • Verlof
    • Evaluaties
    • Aanbevelingen
    • Wagenpark
    Marketing
    • Social media Marketing
    • E-mailmarketing
    • SMS Marketing
    • Evenementen
    • Marketingautomatisering
    • Enquêtes
    Diensten
    • Project
    • Urenstaten
    • Buitendienst
    • Helpdesk
    • Planning
    • Afspraken
    Productiviteit
    • Chat
    • Goedkeuringen
    • IoT
    • VoIP
    • Kennis
    • WhatsApp
    Apps van derden Odoo Studio Odoo Cloud Platform
  • Bedrijfstakken
    Detailhandel
    • Boekhandel
    • kledingwinkel
    • Meubelzaak
    • Supermarkt
    • Bouwmarkt
    • Speelgoedwinkel
    Food & Hospitality
    • Bar en Pub
    • Restaurant
    • Fastfood
    • Gastenverblijf
    • Drankenhandelaar
    • Hotel
    Vastgoed
    • Makelaarskantoor
    • Architectenbureau
    • Bouw
    • Vastgoedbeheer
    • Tuinieren
    • Vereniging van eigenaren
    Consulting
    • Accountantskantoor
    • Odoo Partner
    • Marketingbureau
    • Advocatenkantoor
    • Talentenwerving
    • Audit & Certificering
    Productie
    • Textiel
    • Metaal
    • Meubels
    • Eten
    • Brewery
    • Relatiegeschenken
    Gezondheid & Fitness
    • Sportclub
    • Opticien
    • Fitnesscentrum
    • Wellness-medewerkers
    • Apotheek
    • Kapper
    Trades
    • Klusjesman
    • IT-hardware & support
    • Zonne-energiesystemen
    • Schoenmaker
    • Schoonmaakdiensten
    • HVAC-diensten
    Andere
    • Non-profitorganisatie
    • Milieuagentschap
    • Verhuur van Billboards
    • Fotograaf
    • Fietsleasing
    • Softwareverkoper
    Browse all Industries
  • Community
    Leren
    • Tutorials
    • Documentatie
    • Certificeringen
    • Training
    • Blog
    • Podcast
    Versterk het onderwijs
    • Onderwijs- programma
    • Scale Up! Business Game
    • Bezoek Odoo
    Download de Software
    • Downloaden
    • Vergelijk edities
    • Releases
    Werk samen
    • Github
    • Forum
    • Evenementen
    • Vertalingen
    • Word een Partner
    • Services for Partners
    • Registreer je accountantskantoor
    Diensten
    • Vind een partner
    • Vind een boekhouder
    • Een adviseur ontmoeten
    • Implementatiediensten
    • Klantreferenties
    • Ondersteuning
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Vraag een demo aan
  • Prijzen
  • Help

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Boekhouding
  • Voorraad
  • PoS
  • Project
  • MRP
All apps
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Help

Prevent tree view from sorting when clicking on headers (solved)

Inschrijven

Ontvang een bericht wanneer er activiteit is op deze post

Deze vraag is gerapporteerd
sorttree_viewv15Javascript
3 Antwoorden
3568 Weergaven
Avatar
Maximiliano Gamón

Update: Pushpendra solved it! Thanks an immense lot!! I would mark it as fixed or upvote but I can't because of karma. Thanks again! 

Hi! I'm new in the forums, this is my first post. I have been working as an Odoo technical developer for the last six months and it's a huge pleasure to be part of this awesome community. My name is Max, I'm from Argentina.

Right now I am trying to get a tree view (in Odoo 15) to stop sorting when its headers are clicked. So far I have tried this:



odoo.define('production_operator_missiongroup.custom_list_renderer', function (require) { "use strict";

console.log("Javascript works!")

var ListRenderer = require('web.ListRenderer');
var CustomListRenderer = ListRenderer.extend({
​ ​events: _.extend({}, ListRenderer.prototype.events, {
'click thead th.o_column_sortable': '_onSortColumn',
}),

_onSortColumn: function (ev) {
var viewId = 'production_operator_missiongroup.view_production_work_tree_operator';

if (this.state && this.state.id === viewId) {
ev.preventDefault();
​ ​ ​return false;
​}
return this._super.apply(this, arguments);
},
});
return CustomListRenderer;});

But that view is still getting sorted /sigh/. This .js file was successfully imported and that log is being logged. I would be veery grateful for some help with this, the Javascript framework is still a huge weak spot in my Odoo knowledge and can barely grasp it.

0
Avatar
Annuleer
Avatar
Pushpendra
Beste antwoord

Hi Maximiliano Gamón,


Problem with your code is to check the viewID with the state id, List view renderer doesn't have viewID that you are expecting.


You can try these steps

1. Add a custom class in your tree view i.e. disable_sort

tree class="o_sale_order disable_sort" >

2. Override _onSortColumn function in list_renderer.js file like this


odoo.define('production_operator_missiongroup.custom_list_renderer', function (require) {

"use strict";

console.log("Javascript works!");

var ListRenderer = require('web.ListRenderer');
var CustomListRenderer = ListRenderer.include({

events: _.extend({}, ListRenderer.prototype.events, {
'click thead th.o_column_sortable': '_onSortColumn',
}),

_onSortColumn: function (ev) {
if (this.$el.hasClass('disable_sort')) {
ev.preventDefault();
return false;
}
return this._super.apply(this, arguments);
},
});

return CustomListRenderer;
});


I hope this solves your problem 😀.

3
Avatar
Annuleer
Suryansh Pratap Singh

Thank You for your support

Avatar
Varun Singh
Beste antwoord

Thank You for your support Pushpendra

0
Avatar
Annuleer
Avatar
Maximiliano Gamón
Auteur Beste antwoord

Thanks a huge lot Pushpendra for your answer! 
I'm sorry to say it did not work, but I learned a lot from it.

I added the class, changed the _onSortColumn as you said, but nothing happened.

I added a console.log before the if just to see if it ever ran, and it is never logged. But the log at the start of the .js file is properly being logged, so it is being imported. 

Is it possible that _onSortColumn isn't what I should target? I've been checking out list_renderer.js and it would seem that it is. But I can barely understand. Luckily, I have permission to read the Javascript Framework at the Odoo docs, three full hours just to study. If you know of any other good source of knowledge on the topic, I would be really grateful too.

Updated .js file:

odoo.define('production_operator_missiongroup.custom_list_renderer', function (require) {    "use strict";

console.log("Javascript works!")

var ListRenderer = require('web.ListRenderer');
var CustomListRenderer = ListRenderer.extend({
​ ​events: _.extend({}, ListRenderer.prototype.events, {
'click thead th.o_column_sortable': '_onSortColumn',
}),

_onSortColumn: function (ev) {
​ ​ ​if (this.$el.hasClass('disable_sort')) {
ev.preventDefault();
​ ​ ​return false;
​}
return this._super.apply(this, arguments);
},
});
return CustomListRenderer;});

Updated tree view:


production.work.tree
production.work

​ ​class="disable_sort">
​ ​
​


0
Avatar
Annuleer
Pushpendra


Hi Maximiliano Gamón,
There is an issue with your code, you are trying to extend the ListRenderer instead of extending you have to override the ListRenderer.
I have fixed your code JS code, check it and let me know if it is working

-----------------------------------------------------------------------------------------------------------
odoo.define('production_operator_missiongroup.custom_list_renderer', function (require) {

"use strict";

console.log("Javascript works!");

var ListRenderer = require('web.ListRenderer');
var CustomListRenderer = ListRenderer.include({

events: _.extend({}, ListRenderer.prototype.events, {
'click thead th.o_column_sortable': '_onSortColumn',
}),

_onSortColumn: function (ev) {
if (this.$el.hasClass('disable_sort')) {
ev.preventDefault();
return false;
}
return this._super.apply(this, arguments);
},
});

return CustomListRenderer;
});
-----------------------------------------------------------------------------------------------------------

Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!

Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!

Aanmelden
Gerelateerde posts Antwoorden Weergaven Activiteit
How to get action id from javascript? (Odoo 15) Opgelost
v15 Javascript
Avatar
Avatar
2
apr. 23
5168
how to get user object inside templates odoo 15
v15 Javascript
Avatar
Avatar
1
mrt. 22
2712
How to create Read Only tree view in odoo 15?
readonly tree_view v15
Avatar
Avatar
1
okt. 22
9669
How to use AJAX request to update a field automatically in website form in Odoo15
ajax v15 Javascript
Avatar
0
jul. 22
3710
How to inherit/override function in js odoo15 Opgelost
js v15 Javascript
Avatar
1
jun. 22
7260
Community
  • Tutorials
  • Documentatie
  • Forum
Open Source
  • Downloaden
  • Github
  • Runbot
  • Vertalingen
Diensten
  • Odoo.sh Hosting
  • Ondersteuning
  • Upgrade
  • Gepersonaliseerde ontwikkelingen
  • Onderwijs
  • Vind een boekhouder
  • Vind een partner
  • Word een Partner
Over ons
  • Ons bedrijf
  • Merkelementen
  • Neem contact met ons op
  • Vacatures
  • Evenementen
  • Podcast
  • Blog
  • Klanten
  • Juridisch • Privacy
  • Beveiliging
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo is een suite van open source zakelijke apps die aan al je bedrijfsbehoeften voldoet: CRM, E-commerce, boekhouding, inventaris, kassasysteem, projectbeheer, enz.

Odoo's unieke waardepropositie is om tegelijkertijd zeer gebruiksvriendelijk en volledig geïntegreerd te zijn.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now