~openerp-dev/openobject-client/dev_client_rga

« back to all changes in this revision

Viewing changes to bin/widget/view/list.py

  • Committer: RGA(OpenERP)
  • Date: 2011-01-19 05:52:51 UTC
  • mfrom: (1369.10.89 client)
  • Revision ID: rga@tinyerp.com-20110119055251-vh2pmznpxcs445e1
Merge with trunk client

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
 
67
67
class group_record(object):
68
68
 
69
 
    def __init__(self, value={}, ctx={}, domain=[], mgroup=None, child = True, sort_order=False):
 
69
    def __init__(self, value={}, ctx={}, domain=[], mgroup=None, child = True, sort_order=False, screen=None):
70
70
        self.list_parent = None
71
71
        self._children = None
72
72
        self.domain = domain
77
77
        self.mgroup = mgroup
78
78
        self.field_with_empty_labels = []
79
79
        self.sort_order = sort_order
 
80
        self.screen = screen
80
81
 
81
82
    def getChildren(self):
82
83
        if self._children is None:
83
 
            self._children = list_record(self.mgroup, parent=self, context=self.ctx, domain=self.domain,sort_order=self.sort_order)
 
84
            self._children = list_record(self.mgroup, parent=self, context=self.ctx, domain=self.domain,sort_order=self.sort_order, screen=self.screen)
84
85
        #self._children.load()
85
86
        return self._children
86
87
 
109
110
 
110
111
 
111
112
class list_record(object):
112
 
    def __init__(self, mgroup, parent=None, context=None, domain=None, sort_order=False):
 
113
    def __init__(self, mgroup, parent=None, context=None, domain=None, sort_order=False, screen=None):
113
114
        self.mgroup = mgroup
114
115
        self.mgroup.list_parent = parent
115
116
        self.mgroup.list_group = self
119
120
        self.loaded = False
120
121
        self.sort_order = sort_order
121
122
        self.lst = []
 
123
        self.screen = screen
122
124
        self.load()
 
125
        
 
126
        
123
127
 
124
128
    def destroy(self):
125
129
        del self.context
127
131
        del self.loaded
128
132
        del self.mgroup
129
133
        del self.lst
 
134
        del self.screen
130
135
 
131
136
    def add_dummny_record(self, group_field):
132
137
        record = { group_field:'This group is now empty ! Please refresh the list.'}
133
 
        rec = group_record(record, ctx=self.context, domain=self.domain, mgroup=self.mgroup, child = False)
 
138
        rec = group_record(record, ctx=self.context, domain=self.domain, mgroup=self.mgroup, child = False, screen=self.screen)
134
139
        self.add(rec)
135
140
 
136
141
    def get_order(self, gb, sort_order):
144
149
                gb = gb[0]
145
150
 
146
151
            if not sort_order.startswith(gb):
147
 
                return None
 
152
                return False
148
153
 
149
154
        return sort_order
150
155
 
170
175
                    if not no_leaf:
171
176
                        ctx.update({'__field':gb[-1]})
172
177
                    ctx.update(__ctx)
173
 
                    rec = group_record(r, ctx=ctx, domain=self.domain, mgroup=self.mgroup, child = child, sort_order=self.sort_order)
 
178
                    rec = group_record(r, ctx=ctx, domain=self.domain, mgroup=self.mgroup, child = child, sort_order=self.sort_order,screen=self.screen)
174
179
                    for field in gb:
175
180
                        if not rec.value.get(field, False):
176
181
                            field_type = self.mgroup.fields.get(field, {}).get('type', False)
181
186
                    self.add(rec)
182
187
        else:
183
188
            if self.context.get('__domain') and not no_leaf:
184
 
                ids = rpc.session.rpc_exec_auth('/object', 'execute', self.mgroup.resource, 'search', self.context.get('__domain'), 0, False, self.sort_order)
 
189
                limit = self.screen.screen_container.get_limit()               
 
190
                ids = rpc.session.rpc_exec_auth('/object', 'execute', self.mgroup.resource, 'search', self.context.get('__domain'), 0, limit, self.sort_order)
185
191
                if not ids:
186
192
                     self.add_dummny_record(self.context['__field'])
187
193
                else:
217
223
        return len(self.lst)
218
224
 
219
225
class AdaptModelGroup(gtk.GenericTreeModel):
220
 
    def __init__(self, model_group, context={}, domain=[], sort_order=False):
 
226
    def __init__(self, model_group, context={}, domain=[], sort_order=False, screen=None):
221
227
        super(AdaptModelGroup, self).__init__()
222
228
        self.model_group = model_group
223
229
        self.context = context or {}
224
230
        self.domain = domain
225
 
        self.models = list_record(model_group, context=context, domain=self.domain, sort_order=sort_order)
 
231
        self.models = list_record(model_group, context=context, domain=self.domain, sort_order=sort_order, screen=screen)
226
232
        self.set_property('leak_references', False)
 
233
     
227
234
 
228
235
    def added(self, modellist, position):
229
236
        self.models.loaded = False
726
733
                    self.screen.domain = [('id','in',self.screen.ids_get())]
727
734
                self.screen.models.models.clear()
728
735
            self.move_colums()
729
 
            self.store = AdaptModelGroup(self.screen.models, self.screen.context, self.screen.domain, self.screen.sort)
 
736
            self.store = AdaptModelGroup(self.screen.models, self.screen.context, self.screen.domain, self.screen.sort, self.screen)
730
737
            if self.store:
731
738
                self.widget_tree.set_model(self.store)
732
739
        else: