~georgeyk/stoqlib/ideale-henrique

« back to all changes in this revision

Viewing changes to stoqlib/gui/base/columns.py

  • Committer: georgeyk
  • Date: 2009-08-18 12:21:57 UTC
  • mfrom: (3096.1.11 stoqlib)
  • Revision ID: georgeyk.dev@gmail.com-20090818122157-adpvo26sbvzgwswo
merged with master

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
from kiwi.ui.widgets.list import Column
29
29
 
30
30
 
31
 
class ForeignKeyColumn(Column):
32
 
    """ForeignKeyColumn is a special column which is normally used together
33
 
    with a foreign key, for an sql table.
34
 
    """
35
 
    def __init__(self, table, *args, **kwargs):
36
 
        """Need an obj_field or adapted argument.
37
 
        See L{kiwi.ui.widgets.list.Column} for other arguments
38
 
        """
39
 
        if not 'obj_field' in kwargs and not 'adapted' in kwargs:
40
 
            raise TypeError(
41
 
                'ForeigKeyColumn needs an obj_field or adapted argument')
42
 
 
43
 
        self._table = table
44
 
        self._obj_field = kwargs.pop('obj_field', None)
45
 
        self._adapted = kwargs.pop('adapted', False)
46
 
        Column.__init__(self, *args, **kwargs)
47
 
 
48
 
    def get_attribute(self, instance, name, default=None):
49
 
        if self._obj_field:
50
 
            value = kgetattr(instance, self._obj_field, default)
51
 
            if value is None:
52
 
                return
53
 
        else:
54
 
            value = instance
55
 
 
56
 
        if self._adapted:
57
 
            value = value.get_adapted()
58
 
        return kgetattr(value, name, default)
59
 
 
60
31
class AccessorColumn(Column):
61
32
    def __init__(self, attribute, accessor, *args, **kwargs):
62
33
        if not accessor: