Skip to Content
Odoo Meniu
  • Autentificare
  • Try it free
  • Aplicații
    Finanțe
    • Contabilitate
    • Facturare
    • Cheltuieli
    • Spreadsheet (BI)
    • Documente
    • Semn
    Vânzări
    • CRM
    • Vânzări
    • POS Shop
    • POS Restaurant
    • Abonamente
    • Închiriere
    Site-uri web
    • Constructor de site-uri
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Lanț Aprovizionare
    • Inventar
    • Producție
    • PLM
    • Achiziție
    • Maintenance
    • Calitate
    Resurse Umane
    • Angajați
    • Recrutare
    • Time Off
    • Evaluări
    • Referințe
    • Flotă
    Marketing
    • Social Marketing
    • Marketing prin email
    • SMS Marketing
    • Evenimente
    • Automatizare marketing
    • Sondaje
    Servicii
    • Proiect
    • Foi de pontaj
    • Servicii de teren
    • Centru de asistență
    • Planificare
    • Programări
    Productivitate
    • Discuss
    • Aprobări
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Aplicații Terțe Odoo Studio Platforma Odoo Cloud
  • Industrii
    Retail
    • Book Store
    • Magazin de îmbrăcăminte
    • Magazin de Mobilă
    • Magazin alimentar
    • Magazin de materiale de construcții
    • Magazin de jucării
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Distribuitor de băuturi
    • Hotel
    Proprietate imobiliara
    • Real Estate Agency
    • Firmă de Arhitectură
    • Construcție
    • Estate Managament
    • Grădinărit
    • Asociația Proprietarilor de Proprietăți
    Consultanta
    • Firma de Contabilitate
    • Partener Odoo
    • Agenție de marketing
    • Law firm
    • Atragere de talente
    • Audit & Certification
    Producție
    • Textil
    • Metal
    • Mobilier
    • Mâncare
    • Brewery
    • Cadouri corporate
    Health & Fitness
    • Club Sportiv
    • Magazin de ochelari
    • Centru de Fitness
    • Wellness Practitioners
    • Farmacie
    • Salon de coafură
    Trades
    • Handyman
    • IT Hardware and Support
    • Asigurare socială de stat
    • Cizmar
    • Servicii de curățenie
    • HVAC Services
    Altele
    • Organizație nonprofit
    • Agenție de Mediu
    • Închiriere panouri publicitare
    • Fotografie
    • Închiriere biciclete
    • Asigurare socială
    Browse all Industries
  • Comunitate
    Învăță
    • Tutorials
    • Documentație
    • Certificări
    • Instruire
    • Blog
    • Podcast
    Empower Education
    • Program Educațional
    • Scale Up! Business Game
    • Visit Odoo
    Obține Software-ul
    • Descărcare
    • Compară Edițiile
    • Lansări
    Colaborați
    • Github
    • Forum
    • Evenimente
    • Translations
    • Devino Partener
    • Services for Partners
    • Înregistrează-ți Firma de Contabilitate
    Obține Servicii
    • Găsește un Partener
    • Găsiți un contabil
    • Meet an advisor
    • Servicii de Implementare
    • Referințe ale clienților
    • Suport
    • Actualizări
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Obține un demo
  • Prețuri
  • Ajutor

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

  • CRM
  • e-Commerce
  • Contabilitate
  • Inventar
  • PoS
  • Proiect
  • MRP
All apps
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
All Posts Oameni Insigne
Etichete (View all)
odoo accounting v14 pos v15
Despre acest forum
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
All Posts Oameni Insigne
Etichete (View all)
odoo accounting v14 pos v15
Despre acest forum
Suport

How to use widget="url" in tree view

Abonare

Primiți o notificare când există activitate la acestă postare

Această întrebare a fost marcată
5 Răspunsuri
26225 Vizualizări
Imagine profil
Narayanamurthy

I Have website field in tree view, need to create link onclick of the wesite field...

 widget="url" is working fine in form view, but not in tree view

2
Imagine profil
Abandonează
Sehrish

URL widget in Odoo: https://learnopenerp.blogspot.com/2022/05/how-to-use-phone-email-and-url-widget-in-odoo-15.html

Imagine profil
Praveen Kumar
Cel mai bun răspuns

Hi narayan

First download and install the Web/URL widget module and use widget="url"

 

2
Imagine profil
Abandonează
Imagine profil
Vinay
Cel mai bun răspuns

If the email address format doesn't contains "http://", it doesnt work

1
Imagine profil
Abandonează
Imagine profil
Dr Obx
Cel mai bun răspuns

This is maybe not perfect example but if it doesn't work you can fix it or built something what will work :)

As an example based on existing widget I've built for myself a new widget to create a link to skype so you can run skype straight from Odoo (Customer page or Human resorces :) ) just clicking on link to contact with your customers, also i made vendor support and local support page links based on this widget so it is possible and quiet easy - I'm not a programmer too ;)

So in my case I added at the end of /addons/web/static/js/view_form.js line somwhere around 6400 after "instance.web.form.widgets = new instance.web.Registry({"

this line to create a new instance in registry

" 'skype' : 'instance.web.form.FieldSkype', "

and sowhere around line 2600 before:

"instance.web.form.FieldUrl = instance.web.form.FieldChar.extend({"

this block of code:

