src/pyams_content/shared/site/interfaces.py
changeset 1113 5f026f7b6ada
parent 1097 a0473ba5f96f
child 1207 a97f2023131a
--- a/src/pyams_content/shared/site/interfaces.py	Fri Nov 23 13:23:22 2018 +0100
+++ b/src/pyams_content/shared/site/interfaces.py	Fri Nov 23 13:25:51 2018 +0100
@@ -17,8 +17,8 @@
 from zope.annotation.interfaces import IAttributeAnnotatable
 from zope.container.constraints import containers, contains
 from zope.container.interfaces import IContained, IContainer
-from zope.interface import Attribute, Interface
-from zope.schema import Bool, Choice, Text
+from zope.interface import Attribute, Interface, invariant
+from zope.schema import Bool, Choice, Text, URI
 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
 
 from pyams_content.interfaces import IBaseContent
@@ -159,8 +159,8 @@
     """Workflow managed site topic interface"""
 
 
-class IContentLink(ISiteElement, IInternalReference, IAttributeAnnotatable):
-    """Rented content interface"""
+class ISiteLink(ISiteElement):
+    """Site link interface"""
 
     navigation_title = I18nTextLineField(title=_("Navigation title"),
                                          description=_("Alternate content's title displayed in navigation pages; "
@@ -176,3 +176,15 @@
                    description=_("If 'no', link is not visible"),
                    required=True,
                    default=True)
+
+
+class IContentLink(ISiteLink, IInternalReference, IAttributeAnnotatable):
+    """Content link interface"""
+
+
+class IExternalContentLink(ISiteLink, IAttributeAnnotatable):
+    """External link interface"""
+
+    url = URI(title=_("Target URL"),
+              description=_("URL used to access external resource"),
+              required=True)