src/pyams_content/component/links/interfaces/__init__.py
changeset 140 67bad9f880ee
parent 88 758d0cb86132
child 168 0d80c3c49bab
--- a/src/pyams_content/component/links/interfaces/__init__.py	Mon Sep 11 14:53:15 2017 +0200
+++ b/src/pyams_content/component/links/interfaces/__init__.py	Mon Sep 11 14:54:30 2017 +0200
@@ -17,32 +17,23 @@
 import re
 
 # import interfaces
-from zope.annotation.interfaces import IAttributeAnnotatable
-from zope.container.interfaces import IContainer
+from pyams_content.component.association.interfaces import IAssociationTarget, IAssociationItem
 
 # import packages
 from pyams_i18n.schema import I18nTextLineField, I18nTextField
 from pyams_sequence.schema import InternalReference, InternalReferencesList
-from pyams_utils.schema import PersistentList
-from zope.container.constraints import containers, contains
 from zope.interface import Interface
 from zope.schema import Choice, TextLine
 
 from pyams_content import _
 
 
-LINK_CONTAINER_KEY = 'pyams_content.link'
-LINK_LINKS_CONTAINER_KEY = 'pyams_content.link.links'
-
-
-class IBaseLink(IAttributeAnnotatable):
+class IBaseLink(IAssociationItem):
     """Base link interface"""
 
-    containers('.ILinkContainer')
-
-    title = I18nTextLineField(title=_("Title"),
+    title = I18nTextLineField(title=_("Alternate title"),
                               description=_("Link title, as shown in front-office"),
-                              required=True)
+                              required=False)
 
     description = I18nTextField(title=_("Description"),
                                 description=_("Link description displayed by front-office template"),
@@ -51,9 +42,6 @@
     def get_editor_url(self):
         """Get URL for use in HTML editor"""
 
-    def get_url(self, request, view_name=None):
-        """Get link URL"""
-
 
 class IInternalLink(IBaseLink):
     """Internal link interface"""
@@ -92,28 +80,13 @@
                        constraint=EMAIL_REGEX.match,
                        required=True)
 
-
-class ILinkContainer(IContainer):
-    """Links container"""
-
-    contains(IBaseLink)
-
-
-class ILinkContainerTarget(Interface):
-    """Links container marker interface"""
+    address_name = TextLine(title=_("Address name"),
+                            description=_("Address as displayed in address book"),
+                            required=True)
 
 
-class ILinkLinksContainer(Interface):
-    """Links links container interface"""
-
-    links = PersistentList(title=_("Contained links"),
-                           description=_("List of internal or external links linked to this object"),
-                           value_type=Choice(vocabulary="PyAMS content links"),
-                           required=False)
-
-
-class ILinkLinksContainerTarget(Interface):
-    """Links links container marker interface"""
+class ILinkContainerTarget(IAssociationTarget):
+    """Links container marker interface"""
 
 
 class IInternalReferencesList(Interface):