"instance.web.form.FieldSkype = instance.web.form.FieldChar.extend({

template: 'FieldUrl',

initialize_content: function() {

this._super();

var $button = this.$el.find('button');

$button.click(this.on_button_clicked);

this.setupFocus($button);

},

render_value: function() {

if (!this.get("effective_readonly")) {

this._super();

} else {

var tmp = this.get('value');

var s = /(\w+):(.+)|^\.{0,2}\//.exec(tmp);

if (!s) {

tmp = "http://" + this.get('value');

}

var suf = document.getElementById('id');

if (suf = 'skype'){ var suf_x = 'skype:'; tmp = suf_x + this.get('value') + '?call';}

var text = this.get('value') ? this.node.attrs.text || tmp : '';

this.$el.find('a').attr('href', tmp).text(this.get('value'));

}

},

on_button_clicked: function() {

if (!this.get('value')) {

this.do_warn(_t("Resource Error"), _t("This resource is empty"));

} else {

var url = $.trim(this.get('value'));

if(/^www\./i.test(url))

url = 'skype:'+url+'?call';

window.close(url);

}

}

});"

and in XML file:

<field name="your_field_name" id="skype" widget="skype"/> - it will create a input box where you have to put skype nick.

(of course "your_field_name" needs to be defined in your_module.py)

'skype': fields.char('Skype'), - old API

skype = fields.Char('Skype') - new API

This solution works perfect for me. Same way you can create other useful widget extensions ;)

For example i created a simple connection to ebayshop, product name is automatically pulled from field "name" and added to the link making a search key on ebayshop (http://stores.ebay.co.uk/CharlesComputers/_i.html?_nkw="here is added a product name"). This solution is not the most elegant but it works :)

Example of Instance for ebayshop:

"instance.web.form.FieldEbay = instance.web.form.FieldChar.extend({

template: 'FieldUrl',

initialize_content: function() {

this._super();

var $button = this.$el.find('button');

$button.click(this.on_button_clicked);

this.setupFocus($button); },

render_value: function() {

if (!this.get("effective_readonly")) {

this._super();  } else {  var tmp = this.get('value');

var s = /(\w+):(.+)|^\.{0,2}\//.exec(tmp);

if (!s) {  tmp = "http://" + this.get('value'); }

var suf = document.getElementById('id');

if (suf = 'ebay'){ var suf_x = 'http://stores.ebay.co.uk/Your_Ebay_shop_name/_i.html?_nkw='; tmp = suf_x + this.get('value');}

var text = this.get('value') ? this.node.attrs.text || tmp : '';

this.$el.find('a').attr('href', tmp).text(this.get('value')); } },

on_button_clicked: function() { if (!this.get('value')) {

this.do_warn(_t("Resource Error"), _t("This resource is empty"));

} else {  var url = $.trim(this.get('value'));

if(/^www\./i.test(url))

url = 'http://'+url;

window.open(url);

} } });"

Check this code you may find how it works and try change it for your purpose.

Remember this is just an example.

Same Way you can create url widget for list.

In view_list.js insert this code somwhere around line 2400:

instance.web.list.Url = instance.web.list.Column.extend({

PROTOCOL_REGEX: /^(?!\w+:?\/\/)/,

  _format: function(row_data, options) {

var value = row_data[this.id].value;

if (value) {

return _.template("<a href='<%-href%>' target='_blank'><%-text%></a>", {

href: value.trim().replace(this.PROTOCOL_REGEX, '//'),

text: value  });

}

return this._super(row_data, options);

} });

This definitely work, tested it.

0
Imagine profil
Abandonează
Imagine profil
Anthony Gardiner
Cel mai bun răspuns

I'm not really a programmer yet I have installed both this module and the WEB module with no success to show the clickable link in the tree view.

Does anyone know where there are examples of the code?

Should I be setting up the custom field or script in a certain way?

How to use widget="url" in tree view
My script is <field name="x_showworkurl2" widget="url"/>

0
Imagine profil
Abandonează
Dr Obx

Check example above, you may find it useful

Dr Obx

Widget directly may not work so maybe you should try with button.

Narayanamurthy
Autor

It works, Install "Web/URL widget" Module, it is different from "web" module

Imagine profil
Carlos Lopez
Cel mai bun răspuns

Hi,

Check this PR https://github.com/odoo/odoo/pull/3592

 

0
Imagine profil
Abandonează
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Înscrie-te
Comunitate
  • Tutorials
  • Documentație
  • Forum
Open Source
  • Descărcare
  • Github
  • Runbot
  • Translations
Servicii
  • Hosting Odoo.sh
  • Suport
  • Actualizare
  • Custom Developments
  • Educație
  • Găsiți un contabil
  • Găsește un Partener
  • Devino Partener
Despre Noi
  • Compania noastră
  • Active de marcă
  • Contactați-ne
  • Locuri de muncă
  • Evenimente
  • Podcast
  • Blog
  • Clienți
  • Aspecte juridice • Confidențialitate
  • Securitate
الْعَرَبيّة 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 este o suită de aplicații de afaceri open source care acoperă toate nevoile companiei dvs.: CRM, comerț electronic, contabilitate, inventar, punct de vânzare, management de proiect etc.

Propunerea de valoare unică a Odoo este să fie în același timp foarte ușor de utilizat și complet integrat.

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