--- 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)