~jfb-tempo-consulting/unifield-web/US-5037

« back to all changes in this revision

Viewing changes to addons/openerp/widgets/listgrid.py

  • Committer: jf
  • Date: 2020-04-01 10:02:24 UTC
  • mfrom: (4987.4.1 web-US-7172)
  • Revision ID: jfb@tempo-consulting.fr-20200401100224-i15jv2hp3b7j8v0d
US-7172 [IMP] new attribute 'tooltip' on tree view field to display the value on mouseover

lp:~jfb-tempo-consulting/unifield-web/US-7172

Show diffs side-by-side

added added

removed removed

Lines of Context:
442
442
 
443
443
        myfields = [] # check for duplicate fields
444
444
 
 
445
        set_tooltip = {}
445
446
        for node in root.childNodes:
446
447
 
447
448
            if node.nodeName == 'button':
466
467
                headers += [("separator", {'type': 'separator', 'string': '|', 'not_sortable': 1})]
467
468
            elif node.nodeName == 'field':
468
469
                attrs = node_attributes(node)
469
 
 
470
470
                if 'name' in attrs:
471
471
 
472
472
                    name = attrs['name']
516
516
                    if 'real_sum' in attrs:
517
517
                        field_real_total[name] = [attrs['real_sum'], 0.0]
518
518
 
 
519
                    if fields[name].get('tooltip'):
 
520
                        set_tooltip[name] = fields[name].get('tooltip')
 
521
 
519
522
                    for i, row in enumerate(data):
520
523
                        row_value = values[i]
521
524
                        if invisible:
539
542
                                    break
540
543
                            except:
541
544
                                pass
542
 
 
543
545
                        row[name] = cell
 
546
 
544
547
                    if invisible:
545
548
                        continue
546
549
 
547
550
                    headers += [(name, fields[name])]
548
551
 
 
552
        if set_tooltip:
 
553
            for row in data:
 
554
                for to_set in set_tooltip:
 
555
                    if isinstance(row[set_tooltip[to_set]], Hidden):
 
556
                        row[to_set].tooltip = row[set_tooltip[to_set]].widget.get_display_value()
 
557
                    else:
 
558
                        row[to_set].tooltip = row[set_tooltip[to_set]].get_display_value()
 
559
 
 
560
 
549
561
        return headers, hiddens, data, field_total, field_real_total, buttons
550
562
 
551
563
class Char(TinyWidget):
552
564
    template = "/openerp/widgets/templates/listgrid/char.mako"
553
565
 
554
 
    params = ['text', 'link', 'value', 'truncate']
 
566
    params = ['text', 'link', 'value', 'truncate', 'tooltip']
555
567
 
556
568
    def __init__(self, **attrs):
557
569
 
559
571
 
560
572
        self.attrs = attrs.copy()
561
573
 
 
574
        self.tooltip = attrs.get('tooltip_value')
562
575
        self.text = self.get_text()
563
576
        self.link = self.get_link()
564
577