diff -r 6b7e4b7b6efe -r 35f11f1758e9 src/ztfy/utils/interfaces.py --- a/src/ztfy/utils/interfaces.py Thu Jun 04 15:50:36 2020 +0200 +++ b/src/ztfy/utils/interfaces.py Sat Jan 15 00:23:22 2022 +0100 @@ -23,7 +23,7 @@ # import local interfaces # import Zope3 packages -from zope.interface import Interface, Attribute +from zope.interface import invariant, Interface, Invalid, Attribute from zope.schema import TextLine, Int, Password, Bool # import local packages @@ -300,21 +300,30 @@ class IZEOConnection(Interface): """ZEO connection settings interface""" + config_path = TextLine(title=_("ZODB configuration path"), + description=_("Absolute path to ZODB configuration file"), + required=False) + server_name = TextLine(title=_("ZEO server name"), description=_("Hostname of ZEO server"), - required=True, + required=False, default=u'localhost') server_port = Int(title=_("ZEO server port"), description=_("Port number of ZEO server"), - required=True, + required=False, default=8100) storage = TextLine(title=_("ZEO server storage"), description=_("Storage name on ZEO server"), - required=True, + required=False, default=u'1') + @invariant + def check_configuration(self): + if not (self.config_path or self.server_name): + raise Invalid(_("You must define configuration path or hostname")) + username = TextLine(title=_("ZEO user name"), description=_("User name on ZEO server"), required=False)