def create(self, model): from widget.model.group import ModelRecordGroup mod = ModelRecordGroup(resource=self.attrs['relation'], fields={}, parent=model) mod.signal_connect(mod, 'model-changed', self._model_changed) return mod
def set(self, model, value, test_state=False, modified=False): from widget.model.group import ModelRecordGroup mod = ModelRecordGroup(resource=self.attrs['relation'], fields={}, parent=model) mod.signal_connect(mod, 'model-changed', self._model_changed) model.value[self.name] =mod #self.internal.signal_connect(self.internal, 'model-changed', self._model_changed) model.value[self.name].pre_load(value, display=False)
def set(self, model, value, test_state=False, modified=False): from widget.model.group import ModelRecordGroup mod = ModelRecordGroup(resource=self.attrs['relation'], fields={}, parent=model) mod.signal_connect(mod, 'model-changed', self._model_changed) model.value[self.name] = mod #self.internal.signal_connect(self.internal, 'model-changed', self._model_changed) model.value[self.name].pre_load(value, display=False)
def set(self, model, value, test_state=False, modified=False): if value and not isinstance(value[0], int): model = self.set_default(model, value) return from widget.model.group import ModelRecordGroup mod = ModelRecordGroup(resource=self.attrs['relation'], fields={}, parent=model) mod.signal_connect(mod, 'model-changed', self._model_changed) model.value[self.name] = mod #self.internal.signal_connect(self.internal, 'model-changed', self._model_changed) if value: value = value[:self.limit] model.value[self.name].pre_load(value, display=False)
def set_default(self, model, value): from widget.model.group import ModelRecordGroup fields = {} if value and len(value): context = self.context_get(model) rpc2 = RPCProxy(self.attrs['relation']) fields = rpc2.fields_get(value[0].keys(), context) model.value[self.name] = ModelRecordGroup( resource=self.attrs['relation'], fields=fields, parent=model) model.value[self.name].signal_connect(model.value[self.name], 'model-changed', self._model_changed) mod = None for record in (value or []): mod = model.value[self.name].model_new(default=False) mod.set_default(record) model.value[self.name].model_add(mod) model.value[self.name].current_model = mod #mod.signal('record-changed') return True
def __init__(self, model_name, view_ids=None, view_type=None, help={}, parent=None, context=None, views_preload=None, tree_saves=True, domain=None, create_new=False, row_activate=None, hastoolbar=False, hassubmenu=False, default_get=None, show_search=False, window=None, limit=100, readonly=False, auto_search=True, is_wizard=False, search_view=None, win_search=False): if view_ids is None: view_ids = [] if view_type is None: view_type = ['tree', 'form'] if views_preload is None: views_preload = {} if not domain: domain = [] if default_get is None: default_get = {} if search_view is None: search_view = "{}" super(Screen, self).__init__() self.win_search = win_search self.win_search_domain = [] self.win_search_ids = [] self.win_search_callback = False self.show_search = show_search self.auto_search = auto_search self.search_count = 0 self.hastoolbar = hastoolbar self.hassubmenu = hassubmenu self.default_get = default_get self.sort = False self.type = None self.dummy_cal = False if not row_activate: self.row_activate = lambda self, screen=None: self.switch_view( screen, 'form') else: self.row_activate = row_activate self.create_new = create_new self.name = model_name self.domain_init = domain self.action_domain = [] self.action_domain += domain self.latest_search = [] self.views_preload = views_preload self.resource = model_name self.rpc = RPCProxy(model_name) self.context_init = context or {} self.context_update() self.views = [] self.fields = {} self.view_ids = view_ids self.models = None self.parent = parent self.window = window self.is_wizard = is_wizard self.search_view = eval(search_view) models = ModelRecordGroup(model_name, self.fields, parent=self.parent, context=self.context, is_wizard=is_wizard, screen=self) self.models_set(models) self.current_model = None self.screen_container = screen_container(self.win_search) self.filter_widget = None self.widget = self.screen_container.widget_get() self.__current_view = 0 self.tree_saves = tree_saves self.limit = limit self.old_limit = limit self.offset = 0 self.readonly = readonly self.custom_panels = [] self.view_fields = { } # Used to switch self.fields when the view switchs self.sort_domain = [] self.old_ctx = {} self.help_mode = False if view_type: self.view_to_load = view_type[1:] view_id = False if view_ids: view_id = view_ids.pop(0) if view_type[0] in ('tree', 'graph', 'calendar'): self.screen_container.help = help self.help_mode = view_type[0] view = self.add_view_id(view_id, view_type[0], help=help) self.screen_container.set(view.widget) self.display()
def __init__(self, model_name, view_ids=None, view_type=None, parent=None, context=None, views_preload=None, tree_saves=True, domain=None, create_new=False, row_activate=None, hastoolbar=False, default_get=None, show_search=False, window=None, limit=80, readonly=False, is_wizard=False): if view_ids is None: view_ids = [] if view_type is None: view_type = ['tree', 'form'] if context is None: context = {} if views_preload is None: views_preload = {} if domain is None: domain = [] if default_get is None: default_get = {} super(Screen, self).__init__() self.show_search = show_search self.search_count = 0 self.hastoolbar = hastoolbar self.default_get = default_get if not row_activate: self.row_activate = lambda self, screen=None: self.switch_view( screen, 'form') else: self.row_activate = row_activate self.create_new = create_new self.name = model_name self.domain = domain self.latest_search = [] self.views_preload = views_preload self.resource = model_name self.rpc = RPCProxy(model_name) self.context = context self.context.update(rpc.session.context) self.views = [] self.fields = {} self.view_ids = view_ids self.models = None self.parent = parent self.window = window self.is_wizard = is_wizard models = ModelRecordGroup(model_name, self.fields, parent=self.parent, context=self.context, is_wizard=is_wizard) self.models_set(models) self.current_model = None self.screen_container = screen_container() self.filter_widget = None self.widget = self.screen_container.widget_get() self.__current_view = 0 self.tree_saves = tree_saves self.limit = limit self.readonly = readonly self.view_fields = { } # Used to switch self.fields when the view switchs if view_type: self.view_to_load = view_type[1:] view_id = False if view_ids: view_id = view_ids.pop(0) view = self.add_view_id(view_id, view_type[0]) self.screen_container.set(view.widget) self.display()