本文整理汇总了Python中widget.screen.Screen.editable_get方法的典型用法代码示例。如果您正苦于以下问题:Python Screen.editable_get方法的具体用法?Python Screen.editable_get怎么用?Python Screen.editable_get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类widget.screen.Screen
的用法示例。
在下文中一共展示了Screen.editable_get方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: one2many_list
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import editable_get [as 别名]
#.........这里部分代码省略.........
if pos!=None:
val = self._value[pos]
id = val.get('id', False)
obj = service.LocalService('action.main')
res = obj.exec_keyword(type, {'model':self.model, 'id': id or False, 'ids':[id], 'report_type': 'pdf'})
return True
else:
common.message(_('You have to select a resource !'))
return False
def switch_view(self, btn, arg):
self.screen.make_buttons_readonly(True)
self.screen.switch_view()
def _readonly_set(self, value):
self._readonly = value
self.eb_new.set_sensitive(not value)
self.eb_del.set_sensitive(not value)
self.screen.readonly = value
self.screen.display()
def set_disable(self, value):
self.eb_open.set_sensitive(value)
self.eb_switch.set_sensitive(value)
if self._readonly:
value = not self._readonly
self.eb_del.set_sensitive(value)
def _sig_new(self, *args):
_, event = args
ctx = dict(self._view.model.expr_eval(self.screen.default_get), **self.context)
ctx.update(self._view.model.expr_eval('dict(%s)' % self.attrs.get('context', '{}')))
if event.type in (gtk.gdk.BUTTON_PRESS, gtk.gdk.KEY_PRESS):
if (self.screen.current_view.view_type=='form') or self.screen.editable_get():
self.screen.new(context=ctx)
self.screen.make_buttons_readonly()
self._readonly = False
self.screen.current_view.widget.set_sensitive(True)
self.set_disable(True)
else:
ok = True
dia = dialog(self.attrs['relation'], parent=self._view.model, attrs=self.attrs, model_ctx=self.screen.models._context, window=self._window, readonly=self._readonly, context=ctx)
while ok:
ok, value, res = dia.run()
if ok or res == gtk.RESPONSE_APPLY:
self.screen.models.model_add(value)
value.signal('record-changed', value.parent)
self.screen.display()
dia.new()
self.set_disable(True)
self.pager.reset_pager()
dia.destroy()
def _sig_edit(self, *args):
ctx = dict(self._view.model.expr_eval(self.screen.default_get), **self.context)
ctx.update(self._view.model.expr_eval('dict(%s)' % self.attrs.get('context', '{}')))
if self.screen.current_model:
ok = True
edited_model = self.screen.current_model
dia = dialog(self.attrs['relation'], parent=self._view.model, model=self.screen.current_model, attrs=self.attrs, window=self._window, readonly=self._readonly, context=ctx)
while ok:
ok, value, res = dia.run()
if res == gtk.RESPONSE_OK:
dia.new()
if value and value != edited_model:
self.screen.models.model_add(value)
示例2: one2many_list
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import editable_get [as 别名]
#.........这里部分代码省略.........
def destroy(self):
self.screen.destroy()
def _on_activate(self, screen, *args):
self._sig_edit()
def click_and_action(self, type):
pos = self.tree_view.pos_get()
if pos!=None:
val = self._value[pos]
id = val.get('id', False)
obj = service.LocalService('action.main')
res = obj.exec_keyword(type, {'model':self.model, 'id': id or False, 'ids':[id], 'report_type': 'pdf'})
return True
else:
common.message(_('You have to select a resource !'))
return False
def switch_view(self, btn, arg):
self.screen.switch_view()
def _readonly_set(self, value):
self._readonly = value
self.eb_new.set_sensitive(not value)
self.eb_del.set_sensitive(not value)
self.screen.readonly = value
self.screen.display()
def _sig_new(self, *args):
_, event = args
ctx = self._view.model.expr_eval(self.screen.default_get)
ctx.update(self._view.model.expr_eval('dict(%s)' % self.attrs.get('context', '')))
if event.type in (gtk.gdk.BUTTON_PRESS, gtk.gdk.KEY_PRESS):
if (self.screen.current_view.view_type=='form') or self.screen.editable_get():
self.screen.new(context=ctx)
self._readonly = False
self.screen.current_view.widget.set_sensitive(True)
else:
ok = 1
dia = dialog(self.attrs['relation'], parent=self._view.model, attrs=self.attrs, model_ctx=self.screen.models._context, default_get_ctx=ctx, window=self._window, readonly=self._readonly)
while ok:
ok, value = dia.run()
if ok:
self.screen.models.model_add(value)
value.signal('record-changed', value.parent)
self.screen.display()
dia.new()
dia.destroy()
def _sig_edit(self, *args):
if self.screen.current_model:
dia = dialog(self.attrs['relation'], parent=self._view.model, model=self.screen.current_model, attrs=self.attrs, window=self._window, readonly=self._readonly)
ok, value = dia.run()
dia.destroy()
def _sig_next(self, *args):
_, event = args
if event.type == gtk.gdk.BUTTON_PRESS:
self.screen.display_next()
def _sig_previous(self, *args):
_, event = args
if event.type == gtk.gdk.BUTTON_PRESS:
self.screen.display_prev()
def _sig_remove(self, *args):
示例3: one2many_list
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import editable_get [as 别名]
#.........这里部分代码省略.........
## the modified records.
def _get_old_values(self, models=None):
group_model = {}
model_value = {}
if models is None:
models = []
for o2m_model in models:
values = o2m_model.value.copy()
model_value.setdefault(o2m_model, values)
group_model.setdefault(o2m_model, {})
for key, val in values.iteritems():
if isinstance(val, ModelRecordGroup):
group_model[o2m_model][key] = val.models[:]
del model_value[o2m_model][key]
return model_value,group_model
## This method is specially developed to restore old values
def _restore_values(self, modified_model_values, group_model):
for model, value in modified_model_values.iteritems():
model.set(value, modified=True)
for f_name, models in group_model.get(model, {}):
model.value[f_name].clear()
for sub_model in models:
# add model in ModelRecordGroup
model.value[f_name].model_add(sub_model)
return True
def _sig_new(self, *args):
_, event = args
ctx = dict(self._view.model.expr_eval(self.screen.default_get), **self.context)
ctx.update(self._view.model.expr_eval('dict(%s)' % self.attrs.get('context', '{}')))
if event.type in (gtk.gdk.BUTTON_PRESS, gtk.gdk.KEY_PRESS):
if (self.screen.current_view.view_type=='form') or self.screen.editable_get():
self.screen.new(context=ctx)
self.screen.make_buttons_readonly()
self._readonly = False
self.screen.current_view.widget.set_sensitive(True)
self.set_disable(True)
else:
ok = True
dia = dialog(self.attrs['relation'], parent=self._view.model, attrs=self.attrs, model_ctx=self.screen.models._context, window=self._window, readonly=self._readonly, context=ctx)
while ok:
ok, value, res = dia.run()
if ok or res == gtk.RESPONSE_APPLY:
modified_model_values, group_model = self._get_old_values(self.screen.models.models)
self.screen.models.model_add(value)
value.signal('record-changed', value.parent)
self._restore_values(modified_model_values, group_model)
self.screen.display()
dia.new()
self.set_disable(True)
self.pager.reset_pager()
dia.destroy()
def _sig_edit(self, *args):
ctx = dict(self._view.model.expr_eval(self.screen.default_get), **self.context)
ctx.update(self._view.model.expr_eval('dict(%s)' % self.attrs.get('context', '{}')))
ok = True
modified_model_values, group_model = self._get_old_values(self.screen.models.models)
dia = dialog(self.attrs['relation'], parent=self._view.model, model=self.screen.current_model, attrs=self.attrs, window=self._window, readonly=self._readonly, context=ctx)
while ok:
ok, value, res = dia.run()
if not any([ok, value, res]) and dia.screen.is_modified():
if modified_model_values:
self._restore_values(modified_model_values, group_model)
示例4: one2many_list
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import editable_get [as 别名]
#.........这里部分代码省略.........
if pos != None:
val = self._value[pos]
id = val.get("id", False)
obj = service.LocalService("action.main")
res = obj.exec_keyword(type, {"model": self.model, "id": id or False, "ids": [id], "report_type": "pdf"})
return True
else:
common.message(_("You have to select a resource !"))
return False
def switch_view(self, btn, arg):
self.screen.make_buttons_readonly(True)
self.screen.switch_view()
def _readonly_set(self, value):
self._readonly = value
self.eb_new.set_sensitive(not value)
self.eb_del.set_sensitive(not value)
self.screen.readonly = value
self.screen.display()
def set_disable(self, value):
self.eb_open.set_sensitive(value)
self.eb_switch.set_sensitive(value)
if self._readonly:
value = not self._readonly
self.eb_del.set_sensitive(value)
def _sig_new(self, *args):
_, event = args
ctx = dict(self._view.model.expr_eval(self.screen.default_get), **self.context)
ctx.update(self._view.model.expr_eval("dict(%s)" % self.attrs.get("context", "{}")))
if event.type in (gtk.gdk.BUTTON_PRESS, gtk.gdk.KEY_PRESS):
if (self.screen.current_view.view_type == "form") or self.screen.editable_get():
self.screen.new(context=ctx)
self.screen.make_buttons_readonly()
self._readonly = False
self.screen.current_view.widget.set_sensitive(True)
self.set_disable(True)
else:
ok = True
dia = dialog(
self.attrs["relation"],
parent=self._view.model,
attrs=self.attrs,
model_ctx=self.screen.models._context,
window=self._window,
readonly=self._readonly,
context=ctx,
)
while ok:
ok, value, res = dia.run()
if ok or res == gtk.RESPONSE_APPLY:
self.screen.models.model_add(value)
value.signal("record-changed", value.parent)
self.screen.display()
dia.new()
self.set_disable(True)
self.pager.reset_pager()
dia.destroy()
def _sig_edit(self, *args):
ctx = dict(self._view.model.expr_eval(self.screen.default_get), **self.context)
ctx.update(self._view.model.expr_eval("dict(%s)" % self.attrs.get("context", "{}")))
if self.screen.current_model:
ok = True