Improve display values when setting default values for issue595
This commit is contained in:
1 parent
a24db17f30
commit
f36a20b514
14 files changed
+91
-23
No files matched your search
@@ -388,6 +388,14 @@ class M2MField(CharField):
|
||||
def get_default(self, model):
|
||||
return self.get_client(model)
|
||||
|
||||
def name_get(self, model):
|
||||
rpc2 = RPCProxy(self.attrs['relation'])
|
||||
try:
|
||||
result = rpc2.name_get(self.get_client(model), rpc.CONTEXT)
|
||||
except:
|
||||
return self.get_client(model)
|
||||
return ', '.join(dict(result).values())
|
||||
|
||||
|
||||
class O2MField(CharField):
|
||||
'''
|
||||
|
||||
@@ -114,6 +114,9 @@ class Binary(WidgetInterface):
|
||||
self.but_save_as.set_sensitive(bool(model_field.get(model)))
|
||||
return True
|
||||
|
||||
def display_value(self):
|
||||
return self.wid_text.get_text()
|
||||
|
||||
def _size_get(self, value):
|
||||
return value and ('%d ' + _('bytes')) % len(value) or ''
|
||||
|
||||
|
||||
@@ -105,6 +105,9 @@ class Calendar(WidgetInterface):
|
||||
self.entry.set_text(value)
|
||||
return True
|
||||
|
||||
def display_value(self):
|
||||
return self.entry.get_text()
|
||||
|
||||
def cal_open(self, widget):
|
||||
win = gtk.Dialog(_('Date Selection'), self._window,
|
||||
gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT,
|
||||
@@ -260,6 +263,9 @@ class DateTime(WidgetInterface):
|
||||
self.entry.set_text(value)
|
||||
return True
|
||||
|
||||
def display_value(self):
|
||||
return self.entry.get_text()
|
||||
|
||||
def cal_open(self, widget):
|
||||
win = gtk.Dialog(_('Date Time Selection'), self._window,
|
||||
gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT,
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
#This file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms.
|
||||
import gtk
|
||||
from interface import WidgetInterface
|
||||
import gettext
|
||||
|
||||
_ = gettext.gettext
|
||||
|
||||
class CheckBox(WidgetInterface):
|
||||
|
||||
@@ -25,3 +28,9 @@ class CheckBox(WidgetInterface):
|
||||
self.widget.set_active(False)
|
||||
return False
|
||||
self.widget.set_active(bool(model_field.get(model)))
|
||||
|
||||
def display_value(self):
|
||||
if self.widget.get_active():
|
||||
return _('True')
|
||||
else:
|
||||
return _('False')
|
||||
@@ -60,6 +60,9 @@ class FloatTime(WidgetInterface):
|
||||
value = '-' + value
|
||||
self.entry.set_text(value)
|
||||
|
||||
def display_value(self):
|
||||
return self.entry.get_text()
|
||||
|
||||
def _readonly_set(self, value):
|
||||
super(FloatTime, self)._readonly_set(value)
|
||||
self.entry.set_editable(not value)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#This file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms.
|
||||
#This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
#this repository contains the full copyright notices and license terms.
|
||||
from char import Char
|
||||
import locale
|
||||
|
||||
@@ -27,6 +28,9 @@ class Integer(Char):
|
||||
self.entry.set_text(locale.format('%d',
|
||||
model_field.get(model) or 0, True))
|
||||
|
||||
def display_value(self):
|
||||
return self.entry.get_text()
|
||||
|
||||
def sig_insert_text(self, entry, new_text, new_text_length, position):
|
||||
value = entry.get_text()
|
||||
position = entry.get_position()
|
||||
|
||||
@@ -16,16 +16,15 @@ _ATTRS_BOOLEAN = {
|
||||
'readonly': False
|
||||
}
|
||||
|
||||
def field_pref_set(field, name, model, value, dependance=None, window=None):
|
||||
def field_pref_set(field, name, model, value, client_value, dependance=None,
|
||||
window=None):
|
||||
dialog = WidgetFieldPreference(window)
|
||||
if dependance is None:
|
||||
dependance = []
|
||||
entry = dialog.entry_field_name
|
||||
entry.set_text(name)
|
||||
entry = dialog.entry_domain
|
||||
entry.set_text(model)
|
||||
entry = dialog.entry_default_value
|
||||
entry.set_text((value and str(value)) or _('<empty>'))
|
||||
entry.set_text((client_value and str(client_value)) or _('<empty>'))
|
||||
|
||||
radio = dialog.radio_current_user
|
||||
|
||||
@@ -188,10 +187,14 @@ class WidgetInterface(object):
|
||||
value = wview.modelfield.get_client(self._view.model)
|
||||
deps.append((wname, name, wvalue, value))
|
||||
value = self._view.modelfield.get_default(self._view.model)
|
||||
client_value = self.display_value()
|
||||
model = self._view.modelfield.parent.resource
|
||||
field_pref_set(self._view.widget_name,
|
||||
self.attrs.get('string', self._view.widget_name), model,
|
||||
value, deps, window=self._window)
|
||||
value, client_value, deps, window=self._window)
|
||||
|
||||
def display_value(self):
|
||||
return self._view.modelfield.get_client(self._view.model)
|
||||
|
||||
def _menu_open(self, obj, event):
|
||||
if event.button == 3:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#This file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms.
|
||||
#This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
#this repository contains the full copyright notices and license terms.
|
||||
import gtk
|
||||
from tryton.gui.window.view_form.screen import Screen
|
||||
from interface import WidgetInterface
|
||||
@@ -128,5 +129,8 @@ class Many2Many(WidgetInterface):
|
||||
self.screen.display()
|
||||
return True
|
||||
|
||||
def display_value(self):
|
||||
return self._view.modelfield.name_get(self._view.model)
|
||||
|
||||
def set_value(self, model, model_field):
|
||||
model_field.set_client(model, [x.id for x in self.screen.models.models])
|
||||
@@ -654,6 +654,9 @@ class One2Many(WidgetInterface):
|
||||
self.screen.display()
|
||||
return True
|
||||
|
||||
def display_value(self):
|
||||
return '<' + self.attrs.get('string', '') + '>'
|
||||
|
||||
def set_value(self, model, model_field):
|
||||
self.screen.current_view.set_value()
|
||||
if self.screen.is_modified():
|
||||
|
||||
@@ -16,7 +16,7 @@ class WidgetFieldPreference(object):
|
||||
def __init__(self, window):
|
||||
self.parent = window
|
||||
self.dialog = gtk.Dialog(
|
||||
title=_("Field Preference target"),
|
||||
title=_("Field Preference"),
|
||||
parent=window,
|
||||
flags=gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT
|
||||
| gtk.WIN_POS_CENTER_ON_PARENT)
|
||||
@@ -33,10 +33,10 @@ class WidgetFieldPreference(object):
|
||||
self.dialog.set_default_response(gtk.RESPONSE_OK)
|
||||
vbox = gtk.VBox()
|
||||
self.dialog.vbox.pack_start(vbox)
|
||||
table = gtk.Table(5, 2, False)
|
||||
table = gtk.Table(4, 2, False)
|
||||
table.set_border_width(4)
|
||||
table.set_row_spacings(4)
|
||||
table.set_col_spacings(5)
|
||||
table.set_col_spacings(4)
|
||||
vbox.pack_start(table, True, True, 0)
|
||||
|
||||
label_field_name = gtk.Label(_("Field Name:"))
|
||||
@@ -45,20 +45,28 @@ class WidgetFieldPreference(object):
|
||||
table.attach(label_field_name, 0, 1, 0, 1)
|
||||
self.entry_field_name = gtk.Entry()
|
||||
self.entry_field_name.set_editable(False)
|
||||
style = self.entry_field_name.get_style()
|
||||
self.entry_field_name.modify_bg(gtk.STATE_NORMAL,
|
||||
style.bg[gtk.STATE_INSENSITIVE])
|
||||
self.entry_field_name.modify_base(gtk.STATE_NORMAL,
|
||||
style.base[gtk.STATE_INSENSITIVE])
|
||||
self.entry_field_name.modify_fg(gtk.STATE_NORMAL,
|
||||
style.fg[gtk.STATE_INSENSITIVE])
|
||||
table.attach(self.entry_field_name, 1, 2, 0, 1)
|
||||
label_domain = gtk.Label(_("Domain:"))
|
||||
label_domain.set_justify(gtk.JUSTIFY_RIGHT)
|
||||
label_domain.set_alignment(1, 0.5)
|
||||
table.attach(label_domain, 0, 1, 1, 2)
|
||||
self.entry_domain = gtk.Entry()
|
||||
self.entry_domain.set_editable(False)
|
||||
table.attach(self.entry_domain, 1, 2, 1, 2)
|
||||
label_default_value = gtk.Label(_("Default value:"))
|
||||
label_default_value.set_alignment(1, 0.5)
|
||||
table.attach(label_default_value, 0, 1, 2, 3)
|
||||
table.attach(label_default_value, 0, 1, 1, 2)
|
||||
self.entry_default_value = gtk.Entry()
|
||||
self.entry_default_value.set_editable(False)
|
||||
table.attach(self.entry_default_value, 1, 2, 2, 3)
|
||||
self.entry_default_value.set_width_chars(32)
|
||||
style = self.entry_field_name.get_style()
|
||||
self.entry_default_value.modify_bg(gtk.STATE_NORMAL,
|
||||
style.bg[gtk.STATE_INSENSITIVE])
|
||||
self.entry_default_value.modify_base(gtk.STATE_NORMAL,
|
||||
style.base[gtk.STATE_INSENSITIVE])
|
||||
self.entry_default_value.modify_fg(gtk.STATE_NORMAL,
|
||||
style.fg[gtk.STATE_INSENSITIVE])
|
||||
table.attach(self.entry_default_value, 1, 2, 1, 2)
|
||||
|
||||
frame_user = gtk.Frame()
|
||||
alignment_user = gtk.Alignment(0.5, 0.5, 1, 1)
|
||||
@@ -70,13 +78,13 @@ class WidgetFieldPreference(object):
|
||||
hbox_user = gtk.HBox(True, 0)
|
||||
alignment_user.add(hbox_user)
|
||||
hbox_user.set_border_width(6)
|
||||
self.radio_current_user = gtk.RadioButton(None, _("current _user"))
|
||||
self.radio_current_user = gtk.RadioButton(None, _("Current _User"))
|
||||
radio_all_user = gtk.RadioButton(self.radio_current_user,
|
||||
_("_all users"))
|
||||
_("_All Users"))
|
||||
hbox_user.pack_start(self.radio_current_user, False, False, 0)
|
||||
hbox_user.pack_start(radio_all_user, False, False, 0)
|
||||
radio_all_user.set_active(True)
|
||||
table.attach(frame_user, 0, 2, 3, 4)
|
||||
table.attach(frame_user, 0, 2, 2, 3)
|
||||
|
||||
frame_condition = gtk.Frame()
|
||||
alignment_condition = gtk.Alignment(0.5, 0.5, 1, 1)
|
||||
@@ -87,7 +95,7 @@ class WidgetFieldPreference(object):
|
||||
frame_condition.set_label_widget(label_condition)
|
||||
self.vbox_condition = gtk.VBox(False, 0)
|
||||
alignment_condition.add(self.vbox_condition)
|
||||
table.attach(frame_condition, 0, 2, 4, 5)
|
||||
table.attach(frame_condition, 0, 2, 3, 4)
|
||||
|
||||
self.dialog.show_all()
|
||||
radio_all_user.grab_focus()
|
||||
|
||||
@@ -35,3 +35,6 @@ class ProgressBar(WidgetInterface):
|
||||
self.widget.set_text(locale.format('%.' + str(digits[1]) + 'f',
|
||||
value, True))
|
||||
self.widget.set_fraction(value / 100.0)
|
||||
|
||||
def display_value(self):
|
||||
return self.widget.get_text()
|
||||
@@ -289,6 +289,10 @@ class Reference(WidgetInterface):
|
||||
self.but_open.set_image(img)
|
||||
self.changed = True
|
||||
|
||||
def display_value(self):
|
||||
return self.widget_combo.get_child().get_text() + ', ' + \
|
||||
self.wid_text.get_text()
|
||||
|
||||
def sig_key_pressed(self, *args):
|
||||
key = args[1].string.lower()
|
||||
if self.last_key[0] == key:
|
||||
|
||||
@@ -136,6 +136,9 @@ class Selection(WidgetInterface):
|
||||
break
|
||||
self.changed = True
|
||||
|
||||
def display_value(self):
|
||||
return self.entry.get_child().get_text()
|
||||
|
||||
def sig_changed(self, *args):
|
||||
if self.changed:
|
||||
self._focus_out()
|
||||
@@ -110,3 +110,10 @@ class TextBox(WidgetInterface):
|
||||
del spell
|
||||
except:
|
||||
pass
|
||||
|
||||
def display_value(self):
|
||||
lines = (self._view.modelfield.get_client(self._view.model) or '').split('\n')
|
||||
if len(lines) > 1:
|
||||
return lines[0] + '...'
|
||||
else:
|
||||
return lines[0]
|
||||
Reference in new issue
Block a user