diff --git a/CHANGELOG b/CHANGELOG
index fe195fc6b6..b221bddb00 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,4 @@
+* Add 'login.host' options to hide server connection
* Handle required attribute with local domains
* Allow to run wizard in tabs
* Add "Change Accelerators" option
diff --git a/tryton/config.py b/tryton/config.py
index 8eec079276..dd8ecd5184 100644
--- a/tryton/config.py
+++ b/tryton/config.py
@@ -100,7 +100,9 @@ class ConfigManager(object):
'roundup.xmlrpc': 'roundup-xmlrpc.tryton.org',
}
self.config = {}
- self.options = {}
+ self.options = {
+ 'login.host': True
+ }
parser = optparse.OptionParser(version=("Tryton %s" % VERSION))
parser.add_option("-c", "--config", dest="config",
help=_("specify alternate config file"))
@@ -174,7 +176,8 @@ class ConfigManager(object):
self.config[key] = value
def __getitem__(self, key):
- return self.options.get(key, self.config.get(key, self.defaults[key]))
+ return self.options.get(key, self.config.get(key,
+ self.defaults.get(key)))
CONFIG = ConfigManager()
CURRENT_DIR = os.path.abspath(os.path.normpath(os.path.join(
diff --git a/tryton/gui/window/dbcreate.py b/tryton/gui/window/dbcreate.py
index 8c8e7d541c..4b5c8eacdc 100644
--- a/tryton/gui/window/dbcreate.py
+++ b/tryton/gui/window/dbcreate.py
@@ -162,16 +162,16 @@ class DBCreate(object):
table.set_row_spacings(3)
table.set_col_spacings(3)
- label_server_setup = gtk.Label()
- label_server_setup.set_markup(""+ _("Server Setup:")+ "")
- label_server_setup.set_justify(gtk.JUSTIFY_LEFT)
- label_server_setup.set_alignment(0, 1)
- label_server_setup.set_padding( 9, 5)
- table.attach(label_server_setup, 0, 3, 0, 1, xoptions=gtk.FILL)
- label_server = gtk.Label(_("Server connection:"))
- label_server.set_alignment(1, 0.5)
- label_server.set_padding(3, 3)
- table.attach(label_server, 0, 1, 1, 2, xoptions=gtk.FILL)
+ self.label_server_setup = gtk.Label()
+ self.label_server_setup.set_markup(""+ _("Server Setup:")+ "")
+ self.label_server_setup.set_justify(gtk.JUSTIFY_LEFT)
+ self.label_server_setup.set_alignment(0, 1)
+ self.label_server_setup.set_padding( 9, 5)
+ table.attach(self.label_server_setup, 0, 3, 0, 1, xoptions=gtk.FILL)
+ self.label_server = gtk.Label(_("Server connection:"))
+ self.label_server.set_alignment(1, 0.5)
+ self.label_server.set_padding(3, 3)
+ table.attach(self.label_server, 0, 1, 1, 2, xoptions=gtk.FILL)
self.entry_server_connection = gtk.Entry()
self.entry_server_connection.set_sensitive(False)
self.entry_server_connection.unset_flags(gtk.CAN_FOCUS)
@@ -191,15 +191,16 @@ class DBCreate(object):
table.attach(self.button_server_change, 2, 3, 1, 2, yoptions=False, xoptions=gtk.FILL)
self.tooltips.set_tip(self.button_server_change, _("Setup the " \
"server connection..."))
- label_serverpasswd = gtk.Label(_("Tryton Server Password:"))
- label_serverpasswd.set_justify(gtk.JUSTIFY_RIGHT)
- label_serverpasswd.set_alignment(1, 0.5)
- label_serverpasswd.set_padding( 3, 3)
- table.attach(label_serverpasswd, 0, 1, 2, 3, xoptions=gtk.FILL)
+ self.label_serverpasswd = gtk.Label(_("Tryton Server Password:"))
+ self.label_serverpasswd.set_justify(gtk.JUSTIFY_RIGHT)
+ self.label_serverpasswd.set_alignment(1, 0.5)
+ self.label_serverpasswd.set_padding( 3, 3)
+ table.attach(self.label_serverpasswd, 0, 1, 2, 3, xoptions=gtk.FILL,
+ yoptions=gtk.FILL)
self.entry_serverpasswd = gtk.Entry()
self.entry_serverpasswd.set_visibility(False)
self.entry_serverpasswd.set_activates_default(True)
- table.attach(self.entry_serverpasswd, 1, 3, 2, 3)
+ table.attach(self.entry_serverpasswd, 1, 3, 2, 3, yoptions=gtk.FILL)
self.tooltips.set_tip(self.entry_serverpasswd, _("This is the " \
"password of the Tryton server. It doesn't belong to a " \
"real user. This password is usually defined in the trytond " \
@@ -207,25 +208,27 @@ class DBCreate(object):
self.entry_serverpasswd.connect("key-press-event", \
self.event_passwd_clear)
- hseparator = gtk.HSeparator()
- table.attach(hseparator, 0, 3, 3, 4)
+ self.hseparator = gtk.HSeparator()
+ table.attach(self.hseparator, 0, 3, 3, 4, yoptions=gtk.FILL)
label_dbname = gtk.Label()
label_dbname.set_markup("" + _("New database setup:") + "")
label_dbname.set_justify(gtk.JUSTIFY_LEFT)
label_dbname.set_alignment(0, 1)
label_dbname.set_padding( 9, 5)
- table.attach(label_dbname, 0, 3, 4, 5, xoptions=gtk.FILL)
+ table.attach(label_dbname, 0, 3, 4, 5, xoptions=gtk.FILL,
+ yoptions=gtk.FILL)
label_dbname = gtk.Label(_("Database name:"))
label_dbname.set_justify(gtk.JUSTIFY_RIGHT)
label_dbname.set_padding( 3, 3)
label_dbname.set_alignment(1, 0.5)
- table.attach(label_dbname, 0, 1, 5, 6, xoptions=gtk.FILL)
+ table.attach(label_dbname, 0, 1, 5, 6, xoptions=gtk.FILL,
+ yoptions=gtk.FILL)
self.entry_dbname = gtk.Entry()
self.entry_dbname.set_max_length(63)
self.entry_dbname.set_width_chars(16)
self.entry_dbname.set_activates_default(True)
- table.attach(self.entry_dbname, 1, 3, 5, 6)
+ table.attach(self.entry_dbname, 1, 3, 5, 6, yoptions=gtk.FILL)
self.tooltips.set_tip(self.entry_dbname, _("Choose the name of the new " \
"database.\n" \
"Allowed characters are alphanumerical or _ (underscore)\n" \
@@ -238,11 +241,12 @@ class DBCreate(object):
label_language.set_justify(gtk.JUSTIFY_RIGHT)
label_language.set_alignment(1, 0.5)
label_language.set_padding( 3, 3)
- table.attach(label_language, 0, 1, 6, 7, xoptions=gtk.FILL)
+ table.attach(label_language, 0, 1, 6, 7, xoptions=gtk.FILL,
+ yoptions=gtk.FILL)
eventbox_language = gtk.EventBox()
self.combo_language = gtk.combo_box_new_text()
eventbox_language.add(self.combo_language)
- table.attach(eventbox_language, 1, 3, 6, 7)
+ table.attach(eventbox_language, 1, 3, 6, 7, yoptions=gtk.FILL)
self.tooltips.set_tip(eventbox_language, _("Choose the default " \
"language that will be installed for this database. You will " \
"be able to install new languages after installation through " \
@@ -251,7 +255,8 @@ class DBCreate(object):
label_adminpasswd.set_justify(gtk.JUSTIFY_RIGHT)
label_adminpasswd.set_padding( 3, 3)
label_adminpasswd.set_alignment(1, 0.5)
- table.attach(label_adminpasswd, 0, 1, 7, 8, xoptions=gtk.FILL)
+ table.attach(label_adminpasswd, 0, 1, 7, 8, xoptions=gtk.FILL,
+ yoptions=gtk.FILL)
self.entry_adminpasswd = gtk.Entry()
self.entry_adminpasswd.set_visibility(False)
self.entry_adminpasswd.set_activates_default(True)
@@ -260,20 +265,21 @@ class DBCreate(object):
"will be later able to login into the database:\n" \
"User name: admin\n" \
"Password: "))
- table.attach(self.entry_adminpasswd, 1, 3, 7, 8)
+ table.attach(self.entry_adminpasswd, 1, 3, 7, 8, yoptions=gtk.FILL)
self.entry_adminpasswd.connect("key-press-event", \
self.event_passwd_clear)
label_adminpasswd2 = gtk.Label(_("Confirm admin password:"))
label_adminpasswd2.set_justify(gtk.JUSTIFY_RIGHT)
label_adminpasswd2.set_padding( 3, 3)
label_adminpasswd2.set_alignment(1, 0.5)
- table.attach(label_adminpasswd2, 0, 1, 8, 9, xoptions=gtk.FILL)
+ table.attach(label_adminpasswd2, 0, 1, 8, 9, xoptions=gtk.FILL,
+ yoptions=gtk.FILL)
self.entry_adminpasswd2 = gtk.Entry()
self.entry_adminpasswd2.set_visibility(False)
self.entry_adminpasswd2.set_activates_default(True)
self.tooltips.set_tip(self.entry_adminpasswd2, _("Type the Admin " \
"password again"))
- table.attach(self.entry_adminpasswd2, 1, 3, 8, 9)
+ table.attach(self.entry_adminpasswd2, 1, 3, 8, 9, yoptions=gtk.FILL)
self.entry_adminpasswd2.connect("key-press-event", \
self.event_passwd_clear)
self.entry_serverpasswd.grab_focus()
@@ -286,6 +292,15 @@ class DBCreate(object):
self.dialog.set_transient_for(parent)
self.dialog.show_all()
+ if not CONFIG['login.host']:
+ self.label_server_setup.hide()
+ self.label_server.hide()
+ self.entry_server_connection.hide()
+ self.button_server_change.hide()
+ self.label_serverpasswd.hide()
+ self.entry_serverpasswd.hide()
+ self.hseparator.hide()
+
pass_widget = self.entry_serverpasswd
change_button = self.button_server_change
admin_passwd = self.entry_adminpasswd
diff --git a/tryton/gui/window/dbdumpdrop.py b/tryton/gui/window/dbdumpdrop.py
index ef9684b182..92dcd0798d 100644
--- a/tryton/gui/window/dbdumpdrop.py
+++ b/tryton/gui/window/dbdumpdrop.py
@@ -108,7 +108,7 @@ class DBBackupDrop(object):
table.set_border_width(10)
table.set_row_spacings(3)
table.set_col_spacings(3)
- self.dialog_vbox.pack_start(table, True, True,0)
+ self.dialog_vbox.pack_start(table, True, False,0)
label_subtitle = gtk.Label()
label_subtitle.set_markup(""+ label_subtitle_text + "")
@@ -118,12 +118,13 @@ class DBBackupDrop(object):
table.attach(label_subtitle, 0, 3, 0, 1, xoptions=gtk.FILL)
hseparator = gtk.HSeparator()
- table.attach(hseparator, 0, 3, 1, 2)
+ table.attach(hseparator, 0, 3, 1, 2, yoptions=gtk.FILL)
- label_server = gtk.Label(_("Server Connection:"))
- label_server.set_alignment(1, 0.5)
- label_server.set_padding(3, 3)
- table.attach(label_server, 0, 1, 2, 3, xoptions=gtk.FILL)
+ self.label_server = gtk.Label(_("Server Connection:"))
+ self.label_server.set_alignment(1, 0.5)
+ self.label_server.set_padding(3, 3)
+ table.attach(self.label_server, 0, 1, 2, 3, xoptions=gtk.FILL,
+ yoptions=gtk.FILL)
self.entry_server_connection = gtk.Entry()
self.entry_server_connection.set_sensitive(False)
@@ -134,7 +135,8 @@ class DBBackupDrop(object):
"URL of the server. Use server 'localhost' and port '8070' " \
"if the server is installed on this computer. " \
"Click on 'Change' to change the address."))
- table.attach(self.entry_server_connection, 1, 2, 2, 3)
+ table.attach(self.entry_server_connection, 1, 2, 2, 3,
+ yoptions=gtk.FILL)
self.button_server_change = gtk.Button(_("C_hange"), stock=None, \
use_underline=True)
@@ -142,14 +144,15 @@ class DBBackupDrop(object):
img_button_server_change.set_from_stock('tryton-preferences-system', \
gtk.ICON_SIZE_BUTTON)
self.button_server_change.set_image(img_button_server_change)
- table.attach(self.button_server_change, 2, 3, 2, 3, yoptions=False, \
+ table.attach(self.button_server_change, 2, 3, 2, 3, yoptions=gtk.FILL, \
xoptions=gtk.FILL)
self.label_database = gtk.Label()
self.label_database.set_text(_("Database:"))
self.label_database.set_alignment(1, 0.5)
self.label_database.set_padding(3, 3)
- table.attach(self.label_database, 0, 1, 3, 4, xoptions=gtk.FILL)
+ table.attach(self.label_database, 0, 1, 3, 4, xoptions=gtk.FILL,
+ yoptions=gtk.FILL)
vbox_combo = gtk.VBox()
self.combo_database = gtk.ComboBox()
@@ -158,13 +161,14 @@ class DBBackupDrop(object):
self.combo_database_label.set_alignment(0, 1)
vbox_combo.pack_start(self.combo_database, True, True, 0)
vbox_combo.pack_start(self.combo_database_label, False, False, 0)
- table.attach(vbox_combo, 1, 3, 3, 4)
+ table.attach(vbox_combo, 1, 3, 3, 4, yoptions=gtk.FILL)
label_serverpasswd = gtk.Label(_("Tryton Server Password:"))
label_serverpasswd.set_justify(gtk.JUSTIFY_RIGHT)
label_serverpasswd.set_alignment(1, 0.5)
label_serverpasswd.set_padding( 3, 3)
- table.attach(label_serverpasswd, 0, 1, 4, 5, xoptions=gtk.FILL)
+ table.attach(label_serverpasswd, 0, 1, 4, 5, xoptions=gtk.FILL,
+ yoptions=gtk.FILL)
self.entry_serverpasswd = gtk.Entry()
self.entry_serverpasswd.set_visibility(False)
@@ -173,7 +177,7 @@ class DBBackupDrop(object):
"password of the Tryton server. It doesn't belong to a " \
"real user. This password is usually defined in the trytond " \
"configuration."))
- table.attach(self.entry_serverpasswd, 1, 3, 4, 5)
+ table.attach(self.entry_serverpasswd, 1, 3, 4, 5, yoptions=gtk.FILL)
self.entry_serverpasswd.grab_focus()
self.dialog.vbox.pack_start(self.dialog_vbox)
@@ -183,6 +187,11 @@ class DBBackupDrop(object):
self.dialog.set_transient_for(parent)
self.dialog.show_all()
+ if not CONFIG['login.host']:
+ self.label_server.hide()
+ self.entry_server_connection.hide()
+ self.button_server_change.hide()
+
pass_widget = self.entry_serverpasswd
server_widget = self.entry_server_connection
db_widget = self.combo_database
diff --git a/tryton/gui/window/dblogin.py b/tryton/gui/window/dblogin.py
index 1d33a88bb5..f6c1572a6d 100644
--- a/tryton/gui/window/dblogin.py
+++ b/tryton/gui/window/dblogin.py
@@ -70,11 +70,11 @@ class DBLogin(object):
self.entry_login = gtk.Entry()
self.entry_login.set_activates_default(True)
table_main.attach(self.entry_login, 1, 3, 2, 3)
- label_server = gtk.Label()
- label_server.set_text(_("Server:"))
- label_server.set_alignment(1, 0.5)
- label_server.set_padding(3, 3)
- table_main.attach(label_server, 0, 1, 0, 1, xoptions=gtk.FILL)
+ self.label_server = gtk.Label()
+ self.label_server.set_text(_("Server:"))
+ self.label_server.set_alignment(1, 0.5)
+ self.label_server.set_padding(3, 3)
+ table_main.attach(self.label_server, 0, 1, 0, 1, xoptions=gtk.FILL)
label_database = gtk.Label()
label_database.set_text(_("Database:"))
label_database.set_alignment(1, 0.5)
@@ -161,6 +161,11 @@ class DBLogin(object):
self.combo_label.hide()
self.combo_button.hide()
+ if not CONFIG['login.host']:
+ self.label_server.hide()
+ self.entry_server.hide()
+ self.button_server.hide()
+
host = CONFIG['login.server']
port = int(CONFIG['login.port'])
diff --git a/tryton/gui/window/dbrestore.py b/tryton/gui/window/dbrestore.py
index 4a7baaf1fc..6a8f21cd87 100644
--- a/tryton/gui/window/dbrestore.py
+++ b/tryton/gui/window/dbrestore.py
@@ -75,11 +75,11 @@ class DBRestore(object):
table.set_row_spacings(3)
table.set_col_spacings(3)
vbox.pack_start(table)
- label_server_url = gtk.Label(_("Server Connection:"))
- label_server_url.set_size_request(117, -1)
- label_server_url.set_alignment(1, 0.5)
- label_server_url.set_padding(3, 3)
- table.attach(label_server_url, 0, 1, 0, 1)
+ self.label_server_url = gtk.Label(_("Server Connection:"))
+ self.label_server_url.set_size_request(117, -1)
+ self.label_server_url.set_alignment(1, 0.5)
+ self.label_server_url.set_padding(3, 3)
+ table.attach(self.label_server_url, 0, 1, 0, 1, yoptions=gtk.FILL)
self.entry_server_url = gtk.Entry()
self.entry_server_url.set_sensitive(False)
self.entry_server_url.unset_flags(gtk.CAN_FOCUS)
@@ -91,7 +91,7 @@ class DBRestore(object):
"the server. Use server 'localhost' and port '8070' if " \
"the server is installed on this computer. Click on " \
"'Change' to change the address."))
- table.attach(self.entry_server_url, 1, 2, 0, 1)
+ table.attach(self.entry_server_url, 1, 2, 0, 1, yoptions=gtk.FILL)
self.button_server_change = gtk.Button(_("C_hange"), stock=None, \
use_underline=True)
img_button_server_change = gtk.Image()
@@ -100,12 +100,12 @@ class DBRestore(object):
self.button_server_change.set_image(img_button_server_change)
self.tooltips.set_tip(self.button_server_change, _("Setup the " \
"server connection..."))
- table.attach(self.button_server_change, 2, 3, 0, 1)
- label_server_password = gtk.Label(_("Tryton Server Password:"))
- label_server_password.set_justify(gtk.JUSTIFY_RIGHT)
- label_server_password.set_alignment(1, 0.5)
- label_server_password.set_padding(3, 3)
- table.attach(label_server_password, 0, 1, 1, 2)
+ table.attach(self.button_server_change, 2, 3, 0, 1, yoptions=gtk.FILL)
+ self.label_server_password = gtk.Label(_("Tryton Server Password:"))
+ self.label_server_password.set_justify(gtk.JUSTIFY_RIGHT)
+ self.label_server_password.set_alignment(1, 0.5)
+ self.label_server_password.set_padding(3, 3)
+ table.attach(self.label_server_password, 0, 1, 1, 2, yoptions=gtk.FILL)
self.entry_server_password = gtk.Entry()
self.entry_server_password.set_visibility(False)
self.entry_server_password.set_activates_default(True)
@@ -114,16 +114,16 @@ class DBRestore(object):
"password of the Tryton server. It doesn't belong to a " \
"real user. This password is usually defined in the trytond " \
"configuration."))
- table.attach(self.entry_server_password, 1, 3, 1, 2)
- hseparator = gtk.HSeparator()
- table.attach(hseparator, 0, 3, 2, 3)
+ table.attach(self.entry_server_password, 1, 3, 1, 2, yoptions=gtk.FILL)
+ self.hseparator = gtk.HSeparator()
+ table.attach(self.hseparator, 0, 3, 2, 3, yoptions=gtk.FILL)
label_filename = gtk.Label()
label_filename.set_markup(_("File to Restore:"))
label_filename.set_alignment(1, 0.5)
- table.attach(label_filename, 0, 1, 3, 4)
+ table.attach(label_filename, 0, 1, 3, 4, yoptions=gtk.FILL)
entry_filename = gtk.Label()
entry_filename.set_markup("" + filename + "")
- table.attach(entry_filename, 1, 3, 3, 4)
+ table.attach(entry_filename, 1, 3, 3, 4, yoptions=gtk.FILL)
self.entry_db_name = gtk.Entry()
self.entry_db_name.set_visibility(True)
self.entry_db_name.set_activates_default(True)
@@ -137,10 +137,10 @@ class DBRestore(object):
"Allowed characters are alphanumerical or _ (underscore)\n" \
"You need to avoid all accents, space or special " \
"characters! \nExample: tryton"))
- table.attach(self.entry_db_name, 1, 3, 4, 5)
+ table.attach(self.entry_db_name, 1, 3, 4, 5, yoptions=gtk.FILL)
label_db_name = gtk.Label(_("New Database Name:"))
label_db_name.set_alignment(1, 0.5)
- table.attach(label_db_name, 0, 1, 4, 5)
+ table.attach(label_db_name, 0, 1, 4, 5, yoptions=gtk.FILL)
# Buttons and events
self.dialog.connect("key-press-event", \
self.event_show_button_restore)
@@ -166,6 +166,15 @@ class DBRestore(object):
"""
self.dialog.set_transient_for(parent)
self.dialog.show_all()
+
+ if not CONFIG['login.host']:
+ self.label_server_url.hide()
+ self.entry_server_url.hide()
+ self.button_server_change.hide()
+ self.label_server_password.hide()
+ self.entry_server_password.hide()
+ self.hseparator.hide()
+
url = '%s:%d' % (CONFIG['login.server'], int(CONFIG['login.port']))
self.entry_server_url.set_text(url)
while True: