~openerp-dev/openobject-client/duplication_of_ir.filters

« back to all changes in this revision

Viewing changes to bin/widget/screen/screen.py

  • Committer: RGA(OpenERP)
  • Date: 2010-10-12 11:11:19 UTC
  • mfrom: (1564.1.45 trunk)
  • Revision ID: rga@tinyerp.com-20101012111119-jsuwv2erjdxq44us
Merge with trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
            parent=None, context=None, views_preload=None, tree_saves=True,
48
48
            domain=None, create_new=False, row_activate=None, hastoolbar=False,
49
49
            hassubmenu=False,default_get=None, show_search=False, window=None,
50
 
            limit=80, readonly=False, auto_search=True, is_wizard=False, search_view=None):
 
50
            limit=80, readonly=False, auto_search=True, is_wizard=False, search_view=None,win_search=False):
51
51
        if view_ids is None:
52
52
            view_ids = []
53
53
        if view_type is None:
62
62
            search_view = "{}"
63
63
 
64
64
        super(Screen, self).__init__()
 
65
        self.win_search = win_search
 
66
        self.win_search_domain = []
 
67
        self.win_search_ids = []
 
68
        self.win_search_callback = False
65
69
        self.show_search = show_search
66
70
        self.auto_search = auto_search
67
71
        self.search_count = 0
97
101
        models = ModelRecordGroup(model_name, self.fields, parent=self.parent, context=self.context, is_wizard=is_wizard)
98
102
        self.models_set(models)
99
103
        self.current_model = None
100
 
        self.screen_container = screen_container()
 
104
        self.screen_container = screen_container(self.win_search)
101
105
        self.filter_widget = None
102
106
        self.widget = self.screen_container.widget_get()
103
107
        self.__current_view = 0
163
167
 
164
168
 
165
169
    def update_scroll(self, *args):
166
 
        offset=self.offset
 
170
        offset = self.offset
167
171
        limit = self.screen_container.get_limit()
168
172
        if self.screen_container.but_previous:
169
173
            if offset<=0:
175
179
                self.screen_container.but_next.set_sensitive(False)
176
180
            else:
177
181
                self.screen_container.but_next.set_sensitive(True)
 
182
        if self.win_search:
 
183
            self.win_search_callback()
178
184
 
179
185
    def search_offset_next(self, *args):
180
186
        offset=self.offset
181
187
        limit = self.screen_container.get_limit()
182
188
        self.offset = offset+limit
183
189
        self.search_filter()
 
190
        if self.win_search:
 
191
            self.win_search_callback()
184
192
 
185
193
    def search_offset_previous(self, *args):
186
194
        offset=self.offset
187
195
        limit = self.screen_container.get_limit()
188
196
        self.offset = max(offset-limit,0)
189
197
        self.search_filter()
 
198
        if self.win_search:
 
199
            self.win_search_callback()
190
200
 
191
201
    def search_clear(self, *args):
192
202
        self.filter_widget.clear()
193
 
        self.screen_container.action_combo.set_active(0)
 
203
        if not self.win_search:
 
204
            self.screen_container.action_combo.set_active(0)
194
205
        self.clear()
195
206
 
196
207
    def get_calenderDomain(self, start=None,old_date='',mode='month'):
239
250
            self.context_update(val.get('context',{}), val.get('domain',[]) + self.sort_domain)
240
251
 
241
252
        v = self.domain
242
 
        limit=self.screen_container.get_limit()
 
253
        if self.win_search:
 
254
            v += self.win_search_domain
 
255
        limit = self.screen_container.get_limit()
243
256
        if self.current_view.view_type == 'calendar':
244
257
            start = self.current_view.view.date_start
245
258
            old_date = self.current_view.view.date
254
267
 
255
268
        if self.latest_search != v:
256
269
            self.offset = 0
257
 
        offset=self.offset
 
270
        offset = self.offset
258
271
        self.latest_search = v
259
272
        if self.context.get('group_by',False) and not self.current_view.view_type == 'graph':
260
273
            self.current_view.reload = True
261
274
            self.display()
262
275
            return True
263
276
        ids = rpc.session.rpc_exec_auth('/object', 'execute', self.name, 'search', v, offset, limit, self.sort, self.context)
 
277
        self.win_search_ids = ids
 
278
        if self.win_search and self.win_search_domain:
 
279
            for dom in self.win_search_domain:
 
280
                if dom in v:
 
281
                    v.remove(dom)
 
282
            self.win_search_domain = []
264
283
        if len(ids) < limit:
265
284
            self.search_count = len(ids)
266
285
        else:
603
622
        if self.current_view and self.current_view.view_type == 'tree' \
604
623
                and not self.current_view.widget_tree.editable:
605
624
            self.switch_view(mode='form')
606
 
        if self.current_view and self.current_view.view_type == 'gallery':
607
 
            self.switch_view(mode='form')
608
625
        ctx = self.context.copy()
609
626
        ctx.update(context)
610
627
        model = self.models.model_new(default, self.action_domain, ctx)
726
743
                self.current_model = None
727
744
            self.display()
728
745
            self.current_view.set_cursor()
729
 
        if self.current_view.view_type in ('tree','gallery'):
 
746
        if self.current_view.view_type == 'tree':
730
747
            ids = self.current_view.sel_ids_get()
731
748
 
732
749
            ctx = self.models.context.copy()
768
785
                else:
769
786
                    self.screen_container.help_frame.show_all()
770
787
            self.search_active(
771
 
                    active=self.show_search and vt in ('tree', 'graph', 'calendar', 'gallery'),
772
 
                    show_search=self.show_search and vt in ('tree', 'graph','calendar', 'gallery'),
 
788
                    active=self.show_search and vt in ('tree', 'graph', 'calendar'),
 
789
                    show_search=self.show_search and vt in ('tree', 'graph','calendar'),
773
790
            )
774
791
 
775
792
    def groupby_next(self):